diff --git a/Android.mk b/Android.mk
index e015d2b..77827eb 100644
--- a/Android.mk
+++ b/Android.mk
@@ -45,13 +45,13 @@
       SettingsLib \
       car-ui-lib \
 
-   # Including the resources for the static android libraries allows this app to pick up their static overlays.
-   LOCAL_RESOURCE_DIR += \
-       $(LOCAL_PATH)/res \
-       $(LOCAL_PATH)/../libs/car-apps-common/res \
-       $(LOCAL_PATH)/../libs/car-settings-lib/res \
-       $(LOCAL_PATH)/../libs/car-ui-lib/res \
-       $(LOCAL_PATH)/../../../../frameworks/base/packages/SettingsLib/res
+  # Including the resources for the static android libraries allows this app to pick up their static overlays.
+  LOCAL_RESOURCE_DIR += \
+      $(LOCAL_PATH)/res \
+      $(LOCAL_PATH)/../libs/car-apps-common/res \
+      $(LOCAL_PATH)/../libs/car-settings-lib/res \
+      $(LOCAL_PATH)/../libs/car-ui-lib/res \
+      $(LOCAL_PATH)/../../../../frameworks/base/packages/SettingsLib/res
 
   LOCAL_CERTIFICATE := platform
 
@@ -68,6 +68,8 @@
       androidx-constraintlayout_constraintlayout-solver \
       jsr305
 
+  LOCAL_REQUIRED_MODULES := privapp_whitelist_com.android.car.settings
+
   LOCAL_DX_FLAGS := --multi-dex
 
   include $(BUILD_PACKAGE)
@@ -105,9 +107,10 @@
       SettingsLib \
       car-ui-lib \
 
+  # Testing only resources must be applied first so they take precedence.
   LOCAL_RESOURCE_DIR := \
-      $(LOCAL_PATH)/res \
       $(LOCAL_PATH)/tests/robotests/res \
+      $(LOCAL_PATH)/res \
       $(LOCAL_PATH)/../libs/car-apps-common/res \
       $(LOCAL_PATH)/../libs/car-settings-lib/res \
       $(LOCAL_PATH)/../libs/car-ui-lib/res \
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 0106167..dc4ce93 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -17,16 +17,17 @@
   -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.android.car.settings"
-    coreApp="true"
-    android:sharedUserId="android.uid.system"
-    android:versionCode="1"
-    android:versionName="1.0">
+          package="com.android.car.settings"
+          coreApp="true"
+          android:sharedUserId="android.uid.system"
+          android:versionCode="1"
+          android:versionName="1.0">
 
     <uses-sdk
         android:minSdkVersion="24"
         android:targetSdkVersion="24"/>
 
+    <uses-permission android:name="android.car.permission.CAR_ENROLL_TRUST"/>
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
     <uses-permission android:name="android.permission.BACKUP"/>
@@ -96,6 +97,12 @@
 
             <intent-filter android:priority="1">
                 <action android:name="android.settings.SOUND_SETTINGS" />
+                <action android:name="android.settings.panel.action.VOLUME" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+
+            <intent-filter android:priority="100">
+                <action android:name="android.settings.panel.action.INTERNET_CONNECTIVITY" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
 
@@ -103,6 +110,7 @@
                 <action android:name="android.net.wifi.PICK_WIFI_NETWORK" />
                 <action android:name="android.settings.WIFI_SETTINGS" />
                 <action android:name="android.settings.WIRELESS_SETTINGS" />
+                <action android:name="android.settings.panel.action.WIFI" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
 
@@ -166,16 +174,6 @@
             </intent-filter>
 
             <intent-filter android:priority="100">
-                <action android:name="android.settings.MANAGE_DEFAULT_APPS_SETTINGS" />
-                <category android:name="android.intent.category.DEFAULT" />
-            </intent-filter>
-
-            <intent-filter android:priority="100">
-                <action android:name="android.settings.VOICE_INPUT_SETTINGS" />
-                <category android:name="android.intent.category.DEFAULT" />
-            </intent-filter>
-
-            <intent-filter android:priority="100">
                 <action android:name="android.settings.action.MANAGE_WRITE_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
@@ -190,11 +188,6 @@
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
 
-            <intent-filter android:priority="100">
-                <action android:name="android.settings.STORAGE_VOLUME_ACCESS_SETTINGS" />
-                <category android:name="android.intent.category.DEFAULT" />
-            </intent-filter>
-
             <intent-filter android:priority="1">
                 <action android:name="android.settings.DATE_SETTINGS" />
                 <action android:name="android.intent.action.QUICK_CLOCK" />
@@ -218,7 +211,6 @@
 
             <intent-filter android:priority="100">
                 <action android:name="android.settings.INTERNAL_STORAGE_SETTINGS" />
-                <action android:name="android.os.storage.action.MANAGE_STORAGE" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
 
@@ -296,6 +288,28 @@
                   android:theme="@android:style/Theme.Translucent.NoTitleBar"
                   android:configChanges="orientation|keyboardHidden|screenSize"/>
 
+        <activity android:name=".applications.managedomainurls.ManageDomainUrlsActivity"
+                  android:configChanges="orientation|keyboardHidden|screenSize"
+                  android:windowSoftInputMode="adjustResize"
+                  android:exported="true">
+            <intent-filter>
+                <action android:name="android.settings.MANAGE_DOMAIN_URLS" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <meta-data android:name="distractionOptimized" android:value="true"/>
+        </activity>
+
+        <activity android:name=".applications.assist.ManageAssistActivity"
+                  android:configChanges="orientation|keyboardHidden|screenSize"
+                  android:windowSoftInputMode="adjustResize"
+                  android:exported="true">
+            <intent-filter>
+                <action android:name="android.settings.VOICE_INPUT_SETTINGS" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <meta-data android:name="distractionOptimized" android:value="true"/>
+        </activity>
+
         <activity android:name=".security.SettingsScreenLockActivity"
                   android:configChanges="orientation|keyboardHidden|screenSize"
                   android:windowSoftInputMode="adjustResize">
@@ -316,6 +330,11 @@
             </intent-filter>
         </activity>
 
+        <activity android:name=".security.AddTrustedDeviceActivity"
+                  android:configChanges="orientation|keyboardHidden|screenSize"
+                  android:windowSoftInputMode="adjustResize">
+        </activity>
+
         <activity android:name=".system.ThirdPartyLicensesActivity"
                   android:label="@string/settings_license_activity_title"
                   android:configChanges="orientation|keyboardHidden|screenSize"
diff --git a/res/layout/suggestion_preference.xml b/res/layout/suggestion_preference.xml
index ad549d8..c834522 100644
--- a/res/layout/suggestion_preference.xml
+++ b/res/layout/suggestion_preference.xml
@@ -47,6 +47,7 @@
                     android:ellipsize="end"
                     android:maxLines="1"
                     android:textAppearance="?android:attr/textAppearanceLarge"
+                    android:hyphenationFrequency="none"
                     app:layout_constraintStart_toStartOf="parent"
                     app:layout_constraintTop_toTopOf="parent"/>
                 <TextView
@@ -57,6 +58,7 @@
                     android:ellipsize="end"
                     android:maxLines="1"
                     android:textAppearance="?android:attr/textAppearanceMedium"
+                    android:hyphenationFrequency="none"
                     app:layout_constraintStart_toStartOf="parent"
                     app:layout_constraintTop_toBottomOf="@android:id/title"/>
                 <ImageView
diff --git a/res/layout/two_action_preference.xml b/res/layout/two_action_preference.xml
index f40bab3..17768e1 100644
--- a/res/layout/two_action_preference.xml
+++ b/res/layout/two_action_preference.xml
@@ -48,12 +48,14 @@
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:ellipsize="end"
+                android:hyphenationFrequency="none"
                 android:singleLine="true"
                 android:textAppearance="@style/TextAppearance.CarUi.PreferenceTitle"/>
             <TextView
                 android:id="@android:id/summary"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
+                android:hyphenationFrequency="none"
                 android:textAppearance="@style/TextAppearance.CarUi.PreferenceSummary"/>
         </LinearLayout>
     </LinearLayout>
diff --git a/res/values-af/arrays.xml b/res/values-af/arrays.xml
new file mode 100644
index 0000000..b4043fd
--- /dev/null
+++ b/res/values-af/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Vra"</item>
+    <item msgid="933409503308401889">"Moet nooit toelaat nie"</item>
+    <item msgid="1154273129608299386">"Laat altyd toe"</item>
+  </string-array>
+</resources>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 172aaab..06b13bd 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Nagmodus"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Netwerk en internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Selnetwerk"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-kaarte</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM-kaart</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Aktief / SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Onaktief / SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Aktief / Afgelaaide SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Onaktief / Afgelaaide SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Voeg nog by"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Mobiele data"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Kry toegang tot data deur selnetwerk"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Skakel mobiele data af?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Keuse vereis"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Gebruik <xliff:g id="CARRIER">%1$s</xliff:g> vir mobiele data?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Jy gebruik tans <xliff:g id="CARRIER2_0">%2$s</xliff:g> vir mobiele data. As jy na <xliff:g id="CARRIER1">%1$s</xliff:g> toe oorskakel, sal <xliff:g id="CARRIER2_1">%2$s</xliff:g> nie meer vir mobiele data gebruik word nie."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Gebruik <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Swerwing"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Koppel aan datadienste tydens swerwing"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Laat dataswerwing toe?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Dit kan baie duur wees."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Datagebruik"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Primêre data"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> is gebruik"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Premium-SMS\'e kan jou geld kos en die koste sal by jou diensverskafferfakture gevoeg word. As jy toestemming vir \'n program aktiveer, sal jy premium-SMS\'e met daardie program kan stuur."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Gebruiktoegang"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Gebruiktoegang laat \'n program toe om na te spoor watter ander programme jy gebruik en hoe gereeld, asook as jou diensverskaffer, taalinstellings en ander besonderhede."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Gidstoegang"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi-beheer"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Wi-Fi-beheer laat \'n program toe om Wi-Fi aan of af te skakel, Wi-Fi-netwerke te soek en aan hulle te koppel, netwerke by te voeg of te verwyder, en om \'n warmkol wat net plaaslik is, te begin."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Meer"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Ligging"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Onlangse liggingversoeke"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Geen onlangse liggingversoeke nie"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Laat programme en dienste toe om enige tyd na toestelle in die omtrek te soek, selfs wanneer Bluetooth af is. Dit kan byvoorbeeld gebruik word om ligginggegronde kenmerke en dienste te verbeter."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Stelsel"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Stelselopdaterings"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Nie beskikbaar nie"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android-weergawe"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android-sekuriteitregstellingvlak"</string>
     <string name="model_info" msgid="4966408071657934452">"Model"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Kernweergawe"</string>
     <string name="build_number" msgid="3997326631001009102">"Bounommer"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth-adres"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Wi-Fi-MAC-adres"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Nie beskikbaar nie"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Status"</string>
     <string name="device_status" msgid="267298179806290920">"Status"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Stygende, dalende of herhalende groep syfers word nie toegelaat nie."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Skermslotopsies"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> dae gelede"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Voeg vertroude toestel by"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth gaan aan om vertroude toestel by te voeg"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Vertroude toestelle"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> toestelle</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> toestel</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Jou <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> sal hierdie motor ontsluit wanneer dit gekoppel is. As iemand jou <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> vat, kan hulle dalk toegang tot hierdie toestel verkry"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Bevestig"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Verwyder vertroude toestel"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Klaar"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Gebruik die metgeselprogram om \'n vertroude toestel op te stel. Nadat dit opgestel is, sal jou gebruikerprofiel outomaties ontsluit wanneer jou foon naby die voertuig bespeur word."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Laai die metgeselprogram af op jou foon"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Kies <xliff:g id="CAR_NAME">%1$s</xliff:g> op jou foon om die toestelle saam te bind"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"\'n Vertroude toestel naby jou motor sal die gebruikerprofiel ontsluit wanneer die motor aangeskakel word, selfs al hou iemand anders die toestel vas."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Bevestig asseblief dat die saambindkodes ooreenstem"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Foon is suksesvol ingeskryf"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>-inskrywing het misluk"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"As jy \'n vertroude toestel byvoeg, sal daar van jou vereis word om volgende \'n stawingsmetode op te stel. As jy nie jou vertroude toestel by jou het nie, sal stawing vereis word om by jou profiel in te gaan."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Toestel is ontkoppel."</string>
     <string name="forget" msgid="3971143908183848527">"Vergeet"</string>
     <string name="connect" msgid="5861699594602380150">"Koppel"</string>
     <string name="disconnect" msgid="6140789953324820336">"Ontkoppel"</string>
diff --git a/res/values-am/arrays.xml b/res/values-am/arrays.xml
new file mode 100644
index 0000000..bef6b89
--- /dev/null
+++ b/res/values-am/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"ጠይቅ"</item>
+    <item msgid="933409503308401889">"በጭራሽ አትፍቀድ"</item>
+    <item msgid="1154273129608299386">"ሁልጊዜ ፍቀድ"</item>
+  </string-array>
+</resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 9177e1c..f25b3cd 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"የሌሊት ሁነታ"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"አውታረ መረብ እና በይነመረብ"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"የተንቀሳቃሽ ስልክ አውታረ መረብ"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> ሲሞች</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ሲሞች</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"ገቢር / ሲም"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"ገቢር ያልሆነ / ሲም"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"ገቢር / የወረደ ሲም"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"ገቢር ያልሆነ / የወረደ ሲም"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"ተጨማሪ ያክሉ"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"የተንቀሳቃሽ ስልክ ውሂብ"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"የተንቀሳቃሽ ስልክ አውታረ መረብን በመጠቀም ውሂብን ይድረሱበት"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"የተንቀሳቃሽ ስልክ ውሂብ ይጥፋ?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"መምረጥ ያስፈልጋል"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"ለተንቀሳቃሽ ውሂብ <xliff:g id="CARRIER">%1$s</xliff:g>ን ይጠቀሙ?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"ለተንቀሳቃሽ ስልክ ውሂብ <xliff:g id="CARRIER2_0">%2$s</xliff:g>ን እየተጠቀሙ ነው። ወደ <xliff:g id="CARRIER1">%1$s</xliff:g> ከቀየሩ <xliff:g id="CARRIER2_1">%2$s</xliff:g> ከእንግዲህ ለተንቀሳቃሽ ስልክ ውሂብ ስራ ላይ አይውልም።"</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g>ን ይጠቀሙ"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"ማንዣበብ"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"በእንቅስቃሴ ላይ ሲሆን ከውሂብ አገልግሎቶች ጋር ተገናኝ"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"የውሂብ ዝውውር ይፈቀድ?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"ጉልህ ክፍያዎችን ሊያስከትሉ ይችላ።"</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"የውሂብ አጠቃቀም"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"ዋና ውሂብ"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> ጥቅም ላይ ውሏል"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"ፕሪሚየም ኤስኤምኤስ ውድ ገንዘብ ሊያስወጣዎት ይችላል፣ እና በአገልግሎት አቅራቢ ክፍያዎ ላይ ሒሳብ ያስጨምርብዎታል። ለመተግበሪያ ፈቃድን ካነቁ ያንን መተግበሪያ በመጠቀም ፕሪሚየም ኤስኤምኤስ መላክ ይችላሉ።"</string>
     <string name="usage_access_title" msgid="7153427122072303254">"የአጠቃቀም መዳረሻ"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"የአጠቃቀም መዳረሻ አንድ መተግበሪያ የሚጠቀሟቸውን ሌሎች መተግበሪያዎች እና ምን ያህል ጊዜ እንደሚጠቀሙባቸው፣ እንዲሁም የአገልግሎት አቅራቢዎን፣ የቋንቋ ቅንብሮችዎን እና ሌሎች ዝርዝሮችዎን እንዲከታተል ያስችለዋል።"</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"የማውጫ መዳረሻ"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"የWi-Fi ቁጥጥር"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Wi-Fi መቆጣጠሪያ አንድ መተግበሪያ Wi-Fiን እንዲያበራ ወይም እንዲያጠፋ፣ የWi-Fi አውታረ መረቦች እንዲቃኝ እና ከእነሱ ጋር እንዲገናኝ፣ አውታረ መረቦችን እንዲያክል ወይም እንዲያስወግድድ፣ ወይም የአካባቢ-ብቻ መገናኛ ነጥብን እንዲያስጀምርር ያስችለዋል።"</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"ተጨማሪ"</string>
     <string name="location_settings_title" msgid="901334356682423679">"አካባቢ"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"የቅርብ ጊዜ የአካባቢ ጥያቄዎች"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"ምንም የቅርብ ጊዜ የአካባቢ ጥያቄዎች የሉም"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"ብሉቱዝ ጠፍቶ ቢሆንም እንኳ በማንኛውም ጊዜ መተግበሪያዎች እና አገልግሎቶች በአቅራቢያ ያሉ መሣሪያዎችን እንዲቃኙ ይፍቀዱ። ይህ ለምሳሌ በአካባቢ ላይ የተመሠረቱ ባሕሪያትን እና አገልግሎቶችን ለማሻሻል ጥቅም ላይ ሊውል ይችላል።"</string>
     <string name="system_setting_title" msgid="6864599341809463440">"ሥርዓት"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"የሥርዓት ዝማኔዎች"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"አይገኝም"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android ሥሪት"</string>
     <string name="security_patch" msgid="4794276590178386903">"የAndroid ደህነንት መጠገኛ ደረጃ"</string>
     <string name="model_info" msgid="4966408071657934452">"ሞዴል"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"የአውራ ከዋኝ ሥሪት"</string>
     <string name="build_number" msgid="3997326631001009102">"የግንብ ቁጥር"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"የብሉቱዝ አድራሻ"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"የWi-Fi MAC አድራሻ"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"አይገኝም"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"ሁኔታ"</string>
     <string name="device_status" msgid="267298179806290920">"ሁኔታ"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"እየጨመሩ የሚሄዱ፣ እየቀነሱ የሚሄዱ ወይም ተደጋጋሚ የአኃዞች ተከታታይ አይፈቀድም።"</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"የማያ ገጽ መቆለፊያ አማራጮች"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> ቀኖች በፊት"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"የሚታመን መሣሪያ አክል"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"ብሉቱዝ የታመነ መሣሪያን ለማከል ይበራል"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"የሚታመኑ መሣሪያዎች"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> መሣሪያዎች</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> መሣሪያዎች</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"የእርስዎ <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> በሚገናኝበት ጊዜ የእርስዎን መኪና ይከፍተዋል። የእርስዎን <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> የሆነ ሰው ከወሰደው፣ ይህን መሣሪያ ሊደርስበት ይችላል"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"ያረጋግጡ"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"የሚታመን መሣሪያን አስወግድ"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"ተከናውኗል"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"የታመነ መሣሪያ ለማቀናበር አጃቢ መተግበሪያን ይጠቀሙ። አንድ ጊዜ ካቀናበሩ በኋላ፣ የእርስዎ የተጠቃሚ መገለጫ የእርስዎ ስልክ ከተሽከርካሪው አቅራቢያ እንዳለ ሲደረስበት በራስ ሰር ይከፈታል።"</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. በእርስዎ ስልክ ላይ አጃቢውን መተግበሪያ ያውርዱ"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. መሣሪያዎቹን ለማጣመር በእርስዎ ስልክ ላይ <xliff:g id="CAR_NAME">%1$s</xliff:g> ን ይምረጡ"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"መኪናው ሲነሣ ከእርስዎ መኪና አቅራቢያ ያለ የታመነ መሣሪያ መኪናውን ይከፍታል፣ ምንም እንኳ መሣሪያውን የያዘው ሌላ ሰው ቢሆንም።"</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"እባክዎ የማጣመሪያ ኮዶች የሚዛመዱ መሆናቸውን ያረጋግጡ"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"ስልክ በተሳካ ሁኔታ ተመዝግቧል"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> መመዝገብ አልተሳካም"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"የታመነ መሣሪያን ማከል ቀጥለው የማረጋገጫ ዘዴን እንዲያክሉ ይፈልግብዎታል። የታመነ መሣሪያዎ ከእርስዎ ጋር ከሌለ መገለጫዎን ለመድረስ ማረጋገጫ ያስፈልጋል።"</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"የመሣሪያ ግንኙነት ተቋርጧል።"</string>
     <string name="forget" msgid="3971143908183848527">"እርሳ"</string>
     <string name="connect" msgid="5861699594602380150">"አገናኝ"</string>
     <string name="disconnect" msgid="6140789953324820336">"ግንኙነት አቋርጥ"</string>
diff --git a/res/values-ar/arrays.xml b/res/values-ar/arrays.xml
new file mode 100644
index 0000000..6336fd4
--- /dev/null
+++ b/res/values-ar/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"اسأل"</item>
+    <item msgid="933409503308401889">"عدم السماح مطلقًا"</item>
+    <item msgid="1154273129608299386">"السماح دومًا"</item>
+  </string-array>
+</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index f3a6d43..e3782ce 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -31,9 +31,30 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"الوضع الليلي"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"الشبكة والإنترنت"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"شبكة الجوّال"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="zero"><xliff:g id="COUNT_1">%1$d</xliff:g> شريحة SIM</item>
+      <item quantity="two">شريحتا SIM <xliff:g id="COUNT_1">%1$d</xliff:g></item>
+      <item quantity="few"><xliff:g id="COUNT_1">%1$d</xliff:g> شرائح SIM</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> شريحة SIM</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> شريحة SIM</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> شريحة SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"مفعّلة / SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"غير مفعّلة / SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"مفعّلة / شريحة SIM التي تم تنزيلها"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"غير مفعّلة / شريحة SIM التي تم تنزيلها"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"إضافة المزيد"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"بيانات الجوّال"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"الوصول إلى البيانات باستخدام شبكة الجوّال"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"هل تريد إيقاف بيانات الجوّال؟"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"يجب الاختيار."</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"هل تريد بيانات الجوّال من <xliff:g id="CARRIER">%1$s</xliff:g>؟"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"أنت تستخدم <xliff:g id="CARRIER2_0">%2$s</xliff:g> للاتصال ببيانات الجوّال. عند التبديل إلى <xliff:g id="CARRIER1">%1$s</xliff:g>، لن يتم استخدام <xliff:g id="CARRIER2_1">%2$s</xliff:g> مرة أخرى للاتصال ببيانات الجوّال."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"استخدام <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"التجوال"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"الاتصال بخدمات البيانات عند التجوال"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"هل تريد السماح بتجوال البيانات؟"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"قد يكلّف ذلك رسومًا مرتفعة."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"استخدام البيانات"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"البيانات الأساسية"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"تم استخدام <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>."</string>
@@ -328,10 +349,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"يمكن أن تكلفك الرسائل القصيرة SMS المميزة بعض الرسوم، وستتم إضافة هذه الرسوم إلى فواتير مشغِّل شبكة الجوّال. وفي حال تفعيل الإذن لأحد التطبيقات، ستتمكن من إرسال رسائل قصيرة SMS مميزة باستخدام هذا التطبيق."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"الوصول إلى بيانات الاستخدام"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"يتيح الدخول إلى بيانات الاستخدام للتطبيق إمكانية تتبُّع التطبيقات الأخرى التي تستخدمها ومدى تكرار استخدامها ومشغّل شبكة الجوّال وإعدادات اللغة وغيرها من التفاصيل."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"الوصول إلى الدليل"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"التحكّم في شبكة Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"يسمح التحكم في شبكة Wi-Fi للتطبيق بتفعيل شبكات Wi-Fi أو إيقافها أو البحث عنها أو الاتصال بها أو إضافتها أو إزالتها أو بدء نقطة اتصال محلية فقط."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"المزيد"</string>
     <string name="location_settings_title" msgid="901334356682423679">"الموقع الجغرافي"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"طلبات الموقع الجغرافي الأخيرة"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"لا توجد طلبات حديثة للموقع الجغرافي."</string>
@@ -344,7 +364,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"يمكنك السماح للتطبيقات والخدمات بالبحث عن الأجهزة المجاورة في أيّ وقت، حتى في حال إيقاف البلوتوث. ويمكن استخدام هذه البيانات مثلاً لتحسين الميزات والخدمات المستندة إلى الموقع الجغرافي."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"النظام"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"تحديثات النظام"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"القيمة غير متاحة"</string>
     <string name="firmware_version" msgid="8491753744549309333">"إصدار Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"مستوى رمز تصحيح أمان Android"</string>
     <string name="model_info" msgid="4966408071657934452">"الطراز"</string>
@@ -352,7 +371,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"إصدار النواة"</string>
     <string name="build_number" msgid="3997326631001009102">"رقم الإصدار"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"عنوان البلوتوث"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"عنوان MAC لشبكة Wi-Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"غير متوفرة"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"الحالة"</string>
     <string name="device_status" msgid="267298179806290920">"الحالة"</string>
@@ -646,6 +664,30 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"لا يُسمح باستخدام الترتيب التصاعدي أو التنازلي أو المكرر للأرقام."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"خيارات قفل الشاشة"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : قبل <xliff:g id="NUM_DAYS">%3$s</xliff:g> يوم"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"إضافة جهاز موثوق به"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"سيتم تفعيل البلوتوث لإضافة جهاز موثوق فيه."</string>
+    <string name="trusted_device" msgid="5637378361866787603">"الأجهزة الموثوق بها"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="zero"><xliff:g id="COUNT_1">%d</xliff:g> جهاز</item>
+      <item quantity="two">جهازان (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> أجهزة</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> جهازًا</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> جهاز</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> جهاز</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"سيتمكّن <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> من فتح هذه السيارة عند توصيله. وإذا حصل شخص على <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> التابع لك، قد يتمكّن من الدخول إلى هذا الجهاز."</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"تأكيد"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"إزالة الجهاز الموثوق به"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"تم"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"استخدِم التطبيق المصاحب لإعداد جهاز موثوق به. بعد إعداد الجهاز، يتم إلغاء قفل الملف الشخصي للمستخدم تلقائيًا عند رصد هاتفك بالقرب من المركبة."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. تنزيل التطبيق المصاحب على هاتفك"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. اختيار <xliff:g id="CAR_NAME">%1$s</xliff:g> على هاتفك لإقران الأجهزة"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"يمكن لجهاز موثوق به قريب من سيارتك أن يلغي قفل الملف الشخصي للمستخدم عند تشغيل محركها، حتى وإن كان شخص غيرك يحمل الجهاز."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"يُرجى التأكُّد من تطابُق رموز الإقران."</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"تم تسجيل الهاتف بنجاح."</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"تعذّر تسجيل جهاز <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"سيتعيَّن عليك تحديد طريقة المصادقة بعد إضافة جهاز موثوق به. وإذا لم يكن بحوزتك جهازك الموثوق به، ستلزم المصادقة للوصول إلى ملفك الشخصي."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"تم قطع اتصال جهازك."</string>
     <string name="forget" msgid="3971143908183848527">"حذف"</string>
     <string name="connect" msgid="5861699594602380150">"اتصال"</string>
     <string name="disconnect" msgid="6140789953324820336">"قطع اتصال"</string>
diff --git a/res/values-as/arrays.xml b/res/values-as/arrays.xml
new file mode 100644
index 0000000..c7500e7
--- /dev/null
+++ b/res/values-as/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"সোধক"</item>
+    <item msgid="933409503308401889">"কেতিয়াও অনুমতি নিদিব"</item>
+    <item msgid="1154273129608299386">"চিৰদিনৰ বাবে অনুমতি দিয়ক"</item>
+  </string-array>
+</resources>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index bbed3b2..ba24e37 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"নৈশ ম\'ড"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"নেটৱৰ্ক আৰু ইণ্টাৰনেট"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"ম’বাইল নেটৱৰ্ক"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> খন ছিম</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> খন ছিম</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"সক্রিয় / ছিম"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"নিষ্ক্ৰিয় / ছিম"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"সক্ৰিয় / ডাউনল’ড কৰা ছিম"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"নিষ্ক্ৰিয় / ডাউনল’ড কৰা ছিম"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"অধিক যোগ কৰক"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"ম’বাইল ডেটা"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"ম’বাইল নেটৱৰ্ক ব্যৱহাৰ কৰি ডেটা এক্সেছ কৰক"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"ম’বাইল ডেটা অফ কৰিবনে?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"বাছনি কৰা প্ৰয়োজন"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"ডেটাৰ বাবে <xliff:g id="CARRIER">%1$s</xliff:g> ব্যৱহাৰ কৰিবনে?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"আপুনি ম’বাইল ডেটাৰ বাবে <xliff:g id="CARRIER2_0">%2$s</xliff:g> ব্যৱহাৰ কৰি আছে। যদি আপুনি ইয়াৰ সলনি <xliff:g id="CARRIER1">%1$s</xliff:g> ব্যৱহাৰ কৰে তেন্তে, ম’বাইল ডেটাৰ বাবে আৰু <xliff:g id="CARRIER2_1">%2$s</xliff:g> ব্যৱহাৰ কৰা নহ’ব।"</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g> ব্যৱহাৰ কৰক"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"ৰ’মিং"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"ৰ’মিঙৰ সময়ত ডেটা সেৱাৰ সৈতে সংযোগ কৰক"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"ডেটা ৰ’মিঙৰ অনুমতি দিবনে?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"আপুনি যথেষ্ট পৰিমাণৰ খৰচ বহন কৰিবলগীয়া হ’ব পাৰে।"</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"ডেটা ব্যৱহাৰ"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"মুখ্য ডেটা"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> ব্যৱহাৰ কৰা হৈছে"</string>
@@ -320,12 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"প্ৰিমিয়াম এছএমএছৰ কাৰণে আপুনি খৰচ বহন কৰিবলগীয়া হ’ব পাৰে যাৰ বাবে বাহকে আপোনালৈ পঠিওৱা বিলত দেয়ৰ পৰিমাণ বাঢ়িব পাৰে। আপুনি যদি কোনো এপক অনুমতি দিয়ে, তেন্তে আপুনি সেই এপটো ব্যৱহাৰ কৰি প্ৰিমিয়াম এছএমএছ পঠাব পাৰিব।"</string>
     <string name="usage_access_title" msgid="7153427122072303254">"ব্যৱহাৰৰ এক্সেছ"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"ব্যৱহাৰৰ এক্সেছ সুবিধাই এটা এপক আপুনি আন কি এপ্ ব্যৱহাৰ কৰে আৰু সেইবোৰ কিমান সঘনাই ব্যৱহাৰ কৰে, লগতে আপোনাৰ বাহক, ভাষাৰ ছেটিংসমূহ আৰু অন্যান্য সবিশেষ ট্ৰেক কৰিবলৈ অনুমতি দিয়ে।"</string>
-    <!-- no translation found for directory_access_title (7117264853202268740) -->
-    <skip />
-    <!-- no translation found for directory_on_volume (4947971311247097078) -->
-    <skip />
     <string name="wifi_control_title" msgid="5660436566907731929">"ৱাই-ফাই নিয়ন্ত্ৰণ"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"ৱাই-ফাই নিয়ন্ত্ৰণ সুবিধাই এটা এপক ৱাই-ফাই অন বা অফ কৰিবলৈ, স্কেন কৰিবলৈ আৰু ৱাই-ফাই নেটৱৰ্কৰ সৈতে সংযোগ কৰিবলৈ আৰু বা নেটৱৰ্ক আঁতৰাবলৈ, বা স্থানীয়-মাত্ৰ হটস্পট আৰম্ভ কৰিবলৈ অনুমতি দিয়ে।"</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"অধিক"</string>
     <string name="location_settings_title" msgid="901334356682423679">"অৱস্থান"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"শেহতীয়া অৱস্থানৰ অনুৰোধ"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"শেহতীয়াকৈ কোনো এপে অৱস্থানৰ অনুৰোধ প্ৰেৰণ কৰা নাই"</string>
@@ -338,8 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"ব্লুটুথ অফ থকা অৱস্থাতো এপ্ আৰু সেৱাসমূহক যিকোনো সময়ত নিকটৱৰ্তী ডিভাইচবোৰ স্কেন কৰিবলৈ দিয়ক। ইয়াক অৱস্থান-নিৰ্ভৰ সুবিধা আৰু সেৱাসমূহ উন্নত কৰা আদি কাৰ্যত ব্যৱহাৰ কৰিব পাৰি।"</string>
     <string name="system_setting_title" msgid="6864599341809463440">"ছিষ্টেম"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"ছিষ্টেম আপডে’ট"</string>
-    <!-- no translation found for status_unavailable (3737918179898732010) -->
-    <skip />
     <string name="firmware_version" msgid="8491753744549309333">"Android সংস্কৰণ"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android সুৰক্ষা পেচ্চ স্তৰ"</string>
     <string name="model_info" msgid="4966408071657934452">"ম\'ডেল"</string>
@@ -347,8 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"কাৰ্ণেলৰ সংস্কৰণ"</string>
     <string name="build_number" msgid="3997326631001009102">"বিল্ড নম্বৰ"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"ব্লুটুথৰ ঠিকনা"</string>
-    <!-- no translation found for about_wifi_mac_address (3934228440550548053) -->
-    <skip />
     <string name="device_info_not_available" msgid="2095601973977376655">"উপলব্ধ নহয়"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"স্থিতি"</string>
     <string name="device_status" msgid="267298179806290920">"স্থিতি"</string>
@@ -610,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"সংখ্যাবোৰৰ ঊৰ্ধ্বগামী, অধোগামী বা পুনৰাবৃত্তি ক্ৰমক অনুমতি দিয়া নহয়।"</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"স্ক্ৰীণ লক সম্পৰ্কীয় বিকল্প"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> দিন আগত"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"বিশ্বাসী ডিভাইচ যোগ কৰক"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"বিশ্বাসী ডিভাইচ যোগ কৰিবলৈ ব্লুটুথ অন কৰা হ’ব"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"বিশ্বাসী ডিভাইচ"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g>টা ডিভাইচ</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g>টা ডিভাইচ</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"আপোনাৰ <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g>এ সংযোগ হ\'লে এই গাড়ীখন আনলক কৰিব। আপোনাৰ <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> ব্যৱহাৰ কৰা লোকসকলে এই ডিভাইচলৈ এক্সেছ পাব পাৰে"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"নিশ্চিত কৰক"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"বিশ্বাসী ডিভাইচ আঁতৰাওক"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"কৰা হ’ল"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"এটা বিশ্বাসী ডিভাইচ ছেট আপ কৰিবলৈ সহযোগী এপ্‌টো ব্যৱহাৰ কৰক। ছেট আপ কৰাৰ পিছত, গাড়ীখনৰ ওচৰত আপোনাৰ ফ’নটো চিনাক্ত কৰিলে আপোনাৰ ব্যৱহাৰকাৰী প্ৰ’ফাইলটো স্বয়ংক্ৰিয়ভাৱে আনলক হ\'ব।"</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"১. আপোনাৰ ফ’নটোত সহযোগী এপ্‌টো ডাউনল’ড কৰক"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"২. ডিভাইচকেইটা যোৰা লগাবলৈ আপোনাৰ ফ’নটোত <xliff:g id="CAR_NAME">%1$s</xliff:g> বাছনি কৰক"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"আপোনাৰ গাড়ীখনৰ আশে পাশে থকা কোনো বিশ্বাসী ডিভাইচে গাড়ীখন ষ্টার্ট হ\'লে ব্যৱহাৰকাৰী প্ৰ\'ফাইলটো আনলক কৰিব, আনকি অন্য কোনো লোকে ডিভাইচটো লৈ থাকিলেও।"</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"অনুগ্ৰহ কৰি যোৰা লগোৱা ক\'ডসমূহৰ মিল আছে বুলি নিশ্চিত কৰক"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"ফ\'নটো পঞ্জীয়ন কৰা হ\'ল"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> যোৰা লগাব পৰা নগ’ল"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"আপুনি কোনো বিশ্বাসী ডিভাইচ যোগ কৰিলে তাৰ পিছত এটা বিশ্বাসযোগ্যতা প্ৰমাণীকৰণ পদ্ধতি ছেট কৰাৰ প্ৰয়োজন হ’ব। যদি বিশ্বাসী ডিভাইচটো আপোনাৰ সৈতে নাই তেন্তে আপোনাৰ প্ৰ’ফাইলটো এক্সেছ কৰিবলৈ বিশ্বাসযোগ্যতা প্ৰমাণীকৰণৰ প্ৰয়োজন হ’ব।"</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"ডিভাইচৰ সংযোগ বিচ্ছিন্ন কৰা হ’ল।"</string>
     <string name="forget" msgid="3971143908183848527">"পাহৰক"</string>
     <string name="connect" msgid="5861699594602380150">"সংযোগ কৰক"</string>
     <string name="disconnect" msgid="6140789953324820336">"সংযোগ বিচ্ছিন্ন কৰক"</string>
diff --git a/res/values-az/arrays.xml b/res/values-az/arrays.xml
new file mode 100644
index 0000000..17b22a4
--- /dev/null
+++ b/res/values-az/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Soruşun"</item>
+    <item msgid="933409503308401889">"Heç vaxt icazə verməyin"</item>
+    <item msgid="1154273129608299386">"Həmişə icazə verin"</item>
+  </string-array>
+</resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 19c8fcc..25512ce 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Gecə rejimi"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Şəbəkə və internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mobil şəbəkə"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Aktiv / SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Deaktiv / SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Aktiv / Endirilən SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Deaktiv / Endirilən SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Daha çox əlavə edin"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Mobil data"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Mobil şəbəkədən istifadə edərək dataya daxil olun"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Mobil data söndürülsün?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Seçim tələb olunur"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Mobil data üçün <xliff:g id="CARRIER">%1$s</xliff:g> istifadə edilsin?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Mobil data üçün <xliff:g id="CARRIER2_0">%2$s</xliff:g> istifadə edirsiniz. <xliff:g id="CARRIER1">%1$s</xliff:g> operatoruna keçsəniz, <xliff:g id="CARRIER2_1">%2$s</xliff:g> artıq mobil data üçün istifadə olunmayacaq."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g> istifadə edin"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Rominq"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Rouminq zamanı data xidmətlərinə qoşulun"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Data rouminqinə icazə verilsin?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Sizə əhəmiyyətli xərclər tətbiq edilə bilər."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Data istifadəsi"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Əsas data"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> istifadə edilib"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Premium SMS müəyyən məbləğ tuta bilər və mobil operator fakturasına əlavə oluna bilər. Tətbiq üçün icazəni aktiv etsəniz, həmin tətbiqdən istifadə edərək, Premium SMS göndərə biləcəksiniz."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"İstifadə girişi"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"İstifadə girişi başqa istifadə etdiyiniz tətbiqləri və istifadə tezliyini, həmçinin, operator, dil ayarları və digər detalları izləməyə imkan verir."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Kataloq girişi"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi idarəetməsi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Wi-Fi idarəetməsi tətbiqə Wi-Fi şəbəkəsini aktiv və ya deaktiv etmək, Wi-Fi şəbəkələrini skan etmək və onlara qoşulmaq, şəbəkə əlavə etmək və ya silmək, yaxud yalnız lokal olan hotspota qoşulmaq imkanı verir."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Daha çox"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Məkan"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Son Məkan Sorğuları"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Məkan sorğusu yoxdur"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Bluetooth deaktiv olsa belə, tətbiq və xidmətlərə yaxınlıqdakı cihazları istənilən zaman skan etməsinə icazə verin. Məsələn, bu, məkanla bağlı xüsusiyyət və xidmətləri təkmilləşdirmək üçün istifadə edilə bilər."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Sistem"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Sistem yenilənməsi"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Əlçatan deyil"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android versiyası"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android təhlükəsizlik gücləndirmə səviyyəsi"</string>
     <string name="model_info" msgid="4966408071657934452">"Model"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Kernel versiyası"</string>
     <string name="build_number" msgid="3997326631001009102">"Versiya nömrəsi"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth ünvanı"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Wi-Fi MAC ünvanı"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Əlçatan deyil"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Status"</string>
     <string name="device_status" msgid="267298179806290920">"Status"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Artan, azalan və ya təkrarlanan rəqəm ardıcıllığı qadağandır."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Ekran kilidi seçimləri"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> gün əvvəl"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Güvənli cihaz əlavə edin"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Güvənli cihaz əlavə etmək üçün Bluetooth aktiv ediləcək"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Güvənli cihazlar"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> cihaz</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> cihaz</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> cihazınız qoşulduqda bu avtomobili kiliddən çıxaracaq. Kimsə <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> cihazınızı götürsə, bu cihaza daxil ola bilər"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Təsdiq"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Güvənli cihazı silin"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Hazırdır"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Etibarlı cihaz ayarlamaq üçün kompanyon tətbiq istifadə edin. Ayarlandıqdan sonra, telefonunuz avtomobil tərəfindən aşkarlandıqda istifadəçi profiliniz avtomatik kiliddən çıxarılacaq."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Telefonunuza kompanyon tətbiqini endirin"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Cihazları birləşdirmək üçün telefonda <xliff:g id="CAR_NAME">%1$s</xliff:g> seçin"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Avtomobilinizin yaxınında olan etibarlı cihaz başqasının əlində olsa belə, işə salma zamanı istifadəçi profilinin kilidini açacaq."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Birləşdirmə kodlarının uyğun gəldiyini təsdiqləyin"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Telefon uğurla qeydiyyata alındı"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> qeydiyyatı alınmadı"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Etibarlı cihaz əlavə etdikdən sonra doğrulama metodu təyin edilməlidir. Etibarlı cihazınız üzərinizdə deyilsə, profilinizə giriş üçün doğrulama tələb olunacaq."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Cihaz qoşulmayıb."</string>
     <string name="forget" msgid="3971143908183848527">"Unudun"</string>
     <string name="connect" msgid="5861699594602380150">"Qoşun"</string>
     <string name="disconnect" msgid="6140789953324820336">"Ayırın"</string>
diff --git a/res/values-b+sr+Latn/arrays.xml b/res/values-b+sr+Latn/arrays.xml
new file mode 100644
index 0000000..84059a1
--- /dev/null
+++ b/res/values-b+sr+Latn/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Pitaj"</item>
+    <item msgid="933409503308401889">"Nikada ne dozvoli"</item>
+    <item msgid="1154273129608299386">"Uvek dozvoli"</item>
+  </string-array>
+</resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 688d7da..1e8f6e0 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -31,9 +31,27 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Noćni režim"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Mreža i internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mobilna mreža"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM kartica</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM kartice</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM kartica</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Aktivno/SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Neaktivno/SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Aktivno/preuzeti SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Neaktivno/preuzeti SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Dodajte još"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Mobilni podaci"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Koristi podatke preko mobilne mreže"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Želite li da isključite mobilne podatke?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Treba da izaberete nešto"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Koristiti <xliff:g id="CARRIER">%1$s</xliff:g> za mob. podatke?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Koristite <xliff:g id="CARRIER2_0">%2$s</xliff:g> za mobilne podatke. Ako pređete na <xliff:g id="CARRIER1">%1$s</xliff:g>, <xliff:g id="CARRIER2_1">%2$s</xliff:g> se više neće koristiti za mobilne podatke."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Koristi <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Poveži sa uslugama za podatke u romingu"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Želite li da dozvolite prenos podataka u romingu?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Mogu da nastanu značajni troškovi."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Potrošnja podataka"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Primarni podaci"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> potrošeno"</string>
@@ -322,10 +340,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Premijum SMS-ovi mogu da koštaju i povećaće račune kod mobilnog operatera. Ako omogućite dozvolu za neku aplikaciju, moći ćete da šaljete premijum SMS-ove pomoću te aplikacije."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Pristup korišćenju"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Pristup korišćenju omogućava aplikaciji da prati koje druge aplikacije koristite i koliko često, kao i da vidi mobilnog operatera, jezička podešavanja i druge podatke."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Pristup direktorijumima"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Kontrola Wi-Fi mreže"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Kontrola Wi-Fi mreže omogućava aplikaciji da uključi ili isključi Wi-Fi, traži i povezuje se na Wi-Fi mreže, dodaje ili uklanja mreže ili pokreće samo lokalni hotspot."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Još"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Lokacija"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Nedavni zahtevi za lokaciju"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Nema nedavnih zahteva za lokaciju"</string>
@@ -338,7 +355,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Dozvolite aplikacijama i uslugama da traže uređaje u blizini u svakom trenutku, čak i kada je Bluetooth isključen. Ovo može da se koristi, na primer, za poboljšanje funkcija i usluga zasnovanih na lokaciji."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Sistem"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Ažuriranja sistema"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Nije dostupno"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Verzija Android-a"</string>
     <string name="security_patch" msgid="4794276590178386903">"Nivo bezbednosne zakrpe za Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Model"</string>
@@ -346,7 +362,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Verzija jezgra"</string>
     <string name="build_number" msgid="3997326631001009102">"Broj verzije"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth adresa"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Wi-Fi MAC adresa"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Nije dostupno"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Status"</string>
     <string name="device_status" msgid="267298179806290920">"Status"</string>
@@ -616,6 +631,27 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Rastući, opadajući ili ponovljeni niz cifara nije dozvoljen."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Opcije zaključavanja ekrana"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g>: pre <xliff:g id="NUM_DAYS">%3$s</xliff:g> dan(a)"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Dodaj pouzdani uređaj"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth se uključuje radi dodavanja pouzd. uređaja"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Pouzdani uređaji"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> uređaj</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> uređaja</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> uređaja</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> će otključati ovaj automobil kada se poveže. Ako vam neko uzme <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, možda će moći da pristupa ovom uređaju"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Potvrdi"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Ukloni pouzdani uređaj"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Gotovo"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Pouzdani uređaj podesite pomoću prateće aplikacije. Kada ga podesite, korisnički profil se automatski otključava kada se otkrije da je telefon blizu vozila."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Preuzmite prateću aplikaciju na telefonu"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Izaberite <xliff:g id="CAR_NAME">%1$s</xliff:g> na telefonu da biste uparili uređaje"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Pouzdani uređaj u blizini automobila otključava profil korisnika posle paljenja, čak i kada ga neko drugi drži."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Potvrdite da se kodovi za uparivanje podudaraju"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Telefon je registrovan"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Registracija uređaja <xliff:g id="DEVICE_NAME">%1$s</xliff:g> nije uspela"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Za dodavanje pouzdanog uređaja sledeće što treba da uradite je da podesite metod potvrde identiteta. Ako nemate pouzdani uređaj sa sobom, potvrda identiteta će biti potrebna da biste pristupili profilu."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Prekinuta je veza sa uređajem."</string>
     <string name="forget" msgid="3971143908183848527">"Zaboravi"</string>
     <string name="connect" msgid="5861699594602380150">"Poveži"</string>
     <string name="disconnect" msgid="6140789953324820336">"Prekini vezu"</string>
diff --git a/res/values-be/arrays.xml b/res/values-be/arrays.xml
new file mode 100644
index 0000000..14c1c5c
--- /dev/null
+++ b/res/values-be/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Запытваць"</item>
+    <item msgid="933409503308401889">"Ніколі не дазваляць"</item>
+    <item msgid="1154273129608299386">"Заўсёды дазваляць"</item>
+  </string-array>
+</resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index f9e5aa7..cc1096c 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -31,9 +31,28 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Начны рэжым"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Сетка і інтэрнэт"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Мабільная сетка"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-карта</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-карты</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-карт</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-карты</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Актывавана / SIM-карта"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Неактывавана / SIM-карта"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Актывавана / Спампаваная SIM-карта"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Неактывавана / Спампаваная SIM-карта"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Дадаць яшчэ"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Мабільная перадача даных"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Доступ да даных па мабільнай сетцы"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Адключыць мабільную перадачу даных?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Трэба выбраць"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Выкарыстоўваць <xliff:g id="CARRIER">%1$s</xliff:g> для трафіка?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Вы карыстаецеся паслугамі аператара \"<xliff:g id="CARRIER2_0">%2$s</xliff:g>\" для мабільнай перадачы даных. Пры пераключэнні на аператара \"<xliff:g id="CARRIER1">%1$s</xliff:g>\", <xliff:g id="CARRIER2_1">%2$s</xliff:g> больш не будзе выкарыстоўвацца для мабільнай перадачы даных."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Выкарыстоўваць аператара <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Роўмінг"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Падключацца да сэрвісаў перадачы даных у роўмінгу"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Дазволіць перадачу даных у роўмінгу?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Гэта можа прывесці да значных выдаткаў."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Выкарыстанне трафіка"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Асноўны трафік"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Выкарыстана <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -324,10 +343,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"За доступ да платных SMS з вас можа спаганяцца аплата. Гэта павялічыць вашы рахункі за паслугі аператара. Калі вы ўключыце дазвол для праграмы, вы атрымаеце магчымасць адпраўляць з яе платныя SMS."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Доступ да даных выкарыстання"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Доступ да даных аб выкарыстанні дазваляе праграме адсочваць, якія яшчэ праграмы вы выкарыстоўваеце і як часта, а таксама атрымліваць даныя пра вашага аператара, моўныя налады і іншую інфармацыю."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Доступ да каталога"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Кіраванне наладамі Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Кантроль Wi-Fi дазваляе праграме ўключаць ці выключаць Wi-Fi, шукаць сеткі Wi-Fi і падключацца да іх, дадаваць або выдаляць сеткі ці запускаць лакальны хот-спот."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Яшчэ"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Месцазнаходжанне"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Нядаўнія запыты геаданых"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Няма нядаўніх запытаў геаданых"</string>
@@ -340,7 +358,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Дазвольце праграмам і сэрвісам шукаць прылады паблізу, нават калі Bluetooth выключаны. Гэта можна выкарыстоўваць, напрыклад, для паляпшэння функцый і сэрвісаў, якія выкарыстоўваюць геалакацыю."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Сістэма"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Абнаўленне сістэмы"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Недаступна"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Версія Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"Абнаўленне сістэмы бяспекі Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Мадэль"</string>
@@ -348,7 +365,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Версія ядра"</string>
     <string name="build_number" msgid="3997326631001009102">"Нумар зборкі"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Адрас Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"MAC-адрас сеткі Wi-Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Недаступнае"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Стан"</string>
     <string name="device_status" msgid="267298179806290920">"Стан"</string>
@@ -626,6 +642,28 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Забаронена выкарыстоўваць паслядоўнасці з лічбаў, якія ідуць адна за адной або паўтараюцца."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Параметры блакіроўкі экрана"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> сут. таму назад"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Дадаць давераную прыладу"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Каб дадаць давераную прыладу, уключыцца Bluetooth"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Давераныя прылады"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> прылада</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> прылады</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> прылад</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> прылады</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Калі падключана, <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> зможа разблакіраваць гэты аўтамабіль. Калі <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> трапіць у рукі іншаму карыстальніку, той атрымае доступ да прылады"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Пацвердзіць"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Выдаліць давераную прыладу"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Гатова"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Для наладкі даверанай прылады выкарыстоўвайце спадарожную праграму. Пасля наладкі ваш карыстальніцкі профіль аўтаматычна разблакіруецца, калі ваш тэлефон будзе выяўлены паблізу ад аўтамабіля."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Спампуйце спадарожную праграму на тэлефон"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Каб спалучыць прылады, выберыце на тэлефоне назву \"<xliff:g id="CAR_NAME">%1$s</xliff:g>\""</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Давераная прылада паблізу ад вашага аўтамабіля разблакіруе профіль карыстальніка пасля запуску рухавіка, незалежна ад таго, хто кіруе прыладай."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Пацвердзіце, што коды спалучэння супадаюць"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Тэлефон паспяхова зарэгістраваны"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Не ўдалося зарэгістраваць прыладу \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Для дадавання даверанай прылады неабходна задаць спосаб аўтэнтыфікацыі. Ён спатрэбіцца для атрымання доступу да вашага профілю, калі давераная прылада не з вамі."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Прылада адключана."</string>
     <string name="forget" msgid="3971143908183848527">"Забыць"</string>
     <string name="connect" msgid="5861699594602380150">"Падключыцца"</string>
     <string name="disconnect" msgid="6140789953324820336">"Адключыцца"</string>
diff --git a/res/values-bg/arrays.xml b/res/values-bg/arrays.xml
new file mode 100644
index 0000000..1de1476
--- /dev/null
+++ b/res/values-bg/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Извеждане на запитване"</item>
+    <item msgid="933409503308401889">"Никога да не се разрешава"</item>
+    <item msgid="1154273129608299386">"Разрешаване винаги"</item>
+  </string-array>
+</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index a107baf..bc6a5a8 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Нощен режим"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Мрежа и интернет"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Мобилна мрежа"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM карти</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM карта</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Активно/SIM карта"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Неактивно/SIM карта"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Активно/изтеглена SIM карта"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Неактивно/изтеглена SIM карта"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Добавяне на още"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Мобилни данни"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Достъп до данните през мобилната мрежа"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Да се изключат ли мобилните данни?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Изборът е задължителен"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Използване на <xliff:g id="CARRIER">%1$s</xliff:g> за моб. данни?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Използвате <xliff:g id="CARRIER2_0">%2$s</xliff:g> за мобилни данни. Ако превключите към <xliff:g id="CARRIER1">%1$s</xliff:g>, <xliff:g id="CARRIER2_1">%2$s</xliff:g> вече няма да се използва за мобилни данни."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Използване на <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Роуминг"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Свързване с услуги за данни при роуминг"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Да се разреши ли роуминг на данни?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Това може да доведе до високи такси."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Пренос на данни"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Основни данни"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Използвани данни: <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"SMS съобщенията, за които се таксува получателят, може да ви въвлекат в разходи и ще увеличат сметката към оператора ви. Ако дадете разрешението на дадено приложение, ще можете да изпращате такива съобщения чрез него."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Достъп до данни за ползването"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Достъпът до данните за ползването разрешава на приложението да проследява какви други приложения използвате и колко често, както и оператора ви, настройките ви за езика и други подробности."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Достъп до директорията"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Управление на Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Управлението на Wi-Fi разрешава на дадено приложение да включва и изключва Wi-Fi, да сканира за Wi-Fi мрежи и да се свързва с тях, да добавя или премахва мрежи и да стартира точки за достъп само на локално ниво."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Още"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Местоположение"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Скорошни заявки за местоположението"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Няма скорошни заявки за местоположението"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Разрешете на приложенията и услугите да сканират за устройства в близост по всяко време дори когато функцията за Bluetooth e изключена. Това може да послужи например за подобряване на базиращите се на местоположението функции и услуги."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Система"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Системни актуализации"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Не е налице"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Версия на Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"Ниво на корекцията на сигурността под Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Модел"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Версия на ядрото"</string>
     <string name="build_number" msgid="3997326631001009102">"Номер на версията"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Адрес на Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"MAC адрес на Wi-Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Не е налице"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Състояние"</string>
     <string name="device_status" msgid="267298179806290920">"Състояние"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Възходящите, низходящите и повтарящите се поредици от цифри не са разрешени."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Опции за заключване на екрана"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : Преди <xliff:g id="NUM_DAYS">%3$s</xliff:g> дни"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Добав. на надеждно устройство"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth ще се вкл. за добавяне на надеждно у-во"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Надеждни устройства"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> устройства</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> устройство</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Устройството ви <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> ще отключи този автомобил, когато е свързано. Ако някой вземе устройството ви <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, е възможно да осъществи достъп до него."</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Потвърждаване"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Премахване на надеждното устройство"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Готово"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Използвайте придружаващото приложение, за да настроите надеждно устройство. След настройването потребителският ви профил ще се отключва автоматично, когато телефонът ви бъде открит в близост до превозното средство."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Изтеглете придружаващото приложение на телефона си."</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Изберете „<xliff:g id="CAR_NAME">%1$s</xliff:g>“ на телефона си, за да сдвоите устройствата."</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Надеждно устройство в близост до автомобила ви ще отключва потребителския профил при запалване дори ако друг човек държи устройството."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Моля, потвърдете, че кодовете за сдвояване съвпадат"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Телефонът е регистриран успешно"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Регистрацията на <xliff:g id="DEVICE_NAME">%1$s</xliff:g> не бе успешна"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"За добавянето на надеждно устройство се изисква да зададете метод на удостоверяване на следващия екран. Ако надеждното ви устройство не е у вас, удостоверяването ще се изисква за достъп до потребителския ви профил."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Връзката с устройството е прекъсната."</string>
     <string name="forget" msgid="3971143908183848527">"Забравяне"</string>
     <string name="connect" msgid="5861699594602380150">"Свързване"</string>
     <string name="disconnect" msgid="6140789953324820336">"Прекрат. на връзката"</string>
diff --git a/res/values-bn/arrays.xml b/res/values-bn/arrays.xml
new file mode 100644
index 0000000..6ead7d8
--- /dev/null
+++ b/res/values-bn/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"জিজ্ঞাসা করুন"</item>
+    <item msgid="933409503308401889">"কখনও অনুমতি দেবেন না"</item>
+    <item msgid="1154273129608299386">"সর্বদা অনুমতি দিন"</item>
+  </string-array>
+</resources>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 8012acd..f674391 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"রাতের মোড"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"নেটওয়ার্ক এবং ইন্টারনেট"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"মোবাইল নেটওয়ার্ক"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g>টি সিম</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g>টি সিম</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"অ্যাক্টিভ / সিম"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"অ্যাক্টিভ নয় এমন / সিম"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"অ্যাক্টিভ / ডাউনলোড করা সিম"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"অ্যাক্টিভ নয় এমন / ডাউনলোড করা সিম"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"আরও যোগ করুন"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"মোবাইল ডেটা"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"মোবাইল নেটওয়ার্ক ব্যবহার করে ডেটা অ্যাক্সেস করুন"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"মোবাইল ডেটা বন্ধ করবেন?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"বেছে নিতে হবে"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"মোবাইল ডেটার জন্য <xliff:g id="CARRIER">%1$s</xliff:g> ব্যবহার করবেন?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"মোবাইল ডেটার জন্য আপনি <xliff:g id="CARRIER2_0">%2$s</xliff:g> ব্যবহার করছেন। <xliff:g id="CARRIER1">%1$s</xliff:g>-এ পাল্টালে, মোবাইল ডেটার জন্য <xliff:g id="CARRIER2_1">%2$s</xliff:g> আর ব্যবহার করা হবে না।"</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g> ব্যবহার করুন"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"রোমিং"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"রোমিংয়ে থাকাকালীন ডেটা পরিষেবাতে কানেক্ট করুন"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"ডেটা রোমিংয়ের অনুমতি দেবেন?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"আপনার ব্যালেন্স খরচ হতে পারে।"</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"ডেটার ব্যবহার"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"প্রাথমিক ডেটা"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> ব্যবহার করা হয়েছে"</string>
@@ -320,12 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"প্রিমিয়াম এসএমএসের জন্য অর্থ খরচ হতে পারে এবং আপনার পরিষেবা প্রদানকারীর বিলে যোগ করা হবে৷ আপনি যদি কোনও অ্যাপের জন্য অনুমতি চালু করেন তাহলে আপনি সেই অ্যাপ ব্যবহার করে প্রিমিয়াম এসএমএস পাঠাতে পারবেন।"</string>
     <string name="usage_access_title" msgid="7153427122072303254">"ব্যবহারের তথ্যে অ্যাক্সেস"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"ব্যবহার অ্যাক্সেস ফিচারের মাধ্যমে কোনও অ্যাপ, আপনি কী কী অ্যাপ ব্যবহার করছেন এবং কত ঘন ঘন ব্যবহার করছেন তা ট্র্যাক করতে পারে, এর পাশাপাশি আপনার পরিষেবা প্রদানকারী, ভাষা সেটিংস, এবং অন্যান্য বিষয়ে বিবরণ দেখতে পারে।"</string>
-    <!-- no translation found for directory_access_title (7117264853202268740) -->
-    <skip />
-    <!-- no translation found for directory_on_volume (4947971311247097078) -->
-    <skip />
     <string name="wifi_control_title" msgid="5660436566907731929">"ওয়াই-ফাই কন্ট্রোল"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"ওয়াই-ফাই কন্ট্রোল সুবিধাটি কোনও অ্যাপকে ওয়াই-ফাই চালু অথবা বন্ধ করতে, ওয়াই-ফাই নেটওয়ার্ক স্ক্যান করে তাতে কানেক্ট করতে, নেটওয়ার্ক যোগ করতে বা মুছে ফেলতে অথবা শুধুমাত্র স্থানীয় ব্যবহারের জন্য হটস্পট চালু করতে অনুমতি দেয়।"</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"আরও"</string>
     <string name="location_settings_title" msgid="901334356682423679">"লোকেশন"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"সাম্প্রতিক লোকেশনের অনুরোধ"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"কোনও সাম্প্রতিক লোকেশনের অনুরোধ নেই"</string>
@@ -338,8 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"ব্লুটুথ বন্ধ থাকলেও অ্যাপ এবং পরিষেবাগুলিকে যেকোনও সময় আশেপাশে থাকা অন্যান্য ডিভাইস স্ক্যান করার অনুমতি দিন। এটি বিভিন্ন ক্ষেত্রে কাজে লাগতে পারে, যেমন লোকেশন-ভিত্তিক বৈশিষ্ট্য এবং পরিষেবার উন্নতির জন্য।"</string>
     <string name="system_setting_title" msgid="6864599341809463440">"সিস্টেম"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"সিস্টেম আপডেট"</string>
-    <!-- no translation found for status_unavailable (3737918179898732010) -->
-    <skip />
     <string name="firmware_version" msgid="8491753744549309333">"Android ভার্সন"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android সুরক্ষার প্যাচ লেবেল"</string>
     <string name="model_info" msgid="4966408071657934452">"মডেল"</string>
@@ -347,8 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"কার্নেল ভার্সন"</string>
     <string name="build_number" msgid="3997326631001009102">"বিল্ড নম্বর"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"ব্লুটুথ অ্যাড্রেস"</string>
-    <!-- no translation found for about_wifi_mac_address (3934228440550548053) -->
-    <skip />
     <string name="device_info_not_available" msgid="2095601973977376655">"উপলভ্য নয়"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"স্ট্যাটাস"</string>
     <string name="device_status" msgid="267298179806290920">"স্ট্যাটাস"</string>
@@ -610,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"ছোট থেকে বড়, বড় থেকে ছোট সংখ্যা অথবা নির্দিষ্ট কয়েকটি সংখ্যা বার বার লেখা যাবে না।"</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"স্ক্রিন লকের বিকল্প"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> দিন আগে"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"বিশ্বস্ত ডিভাইস যোগ করুন"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"বিশ্বস্ত ডিভাইস যোগ করার জন্য ব্লুটুথ চালু হবে"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"বিশ্বস্ত ডিভাইসগুলি"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g>টি ডিভাইস</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g>টি ডিভাইস</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"এই গাড়ি কানেক্ট করা থাকলে <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> এটিকে আনলক করবে কেউ আপনার <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> নিলে, তারা আপনার ডিভাইস অ্যাক্সেস করতে পারবেন।"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"কনফার্ম করুন"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"বিশ্বস্ত ডিভাইস সরান"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"হয়ে গেছে"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"কোনও বিশ্বস্ত ডিভাইস সেট-আপ করতে কম্প্যানিয়ন অ্যাপ ব্যবহার করুন। সেট-আপ হয়ে যাওয়ার পরে গাড়ির আশেপাশে আপনার ফোন শনাক্ত হলে ব্যবহারকারী হিসেবে আপনার প্রোফাইল অটোমেটিক আনলক হয়ে যাবে।"</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"১. আপনার ফোনে কম্প্যানিয়ন অ্যাপ ডাউনলোড করুন"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"২. ডিভাইসের সাথে যোগ করতে <xliff:g id="CAR_NAME">%1$s</xliff:g> বেছে নিন"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"কোনও বিশ্বস্ত ডিভাইস আপনার গাড়ির আশেপাশে থাকলে বা ডিভাইসটি অন্য কারও কাছে থাকলে গাড়ি চালু করার সাথে সাথে এটি গাড়ি আনলক করবে।"</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"পেয়ারিং কোড মিলছে কিনা কনফার্ম করুন"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"ফোনটি নথিভুক্ত করা হয়েছে"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> নথিভুক্ত করা যায়নি"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"একটি বিশ্বস্ত ডিভাইস যোগ করার পর যাচাইকরণ পদ্ধতি সেট করতে হবে। যদি আপনার বিশ্বস্ত ডিভাইস হাতের কাছে না থাকে তাহলে আপনার প্রোফাইল অ্যাক্সেস করার জন্য যাচাইকরণ করা প্রয়োজন।"</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"ডিভাইস ডিসকানেক্ট করা হয়েছে।"</string>
     <string name="forget" msgid="3971143908183848527">"ভুলে যান"</string>
     <string name="connect" msgid="5861699594602380150">"কানেক্ট করুন"</string>
     <string name="disconnect" msgid="6140789953324820336">"ডিসকানেক্ট করুন"</string>
diff --git a/res/values-bs/arrays.xml b/res/values-bs/arrays.xml
new file mode 100644
index 0000000..1f15d2d
--- /dev/null
+++ b/res/values-bs/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Pitaj"</item>
+    <item msgid="933409503308401889">"Nikada ne dozvoli"</item>
+    <item msgid="1154273129608299386">"Uvijek dozvoli"</item>
+  </string-array>
+</resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 664c6b0..746f1c2 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -31,9 +31,27 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Noćni način rada"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Mreža i internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mobilna mreža"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-a</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-ova</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Aktivno/SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Neaktivno/SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Aktivno/preuzet SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Neaktivno/preuzeti SIM-ovi"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Dodaj još"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Mobilni podaci"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Pristupi podacima putem mobilne mreže"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Isključiti prijenos podataka na mobilnoj mreži?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Potrebno je odabrati"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Koristiti <xliff:g id="CARRIER">%1$s</xliff:g> za mobilne podatke?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Koristite <xliff:g id="CARRIER2_0">%2$s</xliff:g> za prijenos podataka na mobilnoj mreži. Ako se prebacite na operatera <xliff:g id="CARRIER1">%1$s</xliff:g>, <xliff:g id="CARRIER2_1">%2$s</xliff:g> se više neće koristiti za prijenos podataka na mobilnoj mreži."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Koristi <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Povezivanje na usluge prijenosa podataka u romingu"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Dozvoliti roming podataka?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Može doći do značajnih troškova."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Prijenos podataka"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Prim. plan prijenosa podataka"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Iskorišteno je <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -322,10 +340,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Moguće je da se usluga slanja premium SMS-ova dodatno plaća, a trošak će se dodati na račun operatera. Ako aplikaciji date odobrenje, moći ćete slati premium SMS-ove putem te aplikacije."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Pristup korištenju"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Pristup korištenju omogućava aplikaciji da prati koje druge aplikacije koristite i koliko često, kao i da vidi vašeg mobilnog operatera, postavke jezika i druge detalje."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Pristup direktorijima"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Upravljanje WiFi mrežom"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Kontroliranje WiFi mreže omogućava aplikaciji da uključi ili isključi WiFi, skenira i da se poveže na WiFi, doda ili ukloni mreže te pokrene lokalnu pristupnu tačku."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Više"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Lokacija"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Nedavni zahtjevi za lokaciju"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Nema nedavnih zahtjeva za lokaciju"</string>
@@ -338,7 +355,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Dozvolite aplikacijama i uslugama skeniranje uređaja u blizini u svakom trenutku, čak i kada je Bluetooth isključen. Ovim se, naprimjer, mogu poboljšati funkcije i usluge zasnovane na lokaciji."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Sistem"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Ažuriranja sistema"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Nedostupno"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Verzija Androida"</string>
     <string name="security_patch" msgid="4794276590178386903">"Nivo sigurnosne zakrpe Androida"</string>
     <string name="model_info" msgid="4966408071657934452">"Model"</string>
@@ -346,7 +362,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Osnovna verzija"</string>
     <string name="build_number" msgid="3997326631001009102">"Broj međuverzije"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth adresa"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"MAC adresa WiFi mreže"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Nije dostupno"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Status"</string>
     <string name="device_status" msgid="267298179806290920">"Status"</string>
@@ -616,6 +631,27 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Nije dozvoljen rastući, opadajući ili ponavljajući niz cifri."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Opcije zaključavanja ekrana"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : prije <xliff:g id="NUM_DAYS">%3$s</xliff:g> dana"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Dodaj pouzdani uređaj"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth će se uklj. da se doda pouzdani uređaj"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Pouzdani uređaji"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> uređaj</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> uređaja</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> uređaja</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Uređaj <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> će otključati ovaj automobil kada se poveže. Ako neko uzme <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, može pristupiti ovom uređaju"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Potvrdi"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Ukloni pouzdani uređaj"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Gotovo"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Postavite pouzdani uređaj pomoću prateće aplikacije. Nakon što ga postavite, vaš će se korisnički profil automatski otključati kada se detektira da se telefon nalazi u blizini vozila."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Preuzmite prateću aplikaciju na svoj telefon"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Odaberite automobil <xliff:g id="CAR_NAME">%1$s</xliff:g> na telefonu da uparite uređaje"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Čak i ako neko drugi bude držao pouzdani uređaj u blizini vašeg automobila, automobil će pri paljenju otključati profil korisnika."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Potvrdite da se kodovi uparivanja podudaraju"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Telefon je uspješno prijavljen"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Prijava uređaja <xliff:g id="DEVICE_NAME">%1$s</xliff:g> nije uspjela"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Nakon što dodate pouzdani uređaj, morate postaviti metodu autentifikacije. Autentifikacija će biti potrebna za pristup profilu u slučaju da kod sebe nemate pouzdani uređaj."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Veza s uređajem je prekinuta."</string>
     <string name="forget" msgid="3971143908183848527">"Zaboravi"</string>
     <string name="connect" msgid="5861699594602380150">"Poveži"</string>
     <string name="disconnect" msgid="6140789953324820336">"Prekini vezu"</string>
diff --git a/res/values-ca/arrays.xml b/res/values-ca/arrays.xml
new file mode 100644
index 0000000..f2103ea
--- /dev/null
+++ b/res/values-ca/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Demana"</item>
+    <item msgid="933409503308401889">"No permetis mai"</item>
+    <item msgid="1154273129608299386">"Permet sempre"</item>
+  </string-array>
+</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 67e9258..da85894 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Mode nocturn"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Xarxa i Internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Xarxa mòbil"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> targetes SIM</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> targeta SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Actiu / SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Inactiu / SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Actiu / SIM baixada"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Inactiu / SIM baixada"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Afegeix-ne més"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Dades mòbils"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Accedeix a les dades amb la xarxa mòbil"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Vols desactivar les dades mòbils?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Has de seleccionar una preferència"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Utilitzar <xliff:g id="CARRIER">%1$s</xliff:g> per a dades mòbils?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Estàs utilitzant <xliff:g id="CARRIER2_0">%2$s</xliff:g> per a les dades mòbils. Si canvies a <xliff:g id="CARRIER1">%1$s</xliff:g>, ja no es farà servir <xliff:g id="CARRIER2_1">%2$s</xliff:g> per a les dades mòbils."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Utilitza <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Itinerància"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Connecta\'t a serveis de dades en itinerància"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Vols permetre la itinerància de dades?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"És possible que s\'apliquin càrrecs elevats."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Ús de dades"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Dades principals"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Dades utilitzades: <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Els SMS prèmium et poden costar diners, i aquest import s\'afegirà a la facturació de l\'operador. Si actives el permís en una aplicació, podràs enviar SMS prèmium utilitzant-la."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Accés d\'ús"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"L\'accés a dades d\'ús permet que una aplicació pugui fer un seguiment de les altres aplicacions que utilitzes i la freqüència amb què ho fas, així com del teu operador de telefonia mòbil i de la configuració d\'idioma, entre d\'altres."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Accés al directori"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Control de la Wi‑Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"El control de la Wi‑Fi permet que una aplicació activi o desactivi la Wi‑Fi, cerqui xarxes Wi‑Fi, s\'hi connecti, n\'afegeixi o en suprimeixi, o que iniciï un punt d\'accés Wi‑Fi només local."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Més"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Ubicació"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Sol·licituds d\'ubicació recents"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"No hi ha cap sol·licitud d\'ubicació recent"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Permet que les aplicacions i els serveis cerquin dispositius propers en qualsevol moment, fins i tot quan el Bluetooth estigui desactivat. Es pot utilitzar, per exemple, per millorar les funcions i els serveis basats en la ubicació."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Sistema"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Actualitzacions del sistema"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"No disponible"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Versió d\'Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"Nivell de pedaç de seguretat d\'Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Model"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Versió de kernel"</string>
     <string name="build_number" msgid="3997326631001009102">"Número de compilació"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Adreça Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Adreça MAC de Wi‑Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"No disponible"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Estat"</string>
     <string name="device_status" msgid="267298179806290920">"Estat"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"No es permet cap seqüència de dígits ascendents, descendents ni repetits."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Opcions de bloqueig de pantalla"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g>: fa <xliff:g id="NUM_DAYS">%3$s</xliff:g> dies"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Afegeix dispositiu de confiança"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"S\'activarà Bluetooth per afegir disp. de confiança"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Disp. de confiança"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> dispositius</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> dispositiu</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"El <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> desbloquejarà el cotxe quan estigui connectat. Si algú t\'agafa el <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, és possible que puguin accedir-hi"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Confirma"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Suprimeix el dispositiu de confiança"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Fet"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Utilitza l\'aplicació complementària per configurar un dispositiu de confiança. Un cop configurat, el teu perfil d\'usuari es desbloquejarà automàticament quan el telèfon es detecti a prop del vehicle."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Baixa l\'aplicació complementària al telèfon"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Selecciona <xliff:g id="CAR_NAME">%1$s</xliff:g> al telèfon per vincular els dispositius"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Un dispositiu de confiança proper desbloquejarà el perfil d\'usuari en arrencar-lo, encara que sigui una altra persona qui sostingui el dispositiu."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Confirma que coincideixen els codis de sincronització"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"El telèfon s\'ha inscrit correctament."</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"No s\'ha pogut inscriure el dispositiu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Per afegir un dispositiu de confiança, cal que defineixis un mètode d\'autenticació a continuació. Si no tens a mà el dispositiu de confiança, caldrà que utilitzis el mètode d\'autenticació per accedir al perfil."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"S\'ha desconnectat el dispositiu."</string>
     <string name="forget" msgid="3971143908183848527">"Oblida"</string>
     <string name="connect" msgid="5861699594602380150">"Connecta"</string>
     <string name="disconnect" msgid="6140789953324820336">"Desconnecta"</string>
diff --git a/res/values-cs/arrays.xml b/res/values-cs/arrays.xml
new file mode 100644
index 0000000..9d0b27a
--- /dev/null
+++ b/res/values-cs/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Zeptat se"</item>
+    <item msgid="933409503308401889">"Nepovolit nikdy"</item>
+    <item msgid="1154273129608299386">"Vždy povolit"</item>
+  </string-array>
+</resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 4706810..dab1770 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -31,9 +31,28 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Noční režim"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Síť a internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mobilní síť"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="few"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM karty</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM karty</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM karet</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM karta</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Aktivní / SIM karta"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Neaktivní / SIM karta"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Aktivní / stažená SIM karta"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Neaktivní / stažená SIM karta"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Přidat další"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Mobilní data"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Přistupovat k datům přes mobilní síť"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Vypnout mobilní data?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Je vyžadován výběr"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Používat pro mobilní data <xliff:g id="CARRIER">%1$s</xliff:g>?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Pro mobilní data používáte <xliff:g id="CARRIER2_0">%2$s</xliff:g>. Pokud přepnete na operátora <xliff:g id="CARRIER1">%1$s</xliff:g>, <xliff:g id="CARRIER2_1">%2$s</xliff:g> už se používat nebude."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Použít <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roaming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Používat datové služby při roamingu"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Povolit datový roaming?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Mohou vám být účtovány vysoké poplatky."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Využití dat"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Primární data"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Využito <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -324,10 +343,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Prémiové SMS mohou být zpoplatněny a jejich cena se přičte k fakturaci operátora. Pokud aplikaci udělíte příslušné oprávnění, budete pomocí této aplikace moci odesílat prémiové SMS."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Přístup k údajům o využití"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Přístup k údajům o využití umožňuje aplikaci sledovat, které ostatní aplikace používáte, jak často je používáte, jakého máte operátora, nastavení jazyka a další podrobnosti."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Přístup k adresářům"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Ovládání sítí Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Ovládání sítí Wi-Fi této aplikaci umožňuje zapínat a vypínat Wi-Fi, vyhledávat sítě Wi-Fi a připojovat se k nim, přidávat nebo odstraňovat sítě nebo nastavit místní hotspot."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Více"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Poloha"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Nedávné žádosti o určení polohy"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Žádné nedávné žádosti o určení polohy"</string>
@@ -340,7 +358,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Povolit aplikacím a službám vyhledávat zařízení v okolí kdykoliv, i když je rozhraní Bluetooth vypnuté. Tuto funkci lze využít například ke zlepšení funkcí a služeb založených na poloze."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Systém"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Aktualizace systému"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Není k dispozici"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Verze systému Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"Úroveň opravy zabezpečení Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Model"</string>
@@ -348,7 +365,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Verze jádra"</string>
     <string name="build_number" msgid="3997326631001009102">"Číslo sestavení"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Adresa Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Adresa MAC sítě Wi-Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Není k dispozici"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Stav"</string>
     <string name="device_status" msgid="267298179806290920">"Stav"</string>
@@ -626,6 +642,28 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Posloupnost rostoucích, klesajících nebo opakujících se číslic není povolena."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Možnosti zámku obrazovky"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : před <xliff:g id="NUM_DAYS">%3$s</xliff:g> dny"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Přidat důvěryhodné zařízení"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Zapne se Bluetooth k přidání důvěryhod. zařízení"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Důvěryhodná zařízení"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> zařízení</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> zařízení</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> zařízení</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> zařízení</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Když zařízení <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> připojíte, odemkne tohle auto. Pokud vám zařízení <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> někdo vezme, bude mít přístup k tomuto zařízení."</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Potvrdit"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Odstranit důvěryhodné zařízení"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Hotovo"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Nastavte důvěryhodné zařízení pomocí doprovodné aplikace. Jakmile bude nastaveno a poblíž vozidla bude zjištěn vás telefon, váš uživatelský profil se automaticky odemkne."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Stáhněte si do telefonu doprovodnou aplikaci"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. V telefonu vyberte <xliff:g id="CAR_NAME">%1$s</xliff:g> a zařízení spárujte"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Důvěryhodné zařízení poblíž auta může po nastartování odemknout uživatelský profil, i když zařízení bude držet někdo jiný."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Ověřte, zda se párovací kódy shodují"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Telefon byl úspěšně zaregistrován"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Registrace zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g> se nezdařila"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Když přidáte důvěryhodné zařízení, bude nutné následně nastavit metodu ověření. Pokud důvěryhodné zařízení nemáte u sebe, před zobrazení profilu bude nutné provést ověření."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Zařízení bylo odpojeno."</string>
     <string name="forget" msgid="3971143908183848527">"Odstranit"</string>
     <string name="connect" msgid="5861699594602380150">"Připojit"</string>
     <string name="disconnect" msgid="6140789953324820336">"Odpojit"</string>
diff --git a/res/values-da/arrays.xml b/res/values-da/arrays.xml
new file mode 100644
index 0000000..79d23c6
--- /dev/null
+++ b/res/values-da/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Spørg"</item>
+    <item msgid="933409503308401889">"Tillad aldrig"</item>
+    <item msgid="1154273129608299386">"Tillad altid"</item>
+  </string-array>
+</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 6b7bfd6..f1a2b87 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Nattilstand"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Netværk og internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mobilnetværk"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-kort</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-kort</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Aktiv/knyttet til SIM-kort"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Inaktiv/knyttet til SIM-kort"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Aktiv/knyttet til downloadet SIM-kort"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Inaktiv/knyttet til downloadet SIM-kort"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Tilføj flere"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Mobildata"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Brug data via mobilnetværk"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Vil du deaktivere mobildata?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Du har ikke valgt endnu"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Vil du bruge <xliff:g id="CARRIER">%1$s</xliff:g> til mobildata?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Du bruger <xliff:g id="CARRIER2_0">%2$s</xliff:g> til mobildata. Hvis du skifter til <xliff:g id="CARRIER1">%1$s</xliff:g>, anvendes <xliff:g id="CARRIER2_1">%2$s</xliff:g> ikke længere til mobildata."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Brug <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roaming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Opret forbindelse til datatjenester under roaming"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Vil du tillade dataroaming?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Du kan risikere at skulle betale høje gebyrer."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Dataforbrug"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Primære data"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Der er brugt <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Overtakseret sms kan koste dig penge, som opkræves via din mobilregning. Hvis du aktiverer tilladelsen for en app, kan du sende overtakserede sms-beskeder ved hjælp af denne app."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Adgang til telefonbrug"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Med adgang til telefonbrug kan en app aflæse, hvilke andre apps du anvender og hvor ofte, samt dit mobilselskab, dine sprogindstillinger og andre oplysninger."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Mappeadgang"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Styring af Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Wi-Fi-styring giver en app tilladelse til at aktivere og deaktivere Wi-Fi, søge efter og oprette forbindelse til Wi-Fi-netværk, tilføje og fjerne netværk eller starte et lokalt hotspot."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Mere"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Placering"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Seneste placeringsanmodninger"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Der er ingen seneste placeringsanmodninger"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Tillad, at apps og tjenester altid kan søge efter enheder i nærheden, også selvom Bluetooth er deaktiveret. Dette kan f.eks. bruges til at forbedre stedbaserede funktioner og tjenester."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"System"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Systemopdateringer"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Ikke tilgængelig"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android-version"</string>
     <string name="security_patch" msgid="4794276590178386903">"Seneste sikkerhedsopdatering i Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Model"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Kernesystem"</string>
     <string name="build_number" msgid="3997326631001009102">"Buildnummer"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth-adresse"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"MAC-adresse for Wi-Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Ikke tilgængelig"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Status"</string>
     <string name="device_status" msgid="267298179806290920">"Status"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Stigende eller faldende talsekvens og gentagne tal er ikke tilladt."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Valgmuligheder for skærmlås"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> dage siden"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Tilføj godkendt enhed"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth aktiveres for at tilføje godkendt enhed"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Godkendte enheder"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> enhed</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> enheder</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Din <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> låser bilen op, når der er forbindelse til enheden. Hvis en anden person tager din <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, kan vedkommende muligvis få adgang til denne enhed"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Bekræft"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Fjern godkendt enhed"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Luk"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Brug den medfølgende app til at konfigurere en godkendt enhed. Når du har konfigureret enheden, aktiveres din profil automatisk, når din telefon er i nærheden af køretøjet."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Download den medfølgende app på din telefon"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Vælg <xliff:g id="CAR_NAME">%1$s</xliff:g> på telefonen for at parre enhederne"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Hvis der er en godkendt enhed i nærheden af bilen, når du starter motoren, får denne enhed adgang brugerprofilen – også selvom det er en anden, der holder enheden."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Bekræft, at parringskoderne stemmer overens"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Telefonen blev tilmeldt"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Tilmeldingen af <xliff:g id="DEVICE_NAME">%1$s</xliff:g> mislykkedes"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Hvis du vil tilføje en godkendt enhed, skal du først angive en godkendelsesmetode. Hvis du ikke har din godkendte enhed med dig, kræves der godkendelse, før du kan få adgang til din profil."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Forbindelsen til enheden blev afbrudt."</string>
     <string name="forget" msgid="3971143908183848527">"Glem"</string>
     <string name="connect" msgid="5861699594602380150">"Opret forbindelse"</string>
     <string name="disconnect" msgid="6140789953324820336">"Afbryd forbindelse"</string>
diff --git a/res/values-de/arrays.xml b/res/values-de/arrays.xml
new file mode 100644
index 0000000..63301c0
--- /dev/null
+++ b/res/values-de/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Fragen"</item>
+    <item msgid="933409503308401889">"Nie zulassen"</item>
+    <item msgid="1154273129608299386">"Immer zulassen"</item>
+  </string-array>
+</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 69fcb18..45eb837 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Nachtmodus"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Netzwerk und Internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mobilfunknetz"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-Karten</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM-Karte</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Aktiv/SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Inaktiv/SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Aktiv/Heruntergeladene SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Inaktiv/Heruntergeladene SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Weitere hinzufügen"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Mobile Daten"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Datenzugriff über Mobilfunknetz"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Mobile Daten deaktivieren?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Auswahl erforderlich"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"<xliff:g id="CARRIER">%1$s</xliff:g> für mobile Daten nutzen?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Du verwendest <xliff:g id="CARRIER2_0">%2$s</xliff:g> für mobile Daten. Wenn du zu <xliff:g id="CARRIER1">%1$s</xliff:g> wechselst, wird <xliff:g id="CARRIER2_1">%2$s</xliff:g> nicht mehr für mobile Daten verwendet."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g> verwenden"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roaming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Mobile Daten auch bei Roaming nutzen"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Daten-Roaming zulassen?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Es können hohe Gebühren anfallen."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Datennutzung"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Primärdaten"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> verbraucht"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Bei Premium-SMS können Kosten entstehen, die über den Mobilfunkanbieter abgerechnet werden. Wenn du für eine App Premium-SMS zulässt, kannst du aus ihr Premium-SMS versenden."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Zugriff auf Nutzungsdaten"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Der Zugriff auf die Nutzungsdaten ermöglicht es einer App, verschiedene Informationen zu erfassen – welche anderen Apps du wie oft verwendest, welchen Mobilfunkanbieter du nutzt, welche Spracheinstellungen du festgelegt hast usw."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Verzeichniszugriff"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"WLAN-Steuerung"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Die WLAN-Steuerung erlaubt einer App, die WLAN-Funktion zu aktivieren oder zu deaktivieren, nach WLANs zu scannen und eine Verbindung zu ihnen herzustellen, Netzwerke hinzuzufügen oder zu entfernen oder einen lokal beschränkten Hotspot zu starten."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Mehr"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Standort"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Letzte Standortanfragen"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Keine letzten Standortanfragen"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Apps und Dienste dürfen immer nach Geräten in der Nähe suchen, auch wenn Bluetooth deaktiviert ist. Dadurch können beispielsweise standortbasierte Funktionen und Dienste verbessert werden."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"System"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Systemupdates"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Nicht verfügbar"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android-Version"</string>
     <string name="security_patch" msgid="4794276590178386903">"Stand der Sicherheitsupdates"</string>
     <string name="model_info" msgid="4966408071657934452">"Modell"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Kernel-Version"</string>
     <string name="build_number" msgid="3997326631001009102">"Build-Nummer"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth-Adresse"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"WLAN-MAC-Adresse"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Nicht verfügbar"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Status"</string>
     <string name="device_status" msgid="267298179806290920">"Status"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Aufsteigende, absteigende oder sich wiederholende Ziffernfolgen sind unzulässig."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Optionen für die Displaysperre"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g>: vor <xliff:g id="NUM_DAYS">%3$s</xliff:g> Tagen"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Vertrauenswürdiges Gerät hinzufügen"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth wird aktiviert, um vertrauenswürdige Geräte hinzuzufügen"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Vertrauenswürdige Geräte"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> Geräte</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> Gerät</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> entsperrt dieses Auto, wenn eine Verbindung besteht. Wenn dein <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> in die Hände einer anderen Person gelangt, kann diese möglicherweise auf das Gerät zugreifen"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Bestätigen"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Vertrauenswürdiges Gerät entfernen"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Fertig"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Verwende die Companion App, um ein vertrauenswürdiges Gerät einzurichten. Danach wird dein Nutzerprofil entsperrt, sobald dein Smartphone in der Nähe des Fahrzeugs erkannt wird"</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Lade die Companion App auf dein Smartphone herunter"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2 Wähle auf deinem Smartphone \"<xliff:g id="CAR_NAME">%1$s</xliff:g>\" aus, um die Geräte zu koppeln"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Mit einem vertrauenswürdigen Gerät, das sich in der Nähe deines Autos befindet, wird dein Nutzerprofil beim Starten entsperrt. Dies gilt auch dann, wenn eine andere Person es in der Hand hält."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Bestätige bitte, dass die Kopplungscodes übereinstimmen"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Smartphone erfolgreich angemeldet"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Anmeldung von <xliff:g id="DEVICE_NAME">%1$s</xliff:g> fehlgeschlagen"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Wenn du ein vertrauenswürdiges Gerät hinzufügst, musst du danach eine Authentifizierungsmethode festlegen. Diese wird benötigt, um auf dein Konto zuzugreifen, wenn du dein vertrauenswürdiges Gerät nicht dabei hast."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Gerät getrennt."</string>
     <string name="forget" msgid="3971143908183848527">"Entfernen"</string>
     <string name="connect" msgid="5861699594602380150">"Verbinden"</string>
     <string name="disconnect" msgid="6140789953324820336">"Trennen"</string>
diff --git a/res/values-el/arrays.xml b/res/values-el/arrays.xml
new file mode 100644
index 0000000..5dd28e0
--- /dev/null
+++ b/res/values-el/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Ερώτηση"</item>
+    <item msgid="933409503308401889">"Να μην επιτρέπεται ποτέ"</item>
+    <item msgid="1154273129608299386">"Να επιτρέπεται πάντα"</item>
+  </string-array>
+</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 462e3e7..830c7cf 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Νυχτερινή λειτουργία"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Δίκτυο και διαδίκτυο"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Δίκτυο κινητής τηλεφωνίας"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Ενεργή/SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Ανενεργή/SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Ενεργή/Ληφθείσα SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Ανενεργή/Ληφθείσα SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Προσθήκη περισσότερων"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Δεδομένα κινητής τηλεφωνίας"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Πρόσβαση σε δεδομένα μέσω δικτύου κινητής τηλεφ."</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Απενεργοποίηση δεδομένων κινητής τηλεφωνίας;"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Απαιτείται επιλογή"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Χρήση <xliff:g id="CARRIER">%1$s</xliff:g> για δεδoμένα κιν. τηλ.;"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Χρησιμοποιείτε <xliff:g id="CARRIER2_0">%2$s</xliff:g> για δεδομένα κινητής τηλεφωνίας. Εάν κάνετε εναλλαγή στην υπηρεσία <xliff:g id="CARRIER1">%1$s</xliff:g>, η υπηρεσία <xliff:g id="CARRIER2_1">%2$s</xliff:g> δεν θα χρησιμοποιείται πλέον για δεδομένα κινητής τηλεφωνίας."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Χρήση <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Περιαγωγή"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Σύνδεση στις υπηρεσίες δεδομένων κατά την περιαγωγή"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Να επιτρέπεται η περιαγωγή δεδομένων;"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Ενδέχεται να επιβαρυνθείτε με σημαντικές χρεώσεις."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Χρήση δεδομένων"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Κύρια δεδομένα"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Έχουν χρησιμοποιηθεί <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Τα SMS επιπλέον χρέωσης ενδέχεται να κοστίζουν χρήματα και θα αυξήσουν το συνολικό ποσό των λογαριασμών της εταιρείας κινητής τηλεφωνίας. Εάν ενεργοποιήσετε την πρόσβαση για μια εφαρμογή, θα μπορείτε να στέλνετε SMS επιπλέον χρέωσης χρησιμοποιώντας τη συγκεκριμένη εφαρμογή."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Πρόσβαση χρήσης"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Η πρόσβαση χρήσης επιτρέπει σε μια εφαρμογή να παρακολουθεί τις άλλες εφαρμογές που χρησιμοποιείτε, τη συχνότητα χρήσης τους, καθώς και την εταιρεία κινητής τηλεφωνίας σας, τις ρυθμίσεις γλώσσας και άλλες λεπτομέρειες."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Πρόσβαση στον κατάλογο"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Έλεγχος Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Ο έλεγχος Wi-Fi επιτρέπει σε μια εφαρμογή να ενεργοποιεί ή να απενεργοποιεί το Wi-Fi, να κάνει σάρωση για δίκτυα Wi-Fi και να συνδέεται σε αυτά, να προσθέτει ή να καταργεί δίκτυα ή να ξεκινά τοπικά σημεία πρόσβασης Wi-Fi."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Περισσότερα"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Τοποθεσία"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Πρόσφατα αιτήματα τοποθεσίας"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Δεν υπάρχουν πρόσφατα αιτήματα τοποθεσίας"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Επιτρέψτε σε εφαρμογές/υπηρεσίες να κάνουν σάρωση για κοντινές συσκευές, ακόμα και όταν το Bluetooth είναι ανενεργό. Η σάρωση μπορεί να χρησιμοποιηθεί, για παράδειγμα, για τη βελτίωση λειτουργιών/υπηρεσιών που εκτελούνται βάσει τοποθεσίας."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Σύστημα"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Ενημερώσεις συστήματος"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Μη διαθέσιμο"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Έκδοση Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"Επίπεδο ενημέρωσης κώδικα ασφαλείας Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Μοντέλο"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Έκδοση Kernel"</string>
     <string name="build_number" msgid="3997326631001009102">"Αριθμός έκδοσης"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Διεύθυνση Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Διεύθυνση MAC Wi-Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Μη διαθέσιμο"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Κατάσταση"</string>
     <string name="device_status" msgid="267298179806290920">"Κατάσταση"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Δεν επιτρέπεται η αύξουσα, φθίνουσα ή επαναλαμβανόμενη ακολουθία ψηφίων."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Επιλογές κλειδώματος οθόνης"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> ημέρες πριν"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Προσθήκη αξιόπιστης συσκευής"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Ενεργοπ. Bluetooth για προσθήκη αξιόπ. συσκευής"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Αξιόπιστες συσκευές"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> συσκευές</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> συσκευή</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Το <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> θα ξεκλειδώσει αυτό το αυτοκίνητο όταν συνδεθεί. Εάν κάποιος αποκτήσει το <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> σας, θα μπορεί να αποκτήσει πρόσβαση σε αυτήν τη συσκευή"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Επιβεβαίωση"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Κατάργηση αξιόπιστης συσκευής"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Τέλος"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Χρησιμοποιήστε τη συνοδευτική εφαρμογή για να ρυθμίσετε μια αξιόπιστη συσκευή. Μετά τη ρύθμιση, το προφίλ χρήστη θα ξεκλειδώνει αυτόματα όταν το τηλέφωνό σας εντοπίζεται κοντά στο όχημα."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Κατεβάστε τη συνοδευτική εφαρμογή στο τηλέφωνό σας"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Επιλέξτε το αυτοκίνητο <xliff:g id="CAR_NAME">%1$s</xliff:g> στο τηλέφωνό σας για να κάνετε σύζευξη των συσκευών"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Μια αξιόπιστη συσκευή κοντά στο αυτοκίνητό σας θα ξεκλειδώνει το προφίλ χρήστη κατά το ξεκίνημα, ακόμα και αν κάποιος άλλος κρατάει τη συσκευή."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Επιβεβαιώστε ότι υπάρχει αντιστοιχία μεταξύ κωδικών σύζευξης"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Η εγγραφή του τηλεφώνου ήταν επιτυχής"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Η εγγραφή της συσκευής <xliff:g id="DEVICE_NAME">%1$s</xliff:g> απέτυχε"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Η προσθήκη αξιόπιστης συσκευής απαιτεί να ορίσετε στη συνέχεια μια μέθοδο ελέγχου ταυτότητας. Εάν δεν έχετε μαζί σας την αξιόπιστη συσκευή σας, θα ζητηθεί έλεγχος ταυτότητας για την πρόσβαση στο προφίλ σας."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Η συσκευή αποσυνδέθηκε."</string>
     <string name="forget" msgid="3971143908183848527">"Διαγραφή από μνήμη"</string>
     <string name="connect" msgid="5861699594602380150">"Σύνδεση"</string>
     <string name="disconnect" msgid="6140789953324820336">"Αποσύνδεση"</string>
diff --git a/res/values-en-rAU/arrays.xml b/res/values-en-rAU/arrays.xml
new file mode 100644
index 0000000..6768dfa
--- /dev/null
+++ b/res/values-en-rAU/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Ask"</item>
+    <item msgid="933409503308401889">"Never allow"</item>
+    <item msgid="1154273129608299386">"Always allow"</item>
+  </string-array>
+</resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index adeb0b9..c68531b 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Night mode"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Network &amp; internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mobile network"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIMs</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Active/SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Inactive/SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Active/Downloaded SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Inactive/Downloaded SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Add more"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Mobile data"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Access data using mobile network"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Turn off mobile data?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Selection required"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Use <xliff:g id="CARRIER">%1$s</xliff:g> for mobile data?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"You\'re using <xliff:g id="CARRIER2_0">%2$s</xliff:g> for mobile data. If you switch to <xliff:g id="CARRIER1">%1$s</xliff:g>, <xliff:g id="CARRIER2_1">%2$s</xliff:g> will no longer be used for mobile data."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Use <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roaming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Connect to data services when roaming"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Allow data roaming?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"You may incur significant charges."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Data usage"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Primary data"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> used"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Premium SMS may cost you money and will add up to your mobile bills. If you enable permission for an app, you will be able to send premium SMS using that app."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Usage access"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Usage access allows an app to track which other apps you\'re using and how often, as well as your operator, language settings and other details."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Directory access"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi control"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Wi-Fi control allows an app to turn Wi-Fi on or off, scan and connect to Wi-Fi networks add or remove networks, or start a local-only hotspot."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"More"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Location"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Recent Location Requests"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"No recent location requests"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Allow apps and services to scan for nearby devices at any time, even when Bluetooth is off. This can be used, for example, to improve location-based features and services."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"System"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"System updates"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Unavailable"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android version"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android security patch level"</string>
     <string name="model_info" msgid="4966408071657934452">"Model"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Kernel version"</string>
     <string name="build_number" msgid="3997326631001009102">"Build number"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth address"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Wi-Fi MAC Address"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Not available"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Status"</string>
     <string name="device_status" msgid="267298179806290920">"Status"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Ascending, descending or repeated sequence of digits isn\'t allowed."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Screen lock options"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> days ago"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Add trusted device"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth will turn on to add trusted device"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Trusted devices"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> devices</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> device</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Your <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> will unlock this car when it\'s connected. If someone takes your <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, they may be able to access this device"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Confirm"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Remove trusted device"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Done"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Use the companion app to set up a trusted device. Once set up, your user profile will unlock automatically when your phone is detected near the vehicle."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Download the companion app on your phone"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Select <xliff:g id="CAR_NAME">%1$s</xliff:g> on your phone to pair the devices"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"A trusted device near your car will unlock the user profile upon ignition, even if someone else is holding the device."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Please confirm that the pairing codes match"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Phone has been enrolled successfully"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> enrolment failed"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Adding a trusted device requires you to set an authentication method next. If you do not have your trusted device with you, authentication will be required to access your profile."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Device disconnected."</string>
     <string name="forget" msgid="3971143908183848527">"Forget"</string>
     <string name="connect" msgid="5861699594602380150">"Connect"</string>
     <string name="disconnect" msgid="6140789953324820336">"Disconnect"</string>
diff --git a/res/values-en-rCA/arrays.xml b/res/values-en-rCA/arrays.xml
new file mode 100644
index 0000000..6768dfa
--- /dev/null
+++ b/res/values-en-rCA/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Ask"</item>
+    <item msgid="933409503308401889">"Never allow"</item>
+    <item msgid="1154273129608299386">"Always allow"</item>
+  </string-array>
+</resources>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index adeb0b9..c68531b 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Night mode"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Network &amp; internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mobile network"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIMs</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Active/SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Inactive/SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Active/Downloaded SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Inactive/Downloaded SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Add more"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Mobile data"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Access data using mobile network"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Turn off mobile data?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Selection required"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Use <xliff:g id="CARRIER">%1$s</xliff:g> for mobile data?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"You\'re using <xliff:g id="CARRIER2_0">%2$s</xliff:g> for mobile data. If you switch to <xliff:g id="CARRIER1">%1$s</xliff:g>, <xliff:g id="CARRIER2_1">%2$s</xliff:g> will no longer be used for mobile data."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Use <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roaming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Connect to data services when roaming"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Allow data roaming?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"You may incur significant charges."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Data usage"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Primary data"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> used"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Premium SMS may cost you money and will add up to your mobile bills. If you enable permission for an app, you will be able to send premium SMS using that app."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Usage access"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Usage access allows an app to track which other apps you\'re using and how often, as well as your operator, language settings and other details."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Directory access"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi control"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Wi-Fi control allows an app to turn Wi-Fi on or off, scan and connect to Wi-Fi networks add or remove networks, or start a local-only hotspot."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"More"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Location"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Recent Location Requests"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"No recent location requests"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Allow apps and services to scan for nearby devices at any time, even when Bluetooth is off. This can be used, for example, to improve location-based features and services."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"System"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"System updates"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Unavailable"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android version"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android security patch level"</string>
     <string name="model_info" msgid="4966408071657934452">"Model"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Kernel version"</string>
     <string name="build_number" msgid="3997326631001009102">"Build number"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth address"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Wi-Fi MAC Address"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Not available"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Status"</string>
     <string name="device_status" msgid="267298179806290920">"Status"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Ascending, descending or repeated sequence of digits isn\'t allowed."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Screen lock options"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> days ago"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Add trusted device"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth will turn on to add trusted device"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Trusted devices"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> devices</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> device</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Your <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> will unlock this car when it\'s connected. If someone takes your <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, they may be able to access this device"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Confirm"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Remove trusted device"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Done"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Use the companion app to set up a trusted device. Once set up, your user profile will unlock automatically when your phone is detected near the vehicle."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Download the companion app on your phone"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Select <xliff:g id="CAR_NAME">%1$s</xliff:g> on your phone to pair the devices"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"A trusted device near your car will unlock the user profile upon ignition, even if someone else is holding the device."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Please confirm that the pairing codes match"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Phone has been enrolled successfully"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> enrolment failed"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Adding a trusted device requires you to set an authentication method next. If you do not have your trusted device with you, authentication will be required to access your profile."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Device disconnected."</string>
     <string name="forget" msgid="3971143908183848527">"Forget"</string>
     <string name="connect" msgid="5861699594602380150">"Connect"</string>
     <string name="disconnect" msgid="6140789953324820336">"Disconnect"</string>
diff --git a/res/values-en-rGB/arrays.xml b/res/values-en-rGB/arrays.xml
new file mode 100644
index 0000000..6768dfa
--- /dev/null
+++ b/res/values-en-rGB/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Ask"</item>
+    <item msgid="933409503308401889">"Never allow"</item>
+    <item msgid="1154273129608299386">"Always allow"</item>
+  </string-array>
+</resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index adeb0b9..c68531b 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Night mode"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Network &amp; internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mobile network"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIMs</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Active/SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Inactive/SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Active/Downloaded SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Inactive/Downloaded SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Add more"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Mobile data"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Access data using mobile network"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Turn off mobile data?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Selection required"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Use <xliff:g id="CARRIER">%1$s</xliff:g> for mobile data?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"You\'re using <xliff:g id="CARRIER2_0">%2$s</xliff:g> for mobile data. If you switch to <xliff:g id="CARRIER1">%1$s</xliff:g>, <xliff:g id="CARRIER2_1">%2$s</xliff:g> will no longer be used for mobile data."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Use <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roaming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Connect to data services when roaming"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Allow data roaming?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"You may incur significant charges."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Data usage"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Primary data"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> used"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Premium SMS may cost you money and will add up to your mobile bills. If you enable permission for an app, you will be able to send premium SMS using that app."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Usage access"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Usage access allows an app to track which other apps you\'re using and how often, as well as your operator, language settings and other details."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Directory access"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi control"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Wi-Fi control allows an app to turn Wi-Fi on or off, scan and connect to Wi-Fi networks add or remove networks, or start a local-only hotspot."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"More"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Location"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Recent Location Requests"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"No recent location requests"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Allow apps and services to scan for nearby devices at any time, even when Bluetooth is off. This can be used, for example, to improve location-based features and services."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"System"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"System updates"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Unavailable"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android version"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android security patch level"</string>
     <string name="model_info" msgid="4966408071657934452">"Model"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Kernel version"</string>
     <string name="build_number" msgid="3997326631001009102">"Build number"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth address"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Wi-Fi MAC Address"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Not available"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Status"</string>
     <string name="device_status" msgid="267298179806290920">"Status"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Ascending, descending or repeated sequence of digits isn\'t allowed."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Screen lock options"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> days ago"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Add trusted device"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth will turn on to add trusted device"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Trusted devices"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> devices</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> device</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Your <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> will unlock this car when it\'s connected. If someone takes your <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, they may be able to access this device"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Confirm"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Remove trusted device"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Done"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Use the companion app to set up a trusted device. Once set up, your user profile will unlock automatically when your phone is detected near the vehicle."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Download the companion app on your phone"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Select <xliff:g id="CAR_NAME">%1$s</xliff:g> on your phone to pair the devices"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"A trusted device near your car will unlock the user profile upon ignition, even if someone else is holding the device."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Please confirm that the pairing codes match"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Phone has been enrolled successfully"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> enrolment failed"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Adding a trusted device requires you to set an authentication method next. If you do not have your trusted device with you, authentication will be required to access your profile."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Device disconnected."</string>
     <string name="forget" msgid="3971143908183848527">"Forget"</string>
     <string name="connect" msgid="5861699594602380150">"Connect"</string>
     <string name="disconnect" msgid="6140789953324820336">"Disconnect"</string>
diff --git a/res/values-en-rIN/arrays.xml b/res/values-en-rIN/arrays.xml
new file mode 100644
index 0000000..6768dfa
--- /dev/null
+++ b/res/values-en-rIN/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Ask"</item>
+    <item msgid="933409503308401889">"Never allow"</item>
+    <item msgid="1154273129608299386">"Always allow"</item>
+  </string-array>
+</resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index adeb0b9..c68531b 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Night mode"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Network &amp; internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mobile network"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIMs</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Active/SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Inactive/SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Active/Downloaded SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Inactive/Downloaded SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Add more"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Mobile data"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Access data using mobile network"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Turn off mobile data?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Selection required"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Use <xliff:g id="CARRIER">%1$s</xliff:g> for mobile data?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"You\'re using <xliff:g id="CARRIER2_0">%2$s</xliff:g> for mobile data. If you switch to <xliff:g id="CARRIER1">%1$s</xliff:g>, <xliff:g id="CARRIER2_1">%2$s</xliff:g> will no longer be used for mobile data."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Use <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roaming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Connect to data services when roaming"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Allow data roaming?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"You may incur significant charges."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Data usage"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Primary data"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> used"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Premium SMS may cost you money and will add up to your mobile bills. If you enable permission for an app, you will be able to send premium SMS using that app."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Usage access"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Usage access allows an app to track which other apps you\'re using and how often, as well as your operator, language settings and other details."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Directory access"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi control"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Wi-Fi control allows an app to turn Wi-Fi on or off, scan and connect to Wi-Fi networks add or remove networks, or start a local-only hotspot."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"More"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Location"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Recent Location Requests"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"No recent location requests"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Allow apps and services to scan for nearby devices at any time, even when Bluetooth is off. This can be used, for example, to improve location-based features and services."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"System"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"System updates"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Unavailable"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android version"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android security patch level"</string>
     <string name="model_info" msgid="4966408071657934452">"Model"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Kernel version"</string>
     <string name="build_number" msgid="3997326631001009102">"Build number"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth address"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Wi-Fi MAC Address"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Not available"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Status"</string>
     <string name="device_status" msgid="267298179806290920">"Status"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Ascending, descending or repeated sequence of digits isn\'t allowed."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Screen lock options"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> days ago"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Add trusted device"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth will turn on to add trusted device"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Trusted devices"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> devices</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> device</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Your <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> will unlock this car when it\'s connected. If someone takes your <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, they may be able to access this device"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Confirm"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Remove trusted device"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Done"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Use the companion app to set up a trusted device. Once set up, your user profile will unlock automatically when your phone is detected near the vehicle."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Download the companion app on your phone"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Select <xliff:g id="CAR_NAME">%1$s</xliff:g> on your phone to pair the devices"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"A trusted device near your car will unlock the user profile upon ignition, even if someone else is holding the device."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Please confirm that the pairing codes match"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Phone has been enrolled successfully"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> enrolment failed"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Adding a trusted device requires you to set an authentication method next. If you do not have your trusted device with you, authentication will be required to access your profile."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Device disconnected."</string>
     <string name="forget" msgid="3971143908183848527">"Forget"</string>
     <string name="connect" msgid="5861699594602380150">"Connect"</string>
     <string name="disconnect" msgid="6140789953324820336">"Disconnect"</string>
diff --git a/res/values-en-rXC/arrays.xml b/res/values-en-rXC/arrays.xml
new file mode 100644
index 0000000..dddcb43
--- /dev/null
+++ b/res/values-en-rXC/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‎‎‏‏‏‎‎‏‎‏‏‏‎‏‎‎‏‎‏‎‏‎‏‎‎‎‎‏‏‎‎‎‏‏‏‏‏‎‎‏‎‎‎‎‏‎‎‏‏‏‎‎‏‏‏‏‏‎‎‏‏‎‎Ask‎‏‎‎‏‎"</item>
+    <item msgid="933409503308401889">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‎‏‏‏‏‎‏‎‎‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‏‎‏‎‏‎‏‏‏‏‎‎‏‏‎‎‏‏‏‎‎‎‎‏‎Never allow‎‏‎‎‏‎"</item>
+    <item msgid="1154273129608299386">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‎‎‎‎‎‏‎‎‏‏‎‎‏‏‎‏‎‏‎‎‏‎‏‏‏‎‏‏‏‎‎‎‎‎‎‏‎‏‎‎‏‏‎‎‎‎‏‏‎‏‏‏‏‎‏‎‎Always allow‎‏‎‎‏‎"</item>
+  </string-array>
+</resources>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index cd5948c..3953f34 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‏‎‎‏‎‎‏‎‏‏‎‎‎‏‎‎‏‏‎‏‎‏‎‎‏‎‏‎‎‎‎‏‏‏‎‏‎‏‎‎‎‎‏‎‎‏‏‏‎‏‎‎‎‎‎Night mode‎‏‎‎‏‎"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‏‎‏‎‏‏‎‎‎‎‏‎‎‎‎‎‏‎‏‎‎‏‎‏‎‏‏‏‏‎‏‎‏‎‏‎‎‏‏‎‎‏‎‎‏‎‎‎‎‎‎‎‏‏‏‎‏‎‎Network &amp; internet‎‏‎‎‏‎"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‎‏‏‎‏‏‏‏‎‏‏‎‏‏‎‎‎‏‏‏‏‎‏‏‏‎‏‏‎‎‏‏‎‎‏‎‎‏‏‎‏‎‎‎‎‎‎‏‎‏‎‏‏‎‎‎‎‎‏‎‏‎‏‎Mobile network‎‏‎‎‏‎"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‏‎‏‎‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‎‎‏‎‎‏‏‏‎‎‎‎‏‎‏‏‏‏‎‎‎‏‎‎‏‏‎<xliff:g id="COUNT_1">%1$d</xliff:g>‎‏‎‎‏‏‏‎ SIMs‎‏‎‎‏‎</item>
+      <item quantity="one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‏‎‏‎‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‎‎‏‎‎‏‏‏‎‎‎‎‏‎‏‏‏‏‎‎‎‏‎‎‏‏‎<xliff:g id="COUNT_0">%1$d</xliff:g>‎‏‎‎‏‏‏‎ SIM‎‏‎‎‏‎</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‏‎‎‏‏‎‎‏‎‎‎‎‎‏‏‎‏‏‎‏‎‎‏‎‏‏‏‎‎‏‏‏‎‏‎‎‏‎‎‎‎‎‎‏‎‏‏‏‎‎‎‏‏‎‏‎‏‏‎Active / SIM‎‏‎‎‏‎"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‎‏‎‎‏‎‏‎‏‏‎‎‏‎‏‏‎‎‏‏‎‎‏‎‎‎‏‎‎‏‎‏‏‎‎‎‎‏‎‏‏‎‏‏‏‏‎‏‏‏‎‏‏‏‏‏‎‎Inactive / SIM‎‏‎‎‏‎"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‏‎‎‎‎‏‎‏‏‏‏‎‎‎‏‎‎‏‏‎‎‎‏‎‎‏‎‎‏‎‎‎‏‏‏‎‏‎‎‏‏‎‏‏‎‎‏‏‎‎‏‎‎‎‎Active / Downloaded SIM‎‏‎‎‏‎"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‏‎‏‏‎‎‏‎‎‎‏‎‏‎‎‏‎‎‏‎‏‏‏‏‎‏‏‏‏‏‎‎‎‎‏‎‏‎‎‎‎‎‏‏‎‏‎‎‎‎‏‏‏‏‎‎‎‎Inactive / Downloaded SIM‎‏‎‎‏‎"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‏‎‏‏‏‏‏‎‎‎‎‎‎‎‎‎‎‏‏‎‎‏‏‏‎‏‏‏‏‎‏‎‏‏‎‎‏‏‎‏‎‏‎‎‎‎‏‎‏‏‏‏‏‏‎Add more‎‏‎‎‏‎"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‎‎‏‏‎‎‏‎‏‎‎‎‎‏‎‏‏‎‏‎‎‏‏‎‏‎‎‎‏‏‏‏‎‎‎‏‏‎‎‏‏‏‎‏‏‏‎‎‎‎‎‏‏‏‏‏‏‏‎Mobile data‎‏‎‎‏‎"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‏‏‎‎‏‏‏‎‏‎‎‎‎‏‏‎‎‎‏‏‏‏‎‎‏‏‎‏‏‎‏‎‏‏‎‎‎‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎Access data using mobile network‎‏‎‎‏‎"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‎‎‏‎‏‏‎‏‏‏‏‎‎‎‎‏‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‎‏‏‎‏‏‏‏‎‏‏‏‎‏‏‏‏‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎Turn off mobile data?‎‏‎‎‏‎"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‎‏‎‏‏‎‎‏‎‏‏‎‏‏‏‎‎‎‎‎‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‎‎‏‏‏‎‏‏‎‏‏‏‏‏‎‎‎‎Selection required‎‏‎‎‏‎"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‏‎‏‎‎‏‏‏‏‎‎‎‎‏‎‏‏‎‎‏‎‎‏‎‏‏‎‎‎‎‎‏‏‏‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‎‏‎‏‏‎Use ‎‏‎‎‏‏‎<xliff:g id="CARRIER">%1$s</xliff:g>‎‏‎‎‏‏‏‎ for mobile data?‎‏‎‎‏‎"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‎‎‏‏‏‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‎‏‏‏‏‎‏‎‎‏‎‏‏‏‎‏‎‎‎‎‏‏‎‎‎‏‏‎‏‎You\'re using ‎‏‎‎‏‏‎<xliff:g id="CARRIER2_0">%2$s</xliff:g>‎‏‎‎‏‏‏‎ for mobile data. If you switch to ‎‏‎‎‏‏‎<xliff:g id="CARRIER1">%1$s</xliff:g>‎‏‎‎‏‏‏‎, ‎‏‎‎‏‏‎<xliff:g id="CARRIER2_1">%2$s</xliff:g>‎‏‎‎‏‏‏‎ will no longer be used for mobile data.‎‏‎‎‏‎"</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‎‎‏‎‎‏‏‎‎‎‏‎‏‎‎‎‎‏‏‎‏‏‎‎‏‏‎‎‎‏‎‏‏‎‏‎‎‎‏‏‎‏‎‎‎‎‎‎‎‎‏‎‏‎‏‎‎‏‎Use ‎‏‎‎‏‏‎<xliff:g id="CARRIER">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‏‎‎‏‏‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‎‎‏‎‎‎‏‎‏‎‎‎‎‏‏‎‏‏‎‎‏‎‏‎‎‎‏‎‎‎‎‎‏‏‎‎Roaming‎‏‎‎‏‎"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‏‎‎‏‎‎‎‏‏‏‎‎‏‏‎‏‏‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‎‏‎Connect to data services when roaming‎‏‎‎‏‎"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‎‏‏‎‎‎‏‎‎‎‎‏‏‎‎‎‏‎‎‎‎‎‏‎‏‏‏‏‎‎‎‎‎‎‏‏‏‎‎‏‏‎‏‏‏‎‏‏‏‏‏‏‎‏‎‎‏‏‎Allow data roaming?‎‏‎‎‏‎"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‏‏‎‏‏‏‏‎‎‏‎‎‏‎‎‎‏‏‎‏‏‏‏‎‎‏‏‎‏‎‎‏‎‏‏‎‎‏‎‎‏‏‎‏‏‏‎‎‎‏‎‏‏‏‎‎‏‎You may incur significant charges.‎‏‎‎‏‎"</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‎‏‎‎‎‏‎‎‏‏‎‎‏‎‏‎‏‏‏‎‎‏‎‏‎‏‎‎‏‎‎‏‎‎‎‎‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‎‎‎‎Data usage‎‏‎‎‏‎"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‎‎‏‎‎‏‎‎‏‎‎‏‏‎‏‎‏‎‎‏‎‎‏‎‏‎‎‎‎‎‏‏‎‎‏‎‏‎‎‏‏‎‎‎‎‎‎‎‏‏‎‏‏‎‎‏‎‎‎Primary data‎‏‎‎‏‎"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‎‎‎‏‎‎‎‏‎‏‎‎‎‏‏‎‏‏‎‎‏‏‎‏‏‎‎‎‎‎‎‎‏‏‏‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‏‎‎‏‏‎<xliff:g id="ID_1">^1</xliff:g>‎‏‎‎‏‏‏‎ ‎‏‎‎‏‏‎<xliff:g id="ID_2">^2</xliff:g>‎‏‎‎‏‏‏‎ used‎‏‎‎‏‎"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‎‏‎‏‏‏‏‎‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‏‏‎‏‎‏‎‎‎‏‎‏‏‏‏‏‏‎‏‎‎‎‎‏‎‎‏‎Premium SMS may cost you money and will add up to your carrier bills. If you enable permission for an app, you will be able to send premium SMS using that app.‎‏‎‎‏‎"</string>
     <string name="usage_access_title" msgid="7153427122072303254">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‏‎‎‎‏‏‎‎‎‎‏‎‏‎‎‎‎‎‏‎‎‎‏‎‎‏‎‏‎‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‏‏‎‏‎‎‏‎‏‏‎‎Usage access‎‏‎‎‏‎"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‏‎‎‎‎‏‎‏‎‏‎‎‎‏‎‎‏‏‎‎‏‏‎‏‏‎‎‎‏‏‏‏‏‎‏‎‎‎‏‏‏‏‎‎Usage access allows an app to track what other apps you’re using and how often, as well as your carrier, language settings, and other details.‎‏‎‎‏‎"</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‎‎‏‎‏‏‎‎‏‏‎‏‎‏‎‏‎‏‏‎‎‏‏‎‏‎‎‏‏‎‏‏‏‏‏‏‎‎‏‏‏‎‎‏‎‎‏‎‎‎‏‎‎‎Directory access‎‏‎‎‏‎"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‎‏‎‏‎‏‎‏‎‏‏‏‎‎‏‏‎‏‏‎‎‎‏‎‎‏‎‏‏‎‏‏‎‏‏‎‏‎‎‏‏‏‏‏‏‎‎‏‏‏‏‎‏‏‎‎‎‏‎‎‏‏‎<xliff:g id="VOLUME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ (‎‏‎‎‏‏‎<xliff:g id="DIRECTORY">%2$s</xliff:g>‎‏‎‎‏‏‏‎)‎‏‎‎‏‎"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‎‎‏‏‎‏‏‏‏‎‏‎‎‏‎‎‎‏‎‎‎‏‎‎‏‏‏‏‎‎‎‎‏‎‏‎‏‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎Wi-Fi control‎‏‎‎‏‎"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‎‏‎‎‎‎‏‎‎‏‏‏‏‎‏‏‎‏‏‏‎‎‎‎‏‎‎‎‎‎‏‏‏‎‏‏‎‏‎Wi-Fi control allows an app to turn Wi-Fi on or off, scan and connect to Wi-Fi networks, add or remove networks, or start a local-only hotspot.‎‏‎‎‏‎"</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‎‏‎‏‎‎‏‎‎‏‏‏‎‎‎‏‎‏‎‎‏‎‎‏‎‎‏‏‏‎‏‏‎‎‏‎‏‏‎‏‏‏‏‎‏‎‎‏‎‏‎‎‎‏‏‎‏‎‎‏‏‎More‎‏‎‎‏‎"</string>
     <string name="location_settings_title" msgid="901334356682423679">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‎‏‎‎‎‎‎‏‎‎‎‏‎‏‏‏‎‏‏‎‏‎‎‏‎‎‏‏‎‏‎‎‏‏‏‏‎‏‎‎‏‎‎‏‏‏‏‎‏‎‏‏‏‏‏‏‏‎Location‎‏‎‎‏‎"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‎‎‏‎‎‎‎‎‎‏‏‏‎‎‎‏‏‎‏‏‎‎‏‏‎‎‏‏‎‏‏‏‏‏‏‏‎‎‏‏‏‎‏‏‎‏‏‎‏‎‎‎‏‎‎‎Recent Location Requests‎‏‎‎‏‎"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‎‏‏‎‏‎‎‏‏‏‎‏‎‎‏‏‏‎‏‏‎‏‏‏‎‎‎‎‏‏‏‏‏‎‏‎‏‎‎‏‎‎‎‎‏‎‏‎‎‏‏‏‏‎‎No recent location requests‎‏‎‎‏‎"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‎‎‎‎‎‏‏‏‎‏‎‎‎‎‎‏‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‎‏‎‎‏‎‎‏‎‏‎‎‎‏‎‏‏‎‎Allow apps and services to scan for nearby devices at any time, even when Bluetooth is off. This can be used, for example, to improve location-based features and services.‎‏‎‎‏‎"</string>
     <string name="system_setting_title" msgid="6864599341809463440">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‎‏‏‏‎‏‏‎‎‏‎‏‏‎‏‏‏‏‎‏‏‏‎‏‏‏‏‎‎‎‎‏‎‎‏‎‎‎‎‎System‎‏‎‎‏‎"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‏‏‏‏‎‏‏‎‏‎‏‎‎‏‎‎‎‏‎‎‎‏‎‏‏‎‏‎‏‏‎‎‏‏‏‎‎‏‏‏‎‎‎‎‎‏‏‎‎‏‏‏‎System updates‎‏‎‎‏‎"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‎‎‎‏‏‏‏‏‎‎‎‎‎‎‎‏‎‏‎‏‏‎‏‎‏‎‏‏‎‏‏‏‏‎‏‎‏‎‎Unavailable‎‏‎‎‏‎"</string>
     <string name="firmware_version" msgid="8491753744549309333">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‏‏‎‎‎‏‏‎‎‎‏‎‏‎‎‎‎‏‎‏‎‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‏‎‏‏‏‎‎‏‎‏‎‏‎Android version‎‏‎‎‏‎"</string>
     <string name="security_patch" msgid="4794276590178386903">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‎‎‏‎‎‎‏‎‏‏‎‎‎‏‎‎‏‎‏‎‎‎‎‏‎‏‏‎‎‎‏‎‎‎‏‏‎‏‏‏‎‎‎‎‏‏‏‏‎‏‎‏‏‏‎Android security patch level‎‏‎‎‏‎"</string>
     <string name="model_info" msgid="4966408071657934452">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‎‎‏‏‏‎‏‎‎‏‏‏‏‏‏‏‎‎‎‏‏‎‎‏‏‎‏‏‏‎‎‏‏‏‎‎‏‏‏‎‏‎‎‎Model‎‏‎‎‏‎"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‎‏‏‏‏‎‏‏‏‏‏‎‏‎‏‎‏‎‏‏‏‏‎‏‎‎‏‏‏‏‏‎‏‏‏‎‏‎‏‎‎‏‏‎‏‏‎‏‏‎‏‎‎‎Kernel version‎‏‎‎‏‎"</string>
     <string name="build_number" msgid="3997326631001009102">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‏‏‎‏‏‏‏‎‎‏‎‏‎‏‏‎‏‏‎‏‏‎‎‏‎‎‎‏‏‎‎‏‎‎‎‎‎‎‎‏‏‎‎‎‏‎‏‎‏‏‏‏‎‎‏‏‏‎‎Build number‎‏‎‎‏‎"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‎‏‎‏‏‏‏‎‎‏‏‎‎‎‏‏‎‏‎‎‏‏‏‏‎‎‏‎‎‏‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‎‎‎‎‏‎‎‎‎Bluetooth address‎‏‎‎‏‎"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‏‎‏‎‎‏‏‎‎‏‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‎‎‎‏‏‎‎‎‎‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‎‏‎‏‎‏‎‏‎Wi-Fi MAC Address‎‏‎‎‏‎"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‏‎‎‎‏‎‏‎‏‎‎‎‏‎‎‏‎‏‏‏‎‎‏‎‎‎‏‏‏‎‎‎‏‏‎‎‎‎‏‏‏‎‏‏‎‎‏‏‏‏‎‎‎‏‏‏‏‎Not available‎‏‎‎‏‎"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‎‎‏‎‏‎‏‎‏‏‏‎‏‏‏‏‏‏‎‎‎‎‎‎‎‎‏‏‎‎‏‏‎‏‎‎‏‏‎‏‏‏‏‎‏‎‎‏‏‎‏‎‎‎‏‎‎‎‎Status‎‏‎‎‏‎"</string>
     <string name="device_status" msgid="267298179806290920">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‎‏‎‏‏‏‎‏‏‎‏‎‏‏‎‏‎‎‎‏‎‎‏‎‎‎‏‏‏‎‏‎‎‎‎‎‎‎‏‏‏‎‏‏‎‎‏‏‎‎‎‏‏‏‏‏‎‏‎‎‎‎Status‎‏‎‎‏‎"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‎‎‎‏‎‎‎‏‎‎‏‏‏‏‎‎‏‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‎‎‏‎‎‎‏‎‎‎‏‏‎‏‏‏‎‏‎‎‎‎‏‏‎‎‎‎Ascending, descending, or repeated sequence of digits isn\'t allowed.‎‏‎‎‏‎"</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‎‎‏‎‏‎‎‏‎‎‏‏‎‏‎‎‏‎‎‎‏‎‏‎‎‏‎‎‏‏‎‎‏‎‏‏‏‎‏‎‎‏‎‏‎‏‎‎‏‏‎‏‎‎‎‎‎‎Screen lock options‎‏‎‎‏‎"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‎‎‏‏‏‎‎‏‎‏‏‏‏‏‎‎‏‎‏‏‎‎‎‎‏‎‏‎‏‏‎‏‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‎‏‎‎‎‏‎‎‏‏‎<xliff:g id="FINGERPRINT">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎<xliff:g id="DATE">%2$s</xliff:g>‎‏‎‎‏‏‏‎ : ‎‏‎‎‏‏‎<xliff:g id="NUM_DAYS">%3$s</xliff:g>‎‏‎‎‏‏‏‎ days ago‎‏‎‎‏‎"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‏‏‎‎‎‎‏‎‎‎‏‎‎‎‎‎‏‎‎‏‎‏‎‎‏‏‎‏‏‎‎‎‎‎‎‎‎‎‎‎‏‏‎‏‏‏‏‏‏‎‎‎‎Add trusted device‎‏‎‎‏‎"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‎‏‎‏‏‎‎‏‎‎‏‎‎‏‏‏‏‎‏‏‏‏‏‎‏‏‎‏‎‏‏‏‎‎‏‏‏‏‎‏‏‎‎Bluetooth will turn on to add trusted device‎‏‎‎‏‎"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‎‎‏‏‏‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‎‎‏‏‏‎‎‎‏‎‏‏‎‎‎‏‏‎‏‏‎‎‎‏‎‎‏‏‎Trusted devices‎‏‎‎‏‎"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‎‏‏‏‏‎‎‏‏‎‏‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‎‎‎‎‏‏‏‎‎‎‎‎‏‎‏‎‎‎‏‏‎‎‏‎‏‏‏‎‎‎‏‎‎‏‎‎‏‏‎<xliff:g id="COUNT_1">%d</xliff:g>‎‏‎‎‏‏‏‎ devices‎‏‎‎‏‎</item>
+      <item quantity="one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‎‏‏‏‏‎‎‏‏‎‏‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‎‎‎‎‏‏‏‎‎‎‎‎‏‎‏‎‎‎‏‏‎‎‏‎‏‏‏‎‎‎‏‎‎‏‎‎‏‏‎<xliff:g id="COUNT_0">%d</xliff:g>‎‏‎‎‏‏‏‎ device‎‏‎‎‏‎</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‎‎‏‎‏‎‏‎‎‎‏‏‎‎‎‏‎‎‏‎‏‏‎‏‎‏‏‎‏‎‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎Your ‎‏‎‎‏‏‎<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g>‎‏‎‎‏‏‏‎ will unlock this car when it\'s connected. If someone takes your ‎‏‎‎‏‏‎<xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>‎‏‎‎‏‏‏‎, they may be able to access this device‎‏‎‎‏‎"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‎‎‏‏‎‏‏‎‏‎‏‏‏‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‏‎‎‏‎‏‎‎‏‎‏‏‎‎‎‏‎‏‎‎‏‏‏‎‎‎Confirm‎‏‎‎‏‎"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‏‏‎‏‏‏‎‏‎‏‏‎‏‏‎‏‎‎‏‎‏‏‎‏‎‏‎‏‎‏‏‏‎‏‎‎‎‏‎‏‎‎‏‏‎‎‎‏‏‏‏‏‎‎‎Remove trusted device‎‏‎‎‏‎"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‎‏‎‏‏‏‏‏‎‏‏‎‏‎‎‎‎‏‏‏‎‎‎‏‎‎‏‏‎‎‎‎‏‎‎‏‏‏‎‏‎‎‎‎‎‎‎‏‎‎‎‎‎Done‎‏‎‎‏‎"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎‏‏‎‎‎‏‎‏‏‏‏‏‎‎‏‏‎‏‏‎‏‎‏‏‎‎‎‏‎‏‎‏‏‎‎‏‏‎‎‎‏‎‎‎‏‎‎‎‏‎Use the companion app to set up a trusted device. Once set up, your user profile will unlock automatically when your phone is detected near the vehicle.‎‏‎‎‏‎"</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‎‏‏‏‏‏‎‎‏‎‎‏‏‏‏‎‎‎‎‎‎‎‏‎‏‎‎‏‎‎‏‎‎‎‎‎‎‎‏‎‏‏‏‎‎‏‏‏‎‎‎‏‏‏‏‎1. Download the companion app on your phone‎‏‎‎‏‎"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‎‏‎‏‎‏‏‎‎‎‎‏‎‏‎‏‎‎‏‎‏‎‎‎‎‎‎‏‎‏‏‎‏‎‏‏‏‎‏‎‏‏‎‏‎‎‏‏‏‎‏‏‎‎‏‎‏‎‎‏‏‎2. Select ‎‏‎‎‏‏‎<xliff:g id="CAR_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ on your phone to pair the devices‎‏‎‎‏‎"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‎‏‎‎‏‏‏‎‎‎‎‏‎‎‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‎‎‎‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‏‏‎‏‎‏‏‎‎‎‏‎A trusted device nearby your car will unlock the user profile upon ignition, even if someone else is holding the device.‎‏‎‎‏‎"</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‏‏‏‏‎‎‏‎‎‏‎‎‏‏‏‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎‏‎‎‏‏‎‏‎‏‎‏‏‎‏‏‎‎‏‎‎‏‎Please confirm that the pairing codes match‎‏‎‎‏‎"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‏‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‏‏‎‎‏‎‏‎‎‎‎‏‏‎‎‎‎‏‎‎‏‏‏‏‎‏‎‏‎‎‎‎‏‎‎‏‎‎‏‏‎Phone has been enrolled successfully‎‏‎‎‏‎"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‏‎‎‎‏‏‎‎‏‎‏‎‎‎‎‏‎‎‏‏‎‏‎‏‎‏‎‏‎‎‏‏‏‎‎‎‎‏‎‎‎‎‏‏‏‎‎‎‎‎‎‏‎‎‎‎‏‎‎‏‏‎<xliff:g id="DEVICE_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ enrollment failed‎‏‎‎‏‎"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‏‎‏‎‎‎‏‎‎‎‎‏‎‎‎‎‏‏‏‎‎‎‏‏‏‏‎‎‏‎‎‎‏‏‎‏‎‏‎‎‏‏‏‏‎‏‏‎‏‎‏‎‏‎‎‎‎‏‎Adding a trusted device requires you to set an authentication method next. If you do not have your trusted device with you, authentication will be required to access your profile.‎‏‎‎‏‎"</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‏‏‎‏‎‎‎‏‏‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‏‎‏‏‎‎‎‎‎‎‏‏‏‎‏‏‏‏‏‎‎‎‎‏‏‏‏‏‏‏‎Device disconnected.‎‏‎‎‏‎"</string>
     <string name="forget" msgid="3971143908183848527">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‏‏‎‎‎‏‏‏‎‎‎‏‎‏‎‏‏‎‎‏‎‏‏‎‎‎‎‎‏‎‏‏‏‏‎‏‎‎‎‎‎‏‎‎‏‏‎‏‏‎‎‏‎‎‏‏‏‏‎Forget‎‏‎‎‏‎"</string>
     <string name="connect" msgid="5861699594602380150">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‎‏‏‎‎‎‏‏‏‏‎‎‎‎‏‎‏‏‏‎‎‏‏‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‎‏‏‏‏‎‏‏‎‏‏‏‎‏‏‎‎Connect‎‏‎‎‏‎"</string>
     <string name="disconnect" msgid="6140789953324820336">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‏‏‏‎‎‎‎‏‏‏‎‏‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‎‎‎‎‎‏‏‎‏‏‎‏‎‏‎‎‏‏‏‎‏‏‏‎‎‎‎‎Disconnect‎‏‎‎‏‎"</string>
diff --git a/res/values-es-rUS/arrays.xml b/res/values-es-rUS/arrays.xml
new file mode 100644
index 0000000..1ee6785
--- /dev/null
+++ b/res/values-es-rUS/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Preguntar"</item>
+    <item msgid="933409503308401889">"No permitir nunca"</item>
+    <item msgid="1154273129608299386">"Permitir siempre"</item>
+  </string-array>
+</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 2d7b8bf..1056d8c 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Modo nocturno"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Internet y red"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Red móvil"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Activo/SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Inactivo/SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Activo/SIM descargada"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Inactivo/SIM descargada"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Agregar más"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Datos móviles"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Acceder a los datos mediante la red móvil"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"¿Desactivar los datos móviles?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Debes seleccionar una opción"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"¿Usar <xliff:g id="CARRIER">%1$s</xliff:g> para datos móviles?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Estás usando <xliff:g id="CARRIER2_0">%2$s</xliff:g> para datos móviles. Si cambias a <xliff:g id="CARRIER1">%1$s</xliff:g>, ya no se utilizará <xliff:g id="CARRIER2_1">%2$s</xliff:g> para los datos móviles."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Usar <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roaming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Conectarse a servicios de datos en roaming"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"¿Permitir el roaming de datos?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Es posible que incurras en gastos importantes."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Uso de datos"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Datos principales"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Datos usados: <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"SMS Premium podría implicar cargos en la factura de tu proveedor. Si otorgaste permiso a alguna app, podrás enviar SMS premium con ella."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Acceso de uso"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"El acceso a los datos de uso permite que una app controle qué otras apps usas y con qué frecuencia, así como el operador, la configuración de idioma y otros detalles."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Acceso al directorio"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Control de Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Control de Wi-Fi permite que esta app active o desactive la conexión Wi-Fi, busque redes Wi-Fi y se conecte a ellas, agregue o quite redes, o inicie un hotspot de acceso local exclusivo."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Más"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Ubicación"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Solicitudes de ubicación recientes"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"No hay solicitudes de ubicación recientes"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Permite que apps y servicios busquen dispositivos cercanos en cualquier momento, aunque la conexión Bluetooth esté desactivada. Puede usarse, por ejemplo, para mejorar las funciones y los servicios basados en la ubicación."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Sistema"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Actualizaciones del sistema"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"No disponible"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Versión de Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"Parche de seguridad de Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Modelo"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Versión de kernel"</string>
     <string name="build_number" msgid="3997326631001009102">"Número de compilación"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Dirección de Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Dirección MAC de Wi-Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"No disponible"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Estado"</string>
     <string name="device_status" msgid="267298179806290920">"Estado"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"No se permiten secuencias de dígitos ascendentes, descendentes ni repetidas."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Opciones de bloqueo de pantalla"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> (hace <xliff:g id="NUM_DAYS">%3$s</xliff:g> días)"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Agregar disp. de confianza"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Se activará Bluetooth para agregar disp. confianza"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Disp. de confianza"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> dispositivos</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> dispositivo</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Tu <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> desbloqueará este vehículo cuando esté conectado. Si otra persona toma tu <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, es posible que pueda acceder a este dispositivo"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Confirmar"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Quitar dispositivo de confianza"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Listo"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Usa la aplicación complementaria para configurar un dispositivo de confianza. Una vez que lo hagas, tu perfil de usuario se desbloqueará automáticamente cuando se detecte que tu teléfono está cerca del vehículo."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Descarga la aplicación complementaria en el teléfono."</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Selecciona <xliff:g id="CAR_NAME">%1$s</xliff:g> en el teléfono para sincronizar los dispositivos."</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Un dispositivo de confianza cercano desbloqueará el perfil de usuario cuando enciendas tu vehículo, incluso aunque lo sostenga otra persona."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Confirma que coinciden los códigos de sincronización"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Se inscribió correctamente el teléfono"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Se ha producido un error al registrar <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Después de agregar un dispositivo de confianza, deberás establecer un método de autenticación. Ese método te permitirá acceder a tu perfil cuando no lleves contigo el dispositivo de confianza."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Se desconectó el dispositivo."</string>
     <string name="forget" msgid="3971143908183848527">"Olvidar"</string>
     <string name="connect" msgid="5861699594602380150">"Conectar"</string>
     <string name="disconnect" msgid="6140789953324820336">"Desconectar"</string>
diff --git a/res/values-es/arrays.xml b/res/values-es/arrays.xml
new file mode 100644
index 0000000..1ee6785
--- /dev/null
+++ b/res/values-es/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Preguntar"</item>
+    <item msgid="933409503308401889">"No permitir nunca"</item>
+    <item msgid="1154273129608299386">"Permitir siempre"</item>
+  </string-array>
+</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index d2bebd2..bc72cf9 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Modo nocturno"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Redes e Internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Red móvil"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> tarjetas SIM</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> tarjeta SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Activo/SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Inactivo/SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Activo/SIM descargada"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Inactivo/SIM descargada"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Añadir más"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Datos móviles"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Acceder a los datos con la red móvil"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"¿Desactivar los datos móviles?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Debes seleccionar una opción"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"¿Usar <xliff:g id="CARRIER">%1$s</xliff:g> para los datos móviles?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Estás utilizando <xliff:g id="CARRIER2_0">%2$s</xliff:g> para los datos móviles. Si cambias a <xliff:g id="CARRIER1">%1$s</xliff:g>, no se utilizará más a <xliff:g id="CARRIER2_1">%2$s</xliff:g> para los datos móviles."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Utilizar <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Itinerancia"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Conectarse a servicios de datos en itinerancia"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"¿Quieres permitir la itinerancia de datos?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"El coste de este servicio puede ser significativo."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Uso de datos"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Datos principales"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Datos usados: <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -305,7 +322,7 @@
     <string name="app_link_open_ask" msgid="7242075065136237456">"Preguntar siempre"</string>
     <string name="app_link_open_never" msgid="2173174327831792316">"No abrir en esta aplicación"</string>
     <string name="app_launch_supported_domain_urls_title" msgid="7345116365785981158">"Enlaces compatibles"</string>
-    <string name="special_access" msgid="5730278220917123811">"Acceso especial de aplicaciones"</string>
+    <string name="special_access" msgid="5730278220917123811">"Acceso especial de apps"</string>
     <string name="show_system" msgid="4401355756969485287">"Mostrar apps del sistema"</string>
     <string name="hide_system" msgid="8845453295584638040">"Ocultar apps del sistema"</string>
     <string name="modify_system_settings_title" msgid="4596320571562433972">"Modificar ajustes del sistema"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Es posible que el envío de SMS premium te cueste dinero y el importe correspondiente se sume a las facturas de tu operador. Si habilitas el permiso para una aplicación, puedes enviar SMS premium con ella."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Acceso a datos de uso"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"El acceso a los datos de uso permite que una aplicación controle qué otras aplicaciones utilizas y con qué frecuencia, así como tu operador, los ajustes de idioma y otros detalles."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Acceso al directorio"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Control de la conexión Wi‑Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"El control de la conexión Wi‑Fi permite que una aplicación active o desactive la red Wi‑Fi, busque redes inalámbricas y se conecte a ellas, añada o quite redes o inicie un punto de acceso local."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Más"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Ubicación"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Solicitudes de ubicación recientes"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Ninguna solicitud de ubicación reciente"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Permite que las aplicaciones y los servicios busquen dispositivos cercanos en cualquier momento aunque la conexión Bluetooth esté desactivada. Se utiliza, por ejemplo, para mejorar los servicios y funciones basados en la ubicación."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Sistema"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Actualizaciones del sistema"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"No disponible"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Versión de Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"Nivel del parche de seguridad de Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Modelo"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Versión de kernel"</string>
     <string name="build_number" msgid="3997326631001009102">"Número de compilación"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Dirección de Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Dirección MAC de la red Wi‑Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"No disponible"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Estado"</string>
     <string name="device_status" msgid="267298179806290920">"Estado"</string>
@@ -515,7 +529,7 @@
 %1$s</xliff:g>)"</string>
     <string name="sync_button_sync_now" msgid="5767643057970371315">"Sincronizar"</string>
     <string name="sync_button_sync_cancel" msgid="7739510554513641393">"Cancelar sincronización"</string>
-    <string name="sync_is_failing" msgid="5766255460901806206">"En este momento hay problemas con la sincronización. Se restablecerá en breve."</string>
+    <string name="sync_is_failing" msgid="5766255460901806206">"No se puede sincronizar el dispositivo en este momento. Se restablecerá en breve."</string>
     <string name="security_settings_title" msgid="6955331714774709746">"Seguridad"</string>
     <string name="security_settings_subtitle" msgid="2244635550239273229">"Bloqueo de pantalla"</string>
     <string name="security_lock_none" msgid="1054645093754839638">"Ninguno"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"No se permite utilizar una secuencia ascendente, descendente ni repetida de dígitos."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Opciones de bloqueo de pantalla"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : hace <xliff:g id="NUM_DAYS">%3$s</xliff:g> días"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Añadir dispositivo de confianza"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Se activará Bluetooth para añadir disp. confianza"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Dispositivos de confianza"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> dispositivos</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> dispositivo</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Tu <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> desbloqueará este coche cuando esté conectado. Si alguien coge tu <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, es posible que pueda acceder a este dispositivo"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Confirmar"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Quitar dispositivo de confianza"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Listo"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Usa la aplicación complementaria para configurar un dispositivo de confianza. Una vez que lo hagas, tu perfil de usuario se desbloqueará automáticamente cuando el teléfono se detecte cerca del vehículo."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Descarga la aplicación complementaria en el teléfono"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Selecciona <xliff:g id="CAR_NAME">%1$s</xliff:g> en el teléfono para vincular los dispositivos"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Es posible que un dispositivo de confianza que se encuentre cerca pueda desbloquear el perfil del usuario al arrancar el coche, aunque lo esté sujetando otra persona."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Confirma que los códigos de sincronización coinciden"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"El teléfono se ha registrado correctamente"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> no se ha podido registrar"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Para añadir un dispositivo de confianza, debes definir un método de autenticación. Si no tienes el dispositivo de confianza a mano, tendrás que realizar el proceso de autenticación para acceder a tu perfil."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"El dispositivo se ha desconectado."</string>
     <string name="forget" msgid="3971143908183848527">"Olvidar"</string>
     <string name="connect" msgid="5861699594602380150">"Conectar"</string>
     <string name="disconnect" msgid="6140789953324820336">"Desconectar"</string>
diff --git a/res/values-et/arrays.xml b/res/values-et/arrays.xml
new file mode 100644
index 0000000..3887b75
--- /dev/null
+++ b/res/values-et/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Küsi"</item>
+    <item msgid="933409503308401889">"Ära luba kunagi"</item>
+    <item msgid="1154273129608299386">"Luba alati"</item>
+  </string-array>
+</resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index b01edbd..8e6af32 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Öörežiim"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Võrk ja Internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mobiilsidevõrk"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-kaarti</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM-kaart</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Aktiivne / SIM-kaart"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Inaktiivne / SIM-kaart"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Aktiivne / allalaaditud SIM-kaart"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Inaktiivne / allalaaditud SIM-kaart"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Lisage rohkem"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Mobiilne andmeside"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Andmesideühendus mobiilsidevõrgu abil"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Kas lülitada mobiilne andmeside välja?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Valik on nõutav"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Kas kasutada op. <xliff:g id="CARRIER">%1$s</xliff:g> andmesidet?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Kasutate operaatori <xliff:g id="CARRIER2_0">%2$s</xliff:g> mobiilset andmesidet. Kui aktiveerite operaatori <xliff:g id="CARRIER1">%1$s</xliff:g>, ei kasutata enam operaatori <xliff:g id="CARRIER2_1">%2$s</xliff:g> mobiilset andmesidet."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Kasuta operaatorit <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Rändlus"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Ühenda rändluse ajal andmesideteenustega"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Kas lubada andmesiderändlus?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Lisanduda võivad suured tasud."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Andmekasutus"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Peamine andmeside"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Kasutatud on <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Tasuliste SMS-ide saatmisel võidakse teilt nõuda tasu, mis lisatakse operaatori esitatud arvele. Kui annate rakendusele loa, on teil selle rakenduse abil võimalik tasulisi SMS-e saata."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Juurdepääs kasutusele"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Juurdepääs kasutusele võimaldab rakendusel jälgida, milliseid teisi rakendusi (ning kui sageli), operaatorit ja keeleseadeid kasutate, ning vaadata teisi üksikasju."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Juurdepääs kaustale"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"WiFi-seadete juhtimine"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"WiFi-seadete juhtimine lubab rakendusel WiFi sisse või välja lülitada, WiFi-võrke otsida ja nendega ühenduse luua, võrke lisada või eemaldada või kohaliku kuumkoha luua."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Rohkem"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Asukoht"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Hiljutised asukohapäringud"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Ühtegi hiljutist asukohapäringut pole"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Lubage rakendustel ja teenustel alati otsida läheduses olevaid seadmeid isegi siis, kui Bluetooth on väljas. Seda saab kasutada näiteks asukohapõhiste funktsioonide ja teenuste täiustamiseks."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Süsteem"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Süsteemivärskendused"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Pole saadaval"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Androidi versioon"</string>
     <string name="security_patch" msgid="4794276590178386903">"Androidi turvapaiga tase"</string>
     <string name="model_info" msgid="4966408071657934452">"Mudel"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Tuuma versioon"</string>
     <string name="build_number" msgid="3997326631001009102">"Järgunumber"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetoothi aadress"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"WiFi MAC-aadress"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Pole saadaval"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Olek"</string>
     <string name="device_status" msgid="267298179806290920">"Olek"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Kasvavad, kahanevad või korduvad numbrijadad on keelatud."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Ekraaniluku valikud"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> päeva tagasi"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Lisa usaldusväärne seade"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth lülit. usaldusväärse seadme lisam. sisse"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Usaldusv. seadmed"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> seadet</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> seade</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Teie <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> avab selle auto, kui need on omavahel ühendatud. Kui keegi võtab teie telefoni <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, on tal võimalik sellele seadmele juurde pääseda"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Kinnita"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Eemalda usaldusväärne seade"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Valmis"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Kasutage usaldusväärse seadme seadistamiseks kaasrakendust. Kui see on seadistatud, avaneb teie kasutajaprofiil automaatselt, kui sõiduki läheduses tuvastatakse teie telefon."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Laadige oma telefonis alla kaasrakendus."</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Tehke seadmete sidumiseks oma telefonis valik <xliff:g id="CAR_NAME">%1$s</xliff:g>."</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Teie auto läheduses olev usaldusväärne seade avab käivitamisel kasutajaprofiili ka siis, kui seade on kellelgi teise käes."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Veenduge, et sidumiskoodid ühtiksid"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Telefoni registreerimine õnnestus"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Seadme <xliff:g id="DEVICE_NAME">%1$s</xliff:g> registreerimine ebaõnnestus"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Usaldusväärse seadme lisamiseks peate hiljem määrama autentimismeetodi. Kui usaldusväärne seade pole teie käes, nõutakse teie profiilile juurdepääsemiseks autentimist."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Seadme ühendus on katkestatud."</string>
     <string name="forget" msgid="3971143908183848527">"Unusta"</string>
     <string name="connect" msgid="5861699594602380150">"Ühenda"</string>
     <string name="disconnect" msgid="6140789953324820336">"Katkesta  ühendus"</string>
diff --git a/res/values-eu/arrays.xml b/res/values-eu/arrays.xml
new file mode 100644
index 0000000..0df0a60
--- /dev/null
+++ b/res/values-eu/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Galdetu"</item>
+    <item msgid="933409503308401889">"Ukatu beti"</item>
+    <item msgid="1154273129608299386">"Baimendu beti"</item>
+  </string-array>
+</resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index d840cc0..68074f1 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Gau modua"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Sareak eta Internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Sare mugikorra"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM txartel</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM txartel</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Aktibo / SIM txartela"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Inaktibo / SIM txartela"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Aktibo / Deskargatutako SIM txartela"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Inaktibo / Deskargatutako SIM txartela"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Gehitu beste batzuk"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Datu-konexioa"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Atzitu datuak datu-konexioaren bidez"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Datu-konexioa desaktibatu nahi duzu?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Hautatu egin behar da"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"<xliff:g id="CARRIER">%1$s</xliff:g> erabili nahi duzu datu-konexiorako?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"<xliff:g id="CARRIER2_0">%2$s</xliff:g> erabiltzen duzu datu-konexiorako. <xliff:g id="CARRIER1">%1$s</xliff:g> operadorea ezarriz gero, aurrerantzean ez da erabiliko <xliff:g id="CARRIER2_1">%2$s</xliff:g> datu-konexiorako."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Erabili <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Ibiltaritza"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Konektatu datu-zerbitzuetara ibiltaritzan"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Datu-ibiltaritza erabiltzeko baimena eman nahi duzu?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Baliteke kostu handiak ordaindu behar izatea."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Datuen erabilera"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Datu nagusiak"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> erabilita"</string>
@@ -312,20 +329,17 @@
     <string name="modify_system_settings_description" msgid="5295023124419592452">"Baimen honekin, sistemaren ezarpenak alda ditzakete aplikazioek."</string>
     <string name="notification_access_title" msgid="1467340098885813473">"Jakinarazpenetarako sarbidea"</string>
     <string name="notification_listener_security_warning_title" msgid="2893273335175140895">"<xliff:g id="SERVICE">%1$s</xliff:g> zerbitzuari jakinarazpenetarako sarbidea eman nahi diozu?"</string>
-    <string name="notification_listener_security_warning_summary" msgid="7280197998063498125">"<xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> aplikazioak jakinarazpen guztiak irakurri ahal izango ditu, informazio pertsonala (adibidez, kontaktuen izenak eta jasotako testu-mezuak) dutenak barne. Horrez gain, jakinarazpenak baztertu eta haietako ekintza-botoiak abiarazi ahal izango ditu.\n\nGainera, ez molestatzeko modua aktibatzeko eta desaktibatzeko aukera izango du aplikazioak, baita horrekin erlazionatutako ezarpenak aldatzekoa ere."</string>
-    <string name="notification_listener_revoke_warning_summary" msgid="4904973394539125407">"<xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> aplikazioari jakinarazpenak atzitzeko aukera desaktibatzen badiozu, baliteke ez molestatzeko modurako sarbidea era desaktibatzea."</string>
+    <string name="notification_listener_security_warning_summary" msgid="7280197998063498125">"<xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> aplikazioak jakinarazpen guztiak irakurri ahal izango ditu, informazio pertsonala (adibidez, kontaktuen izenak eta jasotako testu-mezuak) dutenak barne. Horrez gain, jakinarazpenak baztertu eta haietako ekintza-botoiak abiarazi ahal izango ditu.\n\nGainera, Ez molestatu modua aktibatzeko eta desaktibatzeko aukera izango du aplikazioak, baita horrekin erlazionatutako ezarpenak aldatzekoa ere."</string>
+    <string name="notification_listener_revoke_warning_summary" msgid="4904973394539125407">"<xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> aplikazioari jakinarazpenak atzitzeko aukera desaktibatzen badiozu, baliteke Ez molestatu modurako sarbidea era desaktibatzea."</string>
     <string name="notification_listener_revoke_warning_confirm" msgid="2759583507454984812">"Desaktibatu"</string>
     <string name="notification_listener_revoke_warning_cancel" msgid="4399941651358241154">"Utzi"</string>
     <string name="premium_sms_access_title" msgid="1409118461646148686">"Premium SMSetarako sarbidea"</string>
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Premium SMSak ordaindu egin behar izan ditzakezu eta, hala bada, operadorearen fakturan gehituko da haien kostua. Aplikazioei baimen hau ematen badiezu, premium SMSak bidaltzeko gai izango dira."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Erabilera-datuetarako sarbidea"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Erabilera-datuek zer beste aplikazio eta zer maiztasunekin erabiltzen dituzun jakiteko baimena ematen die aplikazioei, baita zer operadore duzun, zer hizkuntza-ezarpen dituzun eta beste xehetasun batzuk ere."</string>
-    <!-- no translation found for directory_access_title (7117264853202268740) -->
-    <skip />
-    <!-- no translation found for directory_on_volume (4947971311247097078) -->
-    <skip />
     <string name="wifi_control_title" msgid="5660436566907731929">"Wifi-konexioa kontrolatzea"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Wifia kontrolatzeko baimenarekin, aplikazioak hauek egin ditzake: wifi-konexioa aktibatu edo desaktibatu, wifi-sareak bilatu eta haietara konektatu, sareak gehitu edo kendu, edota sare publiko lokalak sortu."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Gehiago"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Kokapena"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Azken kokapen-eskaerak"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Ez da egin kokapen-eskaerarik azkenaldian"</string>
@@ -338,8 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Eman inguruko gailuak edozein unetan bilatzeko baimena aplikazioei eta zerbitzuei, baita Bluetooth konexioa desaktibatuta dagoenean ere. Kokapenean oinarritutako eginbideak eta zerbitzuak hobetzeko erabil daiteke hori, besteak beste."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Sistema"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Sistemaren eguneratzeak"</string>
-    <!-- no translation found for status_unavailable (3737918179898732010) -->
-    <skip />
     <string name="firmware_version" msgid="8491753744549309333">"Android bertsioa"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android segurtasun-adabakiaren maila"</string>
     <string name="model_info" msgid="4966408071657934452">"Modeloa"</string>
@@ -347,8 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Kernel bertsioa"</string>
     <string name="build_number" msgid="3997326631001009102">"Konpilazio-zenbakia"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth helbidea"</string>
-    <!-- no translation found for about_wifi_mac_address (3934228440550548053) -->
-    <skip />
     <string name="device_info_not_available" msgid="2095601973977376655">"Ez dago erabilgarri"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Egoera"</string>
     <string name="device_status" msgid="267298179806290920">"Egoera"</string>
@@ -610,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Ezin da erabili goranzko, beheranzko edo errepikatutako digitu-sekuentziarik."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Pantaila blokeatzeko aukerak"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g>: duela <xliff:g id="NUM_DAYS">%3$s</xliff:g> egun"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Gehitu gailu fidagarria"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth konexioa aktibatu egingo da gailu fidagarria gehitzeko"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Gailu fidagarriak"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> gailu</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> gailu</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> gailuak autoa desblokeatuko du konektatzen denean. Beste norbaitek <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> autoa hartzen badu, agian gailua atzitu ahal izango du."</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Berretsi"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Kendu gailu fidagarria"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Eginda"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Erabili aplikazio osagarria gailu fidagarri bat konfiguratzeko. Konfiguratu ostean, erabiltzaile-profila automatikoki desblokeatuko da telefonoa hautematen denean ibilgailuaren inguruan."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Deskargatu aplikazio osagarria telefonoan"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Gailuak parekatzeko, hautatu <xliff:g id="CAR_NAME">%1$s</xliff:g> telefonoan"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Autoaren inguruan dagoen gailu fidagarri batek erabiltzailearen profila desblokeatuko du motorra martxan jartzean, baita gailua darabilena zeu ez bazara ere."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Berretsi parekatze-kodeak bat datozela"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Erregistratu da telefonoa"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailuaren harpidetzeak huts egin du"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Gailu fidagarri bat gehitzen baduzu, autentifikazio-metodo bat ezartzea izango da hurrengo urratsa. Ez badaukazu gailu fidagarririk gertu, sistemak autentifikatzeko eskatuko dizu profila atzitzen duzunean."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Gailu deskonektatu egin da."</string>
     <string name="forget" msgid="3971143908183848527">"Ahaztu"</string>
     <string name="connect" msgid="5861699594602380150">"Konektatu"</string>
     <string name="disconnect" msgid="6140789953324820336">"Deskonektatu"</string>
diff --git a/res/values-fa/arrays.xml b/res/values-fa/arrays.xml
new file mode 100644
index 0000000..8a70b92
--- /dev/null
+++ b/res/values-fa/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"سؤال شود"</item>
+    <item msgid="933409503308401889">"همیشه غیرمجاز"</item>
+    <item msgid="1154273129608299386">"همیشه مجاز"</item>
+  </string-array>
+</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 2245a1b..103e542 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"حالت شب"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"شبکه و اینترنت"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"شبکه تلفن همراه"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> سیم‌کارت</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> سیم‌کارت</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"فعال / سیم‌کارت"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"غیرفعال / سیم‌کارت"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"فعال / سیم‌کارت بارگیری‌شده"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"غیرفعال / سیم‌کارت‌ بارگیری‌شده"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"افزودن موارد بیشتر"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"داده تلفن همراه"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"دسترسی به داده‌ها با استفاده از شبکه تلفن همراه"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"داده تلفن همراه خاموش شود؟"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"انتخاب ضروری است"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"استفاده از <xliff:g id="CARRIER">%1$s</xliff:g> برای داده همراه؟"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"برای داده تلفن همراه، از <xliff:g id="CARRIER2_0">%2$s</xliff:g> استفاده می‌کنید. اگر به <xliff:g id="CARRIER1">%1$s</xliff:g> جابه‌جا شوید، دیگر <xliff:g id="CARRIER2_1">%2$s</xliff:g> برای داده تلفن همراه استفاده نمی‌شود."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"استفاده از <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"فراگردی"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"اتصال به سرویس‌های داده هنگام فراگردی"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"رومینگ داده مجاز است؟"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"شاید هزینه زیادی برای شما داشته باشد."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"مصرف داده"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"داده اصلی"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> مصرف شده است"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"ممکن است استفاده از «پیامک ممتاز» برای شما هزینه داشته باشد و مبلغ صورت‌حساب‌های شرکت مخابراتی‌تان را افزایش دهد. اگر مجوز را برای برنامه‌ای فعال کنید، می‌توانید با استفاده از آن برنامه پیامک ممتاز ارسال کنید."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"دسترسی به استفاده"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"دسترسی به میزان استفاده، امکان ردیابی اینکه از چه برنامه‌های دیگری و چند وقت یک‌بار استفاده می‌کنید و همچنین شرکت مخابراتی‌تان، تنظیمات زبان و سایر جزئیات را به برنامه می‌دهد."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"دسترسی به فهرست راهنما"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"کنترل Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"کنترل Wi-Fi به برنامه‌ اجازه می‌دهد Wi-Fi را روشن یا خاموش کند، شبکه‌های Wi-Fi را اسکن کند و به آن‌ها متصل شود، شبکه‌ها را اضافه یا حذف کند یا نقطه اتصالی فقط محلی راه‌اندازی کند."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"بیشتر"</string>
     <string name="location_settings_title" msgid="901334356682423679">"مکان"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"درخواست‌های اخیر مکان"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"درخواست مکان جدیدی وجود ندارد"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"به برنامه‌ها و سرویس‌ها اجازه دهید درهر زمانی (حتی وقتی «بلوتوث» خاموش است) دستگاه‌های اطراف را اسکن کنند. برای مثال این مورد مي‌تواند برای بهبود ویژگی‌ها و سرویس‌های مکان‌مبنا استفاده شود."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"سیستم"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"به‌روزرسانی‌های سیستم"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"دردسترس نیست"</string>
     <string name="firmware_version" msgid="8491753744549309333">"نسخه Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"سطح وصله امنیتی Android"</string>
     <string name="model_info" msgid="4966408071657934452">"مدل"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"نسخهٔ اصلی"</string>
     <string name="build_number" msgid="3997326631001009102">"شمارهٔ ساخت"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"نشانی بلوتوث"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"نشانی Wi-Fi MAC"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"در دسترس نیست"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"وضعیت"</string>
     <string name="device_status" msgid="267298179806290920">"وضعیت"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"ترتیب صعودی، نزولی یا تکراری ارقام مجاز نیست."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"گزینه‌های قفل صفحه"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> روز پیش"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"افزودن دستگاه مطمئن"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"برای اضافه کردن دستگاه مطمئن، بلوتوث روشن خواهد شد"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"دستگاه‌های مطمئن"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> دستگاه</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> دستگاه</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> شما وقتی متصل شود، قفل این خودرو را باز می‌کند. اگر کسی <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> شما را بردارد، ممکن است بتواند به این دستگاه دسترسی پیدا کند"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"تأیید"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"حذف دستگاه مطمئن"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"تمام"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"از برنامه همراه برای راه‌اندازی دستگاه مطمئن استفاده کنید. پس از راه‌اندازی دستگاه مطمئن، وقتی تلفنتان اطراف خودرو شناسایی می‌شود، نمایه کاربری‌تان به‌طور خودکار قفل خودرو را باز می‌کند."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"۱. برنامه همراه را در تلفنتان بارگیری کنید"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"۲. برای مرتبط‌سازی دستگاه‌ها، <xliff:g id="CAR_NAME">%1$s</xliff:g> را در تلفنتان انتخاب کنید"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"اگر دستگاهی مطمئن در اطراف خودروتان وجود داشته باشد، به‌محض روشن شدن خودرو قفل نمایه کاربر باز می‌شود، حتی اگر دستگاه در اختیار فرد دیگری باشد."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"لطفاً تأیید کنید که کدهای مرتبط‌سازی مطابقت دارند"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"تلفن با موفقیت ثبت‌نام شد"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"ثبت‌نام <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ناموفق بود"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"افزودن دستگاه مطمئن مستلزم تنظیم روش احراز هویت در مرحله بعد است. اگر دستگاه مطمئن‌تان را با خود حمل نمی‌کنید، برای دسترسی به نمایه‌تان باید احراز هویت کنید."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"ارتباط دستگاه قطع شد."</string>
     <string name="forget" msgid="3971143908183848527">"فراموش کردن"</string>
     <string name="connect" msgid="5861699594602380150">"اتصال"</string>
     <string name="disconnect" msgid="6140789953324820336">"قطع اتصال"</string>
diff --git a/res/values-fi/arrays.xml b/res/values-fi/arrays.xml
new file mode 100644
index 0000000..c6fe33b
--- /dev/null
+++ b/res/values-fi/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Kysy"</item>
+    <item msgid="933409503308401889">"Älä salli koskaan"</item>
+    <item msgid="1154273129608299386">"Salli aina"</item>
+  </string-array>
+</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 8ed4c68..58f7620 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Yötila"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Verkko ja internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mobiiliverkko"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-korttia</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM-kortti</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Aktiivinen / SIM-kortti"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Ei-aktiivinen / SIM-kortti"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Aktiivinen / Ladattu SIM-kortti"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Ei-aktiivinen / Ladattu SIM-kortti"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Lisää"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Mobiilidata"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Käytä mobiiliverkon dataa"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Poistetaanko mobiilidata käytöstä?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Valinta on pakollinen"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Käytetäänkö mobiilidataa (<xliff:g id="CARRIER">%1$s</xliff:g>)?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Käytät mobiilidataa (<xliff:g id="CARRIER2_0">%2$s</xliff:g>). Jos <xliff:g id="CARRIER1">%1$s</xliff:g> otetaan käyttöön, <xliff:g id="CARRIER2_1">%2$s</xliff:g> ei enää käytä mobiilidataa."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Valitse <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roaming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Yhdistä verkkoon roaming-tilassa."</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Sallitaanko roaming?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Tästä voi seurata huomattavia kuluja."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Datan käyttö"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Ensisijainen datapaketti"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> käytetty"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Premium-tekstiviestien käyttö saattaa olla maksullista, ja kulut lisätään operaattorisi laskuun. Jos annat sovellukselle käyttöoikeuden, voit lähettää premium-tekstiviestejä kyseisellä sovelluksella."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Käyttöoikeus"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Tämä käyttöoikeus antaa sovellukselle luvan seurata, mitä muita sovelluksia käytät ja kuinka usein, sekä nähdä operaattorisi, kieliasetuksesi ja muita tietoja."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Hakemiston käyttöoikeus"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi-hallinta"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Wi-Fi-hallinta antaa sovelluksen asettaa Wi-Fi päälle ja pois päältä, hakea Wi-Fi-verkkoja ja yhdistää niihin, lisätä ja poistaa verkkoja ja käynnistää paikallisen hotspotin."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Lisää"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Sijainti"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Viimeisimmät sijaintipyynnöt"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Ei viimeaikaisia sijaintipyyntöjä"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Salli sovellusten ja palvelujen hakea lähellä olevia laitteita aina, vaikka Bluetooth olisi pois käytöstä. Näin voidaan esimerkiksi kehittää sijaintiin perustuvia ominaisuuksia ja palveluja."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Järjestelmä"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Järjestelmäpäivitykset"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Ei saatavilla"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android-versio"</string>
     <string name="security_patch" msgid="4794276590178386903">"Androidin tietoturvakorjauksen taso"</string>
     <string name="model_info" msgid="4966408071657934452">"Malli"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Kernel-versio"</string>
     <string name="build_number" msgid="3997326631001009102">"Koontiversion numero"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth-osoite"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Wi-Fi-yhteyden MAC-osoite"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Ei saatavilla"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Tila"</string>
     <string name="device_status" msgid="267298179806290920">"Tila"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Nousevat, laskevat tai toistuvat numerosarjat on kielletty."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Näytön lukitusvaihtoehdot"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g>: <xliff:g id="NUM_DAYS">%3$s</xliff:g> päivää sitten"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Lisää luotettu laite"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth käyttöön luotetun laitteen lisäämiseksi"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Luotetut laitteet"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> laitetta</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> laite</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> avaa auton lukituksen, kun yhteys on muodostettu. Jos <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> päätyy jonkun muun käsiin, kyseinen henkilö voi ehkä käyttää laitetta"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Vahvista"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Poista luotettu laite"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Valmis"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Määritä luotettu laite kumppanisovelluksen avulla. Määrityksen jälkeen käyttäjäprofiilisi lukitus avataan automaattisesti, kun puhelin havaitaan auton lähistöllä."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Lataa kumppanisovellus puhelimelle"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Muodosta laitepari valitsemalla <xliff:g id="CAR_NAME">%1$s</xliff:g> puhelimella"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Auton lähellä oleva luotettu laite avaa käyttäjäprofiilin lukituksen käynnistyksen yhteydessä, vaikka laite olisi jonkun muun käsissä."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Vahvista, että yhdistämiskoodit ovat samat"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Puhelin on lisätty"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Liittyminen epäonnistui: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Kun olet lisännyt luotetun laitteen, sinun on määritettävä todennustapa. Jos luotetut laitteet eivät ole mukanasi, pääset käyttämään profiilia todennustavan avulla."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Ei yhteyttä laitteeseen"</string>
     <string name="forget" msgid="3971143908183848527">"Unohda"</string>
     <string name="connect" msgid="5861699594602380150">"Yhdistä"</string>
     <string name="disconnect" msgid="6140789953324820336">"Katkaise yhteys"</string>
diff --git a/res/values-fr-rCA/arrays.xml b/res/values-fr-rCA/arrays.xml
new file mode 100644
index 0000000..98f96af
--- /dev/null
+++ b/res/values-fr-rCA/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Demander"</item>
+    <item msgid="933409503308401889">"Ne jamais autoriser"</item>
+    <item msgid="1154273129608299386">"Toujours autoriser"</item>
+  </string-array>
+</resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 86e7899..9f4e4de 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Mode Nuit"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Réseau et Internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Réseau cellulaire"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> carte SIM</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> cartes SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Services actifs/Carte SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Services inactifs/Carte SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Services actifs/Cartes SIM téléchargées"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Ser. inactifs/Cartes SIM téléchargées"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Ajouter"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Données mobiles"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Accéder aux données sur réseau cellulaire"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Désactiver les données mobiles?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Sélection requise"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Utiliser <xliff:g id="CARRIER">%1$s</xliff:g> pour donn. mob.?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Vous utilisez le réseau de <xliff:g id="CARRIER2_0">%2$s</xliff:g> pour les données mobiles. Si vous passez au réseau de <xliff:g id="CARRIER1">%1$s</xliff:g>, celui de <xliff:g id="CARRIER2_1">%2$s</xliff:g> ne sera plus utilisé pour les données mobiles."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Utiliser <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Itinérance"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Se connecter aux services de données lors de l\'itinérance"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Voulez-vous autoriser les données en itinérance?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Des frais importants peuvent s\'appliquer."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Utilisation de données"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Données principales"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> utilisés"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Les messages texte de cette catégorie peuvent être payants et s\'ajouter aux factures mensuelles de votre fournisseur de services. Si vous activez l\'autorisation pour une application, vous serez en mesure d\'envoyer des messages texte payants à l\'aide de cette dernière."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Accès aux données utilisation"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"L\'accès aux données d\'utilisation permet à une application d\'effectuer le suivi des applications que vous utilisez, de la fréquence d\'utilisation, du fournisseur de services, des paramètres de langue et d\'autres détails."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Accès à l\'annuaire"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Gestion du Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Le contrôle Wi-Fi permet d\'autoriser une application à activer ou à désactiver le Wi-Fi, à rechercher les réseaux Wi-Fi et à s\'y connecter, à ajouter ou supprimer des réseaux, ou à lancer un point d\'accès local uniquement."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Plus"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Lieu"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Récentes demandes de localisation"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Aucune demande de localisation récente"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Autorisez les applications et les services à rechercher les appareils à proximité en tout temps, même lorsque le Bluetooth est désactivé. Cette option peut, par exemple, être utilisée pour améliorer les fonctionnalités et les services qui utilisent la localisation."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Système"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Mises à jour système"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Indisponible"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Version d\'Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"Niveau du correctif de sécurité Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Modèle"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Version du noyau"</string>
     <string name="build_number" msgid="3997326631001009102">"Numéro de version"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Adresse Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Adresse MAC Wi-Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Indisponible"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"État"</string>
     <string name="device_status" msgid="267298179806290920">"État"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Les suites croissantes, décroissantes ou répétitives de chiffres ne sont pas autorisées."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Options de verrouillage de l\'écran"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : il y a <xliff:g id="NUM_DAYS">%3$s</xliff:g> jours"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Ajouter un appareil de confiance"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth s\'activera pour ajout. app. confiance"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Appareils fiables"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> appareil</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> appareils</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Votre <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> déverrouillera votre voiture lorsqu\'il sera connecté. Si une personne prend votre <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, elle pourrait être en mesure d\'accéder à cet appareil."</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Confirmer"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Supprimer l\'appareil de confiance"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"OK"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Utilisez l\'application compagnon pour configurer un appareil de confiance. Une fois configuré, votre profil utilisateur se déverrouillera automatiquement si votre téléphone est détecté à proximité de la voiture."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Téléchargez l\'application compagnon sur votre téléphone"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Sélectionnez <xliff:g id="CAR_NAME">%1$s</xliff:g> sur votre téléphone pour associer les appareils"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Au moment du démarrage du véhicule, un appareil de confiance à proximité de celui-ci déverrouillera le profil de l\'utilisateur, même si une autre personne le tient dans sa main."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Veuillez confirmer que les codes d\'association correspondent"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Le téléphone a été inscrit"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Échec de l\'inscription de l\'appareil <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"L\'ajout d\'un appareil de confiance nécessite ensuite la configuration d\'une méthode d\'authentification. Si vous n\'avez pas votre appareil de confiance avec vous, un processus d\'authentification sera nécessaire pour accéder à votre profil."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Appareil déconnecté."</string>
     <string name="forget" msgid="3971143908183848527">"Oublier"</string>
     <string name="connect" msgid="5861699594602380150">"Connexion"</string>
     <string name="disconnect" msgid="6140789953324820336">"Déconnexion"</string>
diff --git a/res/values-fr/arrays.xml b/res/values-fr/arrays.xml
new file mode 100644
index 0000000..98f96af
--- /dev/null
+++ b/res/values-fr/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Demander"</item>
+    <item msgid="933409503308401889">"Ne jamais autoriser"</item>
+    <item msgid="1154273129608299386">"Toujours autoriser"</item>
+  </string-array>
+</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 97d50c9..4a0b2b2 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Mode Nuit"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Réseau et Internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Réseau mobile"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> carte SIM</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> cartes SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Actif/Carte SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Inactif/Carte SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Actif/Carte SIM téléchargée"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Inactif/Carte SIM téléchargée"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Ajouter"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Données mobiles"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Accéder aux données via le réseau mobile"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Désactiver les données mobiles ?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Sélection requise"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Utiliser <xliff:g id="CARRIER">%1$s</xliff:g> pour les données mobiles ?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Vous utilisez <xliff:g id="CARRIER2_0">%2$s</xliff:g> pour les données mobiles. Si vous basculez sur <xliff:g id="CARRIER1">%1$s</xliff:g>, <xliff:g id="CARRIER2_1">%2$s</xliff:g> ne sera plus utilisé pour les données mobiles."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Utiliser <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Itinérance"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Se connecter aux services de données lors de l\'itinérance"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Autoriser l\'itinérance des données ?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Des frais importants peuvent s\'appliquer."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Consommation des données"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Données principales"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> utilisés"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Les SMS premium peuvent être payants et s\'ajouter aux factures de votre opérateur. Si vous activez l\'autorisation pour une application, vous serez en mesure d\'envoyer des SMS premium à l\'aide de cette dernière."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Accès aux infos d\'utilisation"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"L\'accès aux données d\'utilisation permet à une application d\'effectuer le suivi des applications que vous utilisez, de la fréquence d\'utilisation, de l\'opérateur, des paramètres de langue et d\'autres détails."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Accès à l\'annuaire"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Contrôle Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Le contrôle Wi-Fi permet d\'autoriser une application à activer ou à désactiver le Wi-Fi, à rechercher les réseaux Wi-Fi et à s\'y connecter, à ajouter ou supprimer des réseaux, ou à lancer un point d\'accès local."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Plus"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Position"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Demandes de localisation récentes"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Aucune demande de localisation récente"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Autoriser les applications et les services à rechercher des appareils à proximité à tout moment, même si le Bluetooth est désactivé. Cette autorisation peut, par ex., améliorer les fonctionnalités et les services basés sur la localisation."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Système"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Mises à jour du système"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Non disponible"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Version d\'Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"Mise à jour du correctif de sécurité Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Modèle"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Version du noyau"</string>
     <string name="build_number" msgid="3997326631001009102">"Numéro de build"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Adresse Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Adresse MAC Wi-Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Indisponible"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"État"</string>
     <string name="device_status" msgid="267298179806290920">"État"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Les suites de chiffres croissantes, décroissantes ou répétitives ne sont pas autorisées."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Options de verrouillage de l\'écran"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : il y a <xliff:g id="NUM_DAYS">%3$s</xliff:g> jours"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Ajouter un appareil vérifié"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"L\'appareil vérifié sera ajouté via le Bluetooth"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Appareils vérifiés"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> appareil</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> appareils</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Votre <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> déverrouille cette voiture lorsqu\'il y est connecté. Si une personne saisit votre <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, il est possible qu\'elle puisse accéder à cet appareil"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Confirmer"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Supprimer l\'appareil vérifié"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"OK"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Utilisez l\'application associée pour configurer un appareil vérifié. Une fois configuré, votre profil utilisateur permettra de déverrouiller automatiquement la voiture si votre téléphone est détecté à proximité de cette dernière."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Téléchargez l\'application associée sur votre téléphone"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Sélectionnez <xliff:g id="CAR_NAME">%1$s</xliff:g> sur votre téléphone pour associer les appareils"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Le profil utilisateur sera déverrouillé au démarrage de la voiture en présence d\'un appareil vérifié se trouvant à proximité, même si une autre personne le tient dans sa main."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Veuillez confirmer que les codes d\'association correspondent"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Le téléphone a bien été enregistré"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Échec de l\'inscription de <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Pour ajouter un appareil vérifié, vous devez définir une méthode d\'authentification à l\'étape suivante. Si vous n\'avez pas votre appareil vérifié avec vous, vous devrez obligatoirement passer par l\'étape d\'authentification pour accéder à votre profil."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Appareil déconnecté."</string>
     <string name="forget" msgid="3971143908183848527">"Supprimer"</string>
     <string name="connect" msgid="5861699594602380150">"Connecter"</string>
     <string name="disconnect" msgid="6140789953324820336">"Déconnecter"</string>
diff --git a/res/values-gl/arrays.xml b/res/values-gl/arrays.xml
new file mode 100644
index 0000000..cd2786c
--- /dev/null
+++ b/res/values-gl/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Preguntar"</item>
+    <item msgid="933409503308401889">"Non permitir nunca"</item>
+    <item msgid="1154273129608299386">"Permitir sempre"</item>
+  </string-array>
+</resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 2c9c436..add7a89 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Modo nocturno"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Rede e Internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Rede de telefonía móbil"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Servizo activado/SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Servizo desactivado/SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Servizo activado/SIM descargada"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Servizo desactivado/SIM descargada"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Engadir máis"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Datos móbiles"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Acceder aos datos cunha rede de telefonía móbil"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Queres desactivar os datos móbiles?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"É necesario seleccionar unha opción"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Usar <xliff:g id="CARRIER">%1$s</xliff:g> para os datos móbiles?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Estás utilizando <xliff:g id="CARRIER2_0">%2$s</xliff:g> para os datos móbiles. Se cambias a <xliff:g id="CARRIER1">%1$s</xliff:g>, deixarase de utilizar <xliff:g id="CARRIER2_1">%2$s</xliff:g> para os datos móbiles."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Utilizar <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Itinerancia"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Conéctase a servizos de datos en itinerancia"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Queres permitir a itinerancia de datos?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"É posible que se apliquen cargos elevados."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Uso de datos"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Datos principais"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Datos usados: <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Podes ter que pagar polas mensaxes premium, cuxos custos se engadirán ás facturas do teu operador. Se activas o permiso para unha aplicación, poderás enviar SMS premium a través desa aplicación."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Acceso ao uso"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Co acceso ao uso unha aplicación poden realizar un seguimento das demais aplicacións que usas e de con que frecuencia as utilizas, así como do teu operador, da configuración do idioma e doutros detalles."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Acceso ao directorio"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Control da wifi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Co control da wifi, as aplicacións poden activar ou desactivar a wifi, buscar redes wifi, conectarse a elas, engadir ou eliminar redes e iniciar unha zona wifi local."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Máis"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Localización"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Solicitudes de localización recentes"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Non hai solicitudes de localización recentes"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Permite ás aplicacións e aos servizos buscar dispositivos próximos en calquera momento, mesmo cando o Bluetooth está desactivado. Esta opción pode utilizarse, por exemplo, para mellorar as funcións e os servizos baseados na localización."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Sistema"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Actualizacións do sistema"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Non dispoñible"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Versión de Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"Nivel de parche de seguranza de Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Modelo"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Versión de kernel"</string>
     <string name="build_number" msgid="3997326631001009102">"Número de compilación"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Enderezo de Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Enderezo MAC da wifi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Non dispoñible"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Estado"</string>
     <string name="device_status" msgid="267298179806290920">"Estado"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Non se permite unha secuencia de díxitos ascendente, descendente nin repetida."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Opcións de bloqueo de pantalla"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g>: hai <xliff:g id="NUM_DAYS">%3$s</xliff:g> días"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Eng. dispositivo de confianza"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Activarase o Bluet. para engadir un disp. de conf."</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Disposit. confianza"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> dispositivos</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> dispositivo</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Cando o <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> estea conectado, poderase utilizar para desbloquear este coche. Se outra persoa colle o <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> pode acceder a este dispositivo"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Confirmar"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Quitar dispositivo de confianza"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Feito"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Utiliza a aplicación complementaria para configurar un dispositivo de confianza. Unha vez configurado, o teu perfil de usuario desbloquearase automaticamente cando se detecte o teu teléfono preto do vehículo."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Descarga a aplicación complementaria no teléfono"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Selecciona <xliff:g id="CAR_NAME">%1$s</xliff:g> no teléfono para vincular os dispositivos"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Un dispositivo de confianza próximo ao teu coche desbloqueará o perfil de usuario ao arrancalo, aínda que o estea suxeitando outra persoa."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Confirma que os códigos de confirmación coinciden"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"O teléfono inscribiuse correctamente"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Produciuse un erro durante a inscrición de <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Se engades un dispositivo de confianza, despois terás que definir un método de autenticación. Se non tes á man o dispositivo de confianza, deberás verificar a túa identidade para acceder ao teu perfil."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Desconectouse o dispositivo."</string>
     <string name="forget" msgid="3971143908183848527">"Borrar"</string>
     <string name="connect" msgid="5861699594602380150">"Conectar"</string>
     <string name="disconnect" msgid="6140789953324820336">"Desconectar"</string>
diff --git a/res/values-gu/arrays.xml b/res/values-gu/arrays.xml
new file mode 100644
index 0000000..fa80e76
--- /dev/null
+++ b/res/values-gu/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"પૂછો"</item>
+    <item msgid="933409503308401889">"ક્યારેય મંજૂરી આપશો નહીં"</item>
+    <item msgid="1154273129608299386">"હંમેશા મંજૂરી આપો"</item>
+  </string-array>
+</resources>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 3d88972..0cdc970 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"રાત્રિ મોડ"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"નેટવર્ક અને ઇન્ટરનેટ"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"મોબાઇલ નેટવર્ક"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> સિમ</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> સિમ</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"સક્રિય / સિમ"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"નિષ્ક્રિય / સિમ"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"સક્રિય / ડાઉનલોડ કરેલું સિમ"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"નિષ્ક્રિય / ડાઉનલોડ કરેલું સિમ"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"વધુ ઉમેરો"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"મોબાઇલ ડેટા"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"મોબાઇલ નેટવર્કનો ઉપયોગ કરીને ડેટા ઍક્સેસ કરો"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"મોબાઇલ ડેટા બંધ કરીએ?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"પસંદગી કરવી જરૂરી છે"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"મોબાઇલ ડેટા માટે <xliff:g id="CARRIER">%1$s</xliff:g>નો ઉપયોગ કરીએ?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"તમે મોબાઇલ ડેટા માટે <xliff:g id="CARRIER2_0">%2$s</xliff:g>નો ઉપયોગ કરી રહ્યા છો. જો તમે <xliff:g id="CARRIER1">%1$s</xliff:g> પર સ્વિચ કરશો, તો મોબાઇલ ડેટા માટે <xliff:g id="CARRIER2_1">%2$s</xliff:g>નો ઉપયોગ નહીં થઈ શકે."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g>નો ઉપયોગ કરો"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"રોમિંગ"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"જ્યારે રોમિંગ હોય ત્યારે ડેટા સેવાઓથી કનેક્ટ કરો"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"ડેટા રોમિંગને મંજૂરી આપીએ?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"તમારી પાસેથી કદાચ જરૂરી શુલ્ક વસૂલવામાં આવી શકે."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"ડેટા વપરાશ"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"પ્રાથમિક ડેટા"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> ડેટાનો વપરાશ થયો"</string>
@@ -320,12 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"તમને પ્રીમિયમ SMS માટે શુલ્ક લાગી શકે છે અને તે તમારા કૅરિઅર બિલમાં ઉમેરવામાં આવશે. જો તમે કોઇ ઍપ માટે પરવાનગી ચાલુ કરો છો, તો તમે તે ઍપનો ઉપયોગ કરીને પ્રીમિયમ SMS મોકલી શકશો."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"વપરાશનો ઍક્સેસ"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"વપરાશનો ઍક્સેસ કોઈ ઍપને તમે કઈ અન્ય ઍપનો અને કેટલીવાર ઉપયોગ કરી રહ્યાં છો, તેમજ તમારા કૅરિઅર, ભાષા સેટિંગ અને અન્ય વિગતોને ટ્રૅક કરવાની મંજૂરી આપે છે."</string>
-    <!-- no translation found for directory_access_title (7117264853202268740) -->
-    <skip />
-    <!-- no translation found for directory_on_volume (4947971311247097078) -->
-    <skip />
     <string name="wifi_control_title" msgid="5660436566907731929">"વાઇ-ફાઇ નિયંત્રણ"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"વાઇ-ફાઇ નિયંત્રણ ઍપને વાઇ-ફાઇ ચાલુ અથવા બંધ કરવાની, વાઇ-ફાઇ નેટવર્કને સ્કૅન કરીને કનેક્ટ કરવાની, નેટવર્ક ઉમેરવાની કે કાઢી નાખવાની અથવા માત્ર-સ્થાનિક હૉટસ્પૉટ શરૂ કરવાની મંજૂરી આપે છે."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"વધુ"</string>
     <string name="location_settings_title" msgid="901334356682423679">"સ્થાન"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"સ્થાન માટે તાજેતરની વિનંતીઓ"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"સ્થાન માટે તાજેતરમાં કોઈ વિનંતી નથી"</string>
@@ -338,8 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"જ્યારે બ્લૂટૂથ બંધ હોય ત્યારે પણ ગમે ત્યારે ઍપ અને સેવાઓને નજીકનાં ડિવાઇસ સ્કૅન કરવાની મંજૂરી આપો. ઉદાહરણ તરીકે, આનો ઉપયોગ સ્થાન આધારિત સુવિધાઓ અને સેવાઓને વધુ સારી બનાવવા માટે કરી શકાય છે."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"સિસ્ટમ"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"સિસ્ટમ અપડેટ"</string>
-    <!-- no translation found for status_unavailable (3737918179898732010) -->
-    <skip />
     <string name="firmware_version" msgid="8491753744549309333">"Android વર્ઝન"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android સુરક્ષા પૅચ લેવલ"</string>
     <string name="model_info" msgid="4966408071657934452">"મૉડલ"</string>
@@ -347,8 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"કર્નલ વર્ઝન"</string>
     <string name="build_number" msgid="3997326631001009102">"બિલ્ડ નંબર"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"બ્લૂટૂથ ઍડ્રેસ"</string>
-    <!-- no translation found for about_wifi_mac_address (3934228440550548053) -->
-    <skip />
     <string name="device_info_not_available" msgid="2095601973977376655">"ઉપલબ્ધ નથી"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"સ્ટેટસ"</string>
     <string name="device_status" msgid="267298179806290920">"સ્ટેટસ"</string>
@@ -610,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"અંકોના ચઢતા ક્રમની, ઉતરતા ક્રમની અથવા પુનરાવર્તિત અનુક્રમની મંજૂરી નથી."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"સ્ક્રીન લૉકના વિકલ્પો"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> દિવસ પહેલાં"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"વિશ્વસનીય ડિવાઇસ ઉમેરો"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"વિશ્વસનીય ડિવાઇસ ઉમેરવા માટે બ્લૂટૂથ ચાલુ થશે"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"વિશ્વસનીય ડિવાઇસ"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> ડિવાઇસ</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> ડિવાઇસ</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"જ્યારે તમારું <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> કનેક્ટ થયેલું હશે, ત્યારે આ કારને અનલૉક કરી શકશે જો કોઈ તમારી <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>કાર લઈ જશે, તો તેઓ આ ડિવાઇસને ઍક્સેસ કરી શકશે"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"કન્ફર્મ કરો"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"વિશ્વસનીય ડિવાઇસ કાઢી નાખો"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"થઈ ગયું"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"વિશ્વસનીય ડિવાઇસનું સેટઅપ કરવા માટે સાથી ઍપનો ઉપયોગ કરો. એકવાર સેટઅપ થઈ જાય પછી, જ્યારે તમારો ફોન વાહનની નજીક હોવાની જાણ થાય ત્યારે તમારી વપરાશકર્તા પ્રોફાઇલ ઑટોમૅટિક રીતે અનલૉક થઈ જશે."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. તમારા ફોન પર સાથી ઍપને ડાઉનલોડ કરો"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. ડિવાઇસને તમારા ફોન સાથે જોડાણ કરવા માટે <xliff:g id="CAR_NAME">%1$s</xliff:g>ને પસંદ કરો"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"જો અન્ય કોઈ વ્યક્તિએ તમારું વિશ્વસનીય ડિવાઇસ પકડી રાખ્યું હોય, તો પણ જ્યારે તે ડિવાઇસ તમારી કારની નજીક હશે, ત્યારે તે તમારી કારને ચાલુ કરતી વખતે વપરાશકર્તાની પ્રોફાઇલને અનલૉક કરી નાખશે."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"કૃપા કરીને કન્ફર્મ કરો કે જોડાણ કરવાનો કોડ મેળ ખાય છે"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"ફોનની સફળતાપૂર્વક નોંધણી કરી"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>ની નોંધણી નિષ્ફળ રહી"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"કોઈ વિશ્વસનીય ડિવાઇસ ઉમેરવા માટે, તમારે પહેલાં કોઈ પ્રમાણીકરણ પદ્ધતિ સેટ કરવી આવશ્યક છે. જો તમારી પાસે તમારું વિશ્વસનીય ડિવાઇસ ન હોય, તો તમારી પ્રોફાઇલને ઍક્સેસ કરવા માટે પ્રમાણીકરણ આવશ્યક રહેશે."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"ડિવાઇસ ડિસ્કનેક્ટ થયું."</string>
     <string name="forget" msgid="3971143908183848527">"ભૂલી જાઓ"</string>
     <string name="connect" msgid="5861699594602380150">"કનેક્ટ કરો"</string>
     <string name="disconnect" msgid="6140789953324820336">"ડિસ્કનેક્ટ કરો"</string>
diff --git a/res/values-hi/arrays.xml b/res/values-hi/arrays.xml
new file mode 100644
index 0000000..e71b2bd
--- /dev/null
+++ b/res/values-hi/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"पूछें"</item>
+    <item msgid="933409503308401889">"कभी अनुमति ना दें"</item>
+    <item msgid="1154273129608299386">"हमेशा अनुमति दें"</item>
+  </string-array>
+</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 05e8987..30c95d3 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"रात वाला मोड"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"नेटवर्क और इंटरनेट"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"मोबाइल नेटवर्क"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> सिम</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> सिम</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"चालू / सिम"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"बंद / सिम"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"चालू / डाउनलोड किया गया सिम"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"बंद / डाउनलोड किया गया सिम"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"ज़्यादा जोड़ें"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"मोबाइल डेटा"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"मोबाइल नेटवर्क का इस्तेमाल करके डेटा ऐक्सेस करें"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"मोबाइल डेटा बंद करना चाहते हैं?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"चुनना ज़रूरी है"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"मोबाइल डेटा के लिए <xliff:g id="CARRIER">%1$s</xliff:g> इस्तेमाल करें?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"मोबाइल डेटा के लिए आप <xliff:g id="CARRIER2_0">%2$s</xliff:g> का इस्तेमाल कर रहे हैं. अगर आप <xliff:g id="CARRIER1">%1$s</xliff:g> का इस्तेमाल करते हैं, तो मोबाइल डेटा के लिए <xliff:g id="CARRIER2_1">%2$s</xliff:g> का इस्तेमाल नहीं किया जाएगा."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g> का इस्तेमाल करें"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"रोमिंग"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"रोमिंग के समय डेटा सेवाएं कनेक्ट करें"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"डेटा रोमिंग की अनुमति दें?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"आपको बहुत ज़्यादा शुल्क देना पड़ सकता है."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"डेटा खर्च"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"प्राइमरी डेटा"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> डेटा इस्तेमाल किया गया"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"प्रीमियम मैसेज (एसएमएस) के लिए आपको पैसे चुकाने पड़ सकते हैं जिसे आपकी मोबाइल और इंटरनेट सेवा देने वाली कंपनी आपके बिल में जोड़ देगी. अगर आप किसी ऐप्लिकेशन के लिए यह अनुमति देते हैं, तो आप उस ऐप्लिकेशन का इस्तेमाल करके प्रीमियम मैसेज (एसएमएस) भेज सकते हैं."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"इस्तेमाल का ऐक्‍सेस"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"\'डेटा खर्च\' देखने की मंज़ूरी से कोई ऐप्लिकेशन इस बात पर नज़र रख पाता है कि आप कौनसे ऐप्लिकेशन चला रहे हैं और उन्हें कितनी बार इस्तेमाल करते हैं. साथ ही, ऐप्लिकेशन आपकी मोबाइल और इंटरनेट सेवा देने वाली कंपनी, भाषा सेटिंग और दूसरी जानकारी देख पाता है."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"डायरेक्ट्री का ऐक्सेस"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"वाई-फ़ाई नियंत्रण"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"वाई-फ़ाई का नियंत्रण किसी ऐप्लिकेशन को वाई-फ़ाई चालू या बंद करने, वाई-फ़ाई नेटवर्क ढूंढने और उससे जुड़ने की अनुमति देता है. साथ ही, नेटवर्क जोड़ने या हटाने या सिर्फ़ सीमित दायरे में इस्तेमाल होने वाला हॉटस्पॉट चालू करने की अनुमति देता है."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"ज़्यादा सेटिंग"</string>
     <string name="location_settings_title" msgid="901334356682423679">"जगह"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"हाल ही में किए गए जगह के अनुरोध"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"हाल ही में जगह का कोई अनुरोध नहीं है"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"ऐप्लिकेशन और सेवाओं को किसी भी समय आस-पास के डिवाइस स्कैन करने की मंज़ूरी दें, भले ही ब्लूटूथ बंद हो. इसका इस्तेमाल करके, जगह की जानकारी जैसी सुविधाओं और सेवाओं में सुधार किया जा सकता है."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"सिस्टम"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"सिस्टम अपडेट"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"उपलब्ध नहीं है"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android का वर्शन"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android सुरक्षा पैच लेवल"</string>
     <string name="model_info" msgid="4966408071657934452">"मॉडल"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Kernel का वर्शन"</string>
     <string name="build_number" msgid="3997326631001009102">"बिल्‍ड नंबर"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"ब्लूटूथ का पता"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"वाई-फ़ाई का एमएसी (मैक) पता"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"उपलब्ध नहीं है"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"स्थिति"</string>
     <string name="device_status" msgid="267298179806290920">"स्थिति"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"अंकों को बढ़ते, घटते या दोहराए गए क्रम में लिखने की मंज़ूरी नहीं है."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"स्क्रीन लॉक विकल्प"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> days ago"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"भरोसेमंद डिवाइस जोड़ें"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"भरोसेमंद डिवाइस जोड़ने के लिए ब्लूटूथ चालू हो जाएगा"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"भरोसेमंद डिवाइस"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> डिवाइस</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> डिवाइस</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"कनेक्ट होने पर आपका <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> इस कार को अनलॉक कर देगा. अगर किसी के पास आपका <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> है, तो वह इस डिवाइस को ऐक्सेस कर सकता है"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"पुष्टि करें"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"भरोसेमंद डिवाइस हटाएं"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"हो गया"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"भरोसेमंद डिवाइस सेट अप करने के लिए साथी ऐप्लिकेशन का इस्तेमाल करें. इसके सेट अप के बाद, जब भी आपका फ़ोन कार के आस-पास होगा, तब आपकी उपयोगकर्ता प्रोफ़ाइल अपने आप अनलॉक हो जाएगी."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. अपने फ़ोन पर साथी ऐप्लिकेशन डाउनलोड करें"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. डिवाइसों को जोड़ने के लिए अपने फ़ोन पर <xliff:g id="CAR_NAME">%1$s</xliff:g> चुनें"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"कार चालू हाेते ही इसके आस-पास मौजूद भरोसेमंद डिवाइस उपयाेगकर्ता की प्राेफ़ाइल अनलॉक कर देगा, भले ही वह डिवाइस किसी और के पास हो."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"कृपया पुष्टि करें कि जोड़ने के कोड का मिलान हो गया है"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"फ़ोन रजिस्टर हो गया है"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> का नाम दर्ज नहीं हो सका"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"इसके बाद एक भरोसेमंद डिवाइस जोड़ने के लिए आपको पुष्टि करने का तरीका सेट करना होगा. अगर भरोसेमंद डिवाइस आपके पास नहीं है, तो आपकी प्रोफ़ाइल ऐक्सेस करने के लिए पुष्टि करना ज़रूरी होगा."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"डिवाइस डिसकनेक्ट किया गया."</string>
     <string name="forget" msgid="3971143908183848527">"भूल जाएं"</string>
     <string name="connect" msgid="5861699594602380150">"कनेक्शन जोड़ें"</string>
     <string name="disconnect" msgid="6140789953324820336">"कनेक्शन हटाएं"</string>
diff --git a/res/values-hr/arrays.xml b/res/values-hr/arrays.xml
new file mode 100644
index 0000000..2ecf44f
--- /dev/null
+++ b/res/values-hr/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Postavi pitanje"</item>
+    <item msgid="933409503308401889">"Ne dopuštaj nikada"</item>
+    <item msgid="1154273129608299386">"Dopusti uvijek"</item>
+  </string-array>
+</resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 80c5073..b72c927 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -31,9 +31,27 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Noćni način rada"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Mreža i internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mobilna mreža"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-a</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-ova</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Aktivno/SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Neaktivno/SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Aktivno/preuzeti SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Neaktivno/preuzeti SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Dodajte više"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Mobilni podaci"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Pristupi podacima pomoću mobilne mreže"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Isključiti mobilne podatke?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Odabir je obvezan"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Koristiti <xliff:g id="CARRIER">%1$s</xliff:g> za mobilne podatke?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Koristite usluge mobilnog operatera <xliff:g id="CARRIER2_0">%2$s</xliff:g> za mobilne podatke. Ako prijeđete na mobilnog operatera <xliff:g id="CARRIER1">%1$s</xliff:g>, operater<xliff:g id="CARRIER2_1">%2$s</xliff:g> više se neće koristiti za mobilne podatke."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Koristi operatera <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roaming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Povezivanje s podatkovnim uslugama u roamingu"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Želite li dopustiti roaming podataka?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Možda ćete imati značajne dodatne troškove."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Potrošnja podataka"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Primarni podaci"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Iskorišteno: <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -322,10 +340,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"SMS-ovi s dodatnom naplatom mogu se dodatno naplaćivati i povećat će vaš račun. Ako nekoj aplikaciji date to dopuštenje, moći ćete slati SMS-ove s dodatnom naplatom pomoću te aplikacije."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Pristup upotrebi"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Pristup podacima o upotrebi omogućuje aplikaciji praćenje drugih aplikacija koje upotrebljavate i učestalosti njihove upotrebe, kao i praćenje mobilnog operatera, postavki jezika i ostalih pojedinosti."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Pristup direktoriju"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Upravljanje Wi-Fijem"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Upravljanje Wi-Fijem omogućuje aplikaciji da uključuje ili isključuje Wi-Fi, traži Wi-Fi mreže i povezuje se s njima, dodaje ili uklanja mreže te pokreće lokalnu žarišnu točku."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Više"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Lokacija"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Nedavni zahtjevi za lokaciju"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Nema nedavnih zahtjeva za lokaciju"</string>
@@ -338,7 +355,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Dopustite aplikacijama i uslugama da traže uređaje u blizini u bilo kojem trenutku, čak i kada je Bluetooth isključen. Na taj se način mogu, na primjer, poboljšati značajke i usluge koje se temelje na lokaciji."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Sustav"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Ažuriranja sustava"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Nije dostupno"</string>
     <string name="firmware_version" msgid="8491753744549309333">"verziju Androida"</string>
     <string name="security_patch" msgid="4794276590178386903">"Razina Androidove sigurnosne zakrpe"</string>
     <string name="model_info" msgid="4966408071657934452">"Model"</string>
@@ -346,7 +362,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Verzija jezgre"</string>
     <string name="build_number" msgid="3997326631001009102">"Broj međuverzije"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth adresa"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"MAC adresa Wi-Fija"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Nije dostupno"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Status"</string>
     <string name="device_status" msgid="267298179806290920">"Status"</string>
@@ -616,6 +631,27 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Uzastopno rastući ili padajući slijed brojeva ili ponavljanje brojeva nisu dopušteni."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Opcije zaključavanja zaslona"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : prije <xliff:g id="NUM_DAYS">%3$s</xliff:g> dana"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Dodaj pouzdani uređaj"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth se uključuje da dodate pouzdani uređaj"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Pouzdani uređaji"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> uređaj</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> uređaja</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> uređaja</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Vaš uređaj <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> otključat će ovaj automobil kad se poveže. Ako vam netko uzme vaš uređaj <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, možda će moći pristupiti ovom uređaju"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Potvrdi"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Ukloni pouzdani uređaj"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Gotovo"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Za postavljanje pouzdanog uređaja upotrijebite popratnu aplikaciju. Nakon postavljanja vaš će se korisnički profil automatski otključati kada se otkrije da se vaš telefon nalazi u blizini vozila."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Preuzmite popratnu aplikaciju na telefon"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Odaberite automobil <xliff:g id="CAR_NAME">%1$s</xliff:g> na telefonu da biste uparili uređaje"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Pouzdani uređaj u blizini automobila otključat će korisnički profil nakon paljenja, čak i ako netko drugi drži taj uređaj."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Potvrdite da se kodovi za uparivanje podudaraju"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Telefon je uspješno prijavljen"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Upis uređaja <xliff:g id="DEVICE_NAME">%1$s</xliff:g> nije uspio"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Nakon što dodate pouzdani uređaj, morate postaviti način autentifikacije. Ako nemate pouzdani uređaj sa sobom, morat ćete se autentificirati da biste pristupili svojem profilu."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Uređaj je isključen."</string>
     <string name="forget" msgid="3971143908183848527">"Zaboravi"</string>
     <string name="connect" msgid="5861699594602380150">"Poveži"</string>
     <string name="disconnect" msgid="6140789953324820336">"Prekini vezu"</string>
diff --git a/res/values-hu/arrays.xml b/res/values-hu/arrays.xml
new file mode 100644
index 0000000..df2d309
--- /dev/null
+++ b/res/values-hu/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Kérdezzen rá"</item>
+    <item msgid="933409503308401889">"Soha ne engedélyezze"</item>
+    <item msgid="1154273129608299386">"Mindig engedélyezze"</item>
+  </string-array>
+</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 29fb3d5..7c44aef 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Éjszakai mód"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Hálózat és internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mobilhálózat"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Aktív / SIM-kártya"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Inaktív / SIM-kártya"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Aktív / Letöltött SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Inaktív / Letöltött SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Továbbiak hozzáadása"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Mobiladat"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Adathozzáférés a mobilhálózaton keresztül"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Kikapcsolja a mobiladatokat?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Kiválasztás szükséges"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"A(z) <xliff:g id="CARRIER">%1$s</xliff:g> szolgáltatót használja?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"A(z) <xliff:g id="CARRIER2_0">%2$s</xliff:g> szolgáltatót használja a mobiladat-kapcsolathoz. Ha a(z) <xliff:g id="CARRIER1">%1$s</xliff:g> szolgáltatóra vált, az eszköz többé nem használja a(z) <xliff:g id="CARRIER2_1">%2$s</xliff:g> szolgáltatót a mobiladat-kapcsolathoz."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g> használata"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roaming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Csatlakozás adatszolgáltatásokhoz roaming során"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Engedélyezi az adatroamingot?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Lehet, hogy jelentős összeget számítanak fel érte."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Adathasználat"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Elsődleges adatcsomag"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> felhasználva"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"A Prémium SMS-ek használata pénzbe kerülhet Önnek, és a szolgáltatója által kiállított számlák végösszegét növeli. Ha engedélyt ad valamelyik alkalmazásnak, akkor azzal lehetősége lesz prémium SMS-eket küldeni."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Használati hozzáférés"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"A használati hozzáférés lehetővé teszi az alkalmazás számára a következők nyomon követését: Ön milyen más alkalmazásokat használ, milyen gyakran használja őket, valamint szolgáltatóit, nyelvi beállításit és egyéb részleteket."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Mappahozzáférés"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi-vezérlés"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"A Wi-Fi-vezérlés lehetővé teszi az alkalmazás számára a Wi-Fi be- és kikapcsolását, a Wi-Fi-hálózatok keresését és a hozzájuk való kapcsolódást, a hálózatok hozzáadását és eltávolítását, valamint a csak helyi hotspot indítását."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Több"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Hely"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Legutóbbi helylekérdezések"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Nincsenek friss helylekérdezések"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Engedélyezi az alkalmazásoknak és szolgáltatásoknak, hogy közeli eszközöket keressenek még akkor is, ha ki van kapcsolva a Bluetooth. Ez például a helyalapú funkciók és szolgáltatások javítására használható."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Rendszer"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Rendszerfrissítések"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Nem áll rendelkezésre"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android-verzió"</string>
     <string name="security_patch" msgid="4794276590178386903">"Androidos biztonsági hibajavító csomag szintje"</string>
     <string name="model_info" msgid="4966408071657934452">"Modell"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Kernel verziója"</string>
     <string name="build_number" msgid="3997326631001009102">"Buildszám"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth-cím"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Wi-Fi MAC-címe"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Nem hozzáférhető"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Állapot"</string>
     <string name="device_status" msgid="267298179806290920">"Állapot"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Növekvő, csökkenő vagy ismétlődő számsor megadása nem engedélyezett."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"A képernyőzár beállításai"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g>: <xliff:g id="NUM_DAYS">%3$s</xliff:g> nappal ezelőtt"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Megbízható eszköz hozzáadása"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bekapcsol a Bluetooth az eszköz hozzáadásához"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Megbízható eszközök"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> eszköz</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> eszköz</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"A(z) <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> kapcsolódáskor feloldja az autózárat. Ha valaki elveszi a(z) <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> eszközét, akkor az illető hozzáférhet az eszközhöz"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Megerősítés"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Megbízható eszköz eltávolítása"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Kész"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Állítson be megbízható eszközt a társalkalmazással. A beállítást követően felhasználó profilja automatikusan feloldódik, amint azt észleljük, hogy a telefon a jármű közelében van."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Töltse le telefonjára a társalkalmazást."</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Az eszközök párosításához válassza a(z) <xliff:g id="CAR_NAME">%1$s</xliff:g> elemet a telefonon."</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Az autó közelében lévő megbízható eszközök indításkor feloldják a felhasználói profil zárolását, akkor is, ha éppen másnál van az eszköz."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Ellenőrizze, hogy egyeznek-e a párosítókódok"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"A telefon regisztrációja sikeresen megtörtént"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Nem sikerült a(z) <xliff:g id="DEVICE_NAME">%1$s</xliff:g> regisztrációja"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Ha megbízható eszközt szeretne hozzáadni, akkor a következő lépésben hitelesítési módot kell megadnia. Ha nincs Önnél megbízható eszköze, hitelesítésre lesz szükség a profiljához való hozzáféréshez."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Eszköz leválasztva."</string>
     <string name="forget" msgid="3971143908183848527">"Elfelejtés"</string>
     <string name="connect" msgid="5861699594602380150">"Csatlakozás"</string>
     <string name="disconnect" msgid="6140789953324820336">"Leválasztás"</string>
diff --git a/res/values-hy/arrays.xml b/res/values-hy/arrays.xml
new file mode 100644
index 0000000..dfe8b73
--- /dev/null
+++ b/res/values-hy/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Հարցնել"</item>
+    <item msgid="933409503308401889">"Երբեք չթույլատրել"</item>
+    <item msgid="1154273129608299386">"Միշտ թույլատրել"</item>
+  </string-array>
+</resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 01f3a42..4e18f61 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Գիշերային ռեժիմ"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Ցանց և ինտերնետ"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Բջջային ցանց"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM քարտ</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM քարտ</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Ակտիվ է/SIM քարտ"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Ակտիվ չէ/SIM քարտ"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Ակտիվ է/ներբեռնված SIM քարտ"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Ակտիվ չէ/ներբեռնված SIM քարտ"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Ավելացնել"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Բջջային ինտերնետ"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Օգտվել բջջային ինտերնետից"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Անջատե՞լ բջջային ինտերնետը"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Ընտրեք SIM քարտը"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Անցնե՞լ <xliff:g id="CARRIER">%1$s</xliff:g>-ի բջջային ինտերնետին"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Դուք օգտագործում եք <xliff:g id="CARRIER2_0">%2$s</xliff:g>-ի բջջային ինտերնետը։ Եթե անցնեք <xliff:g id="CARRIER1">%1$s</xliff:g>-ին, <xliff:g id="CARRIER2_1">%2$s</xliff:g>-ի բջջային ինտերնետն այլևս չի օգտագործվի։"</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Ընտրել <xliff:g id="CARRIER">%1$s</xliff:g>-ի ցանցը"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Ռոումինգ"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Միանալ տվյալների փոխանցման ծառայություններին ռոումինգում"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Թույլատրե՞լ տվյալների ռոումինգը"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Դրա համար ձեզանից կարող են խոշոր վճարներ գանձվել:"</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Թրաֆիկի օգտագործում"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Հիմնական փաթեթ"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Օգտագործվել է <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Վճարովի SMS-ները կարող են լրացուցիչ գանձումներ առաջացնել: Հավելվածին թույլտվություն տալու դեպքում կկարողանաք դրա միջոցով վճարովի SMS-ներ ուղարկել։"</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Օգտագ. տվյալների հասանելիութ."</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Օգտագործման մասին տվյալների հասանելիությունը հնարավորություն է տալիս հավելվածներին հավաքել տարբեր տեղեկություններ, օրինակ, այն մասին, թե ուրիշ ինչ հավելվածներ եք օգտագործում և ինչ հաճախականությամբ, որ օպերատորից եք օգտվում, լեզվի ինչ կարգավորումներ եք սահմանել և այլն:"</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Մուտք գրացուցակներ"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi-ի կառավար"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Wi-Fi-ի կառավարը հնարավորություն է տալիս հավելվածներին միացնել և անջատել Wi-Fi-ը, գտնել Wi-Fi ցանցեր և միանալ դրանց, ավելացնել և հեռացնել ցանցեր, միացնել միայն տեղային թեժ կետ:"</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Լրացուցիչ կարգավորումներ"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Տեղորոշում"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Տեղադրության տվյալների վերջին հարցումները"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Վերջերս տեղորոշման տվյալների հարցումներ չեն արվել"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Թույլ տալ հավելվածներին և ծառայություններին որոնել մոտակայքում գտնվող սարքեր, նույնիսկ եթե Bluetooth-ն անջատած է: Դա կարող է բարելավել տեղորոշում օգտագործող գործառույթների և ծառայությունների որակը։"</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Համակարգ"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Համակարգի թարմացումներ"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Հասանելի չէ"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android-ի տարբերակը"</string>
     <string name="security_patch" msgid="4794276590178386903">"Անվտանգության համակարգի վերջին թարմացումը"</string>
     <string name="model_info" msgid="4966408071657934452">"Մոդել"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Միջուկի տարբերակը"</string>
     <string name="build_number" msgid="3997326631001009102">"Տարբերակի համարը"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth-ի հասցե"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Wi‑Fi սարքի MAC հասցեն"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Հասանելի չէ"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Կարգավիճակ"</string>
     <string name="device_status" msgid="267298179806290920">"Կարգավիճակ"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Թվանշանների աճող, նվազող կամ կրկնվող հաջորդականությունն արգելված է:"</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Էկրանի կողպման տարբերակներ"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> – <xliff:g id="NUM_DAYS">%3$s</xliff:g> օր առաջ"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Ավելացնել վստահելի սարք"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth-ը կմիանա, որ վստահելի սարք ավելացնեք"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Վստահելի սարքեր"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> սարք</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> սարք</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Միացված լինելու դեպքում ձեր <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> սարքը կկարողանա ապակողպել այս մեքենան: Եթե ձեր <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>-ը ինչ-որ մեկի մոտ հայտնվի, նա կկարողանա մտնել այս սարք:"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Հաստատել"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Հեռացնել վստահելի սարքը"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Փակել"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Ուղեկցող հավելվածի օգնությամբ կարգավորեք վստահելի սարքը։ Կարգավորումից հետո ձեր պրոֆիլն ավտոմատ կապակողպվի, երբ հեռախոսը միանա մեքենային։"</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Ներբեռնեք ուղեկցող հավելվածը հեռախոսում։"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Սարքերը զուգակցելու համար ընտրեք «<xliff:g id="CAR_NAME">%1$s</xliff:g>» մեքենան հեռախոսում։"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Շարժիչի գործարկումից հետո օգտատիրոջ պրոֆիլը կարող է ապակողպվել ավտոմեքենային մոտ գտնվող սարքի կողմից, նույնիսկ եթե այն մեկ այլ անձի ձեռքում է գտնվում:"</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Հաստատեք, որ զուգակցման կոդերը համընկնում են"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Հեռախոսը գրանցվեց"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Չհաջողվեց գրանցել «<xliff:g id="DEVICE_NAME">%1$s</xliff:g>» սարքը"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Վստահելի սարք ավելացնելու համար ընտրեք նույնականացման եղանակ: Եթե վստահելի սարքը ձեզ մոտ չէ, պրոֆիլ մուտք գործելու համար կպահանջվի նույնականացում:"</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Սարքն անջատված է։"</string>
     <string name="forget" msgid="3971143908183848527">"Հեռացնել"</string>
     <string name="connect" msgid="5861699594602380150">"Միանալ"</string>
     <string name="disconnect" msgid="6140789953324820336">"Անջատել"</string>
diff --git a/res/values-in/arrays.xml b/res/values-in/arrays.xml
new file mode 100644
index 0000000..d40ab17
--- /dev/null
+++ b/res/values-in/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Tanya"</item>
+    <item msgid="933409503308401889">"Jangan pernah izinkan"</item>
+    <item msgid="1154273129608299386">"Selalu izinkan"</item>
+  </string-array>
+</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index c8b30f0..f860097 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Mode malam"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Jaringan &amp; internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Jaringan seluler"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Aktif / SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Tidak aktif / SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Aktif / SIM yang didownload"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Tidak Aktif / SIM yang Didownload"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Tambahkan lainnya"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Kuota"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Akses data menggunakan jaringan seluler"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Nonaktifkan kuota?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Perlu memilih SIM"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Gunakan <xliff:g id="CARRIER">%1$s</xliff:g> untuk kuota?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Anda menggunakan <xliff:g id="CARRIER2_0">%2$s</xliff:g> untuk kuota. Jika Anda beralih ke <xliff:g id="CARRIER1">%1$s</xliff:g>, <xliff:g id="CARRIER2_1">%2$s</xliff:g> tidak akan digunakan lagi untuk kuota."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Gunakan <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roaming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Hubungkan ke layanan data saat roaming"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Izinkan roaming data?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Anda dapat dikenai biaya yang cukup besar."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Penggunaan data"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Kuota utama"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> digunakan"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"SMS Premium mungkin memerlukan biaya dan akan menambah tagihan operator. Jika izin aplikasi diaktifkan, Anda dapat mengirim SMS premium menggunakan aplikasi tersebut."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Akses penggunaan"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Akses penggunaan memungkinkan aplikasi melacak aplikasi lain yang Anda gunakan dan frekuensi penggunaannya, serta operator, setelan bahasa, dan detail lainnya."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Akses direktori"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Kontrol Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Kontrol Wi-Fi memungkinkan aplikasi mengaktifkan atau menonaktifkan Wi-Fi, memindai dan menghubungkan ke jaringan Wi-Fi, menambahkan atau menghapus jaringan, atau memulai hotspot khusus lokal."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Lainnya"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Lokasi"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Permintaan Lokasi Terbaru"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Tidak ada permintaan lokasi terbaru"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Izinkan aplikasi dan layanan memindai perangkat di sekitar kapan saja, meskipun Bluetooth nonaktif. Hal ini dapat dilakukan, misalnya, untuk menyempurnakan fitur dan layanan berbasis lokasi."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Sistem"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Update sistem"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Tidak tersedia"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Versi Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"Tingkat patch keamanan Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Model"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Versi kernel"</string>
     <string name="build_number" msgid="3997326631001009102">"Nomor versi"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Alamat bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Alamat MAC Wi-Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Tidak tersedia"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Status"</string>
     <string name="device_status" msgid="267298179806290920">"Status"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Urutan digit naik, turun, atau berulang tidak diizinkan."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Opsi kunci layar"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> hari yang lalu"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Tambahkan perangkat tepercaya"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth akan aktif guna menambah perangkat dipercaya"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Perangkat tepercaya"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> perangkat</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> perangkat</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> akan membuka kunci mobil Anda saat terhubung. Jika seseorang mengambil <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> Anda, orang tersebut mungkin dapat mengakses perangkat ini"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Konfirmasi"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Hapus perangkat tepercaya"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Selesai"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Gunakan aplikasi pendamping untuk menyiapkan perangkat dipercaya. Setelah disiapkan, profil pengguna akan dibuka kuncinya secara otomatis saat ponsel terdeteksi di dekat kendaraan."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Download aplikasi pendamping di ponsel"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Pilih <xliff:g id="CAR_NAME">%1$s</xliff:g> di ponsel untuk menghubungkan perangkat"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Perangkat dipercaya di dekat mobil Anda akan membuka kunci profil pengguna setelah mobil distarter, meskipun orang lain memegang perangkat."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Konfirmasi bahwa kode penghubung cocok"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Ponsel telah berhasil didaftarkan"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Pendaftaran <xliff:g id="DEVICE_NAME">%1$s</xliff:g> gagal"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Menambahkan perangkat dipercaya mewajibkan Anda menetapkan metode autentikasi setelahnya. Jika Anda tidak membawa perangkat dipercaya, autentikasi akan diperlukan untuk mengakses profil Anda."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Perangkat tidak terhubung."</string>
     <string name="forget" msgid="3971143908183848527">"Lupakan"</string>
     <string name="connect" msgid="5861699594602380150">"Hubungkan"</string>
     <string name="disconnect" msgid="6140789953324820336">"Putuskan hubungan"</string>
diff --git a/res/values-is/arrays.xml b/res/values-is/arrays.xml
new file mode 100644
index 0000000..b283cc2
--- /dev/null
+++ b/res/values-is/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Spyrja"</item>
+    <item msgid="933409503308401889">"Leyfa aldrei"</item>
+    <item msgid="1154273129608299386">"Leyfa alltaf"</item>
+  </string-array>
+</resources>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 91bb5d0..8cb04dc 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Næturstilling"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Netkerfi og internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Farsímakerfi"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-kort</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-kort</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Virk / SIM-kort"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Óvirk / SIM-kort"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Virk / sótt SIM-kort"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Óvirk / sótt SIM-kort"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Bæta fleiri við"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Farsímagögn"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Aðgangur að gögnum um farsímakerfi"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Slökkva á farsímagögnum?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Val er áskilið"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Nota <xliff:g id="CARRIER">%1$s</xliff:g> fyrir farsímagögn?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Þú ert að nota <xliff:g id="CARRIER2_0">%2$s</xliff:g> fyrir farsímagögn. Ef þú skiptir yfir í <xliff:g id="CARRIER1">%1$s</xliff:g> verður <xliff:g id="CARRIER2_1">%2$s</xliff:g> ekki lengur notað fyrir farsímagögn."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Nota <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Reiki"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Tengjast gagnaþjónustu í reiki"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Leyfa gagnareiki?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Þetta getur haft mikinn kostnað í för með sér."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Gagnanotkun"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Aðalgögn"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> notuð"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Sérstök SMS-skilaboð geta kostað þig peninga og munu bætast við símreikninginn þinn. Ef þú virkjar leyfi fyrir forrit geturðu sent sérstök SMS með því forriti."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Notkunaraðgangur"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Aðgangur að notkun gerir forriti kleift að fylgjast með því hvaða önnur forrit þú notar og hversu oft, sem og símafyrirtækinu þínu, tungumálastillingum og öðrum upplýsingum."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Aðgangur að skráasafni"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi stjórnun"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Wi-Fi stjórnun leyfir forriti að kveikja og slökkva á Wi-Fi, leita að og tengjast við Wi-Fi net, bæta við og fjarlægja net og búa til staðbundinn heitan reit."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Meira"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Staðsetning"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Nýlegar staðsetningarbeiðnir"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Engar nýlegar staðsetningarbeiðnir"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Leyfa forritum og þjónustu að leita að nálægum tækjum hvenær sem er, jafnvel þegar slökkt er á Bluetooth. Sem dæmi er hægt að nota þetta til að bæta eiginleika og þjónustu sem byggja á staðsetningu."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Kerfi"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Kerfisuppfærslur"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Ekki í boði"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android útgáfa"</string>
     <string name="security_patch" msgid="4794276590178386903">"Stig Android öryggisplásturs"</string>
     <string name="model_info" msgid="4966408071657934452">"Gerð"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Kjarnaútgáfa"</string>
     <string name="build_number" msgid="3997326631001009102">"Útgáfunúmer smíðar"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth-vistfang"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"MAC-vistfang Wi-Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Ekki í boði"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Staða"</string>
     <string name="device_status" msgid="267298179806290920">"Staða"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Hækkandi, lækkandi eða endurtekin röð tölustafa er óheimil."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Valkostir skjálæsingar"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : Fyrir <xliff:g id="NUM_DAYS">%3$s</xliff:g> dögum"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Bæta við traustu tæki"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Kveikt verður á Bluetooth fyrir nýtt traust tæki"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Traust tæki"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> tæki</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> tæki</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> mun opna þennan bíl þegar það er tengt. Ef einhver kemst yfir <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> kann viðkomandi að geta fengið aðgang að þessu tæki"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Staðfesta"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Fjarlægja traust tæki"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Lokið"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Notaðu fylgiforritið til að setja upp traust tæki. Þegar það hefur verið sett upp mun notandaprófílinn þinn opnast sjálfkrafa þegar borið er kennsl á tækið nálægt ökutækinu."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Sæktu fylgiforritið í símann þinn"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Veldu <xliff:g id="CAR_NAME">%1$s</xliff:g> í símanum til að para tækin"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Traust tæki nálægt bílnum mun opna notandaprófílinn þegar bíllinn er gangsettur, jafnvel þótt einhver annar haldi á tækinu."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Staðfestu að pörunarkóðarnir stemmi"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Síminn hefur verið skráður"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Skráning <xliff:g id="DEVICE_NAME">%1$s</xliff:g> mistókst"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Ef þú bætir við traustu tæki verðurðu að stilla auðkenningarmáta. Ef þú ert ekki með traust tæki við höndina verður auðkenningar krafist til að fá aðgang að prófílnum þínum."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Tæki aftengt."</string>
     <string name="forget" msgid="3971143908183848527">"Gleyma"</string>
     <string name="connect" msgid="5861699594602380150">"Tengja"</string>
     <string name="disconnect" msgid="6140789953324820336">"Aftengja"</string>
diff --git a/res/values-it/arrays.xml b/res/values-it/arrays.xml
new file mode 100644
index 0000000..a7c8a9a
--- /dev/null
+++ b/res/values-it/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Chiedi"</item>
+    <item msgid="933409503308401889">"Non consentire mai"</item>
+    <item msgid="1154273129608299386">"Consenti sempre"</item>
+  </string-array>
+</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 7fc65b1..2c2cfd1 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Modalità notturna"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Rete e Internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Rete mobile"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Attivo/SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Non attivo/SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Attivo/SIM scaricata"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Non attivo/SIM scaricata"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Aggiungi altri"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Dati mobili"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Accedi ai dati tramite la rete mobile"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Disattivare i dati mobili?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Fai una scelta"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Utilizzare <xliff:g id="CARRIER">%1$s</xliff:g> per i dati mobili?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Al momento utilizzi <xliff:g id="CARRIER2_0">%2$s</xliff:g> per i dati mobili. Se passi a <xliff:g id="CARRIER1">%1$s</xliff:g>, <xliff:g id="CARRIER2_1">%2$s</xliff:g> non verrà più utilizzato per i dati mobili."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Usa <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roaming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Connetti a servizi di dati in roaming"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Consentire il roaming dei dati?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"I costi potrebbero essere elevati."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Utilizzo dei dati"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Dati principali"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Dati utilizzati: <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Gli SMS premium potrebbero comportare costi, che verranno aggiunti alle fatture del tuo operatore. Se attivi l\'autorizzazione per un\'app, potrai utilizzare tale app per inviare SMS premium."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Accesso ai dati di utilizzo"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Accesso ai dati di utilizzo consente a un\'app di monitorare quali altre app utilizzi e con quale frequenza, oltre a informazioni come operatore, lingua impostata e altri dettagli."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Accesso alla directory"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Controllo del Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Controllo del Wi-Fi consente a un\'app di attivare o disattivare il Wi-Fi, cercare e connettersi a reti Wi-Fi, aggiungere e rimuovere reti oppure avviare un hotspot solo locale."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Altro"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Luogo"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Richieste di posizione recenti"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Nessuna richiesta di posizione recente"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Consenti ad app e servizi di cercare dispositivi nelle vicinanze in qualsiasi momento, anche quando il Bluetooth non è attivo. Questa funzione è utile, ad esempio, per migliorare funzioni e servizi basati sulla posizione."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Sistema"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Aggiornamenti di sistema"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Non disponibile"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Versione Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"Livello patch di sicurezza Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Modello"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Versione kernel"</string>
     <string name="build_number" msgid="3997326631001009102">"Numero build"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Indirizzo Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Indirizzo MAC Wi‑Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Non disponibile"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Stato"</string>
     <string name="device_status" msgid="267298179806290920">"Stato"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Non sono consentite sequenze di cifre in ordine crescente o decrescente oppure ripetute."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Opzioni di blocco schermo"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g>: <xliff:g id="NUM_DAYS">%3$s</xliff:g> giorni fa"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Aggiungi dispos. attendibile"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth attivato per consentire disp. attend."</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Dispos. attendibili"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> dispositivi</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> dispositivo</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Il dispositivo <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> consente di sbloccare l\'auto quando è connesso. Se qualcuno prende il tuo dispositivo <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, potrebbe riuscire a eseguire l\'accesso."</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Conferma"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Rimuovi dispositivo attendibile"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Fine"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Usa l\'app complementare per configurare un dispositivo attendibile. Dopo la configurazione, il tuo profilo utente viene sbloccato automaticamente quando il tuo telefono viene rilevato nelle vicinanze del veicolo."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Scarica l\'app companion sul tuo telefono"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Seleziona <xliff:g id="CAR_NAME">%1$s</xliff:g> sul tuo telefono per accoppiare i dispositivi"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Un dispositivo attendibile nelle vicinanze della tua auto sbloccherà il profilo utente all\'accensione, anche se non è in mano tua."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Conferma che i codici di accoppiamento corrispondono"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Il telefono è stato registrato"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Registrazione del dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g> non riuscita"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"L\'aggiunta di un dispositivo attendibile comporta necessariamente la successiva impostazione di un metodo di autenticazione. Se non hai con te il dispositivo attendibile, l\'autenticazione dovrà necessariamente accedere al tuo profilo."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Dispositivo disconnesso."</string>
     <string name="forget" msgid="3971143908183848527">"Elimina"</string>
     <string name="connect" msgid="5861699594602380150">"Collega"</string>
     <string name="disconnect" msgid="6140789953324820336">"Scollega"</string>
diff --git a/res/values-iw/arrays.xml b/res/values-iw/arrays.xml
new file mode 100644
index 0000000..76f620c
--- /dev/null
+++ b/res/values-iw/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"יש לשאול"</item>
+    <item msgid="933409503308401889">"אף פעם לא לאפשר"</item>
+    <item msgid="1154273129608299386">"לאפשר תמיד"</item>
+  </string-array>
+</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 6ff7b90..8ecc147 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -31,9 +31,28 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"מצב לילה"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"רשת ואינטרנט"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"רשת סלולרית"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="two"><xliff:g id="COUNT_1">%1$d</xliff:g> כרטיסי SIM</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> כרטיסי SIM</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> כרטיסי SIM</item>
+      <item quantity="one">כרטיס SIM אחד (‏<xliff:g id="COUNT_0">%1$d</xliff:g>)</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"פעיל / SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"לא פעיל / SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"פעיל / SIM שהורדת"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"לא פעיל / SIM שהורדת"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"הוספה"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"חבילת גלישה"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"שימוש בחבילת הגלישה דרך הרשת הסלולרית"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"לכבות את חבילת הגלישה?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"עליך לבחור אפשרות כלשהי"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"להשתמש ב-<xliff:g id="CARRIER">%1$s</xliff:g> בשביל חבילת גלישה?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"חבילת הגלישה הנוכחית היא של <xliff:g id="CARRIER2_0">%2$s</xliff:g>. אחרי מעבר אל <xliff:g id="CARRIER1">%1$s</xliff:g>, יופסק השימוש בחבילת הגלישה של <xliff:g id="CARRIER2_1">%2$s</xliff:g>."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"שימוש ב-<xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"נדידה"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"חיבור לשירותי נתונים בנדידה"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"האם לאפשר נדידה?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"ייתכנו שיעורי חיוב גבוהים."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"שימוש בחבילת הגלישה"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"נתונים עיקריים"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"נעשה שימוש ב-<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -324,12 +343,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"החיובים תמורת שליחה של הודעות SMS בתשלום, אם יהיו, יצורפו לחשבונות הספק שלך. לאחר שמפעילים את ההרשאה לאפליקציה כלשהי, ניתן לשלוח באמצעותה הודעות SMS בתשלום."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"גישה לנתוני השימוש"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"גישה לנתוני השימוש מאפשרת לאפליקציה לעקוב אחר האפליקציות האחרות שנעשה בהן שימוש ואחר תדירות השימוש בהן. המידע כולל גם את זהות הספק, הגדרות השפה ופרטים אחרים."</string>
-    <!-- no translation found for directory_access_title (7117264853202268740) -->
-    <skip />
-    <!-- no translation found for directory_on_volume (4947971311247097078) -->
-    <skip />
     <string name="wifi_control_title" msgid="5660436566907731929">"שליטה ב-Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"שליטה ב-Wi-Fi מאפשרת לאפליקציות להפעיל ולכבות חיבור Wi-Fi, לסרוק רשתות Wi-Fi ולהתחבר אליהן, להוסיף ולהסיר רשתות או להפעיל נקודה לשיתוף אינטרנט באופן מקומי בלבד."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"עוד"</string>
     <string name="location_settings_title" msgid="901334356682423679">"מיקום"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"בקשות של מיקומים אחרונים"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"אין בקשות של מיקומים אחרונים"</string>
@@ -342,8 +358,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"אפליקציות ושירותים יוכלו לסרוק מכשירים בקרבת מקום בכל עת, גם כאשר ה-Bluetooth כבוי. ניתן להשתמש בכך, למשל, כדי לשפר תכונות ושירותים מבוססי מיקום."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"מערכת"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"עדכוני מערכת"</string>
-    <!-- no translation found for status_unavailable (3737918179898732010) -->
-    <skip />
     <string name="firmware_version" msgid="8491753744549309333">"גרסת Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"רמת תיקון האבטחה ב-Android"</string>
     <string name="model_info" msgid="4966408071657934452">"דגם"</string>
@@ -351,8 +365,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"גרסת ליבה"</string>
     <string name="build_number" msgid="3997326631001009102">"מספר Build"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"כתובת Bluetooth"</string>
-    <!-- no translation found for about_wifi_mac_address (3934228440550548053) -->
-    <skip />
     <string name="device_info_not_available" msgid="2095601973977376655">"לא זמין"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"סטטוס"</string>
     <string name="device_status" msgid="267298179806290920">"סטטוס"</string>
@@ -630,6 +642,28 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"אין להגדיר רצף ספרות עולה, יורד או חוזר."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"אפשרויות נעילת מסך"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : לפני <xliff:g id="NUM_DAYS">%3$s</xliff:g> ימים"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"הוספת מכשיר מהימן"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth יופעל לצורך הוספת מכשיר מהימן"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"מכשירים מהימנים"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="two"><xliff:g id="COUNT_1">%d</xliff:g> מכשירים</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> מכשירים</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> מכשירים</item>
+      <item quantity="one">מכשיר אחד (<xliff:g id="COUNT_0">%d</xliff:g>)</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"ה-<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> שלך יבטל את נעילה המכונית הזו כשהוא מחובר. אם מישהו ייקח את ה-<xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, הוא יוכל לגשת אל המכשיר הזה"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"אישור"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"הסרת מכשיר מהימן"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"סיום"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"יש להשתמש באפליקציה הנלווית כדי להגדיר מכשיר מהימן. לאחר ההגדרה, הנעילה של פרופיל המשתמש תבוטל באופן אוטומטי כשהטלפון שלך יזוהה ליד הרכב."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. יש להוריד את האפליקציה הנלווית לטלפון שלך"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. יש לבחור את <xliff:g id="CAR_NAME">%1$s</xliff:g> בטלפון כדי להתאים את המכשירים"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"מכשיר מהימן בקרבת המכונית שלך יבטל את פרופיל המשתמש עם ההתנעה, גם אם המכשיר נמצא בידי מישהו אחר."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"יש לאשר שקודי ההתאמה תואמים"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"רישום הטלפון הסתיים בהצלחה"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"ההרשמה של <xliff:g id="DEVICE_NAME">%1$s</xliff:g> נכשלה"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"כדי להוסיף מכשיר מהימן, צריך להגדיר שיטת אימות בשלב הבא. אם המכשיר המהימן לא נמצא ברשותך, יידרש אימות כדי לקבל גישה לפרופיל שלך."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"המכשיר נותק."</string>
     <string name="forget" msgid="3971143908183848527">"מחיקה"</string>
     <string name="connect" msgid="5861699594602380150">"חיבור"</string>
     <string name="disconnect" msgid="6140789953324820336">"ניתוק"</string>
diff --git a/res/values-ja/arrays.xml b/res/values-ja/arrays.xml
new file mode 100644
index 0000000..cec41ae
--- /dev/null
+++ b/res/values-ja/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"確認する"</item>
+    <item msgid="933409503308401889">"許可しない"</item>
+    <item msgid="1154273129608299386">"常に許可する"</item>
+  </string-array>
+</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index f38cfcf..32c434f 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"夜間モード"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"ネットワークとインターネット"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"モバイル ネットワーク"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other">SIM: <xliff:g id="COUNT_1">%1$d</xliff:g> 枚</item>
+      <item quantity="one">SIM: <xliff:g id="COUNT_0">%1$d</xliff:g> 枚</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"有効 / SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"無効 / SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"有効 / ダウンロード型 SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"無効 / ダウンロード型 SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"追加"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"モバイルデータ"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"モバイル ネットワーク経由でデータにアクセス"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"モバイルデータを OFF にしますか？"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"選択してください"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"モバイルデータに <xliff:g id="CARRIER">%1$s</xliff:g> を使用？"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"モバイルデータに <xliff:g id="CARRIER2_0">%2$s</xliff:g> を使用しています。<xliff:g id="CARRIER1">%1$s</xliff:g> に切り替えると、モバイルデータに <xliff:g id="CARRIER2_1">%2$s</xliff:g> は使用されなくなります。"</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g> を使用"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"ローミング"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"ローミング中にデータサービスに接続する"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"データ ローミングを許可しますか？"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"高額な通信料が発生することがあります。"</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"データ使用"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"メインデータ"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> 使用"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"プレミアム SMS で料金が発生した場合は、携帯通信会社の請求に加算されます。アプリで権限を有効にすると、そのアプリを使用してプレミアム SMS を送信できるようになります。"</string>
     <string name="usage_access_title" msgid="7153427122072303254">"使用状況へのアクセス"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"「使用状況へのアクセス」により、アプリは他のアプリの使用状況、使用頻度、携帯通信会社、言語設定などの情報を追跡できるようになります。"</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"ディレクトリへのアクセス"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g>（<xliff:g id="DIRECTORY">%2$s</xliff:g>）"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi の管理"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"「Wi-Fi の管理」により、アプリは Wi-Fi のオン / オフ切り替え、Wi-Fi ネットワークのスキャンと接続、ネットワークの追加と削除、ローカル専用アクセス ポイントの起動を行えるようになります。"</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"その他"</string>
     <string name="location_settings_title" msgid="901334356682423679">"位置情報"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"最近の位置情報リクエスト"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"最近の位置情報リクエストはありません"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"アプリやサービスに対し、Bluetooth が OFF の場合でも、常に付近のデバイスをスキャンすることを許可します。たとえば、位置情報を使用する機能やサービスの改善に役立ちます。"</string>
     <string name="system_setting_title" msgid="6864599341809463440">"システム"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"システム アップデート"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"使用不可"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android のバージョン"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android セキュリティ パッチレベル"</string>
     <string name="model_info" msgid="4966408071657934452">"モデル"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"カーネル バージョン"</string>
     <string name="build_number" msgid="3997326631001009102">"ビルド番号"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth アドレス"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Wi-Fi MAC アドレス"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"該当なし"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"ステータス"</string>
     <string name="device_status" msgid="267298179806290920">"ステータス"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"一連の数字を昇順や降順にしたり、繰り返したりすることはできません。"</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"画面ロックの方法"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g>: <xliff:g id="NUM_DAYS">%3$s</xliff:g> 日前"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"信頼できるデバイスを追加"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"信頼できるデバイスを追加（Bluetooth: ON）"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"信頼できるデバイス"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> 台のデバイス</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> 台のデバイス</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"接続すると、<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> によりこの車のロックが解除されます。<xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> が第三者の手に渡ると、このデバイスを利用されてしまうおそれがあります"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"確認"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"信頼できるデバイスを削除"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"完了"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"コンパニオン アプリを使用して、信頼できるデバイスをセットアップしてください。セットアップすると、車の近くでスマートフォンが検出されたときにユーザー プロフィールが自動的にロック解除されます。"</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. スマートフォンにコンパニオン アプリをダウンロードします"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. スマートフォンで、デバイスとペア設定する <xliff:g id="CAR_NAME">%1$s</xliff:g> を選択します"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"信頼できるデバイスが車の近くにある場合、第三者がそのデバイスを手に取っている場合でも、エンジン始動時にユーザー プロフィールがロック解除されます。"</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"ペア設定コードが一致していることをご確認ください"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"スマートフォンを登録しました"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> の登録に失敗しました"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"信頼できるデバイスを追加するには、次に認証方式を設定してください。信頼できるデバイスがない場合は、プロフィールにアクセスする際に認証が必要になります。"</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"デバイスの接続が解除されました。"</string>
     <string name="forget" msgid="3971143908183848527">"削除"</string>
     <string name="connect" msgid="5861699594602380150">"接続"</string>
     <string name="disconnect" msgid="6140789953324820336">"接続を解除"</string>
diff --git a/res/values-ka/arrays.xml b/res/values-ka/arrays.xml
new file mode 100644
index 0000000..8031d70
--- /dev/null
+++ b/res/values-ka/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"შეკითხვა"</item>
+    <item msgid="933409503308401889">"არასოდეს დაშვება"</item>
+    <item msgid="1154273129608299386">"ყოველთვის დაშვება"</item>
+  </string-array>
+</resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 38c7a53..b958973 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"ღამის რეჟიმი"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"ქსელი და ინტერნეტი"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"მობილური ქსელი"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-ბარათი</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM-ბარათი</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"აქტიური / SIM ბარათი"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"არააქტიური / SIM ბარათი"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"აქტიური / ჩამოტვირთული SIM ბარათი"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"არააქტიური / ჩამოტვირთული SIM ბარათი"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"დამატება"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"მობილური ინტერნეტი"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"მონაცემებზე წვდომა მობილური ქსელით"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"გსურთ მობილური ინტერნეტის გამორთვა?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"არჩევა სავალდებულოა"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"გამოიყენებთ <xliff:g id="CARRIER">%1$s</xliff:g>-ს მობ. ინტ.-თვის?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"თქვენ იყენებთ <xliff:g id="CARRIER2_0">%2$s</xliff:g>-ს მობილური ინტერნეტისთვის. თუ <xliff:g id="CARRIER1">%1$s</xliff:g>-ზე გადაერთვებით, <xliff:g id="CARRIER2_1">%2$s</xliff:g> აღარ იქნება გამოყენებული მობილური ინტერნეტისთვის."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g>-ის გამოყენება"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"როუმინგი"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"როუმინგის დროს მონაცემთა სერვისებთან დაკავშირება"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"გსურთ, ჩაირთოს მობილური ინტერნეტის როუმინგი?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"ეს შეიძლება დიდ ხარჯებთან იყოს დაკავშირებული."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"მონაცემთა მოხმარება"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"ძირითადი მონაცემები"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"გამოყენებულია <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"პრემიუმ SMS შეტყობინებებისთვის შეიძლება დამატებითი საფასურის გადახდა მოგიწიოთ. აპისთვის ამ ნებართვის მიცემის შემთხვევაში, თქვენ მისი მეშვეობით პრემიუმ SMS შეტყობინებების გაგზავნას შეძლებთ."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"გამოყენებაზე წვდომა"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"გამოყენებაზე წვდომა საშუალებას აძლევს აპს, თვალყური ადევნოს, სხვა რომელ აპებს იყენებთ და რამდენად ხშირად, ასევე თქვენს ოპერატორს, ენის პარამეტრებსა და სხვა დეტალებს."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"კატალოგზე წვდომა"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi-ს მართვა"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Wi-Fi-ს მართვა საშუალებას აძლევს აპს, ჩართოს ან გამორთოს Wi-Fi, მოახდინოს სკანირება Wi-Fi ქსელების აღმოსაჩენად და მათთან დასაკავშირებლად, დაამატოს ან ამოშალოს ქსელები, ან გაუშვას მხოლოდ ადგილობრივი მოხმარების უსადენო ქსელი."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"მეტი"</string>
     <string name="location_settings_title" msgid="901334356682423679">"მდებარეობა"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"მდებარეობის ბოლოდროინდელი მოთხოვნები"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"მდებარეობის ბოლოდროინდელი მოთხოვნები არ არის"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"აპებისა და სერვისებისთვის ახლომდებარე მოწყობილობების ნებისმიერ დროს სკანირების დაშვება, მაშინაც კი, როცა Bluetooth გამორთულია. მაგალითად, აღნიშნული გამოიყენება მდებარეობაზე დაფუძნებული ფუნქციებისა და სერვისების გასაუმჯობესებლად."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"სისტემა"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"სისტემის განახლებები"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"მიუწვდომელია"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android-ის ვერსია"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android-ის უსაფრთხოების ნაწილაკის დონე"</string>
     <string name="model_info" msgid="4966408071657934452">"მოდელი"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"kernel-ის ვერსია"</string>
     <string name="build_number" msgid="3997326631001009102">"ანაწყობის ნომერი"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth მისამართი"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Wi‑Fi MAC მისამართი"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"მიუწვდომელი"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"სტატუსი"</string>
     <string name="device_status" msgid="267298179806290920">"სტატუსი"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"ციფრების ზრდადი, კლებადი ან გამეორებადი მიმდევრობის გამოყენება ნებადართული არ არის."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"ეკრანის დაბლოკვის ვარიანტები"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> დღის წინ"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"სანდო მოწყობილობის დამატება"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"სანდო მოწყობილ. დასამატებლად Bluetooth ჩაირთვება"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"სანდო მოწყობილობები"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> მოწყობილობა</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> მოწყობილობა</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"თქვენი <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> განბლოკავს ამ მანქანას, როცა ის დაკავშირებული იქნება. თუ თქვენი <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> სხვის ხელში აღმოჩნდება, ის შეძლებს ამ მოწყობილობაზე წვდომას."</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"დადასტურება"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"სანდო მოწყობილობის ამოშლა"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"მზადაა"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"სანდო მოწყობილობის დასაყენებლად გამოიყენეთ კომპანიონი აპი. დაყენების შემდეგ თქვენი მომხმარებლის პროფილი ავტომატურად განიბლოკება, როცა თქვენ ტელეფონი ავტომობილთან ახლოს დაფიქსირდება."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. ჩამოტვირთეთ კომპანიონი აპი თქვენს ტელეფონზე"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. თქვენს ტელეფონზე აირჩიეთ <xliff:g id="CAR_NAME">%1$s</xliff:g> მოწყობილობების დასაწყვილებლად"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"თქვენს ავტომობილთან ახლოს მდებარე სანდო მოწყობილობა განბლოკავს მომხმარებლის პროფილს აალებისას, მაშინაც კი, თუ მოწყობილობა სხვას უკავია."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"გთხოვთ, დაადასტუროთ, რომ დაკავშირების კოდები ემთხვევა"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"ტელეფონი წარმატებით დარეგისტრირდა"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>-ის რეგისტრაცია ვერ მოხერხდა"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"სანდო მოწყობილობის დასამატებლად მომდევნო ეტაპზე საჭირო იქნება ავტორიზაციის მეთოდის დაყენება. ავტორიზაცია საჭირო იქნება თქვენს პროფილზე წვდომისთვის, როცა სანდო მოწყობილობა თან არ გექნებათ."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"მოწყობილობის კავშირი გათიშულია."</string>
     <string name="forget" msgid="3971143908183848527">"დავიწყება"</string>
     <string name="connect" msgid="5861699594602380150">"დაკავშირება"</string>
     <string name="disconnect" msgid="6140789953324820336">"კავშირის გაწყვეტა"</string>
diff --git a/res/values-kk/arrays.xml b/res/values-kk/arrays.xml
new file mode 100644
index 0000000..27c0187
--- /dev/null
+++ b/res/values-kk/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Сұрау"</item>
+    <item msgid="933409503308401889">"Ешқашан рұқсат бермеу"</item>
+    <item msgid="1154273129608299386">"Әрдайым рұқсат беру"</item>
+  </string-array>
+</resources>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index b2a0f5d..8df952b 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Түнгі режим"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Желі және интернет"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Мобильдік желі"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM картасы</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM картасы</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Іске қосулы/SIM картасы"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Іске қосылмаған/SIM картасы"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Іске қосулы/Жүктеп алынған SIM картасы"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Өшірулі/Жүктеп алынған SIM картасы"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Тағы енгізу"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Мобильдік интернет"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Деректерге мобильдік желі арқылы кіру"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Мобильдік интернет өшірілсін бе?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Таңдаңыз"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Мобильдік интернет үшін <xliff:g id="CARRIER">%1$s</xliff:g> қолданылсын ба?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Мобильдік интернет үшін <xliff:g id="CARRIER2_0">%2$s</xliff:g> операторын пайдаланып жатырсыз. Егер <xliff:g id="CARRIER1">%1$s</xliff:g> операторына ауыссаңыз, мобильдік интернет үшін <xliff:g id="CARRIER2_1">%2$s</xliff:g> бұдан әрі пайдаланылмайтын болады."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g> операторын пайдалану"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Роуминг"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Роуминг кезінде дерек тасымалдау қызметтеріне қосылу"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Деректер роумингіне рұқсат етілсін бе?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Қомақты ақы алынуы мүмкін."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Дерек трафигі"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Негізгі деректер"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> пайдаланылды."</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Ақылы SMS жіберу үшін оператор тарифтеріне сәйкес ақы алынады. Егер қолданбаға рұқсат берсеңіз, сол қолданба арқылы ақылы SMS жібере аласыз."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Пайдалану тарихын көру"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Пайдалану тарихын көру мүмкіндігі қолданбаға сіз пайдаланатын басқа қолданбаларды және қаншалықты жиі пайдаланатыңыз туралы ақпаратты, сондай-ақ операторды, тіл параметрлерін және басқа мәліметтерді бақылауға мүмкіндік береді."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Каталогке кіру"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi желісін басқару"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Wi-Fi желісін басқару функциясы қолданбаға Wi-Fi желісін қосуға немесе өшіруге, Wi-Fi желілерін іздеуге және оларға жалғануға, желілерді енгізуге не өшіруге немесе тек жергілікті хотспотты іске қосуға рұқсат етеді."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Тағы"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Орналасқан жер"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Жақында жасалған орналасқан жерді анықтау сұраулары"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Орналасқан жерді анықтау сұраулары жақында жасалмаған"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Bluetooth өшірулі болса да, қолданбалар мен қызметтерге маңайдағы құрылғыларды іздеуге рұқсат беру. Бұл параметрді, мысалы, геодеректер негізіндегі функциялар мен қызметтерді жақсарту үшін пайдалануға болады."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Жүйе"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Жүйенің жаңа нұсқалары"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Қолжетімді емес"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android нұсқасы"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android қауіпсіздік түзетуінің деңгейі"</string>
     <string name="model_info" msgid="4966408071657934452">"Үлгісі"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Ядро нұсқасы"</string>
     <string name="build_number" msgid="3997326631001009102">"Жинақ нөмірі"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth мекенжайы"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Wi‑Fi MAC мекенжайы"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Қолжетімді емес"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Күйі"</string>
     <string name="device_status" msgid="267298179806290920">"Күйі"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Сандардың артатын, кемитін немесе қайталанатын ретіне рұқсат берілмейді"</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Экранды құлыптау опциялары"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> күн бұрын"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Сенімді құрылғыны қосу"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Сенімді құрылғы енгізу үшін Bluetooth қосылады"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Сенімді құрылғылар"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> құрылғы</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> құрылғы</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> жалғанған кезде, ол көлігіңіздің құлпын ашады. Әлдекім <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> құрылғыңызды алса, оған осы құрылғыға кіре алады."</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Растау"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Сенімді құрылғыны өшіру"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Дайын"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Сенімді құрылғыны реттеу үшін қосымша қолданбаны пайдаланыңыз. Реттелгеннен кейін, телефонды көлік анықтаған кезде, пайдаланушы профилі автоматты түрде ашылады."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Телефоныңызға қосымша қолданбаны жүктеп алыңыз."</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Құрылғыларды жұптау үшін телефоныңыздан <xliff:g id="CAR_NAME">%1$s</xliff:g> көлігін таңдаңыз."</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Көліктің маңайындағы сенімді құрылғы басқа біреуде болса да, пайдаланушы профилінің құлпын ашады."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Жұптау кодтарының сәйкес екенін растаңыз"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Телефон сәтті тіркелді"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> тіркелмеді."</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Сенімді құрылғыны енгізу үшін аутентификация әдісін орнату қажет. Сенімді құрылғыңыз болмаса, профильге кіру үшін аутентификация керек."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Құрылғы ажыратылды."</string>
     <string name="forget" msgid="3971143908183848527">"Ұмыту"</string>
     <string name="connect" msgid="5861699594602380150">"Жалғау"</string>
     <string name="disconnect" msgid="6140789953324820336">"Ажырату"</string>
diff --git a/res/values-km/arrays.xml b/res/values-km/arrays.xml
new file mode 100644
index 0000000..e68f971
--- /dev/null
+++ b/res/values-km/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"សួរ"</item>
+    <item msgid="933409503308401889">"កុំ​អនុញ្ញាតឱ្យសោះ"</item>
+    <item msgid="1154273129608299386">"អនុញ្ញាត​ជា​និច្ច"</item>
+  </string-array>
+</resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 080fbdd..c079180 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"មុខងារយប់"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"បណ្តាញ និង​អ៊ីនធឺណិត"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"បណ្ដាញទូរសព្ទចល័ត"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other">ស៊ីម <xliff:g id="COUNT_1">%1$d</xliff:g></item>
+      <item quantity="one">ស៊ីម <xliff:g id="COUNT_0">%1$d</xliff:g></item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"សកម្ម / ស៊ីម"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"អសកម្ម / ស៊ីម"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"សកម្ម / ស៊ីមដែលបាន​ទាញយក"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"អសកម្ម / ស៊ីមដែលបានទាញយក"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"បញ្ចូល​បន្ថែម​​ទៀត"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"ទិន្នន័យ​ទូរសព្ទចល័ត"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"ចូល​ប្រើ​ទិន្នន័យ​ដោយ​ប្រើ​បណ្ដាញ​​ទូរសព្ទ​ចល័ត"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"បិទទិន្នន័យ​ទូរសព្ទចល័ត?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"តម្រូវឱ្យមាន​ការជ្រើសរើស"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"ប្រើ <xliff:g id="CARRIER">%1$s</xliff:g> សម្រាប់​ទិន្នន័យទូរសព្ទចល័ត?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"អ្នក​កំពុង​ប្រើប្រាស់ <xliff:g id="CARRIER2_0">%2$s</xliff:g> សម្រាប់​ទិន្នន័យ​ទូរសព្ទចល័ត។ ប្រសិនបើអ្នកប្ដូរទៅ <xliff:g id="CARRIER1">%1$s</xliff:g> <xliff:g id="CARRIER2_1">%2$s</xliff:g> នឹងមិនត្រូវបានប្រើ​សម្រាប់ទិន្នន័យទូរសព្ទចល័ត​ទៀតទេ។"</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"ប្រើ <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"រ៉ូ​មីង"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"ភ្ជាប់​សេវាកម្ម​ទិន្នន័យ នៅពេលរ៉ូមីង"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"អនុញ្ញាតឱ្យ​ប្រើការ​រ៉ូមីង​ទិន្នន័យ?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"អាច​នឹងមាន​ការគិតថ្លៃខ្ពស់​ពីអ្នក។"</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"ការ​ប្រើ​ទិន្នន័យ"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"ទិន្នន័យ​ចម្បង"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"បានប្រើ​អស់ <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"សេវាកម្ម SMS បង់ប្រាក់​អាចនឹងគិតថ្លៃពីអ្នក ហើយបញ្ចូលតម្លៃនោះ​ទៅក្នុងការគិតថ្លៃតាម​ក្រុមហ៊ុនសេវាទូរសព្ទ​របស់អ្នក។ ប្រសិនបើ​អ្នកបើកការអនុញ្ញាតសម្រាប់កម្មវិធី នោះអ្នកនឹង​អាចផ្ញើសេវាកម្ម SMS បង់ប្រាក់​ដោយប្រើកម្មវិធីនោះ។"</string>
     <string name="usage_access_title" msgid="7153427122072303254">"ការចូល​ប្រើប្រាស់"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"ការចូល​ប្រើប្រាស់​អនុញ្ញាតឱ្យ​កម្មវិធី​តាមដាន​កម្មវិធី​ផ្សេងទៀត​ដែលអ្នកកំពុងប្រើ និងប្រើប្រាស់​ញឹកញាប់​កម្រិតណា ហើយ​វា​ក៏តាមដាន​ក្រុមហ៊ុនសេវាទូរសព្ទ ការកំណត់ភាសា និងព័ត៌មាន​លម្អិត​ផ្សេងទៀត​របស់អ្នក​ផងដែរ។"</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"ការចូល​ប្រើ​បញ្ជី"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"ការ​គ្រប់គ្រង Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"ការ​គ្រប់គ្រង Wi-Fi អនុញ្ញាតឱ្យ​កម្មវិធីបើក ឬបិទ Wi-Fi ស្កេន និងភ្ជាប់បណ្តាញ Wi-Fi បញ្ចូល ឬលុប​បណ្តាញ ឬចាប់ផ្តើម​តែហតស្ប៉ត​មូលដ្ឋាន​ប៉ុណ្ណោះ។"</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"ច្រើន​ទៀត"</string>
     <string name="location_settings_title" msgid="901334356682423679">"ទីតាំង"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"សំណើ​ទីតាំង​ថ្មីៗ"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"គ្មាន​សំណើ​ទីតាំង​ថ្មីៗ​ទេ"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"អនុញ្ញាត​ឱ្យ​កម្មវិធី និងសេវាកម្ម​ស្កេនរក​ឧបករណ៍ដែល​នៅ​ជិត​បាន​គ្រប់ពេល ទោះបីជា​ប៊្លូធូសបិទ​ក៏ដោយ។ ឧទាហរណ៍ សកម្មភាព​នេះ​អាច​ត្រូវ​បាន​ប្រើ ដើម្បី​កែលម្អ​មុខងារ និងសេវាកម្មនានា​ដែល​ផ្អែក​លើ​ទីតាំង។"</string>
     <string name="system_setting_title" msgid="6864599341809463440">"ប្រព័ន្ធ"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"បច្ចុប្បន្នភាព​ប្រព័ន្ធ"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"មិនមាន"</string>
     <string name="firmware_version" msgid="8491753744549309333">"កំណែ Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"កម្រិតបំណះសុវត្ថិភាព Android"</string>
     <string name="model_info" msgid="4966408071657934452">"ម៉ូដែល"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"កំណែ​ខឺណែល"</string>
     <string name="build_number" msgid="3997326631001009102">"លេខ​កំណែបង្កើត"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"អាសយដ្ឋាន​ប៊្លូធូស"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"អាសយដ្ឋាន Wi‑Fi MAC"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"មិនមានទេ"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"ស្ថានភាព"</string>
     <string name="device_status" msgid="267298179806290920">"ស្ថានភាព"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"មិន​អនុញ្ញាត​ឱ្យ​មាន​លេខ​លំដាប់​ឡើង ចុះ ឬ​ដដែលៗ​ទេ។"</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"ជម្រើស​ការចាក់សោអេក្រង់"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\nថ្ងៃ <xliff:g id="DATE">%2$s</xliff:g>៖ <xliff:g id="NUM_DAYS">%3$s</xliff:g> ថ្ងៃមុន"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"បញ្ចូល​ឧបករណ៍​ដែលទុកចិត្ត"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"ប៊្លូធូសនឹងបើក ដើម្បីបញ្ចូលឧបករណ៍​ដែលទុកចិត្ត"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"ឧបករណ៍​ដែល​ទុកចិត្ត"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other">ឧបករណ៍ <xliff:g id="COUNT_1">%d</xliff:g></item>
+      <item quantity="one">ឧបករណ៍ <xliff:g id="COUNT_0">%d</xliff:g></item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> របស់​អ្នក​នឹង​ដោះសោរថយន្ត​នេះ នៅពេល​ភ្ជាប់។ ប្រសិនបើ​នរណាម្នាក់យក​ <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> របស់អ្នក បុគ្គល​នោះ​អាច​នឹងចូលប្រើ​ឧបករណ៍​នេះ​បាន"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"បញ្ជាក់"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"លុបឧបករណ៍ដែលទុកចិត្ត"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"រួចរាល់"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"ប្រើ​កម្មវិធី​ដៃគូ ដើម្បី​រៀបចំឧបករណ៍​ដែល​ទុក​ចិត្ត។ បន្ទាប់ពី​រៀបចំ​រួចហើយ កម្រងព័ត៌មាន​អ្នកប្រើប្រាស់​របស់អ្នក​នឹងដោះសោ​ដោយស្វ័យប្រវត្តិ នៅពេល​ចាប់បាន​ទូរសព្ទ​របស់អ្នក​នៅជិត​យានជំនិះ។"</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. ទាញយក​កម្មវិធី​ដៃគូ​នៅលើទូរសព្ទរបស់អ្នក"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. ជ្រើសរើស​ <xliff:g id="CAR_NAME">%1$s</xliff:g> នៅលើ​ទូរសព្ទ​របស់អ្នក ដើម្បីផ្គូផ្គង​ឧបករណ៍"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"ឧបករណ៍​ទុកចិត្ត​ដែលនៅជិត​រថយន្តរបស់អ្នក​នឹង​ដោះសោ​កម្រងព័ត៌មាន​អ្នកប្រើប្រាស់​នៅពេល​បញ្ឆេះរថយន្ត ទោះបីជា​អ្នកផ្សេង​កំពុងកាន់​ឧបករណ៍នោះ​ក៏ដោយ។"</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"សូមបញ្ជាក់ថា​កូដផ្គូផ្គងមានភាពត្រូវគ្នា"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"បានចុះឈ្មោះ​ទូរសព្ទដោយជោគជ័យ"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"មិន​អាច​ចុះឈ្មោះ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> បាន​ទេ​"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"ការបញ្ចូល​ឧបករណ៍​ដែល​ទុកចិត្ត​តម្រូវឱ្យអ្នក​កំណត់​វិធីផ្ទៀងផ្ទាត់​បន្ទាប់។ ប្រសិនបើអ្នក​គ្មាន​ឧបករណ៍​ដែលទុកចិត្ត​ជាប់ខ្លួនអ្នក​ទេ នោះនឹង​តម្រូវឱ្យ​មានការផ្ទៀងផ្ទាត់ ដើម្បី​ចូលប្រើ​កម្រងព័ត៌មាន​របស់អ្នក។"</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"បានផ្តាច់​ឧបករណ៍។"</string>
     <string name="forget" msgid="3971143908183848527">"បំភ្លេច"</string>
     <string name="connect" msgid="5861699594602380150">"ភ្ជាប់"</string>
     <string name="disconnect" msgid="6140789953324820336">"ផ្ដាច់"</string>
diff --git a/res/values-kn/arrays.xml b/res/values-kn/arrays.xml
new file mode 100644
index 0000000..e4fc3ea
--- /dev/null
+++ b/res/values-kn/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"ಕೇಳಿ"</item>
+    <item msgid="933409503308401889">"ಎಂದಿಗೂ ಅನುಮತಿಸಬೇಡಿ"</item>
+    <item msgid="1154273129608299386">"ಯಾವಾಗಲೂ ಅನುಮತಿಸಿ"</item>
+  </string-array>
+</resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index ba32375..5711879 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"ರಾತ್ರಿ ಮೋಡ್"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"ನೆಟ್‌ವರ್ಕ್ ಮತ್ತು ಇಂಟರ್ನೆಟ್"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"ಮೊಬೈಲ್‌ ನೆಟ್‌ವರ್ಕ್‌"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> ಸಿಮ್‌ಗಳು</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ಸಿಮ್‌ಗಳು</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"ಸಕ್ರಿಯ / ಸಿಮ್"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"ಸಕ್ರಿಯವಾಗಿರದ / ಸಿಮ್"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"ಸಕ್ರಿಯ / ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದ SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"ಸಕ್ರಿಯವಾಗಿರದ / ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದ ಸಿಮ್"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"ಇನ್ನಷ್ಟು ಸೇರಿಸಿ"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"ಮೊಬೈಲ್ ಡೇಟಾ"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"ಮೊಬೈಲ್ ನೆಟ್‌ವರ್ಕ್‌ ಬಳಸಿ ಡೇಟಾ ಪ್ರವೇಶಿಸಿ"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"ಮೊಬೈಲ್ ಡೇಟಾ ಆಫ್ ಮಾಡಬೇಕೆ?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"ಆಯ್ಕೆ ಅಗತ್ಯವಿದೆ"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"ಮೊಬೈಲ್ ಡೇಟಾಗಾಗಿ <xliff:g id="CARRIER">%1$s</xliff:g> ಬಳಸುವುದೇ?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"ಮೊಬೈಲ್ ಡೇಟಾಗಾಗಿ ನೀವು <xliff:g id="CARRIER2_0">%2$s</xliff:g> ಬಳಸುತ್ತಿರುವಿರಿ. ನೀವು <xliff:g id="CARRIER1">%1$s</xliff:g> ಗೆ ಬದಲಾಯಿಸಿದರೆ, ಇನ್ನು ಮುಂದೆ <xliff:g id="CARRIER2_1">%2$s</xliff:g> ಅನ್ನು ಮೊಬೈಲ್ ಡೇಟಾಗಾಗಿ ಬಳಸಲಾಗುವುದಿಲ್ಲ."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g> ಅನ್ನು ಬಳಸಿ"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"ರೋಮಿಂಗ್"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"ರೋಮಿಂಗ್‌ನಲ್ಲಿರುವಾಗ ಡೇಟಾ ಸೇವೆಗಳಿಗೆ ಸಂಪರ್ಕಿಸಿ"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"ಡೇಟಾ ರೋಮಿಂಗ್ ಅನುಮತಿಸುವುದೇ?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"ನೀವು ಗಣನೀಯವಾಗಿ ಶುಲ್ಕಗಳನ್ನು ತೆರಬೇಕಾಗಬಹುದು."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"ಡೇಟಾ ಬಳಕೆ"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"ಪ್ರಾಥಮಿಕ ಡೇಟಾ"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> ಬಳಸಲಾಗಿದೆ"</string>
@@ -320,12 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"ಪ್ರೀಮಿಯಂ SMS ನಿಮ್ಮ ವೆಚ್ಚಗಳಿಗೆ ಕಾರಣವಾಗಬಹುದು ಮತ್ತು ಇದನ್ನು ನಿಮ್ಮ ವಾಹಕ ಬಿಲ್‌ಗಳಿಗೆ ಸೇರಿಸಲಾಗುತ್ತದೆ. ನೀವು ಆ್ಯಪ್‌ಗೆ ಅನುಮತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, ಆ್ಯಪ್ ಬಳಸಿಕೊಂಡು ಪ್ರೀಮಿಯಂ SMS ಕಳುಹಿಸಲು ನಿಮಗೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"ಬಳಕೆಯ ಡೇಟಾಗೆ ಪ್ರವೇಶ"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"ಬಳಕೆ ಪ್ರವೇಶವು, ನೀವು ಇತರ ಯಾವ ಆ್ಯಪ್‌ಗಳನ್ನು ಬಳಸುತ್ತಿರುವಿರಿ ಮತ್ತು ಎಷ್ಟು ಬಾರಿ ಎಂಬುದನ್ನು ಅಲ್ಲದೆ ನಿಮ್ಮ ವಾಹಕ, ಭಾಷೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಹಾಗೂ ಇತರ ವಿವರಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು ಅನುಮತಿಸುತ್ತದೆ."</string>
-    <!-- no translation found for directory_access_title (7117264853202268740) -->
-    <skip />
-    <!-- no translation found for directory_on_volume (4947971311247097078) -->
-    <skip />
     <string name="wifi_control_title" msgid="5660436566907731929">"ವೈ-ಫೈ ನಿಯಂತ್ರಣ"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"ವೈ-ಫೈ ನಿಯಂತ್ರಣವು, ವೈ-ಫೈ ಅನ್ನು ಆನ್ ಅಥವಾ ಆಫ್ ಮಾಡಲು, ವೈ-ಫೈ ನೆಟ್‌ವರ್ಕ್‌ಗಳನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಲು ಮತ್ತು ಸಂಪರ್ಕಿಸಲು, ನೆಟ್‌ವರ್ಕ್‌ಗಳನ್ನು ಸೇರಿಸಲು ಅಥವಾ ತೆಗೆದುಹಾಕಲು ಹಾಗೂ ಸ್ಥಳೀಯವಾದ ಹಾಟ್‌ಸ್ಪಾಟ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಈ ಆ್ಯಪ್‌ಗೆ ಅನುಮತಿಸುತ್ತದೆ."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"ಇನ್ನಷ್ಟು"</string>
     <string name="location_settings_title" msgid="901334356682423679">"ಸ್ಥಳ"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"ಇತ್ತೀಚಿನ ಸ್ಥಳ ವಿನಂತಿಗಳು"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"ಯಾವುದೇ ಇತ್ತೀಚಿನ ಸ್ಥಳ ವಿನಂತಿಗಳು ಇಲ್ಲ"</string>
@@ -338,8 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"ಬ್ಲೂಟೂತ್‌ ಆಫ್‌ ಆಗಿದ್ದರೂ ಸಹ, ಯಾವ ಸಮಯದಲ್ಲಾದರೂ ಸಮೀಪದ ಸಾಧನಗಳಿಗೆ ಸ್ಕ್ಯಾನ್‌ ಮಾಡಲು ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಮತ್ತು ಸೇವೆಗಳನ್ನು ಅನುಮತಿಸಿ. ಉದಾಹರಣೆಗೆ, ಸ್ಥಳ ಆಧಾರಿತ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಮತ್ತು ಸೇವೆಗಳನ್ನು ಸುಧಾರಿಸಲು ಇದನ್ನು ಬಳಸಬಹುದಾಗಿದೆ."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"ಸಿಸ್ಟಂ"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"ಸಿಸ್ಟಂ ಅಪ್‌ಡೇಟ್‌ಗಳು"</string>
-    <!-- no translation found for status_unavailable (3737918179898732010) -->
-    <skip />
     <string name="firmware_version" msgid="8491753744549309333">"Android ಆವೃತ್ತಿ"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android ಭದ್ರತೆ ಪ್ಯಾಚ್ ಮಟ್ಟ"</string>
     <string name="model_info" msgid="4966408071657934452">"ಮಾಡೆಲ್"</string>
@@ -347,8 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"ಕೆರ್ನಲ್ ಆವೃತ್ತಿ"</string>
     <string name="build_number" msgid="3997326631001009102">"ಬಿಲ್ಡ್ ಸಂಖ್ಯೆ"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"ಬ್ಲೂಟೂತ್‌‌ ವಿಳಾಸ"</string>
-    <!-- no translation found for about_wifi_mac_address (3934228440550548053) -->
-    <skip />
     <string name="device_info_not_available" msgid="2095601973977376655">"ಲಭ್ಯವಿಲ್ಲ"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"ಸ್ಥಿತಿ"</string>
     <string name="device_status" msgid="267298179806290920">"ಸ್ಥಿತಿ"</string>
@@ -610,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"ಅಂಕಿಗಳ ಆರೋಹಣ, ಅವರೋಹಣ ಅಥವಾ ಪುನರಾವರ್ತಿತ ಅನುಕ್ರಮವನ್ನು ನಿಷೇಧಿಸಲಾಗಿದೆ."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಆಯ್ಕೆಗಳು"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> ದಿನಗಳ ಹಿಂದೆ"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"ವಿಶ್ವಾಸಾರ್ಹ ಸಾಧನ ಸೇರಿಸಿ"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"ವಿಶ್ವಾಸಾರ್ಹ ಸಾಧನ ಸೇರಿಸಲು ಬ್ಲೂಟೂತ್ ಆನ್ ಆಗುತ್ತದೆ"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"ವಿಶ್ವಾಸಾರ್ಹ ಸಾಧನಗಳು"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> ಸಾಧನಗಳು</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> ಸಾಧನಗಳು</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"ನಿಮ್ಮ <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> ಸಂಪರ್ಕಿತಗೊಂಡಾಗ ಈ ಕಾರ್‌ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡುತ್ತದೆ. ಒಂದು ವೇಳೆ ನಿಮ್ಮ <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> ಅನ್ನು ಯಾರಾದರೂ ತೆಗೆದುಕೊಂಡರೆ, ಅವರಿಗೆ ಈ ಸಾಧನವನ್ನು ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಾಗಬಹುದು"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"ದೃಢೀಕರಿಸಿ"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"ವಿಶ್ವಾಸಾರ್ಹ ಸಾಧನವನ್ನು ತೆಗೆದುಹಾಕಿ"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"ಮುಗಿದಿದೆ"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"ವಿಶ್ವಾಸಾರ್ಹ ಸಾಧನವನ್ನು ಸೆಟಪ್ ಮಾಡಲು ಕಂಪ್ಯಾನಿಯನ್ ಆ್ಯಪ್ ಬಳಸಿ. ಸೆಟಪ್ ಮಾಡಿದ ನಂತರ, ನಿಮ್ಮ ಫೋನ್ ವಾಹನದ ಬಳಿ ಕಂಡುಬಂದಾಗ ನಿಮ್ಮ ಬಳಕೆದಾರರ ಪ್ರೊಫೈಲ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅನ್‌ಲಾಕ್ ಆಗುತ್ತದೆ."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. ನಿಮ್ಮ ಫೋನ್‌ನಲ್ಲಿರುವ ಕಂಪ್ಯಾನಿಯನ್ ಆ್ಯಪ್ ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. ಸಾಧನಗಳನ್ನು ಜೋಡಿಸಲು ನಿಮ್ಮ ಫೋನ್‌ನಲ್ಲಿರುವ <xliff:g id="CAR_NAME">%1$s</xliff:g> ಆಯ್ಕೆಮಾಡಿ"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"ಬೇರೊಬ್ಬರು ಸಾಧನವನ್ನು ಹಿಡಿದಿಟ್ಟುಕೊಂಡಿದ್ದರೂ ಸಹ, ನಿಮ್ಮ ವಿಶ್ವಾಸಾರ್ಹ ಸಾಧನವು ಬಳಕೆದಾರರ ಪ್ರೊಫೈಲ್ ಸಮೀಪದಲ್ಲಿದ್ದಾಗ, ಅದು ಪ್ರಾರಂಭಿಸಿದ ನಂತರ ಅದನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡುತ್ತದೆ."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"ಜೋಡಣೆ ಕೋಡ್‌ಗಳು ಹೊಂದಾಣಿಕೆಯಾಗಿವೆಯೇ ಎಂದು ದೃಢೀಕರಿಸಿ"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"ಫೋನ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ನೋಂದಣಿ ಮಾಡಲಾಗಿದೆ"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ನೋಂದಣಿ ವಿಫಲವಾಗಿದೆ"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"ವಿಶ್ವಾಸಾರ್ಹ ಸಾಧನವನ್ನು ಸೇರಿಸುವುದು ನೀವು ಪ್ರಮಾಣೀಕರಣ ವಿಧಾನವನ್ನು ಹೊಂದಿಸುವ ಅಗತ್ಯವಿದೆ. ನೀವು ವಿಶ್ವಾಸಾರ್ಹ ಸಾಧನವನ್ನು ನಿಮ್ಮೊಂದಿಗೆ ಹೊಂದಿಲ್ಲದೇ ಇದ್ದರೆ, ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ಅನ್ನು ಪ್ರವೇಶಿಸಲು ಪ್ರಮಾಣೀಕರಣದ ಅಗತ್ಯವಿದೆ."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"ಸಾಧನದ ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಲಾಗಿದೆ."</string>
     <string name="forget" msgid="3971143908183848527">"ಮರೆಯಿರಿ"</string>
     <string name="connect" msgid="5861699594602380150">"ಸಂಪರ್ಕಿಸಿ"</string>
     <string name="disconnect" msgid="6140789953324820336">"ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಿ"</string>
diff --git a/res/values-ko/arrays.xml b/res/values-ko/arrays.xml
new file mode 100644
index 0000000..96bba98
--- /dev/null
+++ b/res/values-ko/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"전송 전에 확인"</item>
+    <item msgid="933409503308401889">"허용 안함"</item>
+    <item msgid="1154273129608299386">"항상 허용"</item>
+  </string-array>
+</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 6d644d2..8f2f389 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"야간 모드"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"네트워크 및 인터넷"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"모바일 네트워크"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other">SIM <xliff:g id="COUNT_1">%1$d</xliff:g>개</item>
+      <item quantity="one">SIM <xliff:g id="COUNT_0">%1$d</xliff:g>개</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"활성/SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"비활성/SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"활성/다운로드한 SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"비활성/다운로드한 SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"추가"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"모바일 데이터"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"모바일 네트워크를 사용하여 데이터 액세스"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"모바일 데이터를 사용 중지하시겠습니까?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"선택 필요"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"<xliff:g id="CARRIER">%1$s</xliff:g>의 모바일 데이터를 사용하시겠습니까?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"<xliff:g id="CARRIER2_0">%2$s</xliff:g> 모바일 데이터를 사용하고 있습니다. <xliff:g id="CARRIER1">%1$s</xliff:g>(으)로 전환하면 <xliff:g id="CARRIER2_1">%2$s</xliff:g> 모바일 데이터를 더 이상 사용하지 않게 됩니다."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g> 사용"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"로밍"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"로밍 시 데이터 서비스에 연결"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"데이터 로밍을 허용하시겠습니까?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"요금이 많이 부과될 수 있습니다."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"데이터 사용량"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"기본 데이터"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g><xliff:g id="ID_2">^2</xliff:g> 사용됨"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"프리미엄 SMS는 요금이 부과될 수 있으며 이는 이동통신사 요금에 추가됩니다. 앱에 권한을 부여하면 해당 앱을 사용하여 프리미엄 SMS를 사용할 수 있게 됩니다."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"사용 기록에 액세스"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"앱에서 사용 기록에 액세스하도록 허용하면 사용 중인 다른 앱의 종류와 사용 빈도, 이동통신사, 언어 설정, 기타 세부정보를 추적할 수 있게 됩니다."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"디렉터리 액세스"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="DIRECTORY">%2$s</xliff:g>(<xliff:g id="VOLUME">%1$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi 제어"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Wi-Fi 제어를 사용하면 앱에서 Wi-Fi를 사용 또는 사용 중지하고, Wi-Fi 네트워크를 검색 및 연결하고, 네트워크를 추가 또는 제거하며, 로컬 전용 핫스팟을 시작하도록 허용합니다."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"더보기"</string>
     <string name="location_settings_title" msgid="901334356682423679">"위치"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"최근 위치 요청"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"최근 위치 요청 없음"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"블루투스가 꺼져 있을 때도 항상 앱과 서비스에서 주변 기기를 검색하도록 허용합니다. 이 설정은 예를 들면 위치 기반 기능 및 서비스를 개선하는 데 사용될 수 있습니다."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"시스템"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"시스템 업데이트"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"사용할 수 없음"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android 버전"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android 보안 패치 수준"</string>
     <string name="model_info" msgid="4966408071657934452">"모델"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"커널 버전"</string>
     <string name="build_number" msgid="3997326631001009102">"빌드 번호"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"블루투스 주소"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Wi-Fi MAC 주소"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"사용할 수 없음"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"상태"</string>
     <string name="device_status" msgid="267298179806290920">"상태"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"연속으로 올라가거나 내려가는 숫자 또는 반복되는 숫자의 배열은 허용되지 않습니다."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"화면 잠금 옵션"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g>: <xliff:g id="NUM_DAYS">%3$s</xliff:g>일 전"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"신뢰할 수 있는 기기 추가"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"신뢰할 수 있는 기기를 추가하기 위해 블루투스가 사용 설정됩니다."</string>
+    <string name="trusted_device" msgid="5637378361866787603">"신뢰할 수 있는 기기"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other">기기 <xliff:g id="COUNT_1">%d</xliff:g>대</item>
+      <item quantity="one">기기 <xliff:g id="COUNT_0">%d</xliff:g>대</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g>이(가) 연결되면 차량을 잠금 해제합니다. 누군가 <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>을(를) 가져가면 이 차량에 액세스할 수도 있습니다."</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"확인"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"신뢰할 수 있는 기기 삭제"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"완료"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"호환 앱을 사용해 신뢰할 수 있는 기기를 설정하세요. 설정이 완료되면 차량 근처에서 휴대전화가 감지된 경우 사용자 프로필이 자동으로 잠금 해제됩니다."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. 휴대전화에 호환 앱을 다운로드합니다."</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. 휴대전화에서 <xliff:g id="CAR_NAME">%1$s</xliff:g>을(를) 선택하여 기기를 페어링합니다."</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"차량 근처에 신뢰할 수 있는 기기가 있는 경우 다른 사람이 기기를 들고 있어도 시동을 걸면 사용자 프로필이 잠금 해제됩니다."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"페어링 코드가 일치하는지 확인하세요."</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"휴대전화를 등록했습니다."</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>을(를) 등록하는 데 실패했습니다."</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"신뢰할 수 있는 기기를 추가하면 다음번에 인증 수단을 설정해야 합니다. 신뢰할 수 있는 기기가 없으면 인증 과정을 거쳐야 내 프로필에 액세스할 수 있습니다."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"기기 연결이 끊어졌습니다."</string>
     <string name="forget" msgid="3971143908183848527">"삭제"</string>
     <string name="connect" msgid="5861699594602380150">"연결"</string>
     <string name="disconnect" msgid="6140789953324820336">"연결 해제"</string>
diff --git a/res/values-ky/arrays.xml b/res/values-ky/arrays.xml
new file mode 100644
index 0000000..ce983c4
--- /dev/null
+++ b/res/values-ky/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Суроо"</item>
+    <item msgid="933409503308401889">"Эч качан уруксат жок"</item>
+    <item msgid="1154273129608299386">"Дайым уруксат"</item>
+  </string-array>
+</resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 08066ba..9504f54 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Түнкү режим"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Тармак жана Интернет"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Мобилдик тармак"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM карта</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM карта</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Активдүү / SIM-карта"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Активдүү эмес / SIM-карта"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Активдүү / Жүктөлүп алынган SIM-карта"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Активдүү эмес / Жүктөлүп алынган SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Дагы кошуу"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Мобилдик Интернет"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Интернетке мобилдик тармак аркылуу чыгуу"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Мобилдик Интернетти өчүрөсүзбү?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Тандоо керек"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"<xliff:g id="CARRIER">%1$s</xliff:g> Интернети колдонулсунбу?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Мобилдик Интернет үчүн <xliff:g id="CARRIER2_0">%2$s</xliff:g> операторун колдонуп жатасыз. Эгер <xliff:g id="CARRIER1">%1$s</xliff:g> операторуна которулсаңыз, <xliff:g id="CARRIER2_1">%2$s</xliff:g> мобилдик Интернет үчүн колдонулбай калат."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g> операторун колдонуу"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Роуминг"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Роуминг учурунда мобилдик Интернетке туташат"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Интернет-роумингди иштетесизби?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Көп акча төлөп калышыңыз мүмкүн."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Дайындардын колдонулушу"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Негизги тарифтик план"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> колдонулду"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Артыкчылыктуу SMS үчүн сизден акы алынып, ал операторуңуздун эсептерине кошулушу мүмкүн. Эгер кайсы бир колдонмого уруксат берсеңиз, ошол колдонмо аркылуу артыкчылыктуу SMS жөнөтө аласыз."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Колдонуу таржымалын көрүү"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Колдонуу таржымалы аркылуу кайсы колдонмолор канчалык көп колдонула турганын, ошондой эле байланыш операторуңузду, тил жөндөөлөрүн жана башка параметрлерди көрө аласыз."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Каталогго мүмкүнчүлүк алуу"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi\'ды көзөмөлдөө"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Wi-Fi\'ды көзөмөлдөө колдонмого Wi-Fi\'ды өчүрүп же күйгүзүүгө, Wi-Fi тармактарын издеп, аларга туташууга, тармактарды кошуп же алып салууга же жергиликтүү туташуу түйүнүн иштетүүгө уруксат берет."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Дагы"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Жайгашкан жер"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Жакында изделген жерлер"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Жакында изделген жерлер жок"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Bluetooth өчүп турса да, колдонмолор менен кызматтарга жакын жердеги түзмөктөрдү издегенге уруксат бересиз. Бул параметр менен жайгашкан жерди тагыраак аныктоого болот."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Тутум"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Тутум жаңыртуулары"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Жеткиликсиз"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android версиясы"</string>
     <string name="security_patch" msgid="4794276590178386903">"Коопсуздук тутумунун жаңыртуусу:"</string>
     <string name="model_info" msgid="4966408071657934452">"Үлгү"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Өзөктүн версиясы"</string>
     <string name="build_number" msgid="3997326631001009102">"Курама номери"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth дареги"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Wi-Fi MAC дареги"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Жеткиликтүү эмес"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Абалы"</string>
     <string name="device_status" msgid="267298179806290920">"Абалы"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Сандар чоңойгон, кичирейген же кайталанган ыраатта болбошу керек."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Экранды кулпулоо ыкмалары"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> күн мурун"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Ишенимдүү түзмөк кошуу"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth ишенимдүү түзмөктү кошуу үчүн күйгүзүлөт"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Ишенимдүү түзмөктөр"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> түзмөк</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> түзмөк</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> түзмөгүңүз туташып турганда, унаанын кулпусун ачат. Эгер <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> түзмөгү кимдир бирөөнүн колуна тийсе, ал ушул түзмөктү да ача алат"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Ырастоо"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Ишенимдүү түзмөктү өчүрүү"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Бүттү"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Ишенимдүү түзмөктү жөндөө үчүн, коштомо колдонмону пайдаланыңыз. Жөндөлгөндөн кийин, телефонуңуз унаанын жанында аныкталганда, колдонуучу профилиңиздин кулпусу автоматтык түрдө ачылат."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Телефонуңузга коштомо колдонмону жүктөп алыңыз"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Түзмөктөрдү жупташтыруу үчүн, телефонуңуздан <xliff:g id="CAR_NAME">%1$s</xliff:g> унаасын тандаңыз"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Ишенимдүү түзмөктү унааңыздын жанында сиз же башка бирөө күйгүзгөн учурда да, колдонуучу профилиңиздин кулпусу ачылат."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Жупташтыруучу коддор дал келгендигин ырастаңыз"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Телефон ийгиликтүү катталды"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> катталган жок"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Ишенимдүү түзмөктү кошууда аутентификация ыкмасын кошуу талап кылынат. Эгер ишенимдүү түзмөк жаныңызда болбосо, профилге кирүү үчүн аутентификациядан өтүү керек болот."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Түзмөк ажыратылды."</string>
     <string name="forget" msgid="3971143908183848527">"Унутулсун"</string>
     <string name="connect" msgid="5861699594602380150">"Туташтыруу"</string>
     <string name="disconnect" msgid="6140789953324820336">"Ажыратуу"</string>
diff --git a/res/values-lo/arrays.xml b/res/values-lo/arrays.xml
new file mode 100644
index 0000000..5b5a2ae
--- /dev/null
+++ b/res/values-lo/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"ຖາມ"</item>
+    <item msgid="933409503308401889">"ບໍ່ອະນຸຍາດ"</item>
+    <item msgid="1154273129608299386">"ອະນຸຍາດທຸກເທື່ອ"</item>
+  </string-array>
+</resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 7f07ddc..d0c667e 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"ໂໝດກາງຄືນ"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"ເຄືອຂ່າຍ ແລະ ອິນເຕີເນັດ"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"ເຄືອຂ່າຍມືຖື"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"ນຳໃຊ້ຢູ່ / SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"ບໍ່ໄດ້ນຳໃຊ້ / SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"ນຳໃຊ້ຢູ່ / SIM ທີ່ດາວໂຫລດແລ້ວ"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"ບໍ່ໄດ້ນຳໃຊ້ / SIM ທີ່ດາວໂຫລດແລ້ວ"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"ເພີ່ມອີກ"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"ອິນເຕີເນັດມືຖື"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"ເຂົ້າເຖິງອິນເຕີເນັດໂດຍໃຊ້ເຄືອຂ່າຍມືຖື"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"ປິດອິນເຕີເນັດມືຖືບໍ?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"ຈໍາເປັນຕ້ອງເລືອກ"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"ໃຊ້ <xliff:g id="CARRIER">%1$s</xliff:g> ສຳລັບອິນເຕີເນັດມືຖືບໍ?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"ທ່ານກຳລັງໃຊ້ <xliff:g id="CARRIER2_0">%2$s</xliff:g> ສຳລັບອິນເຕີເນັດມືຖື. ຫາກທ່ານປ່ຽນໄປໃຊ້ <xliff:g id="CARRIER1">%1$s</xliff:g>, <xliff:g id="CARRIER2_1">%2$s</xliff:g> ຈະບໍ່ຖືກໃຊ້ສຳລັບອິນເຕີເນັດມືຖືອີກຕໍ່ໄປ."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"ໃຊ້ <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"ໂຣມມິງ"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"ເຊື່ອມຕໍ່ກັບການບໍລິການອິນເຕີເນັດເມື່ອໂຣມມິງ"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"ອະນຸຍາດໃຫ້ໂຣມມິງຂໍ້ມູນບໍ?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"ທ່ານອາດຈະເສຍຄ່າໃຊ້ຈ່າຍຫຼາຍ."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"ການໃຊ້ຂໍ້ມູນ"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"ຂໍ້ມູນຫຼັກ"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"ໃຊ້ໄປແລ້ວ <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"SMS ແບບພຣີມຽມອາດຈະເຮັດໃຫ້ທ່ານເສຍເງິນ ແລະ ຈະເພີ່ມໃສ່ໃບບິນຜູ້ໃຫ້ບໍລິການຂອງທ່ານ. ຖ້າທ່ານເປີດໃຊ້ການອະນຸຍາດສຳລັບແອັບໃດໜຶ່ງ, ທ່ານຈະສາມາດສົ່ງ SMS ແບບພຣີມຽມໂດຍໃຊ້ແອັບນັ້ນໄດ້."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"ການເຂົ້າເຖິງການນຳໃຊ້"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"ການເຂົ້າເຖິງການນຳໃຊ້ອະນຸຍາດໃຫ້ແອັບຕິດຕາມເບິ່ງວ່າທ່ານກຳລັງໃຊ້ແອັບອື່ນໃດແດ່ ແລະ ໃຊ້ເລື້ອຍໆສໍ່າໃດ, ເຊັ່ນດຽວກັນກັບຜູ້ໃຫ້ບໍລິການ, ການຕັ້ງຄ່າພາສາ ແລະ ລາຍລະອຽດອື່ນໆຂອງທ່ານ."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"ການເຂົ້າເຖິງແຟ້ມ"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"ການຄວບຄຸມ Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"ການຄວບຄຸມ Wi-Fi ອະນຸຍາດໃຫ້ແອັບເປີດ ຫຼື ປິດ Wi-Fi, ສະແກນ ແລະ ເຊື່ອມຕໍ່ກັບເຄືອຂ່າຍ Wi-Fi, ເພີ່ມ ຫຼື ລຶບເຄືອຂ່າຍອອກ ຫຼື ເລີ່ມຮັອດສະປອດສະເພາະພື້ນທີ່ໄດ້."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"ເພີ່ມເຕີມ"</string>
     <string name="location_settings_title" msgid="901334356682423679">"ສະຖານທີ່"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"ຄຳຂໍຂໍ້ມູນສະຖານທີ່ຫຼ້າສຸດ"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"ບໍ່ມີຄຳຂໍຂໍ້ມູນສະຖານທີ່ຫຼ້າສຸດ"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"ອະນຸຍາດໃຫ້ແອັບ ແລະ ການບໍລິການຕ່າງໆສະແກນຫາອຸປະກອນທີ່ຢູ່ໃກ້ຄຽງໄດ້ທຸກເມື່ອ, ເຖິງແມ່ນໃນເວລາທີ່ Bluetooth ປິດຢູ່ກໍຕາມ. ສາມາດໃຊ້ຄຸນສົມບັດນີ້ເພື່ອປັບປຸງຄຸນສົມບັດ ແລະ ການບໍລິການຕ່າງໆທີ່ອີງໃສ່ສະຖານທີ່ໄດ້."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"ລະບົບ"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"ການອັບເດດລະບົບ"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"ບໍ່ສາມາດໃຊ້ໄດ້"</string>
     <string name="firmware_version" msgid="8491753744549309333">"ເວີຊັນ Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"ລະດັບໂປຣແກຣມແກ້ໄຂຄວາມປອດໄພ Android"</string>
     <string name="model_info" msgid="4966408071657934452">"ລຸ້ນ"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"ເວີຊັນ Kernel"</string>
     <string name="build_number" msgid="3997326631001009102">"ເລກທີລຸ້ນ"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"ທີ່ຢູ່ Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"ທີ່ຢູ່ Wi-Fi MAC"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"ບໍ່ສາມາດໃຊ້ໄດ້"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"ສະຖານະ"</string>
     <string name="device_status" msgid="267298179806290920">"ສະຖານະ"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"ບໍ່ອະນຸຍາດໃຫ້ໃຊ້ຊຸດຕົວເລກລຽງກັນແຕ່ນ້ອຍຫາໃຫຍ່, ໃຫຍ່ຫານ້ອຍ ຫຼື ຊຸດຕົວເລກຊ້ຳກັນ."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"ຕົວເລືອກການລັອກໜ້າຈໍ"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> ມື້ກ່ອນ"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"ເພີ່ມອຸປະກອນທີ່ເຊື່ອຖືໄດ້"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth ຈະເປີດເພື່ອເພີ່ມອຸປະກອນທີ່ເຊື່ອຖືໄດ້"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"ອຸປະກອນທີ່ເຊື່ອຖືໄດ້"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> ອຸປະກອນ</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> ອຸປະກອນ</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> ຂອງທ່ານຈະປົດລັອກລົດນີ້ ເມື່ອມັນເຊື່ອມຕໍ່. ຖ້າຄົນອື່ນເອົາ <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> ຂອງທ່ານ, ພວກເຂົາຈະສາມາດເຂົ້າເຖິງອຸປະກອນນີ້ໄດ້"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"ຢືນຢັນ"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"ລຶບອຸປະກອນທີ່ເຊື່ອຖືໄດ້ອອກ"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"ແລ້ວໆ"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"ໃຊ້ແອັບຊ່ວຍເຫຼືອເພື່ອຕັ້ງຄ່າອຸປະກອນທີ່ເຊື່ອຖືໄດ້. ເມື່ອຕັ້ງຄ່າແລ້ວ, ໂປຣໄຟລ໌ຜູ້ໃຊ້ຂອງທ່ານຈະປົດລັອກໂດຍອັດຕະໂນມັດ ເມື່ອພາຫານະທີ່ຢູ່ໃກ້ຄຽງກວດພົບໂທລະສັບຂອງທ່ານ."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. ດາວໂຫຼດແອັບຊ່ວຍເຫຼືອໃນໂທລະສັບຂອງທ່ານ"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. ເລືອກ <xliff:g id="CAR_NAME">%1$s</xliff:g> ໃນໂທລະສັບຂອງທ່ານເພື່ອຈັບຄູ່ອຸປະກອນ"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"ອຸປະກອນທີ່ເຊື່ອຖືໄດ້ທີ່ຢູ່ໃກ້ກັບລົດຂອງທ່ານຈະປົດລັອກໂປຣໄຟລ໌ຜູ້ໃຊ້ຫຼັງຈາກຕິດເຄື່ອງແລ້ວ, ເຖິງແມ່ນວ່າຄົນອື່ນກຳລັງຖືອຸປະກອນໄວ້ຢູ່ກໍຕາມ."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"ກະລຸນາຢືນຢັນວ່າລະຫັດຈັບຄູ່ກົງກັນ"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"ລົງທະບຽນໂທລະສັບສຳເລັດແລ້ວ"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"ການລົງທະບຽນ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ບໍ່ສຳເລັດ"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"ການເພີ່ມອຸປະກອນທີ່ເຊື່ອຖືໄດ້ກຳນົດໃຫ້ທ່ານຕ້ອງຕັ້ງຄ່າວິທີການກວດຮັບຮອງຄວາມຖືກຕ້ອງເປັນຂັ້ນຕອນຕໍ່ໄປ. ຖ້າທ່ານບໍ່ມີອຸປະກອນທີ່ເຊື່ອຖືໄດ້ຢູ່ນຳທ່ານ, ຈໍາເປັນຕ້ອງມີການກວດຮັບຮອງຄວາມຖືກຕ້ອງເພື່ອເຂົ້າເຖິງໂປຣໄຟລ໌ຂອງທ່ານ."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"ຕັດການເຊື່ອມຕໍ່ອຸປະກອນແລ້ວ"</string>
     <string name="forget" msgid="3971143908183848527">"ລືມ"</string>
     <string name="connect" msgid="5861699594602380150">"ເຊື່ອມຕໍ່"</string>
     <string name="disconnect" msgid="6140789953324820336">"ຕັດການເຊື່ອມຕໍ່"</string>
diff --git a/res/values-lt/arrays.xml b/res/values-lt/arrays.xml
new file mode 100644
index 0000000..3da7fa8
--- /dev/null
+++ b/res/values-lt/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Klausti"</item>
+    <item msgid="933409503308401889">"Niekada neleisti"</item>
+    <item msgid="1154273129608299386">"Visada leisti"</item>
+  </string-array>
+</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index f1a4dbf..b698e8c 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -31,9 +31,28 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Naktinis režimas"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Tinklas ir internetas"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mobiliojo ryšio tinklas"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM kortelė</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM kortelės</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM kortelės</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM kortelių</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Aktyvi / SIM kortelė"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Neaktyvi / SIM kortelė"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Aktyvi / atsisiųsta SIM kortelė"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Neaktyvi / atsisiųsta SIM kortelė"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Pridėti daugiau"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Mobiliojo ryšio duomenys"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Prieiga prie duomenų naud. mobiliojo ryšio tinklą"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Išjungti mobiliojo ryšio duomenis?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Būtina pasirinkti"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Naudoti „<xliff:g id="CARRIER">%1$s</xliff:g>“ mob. ryšio duomen.?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Naudojate „<xliff:g id="CARRIER2_0">%2$s</xliff:g>“ mobiliojo ryšio duomenims. Jei perjungsite į „<xliff:g id="CARRIER1">%1$s</xliff:g>“, „<xliff:g id="CARRIER2_1">%2$s</xliff:g>“ paslaugos nebebus naudojamos mobiliojo ryšio duomenims."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Naudoti „<xliff:g id="CARRIER">%1$s</xliff:g>“"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Tarptinklinis ryšys"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Veikiant tarptinkliniam ryšiui, prisij. prie duomenų pasl."</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Leisti tarptinklinį duomenų ryšį?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Gali būti taikomi dideli mokesčiai."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Duomenų naudojimas"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Pirminiai duomenys"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Išnaudota: <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -324,10 +343,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Išskirtiniai SMS gali būti mokami ir į operatoriaus sąskaitas gali būti įtraukta papildomų mokesčių. Jei įgalinsite programos leidimą, galėsite siųsti išskirtinius SMS naudodami tą programą."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Naudojimo prieiga"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Taikant naudojimo prieigą programa gali stebėti, kokias kitas programas naudojate ir kaip dažnai jas naudojate bei išsamią operatoriaus, kalbos nustatymų ir kitą informaciją."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Prieiga prie katalogo"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> („<xliff:g id="DIRECTORY">%2$s</xliff:g>“)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"„Wi-Fi“ valdymas"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"„Wi-Fi“ valdymo funkcija leidžia šiai programai įjungti arba išjungti „Wi-Fi“, nuskaityti „Wi-Fi“ tinklus ir prisijungti prie jų, pridėti ar pašalinti tinklus arba paleisti tik vietinį viešosios interneto prieigos tašką."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Daugiau"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Vietovė"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Pastarosios vietovės užklausos"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Nėra jokių pastarųjų vietovių užklausų"</string>
@@ -340,7 +358,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Leisti programoms ir paslaugoms bet kuriuo metu nuskaityti ieškant netoliese esančių įrenginių, net kai „Bluetooth“ išjungtas. Tai galima naudoti norint, pvz., tobulinti pagal vietovę teikiamas funkcijas ir paslaugas."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Sistema"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Sistemos naujiniai"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Nepasiekiama"</string>
     <string name="firmware_version" msgid="8491753744549309333">"„Android“ versija"</string>
     <string name="security_patch" msgid="4794276590178386903">"„Android“ saugos pataisos lygis"</string>
     <string name="model_info" msgid="4966408071657934452">"Modelis"</string>
@@ -348,7 +365,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Branduolio versija"</string>
     <string name="build_number" msgid="3997326631001009102">"Versijos numeris"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"„Bluetooth“ adresas"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"„Wi-Fi“ MAC adresas"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Nepasiekiama"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Būsena"</string>
     <string name="device_status" msgid="267298179806290920">"Būsena"</string>
@@ -626,6 +642,28 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Didėjanti, mažėjanti ar pasikartojanti skaitmenų seka neleidžiama."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Ekrano užrakto parinktys"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g>: prieš <xliff:g id="NUM_DAYS">%3$s</xliff:g> d."</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Pridėti patikimą įrenginį"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bus įj. „Bluetooth“, kad b. gal. pr. patik. įreng."</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Patikimi įrenginiai"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> įrenginys</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> įrenginiai</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> įrenginio</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> įrenginių</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"„<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g>“ įrenginys atrakins šį automobilį, kai šis bus prijungtas. Jei koks nors asmuo paims „<xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>“ įrenginį, jis galės pasiekti šį įrenginį"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Patvirtinti"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Pašalinti patikimą įrenginį"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Atlikta"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Naudokite papildomą programą, kad nustatytumėte patikimą įrenginį. Jį nustačius jūsų naudotojo profilis bus atrakintas automatiškai, kai telefonas bus aptiktas netoli transporto priemonės."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Atsisiųskite papildomą programą telefone"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Pasirinkite automobilį „<xliff:g id="CAR_NAME">%1$s</xliff:g>“ telefone, kad susietumėte įrenginius"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Netoli jūsų automobilio esantis patikimas įrenginys atrakins naudotojo profilį užvedus automobilį, net jei įrenginį laiko kažkas kitas."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Patvirtinkite, kad susiejimo kodai atitinka"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Telefonas sėkmingai užregistruotas"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"„<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“ įrenginio registracija nepavyko"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Pridėję patikimą įrenginį, paskui turėsite nustatyti autentifikavimo metodą. Jei su savimi patikimo įrenginio neturite, autentifikavimas bus būtinas norint pasiekti profilį."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Įrenginys atjungtas."</string>
     <string name="forget" msgid="3971143908183848527">"Pamiršti"</string>
     <string name="connect" msgid="5861699594602380150">"Prisijungti"</string>
     <string name="disconnect" msgid="6140789953324820336">"Atsijungti"</string>
diff --git a/res/values-lv/arrays.xml b/res/values-lv/arrays.xml
new file mode 100644
index 0000000..44a9f8b
--- /dev/null
+++ b/res/values-lv/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Vaicāt"</item>
+    <item msgid="933409503308401889">"Nekad neatļaut"</item>
+    <item msgid="1154273129608299386">"Vienmēr atļaut"</item>
+  </string-array>
+</resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index f200035..44b9059 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -31,9 +31,27 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Nakts režīms"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Tīkls un internets"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mobilais tīkls"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="zero"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM karšu</item>
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM karte</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM kartes</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Aktīvs/SIM karte"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Neaktīvs/SIM karte"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Aktīvs/lejupielādēta SIM karte"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Neaktīvs/lejupielādēta SIM karte"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Pievienot vēl"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Mobilie dati"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Piekļuve datiem, izmantojot mobilo tīklu"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Vai izslēgt mobilos datus?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Jāveic atlase"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Vai mobilajiem datiem lietot <xliff:g id="CARRIER">%1$s</xliff:g>?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Mobilajiem datiem jūs izmantojat <xliff:g id="CARRIER2_0">%2$s</xliff:g>. Pārslēdzoties uz <xliff:g id="CARRIER1">%1$s</xliff:g>, <xliff:g id="CARRIER2_1">%2$s</xliff:g> SIM vairs netiks izmantota mobilajiem datiem."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Izmantot operatoru <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Viesabonēšana"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Viesabonēšanā izveidot savienojumu ar datu pakalpojumiem"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Vai atļaut datu viesabonēšanu?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Var rasties ievērojamas izmaksas."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Datu lietojums"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Galvenie dati"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Patērētie dati: <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -322,10 +340,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Par maksas īsziņām no jums var tikt iekasēta samaksa, kas tiks pievienota jūsu mobilo sakaru operatora rēķinam. Ja kādai lietotnei iespējosiet piekļuves atļauju, varēsiet sūtīt maksas īsziņas, izmantojot šo lietotni."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Piekļuve lietojuma datiem"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Piekļuve lietojuma datiem ļauj lietotnei izsekot, kādas lietotnes un cik bieži izmantojat, kā arī iegūt informāciju par jūsu mobilo sakaru operatoru, valodas iestatījumiem u.c."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Piekļuve katalogiem"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi pārvaldība"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Wi-Fi pārvaldība ļauj lietotnei ieslēgt vai izslēgt Wi-Fi savienojumu, meklēt Wi-Fi tīklus un izveidot savienojumus ar tiem, pievienot vai noņemt tīklus, vai izveidot vietējo tīklāju."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Vairāk"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Atrašanās vieta"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Neseni atrašanās vietu pieprasījumi"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Nav nesenu atrašanās vietu pieprasījumu"</string>
@@ -338,7 +355,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Ļauj lietotnēm un pakalpojumiem meklēt tuvumā esošas ierīces vienmēr, pat ja Bluetooth ir izslēgts. Šo iestatījumu var izmantot, piemēram, lai uzlabotu atrašanās vietas funkcijas un pakalpojumus."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Sistēma"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Sistēmas atjauninājumi"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Nav pieejama"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android versija"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android drošības ielāpa līmenis"</string>
     <string name="model_info" msgid="4966408071657934452">"Modelis"</string>
@@ -346,7 +362,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Kodola versija"</string>
     <string name="build_number" msgid="3997326631001009102">"Būvējuma numurs"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth adrese"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Wi-Fi MAC adrese"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Nav pieejams"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Statuss"</string>
     <string name="device_status" msgid="267298179806290920">"Statuss"</string>
@@ -616,6 +631,27 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Nav atļauta augoša, dilstoša vai atkārtota ciparu secība."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Ekrāna bloķēšanas opcijas"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g>: pirms <xliff:g id="NUM_DAYS">%3$s</xliff:g> dienām"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Pievienot uzticamu ierīci"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Tiks ieslēgts Bluetooth, lai piev. uzticamu ierīci"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Uzticamas ierīces"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="zero"><xliff:g id="COUNT_1">%d</xliff:g> ierīču</item>
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> ierīce</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> ierīces</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Jūsu ierīce <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> atbloķēs šo automašīnu, ja ierīcei būs izveidots savienojums ar to. Ja kāda persona paņem jūsu ierīci <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, šī persona var piekļūt jūsu ierīcei."</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Apstiprināt"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Noņemt uzticamo ierīci"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Gatavs"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Izmantojiet palīglietotni, lai iestatītu uzticamu ierīci. Pēc iestatīšanas jūsu lietotāja profils tiks automātiski atbloķēts, kad transportlīdzekļa tuvumā tiks konstatēts jūsu tālrunis."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Lejupielādējiet palīglietotni savā tālrunī."</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Tālrunī atlasiet automašīnas nosaukumu (<xliff:g id="CAR_NAME">%1$s</xliff:g>), lai ierīces savienotu pārī."</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Izmantojot uzticamu ierīci automašīnas tuvumā, tiks atbloķēts lietotāja profils brīdī, kad tiks iedarbināts automašīnas dzinējs, pat ja ierīci tur cita persona."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Lūdzu, apstipriniet, ka kodi savienošanai pārī ir vienādi"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Tālrunis tika veiksmīgi reģistrēts"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Neizdevās reģistrēt ierīci <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Pievienojot uzticamu ierīci, jums ir jāiestata arī autentifikācijas metode. Autentifikācija būs nepieciešama, lai jūs varētu piekļūt savam profilam, ja jums nebūs līdzi jūsu uzticamā ierīce."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Ierīce ir atvienota."</string>
     <string name="forget" msgid="3971143908183848527">"Aizmirst"</string>
     <string name="connect" msgid="5861699594602380150">"Izveidot savienojumu"</string>
     <string name="disconnect" msgid="6140789953324820336">"Atvienot"</string>
diff --git a/res/values-mk/arrays.xml b/res/values-mk/arrays.xml
new file mode 100644
index 0000000..eed55c5
--- /dev/null
+++ b/res/values-mk/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Прашај"</item>
+    <item msgid="933409503308401889">"Никогаш не дозволувај"</item>
+    <item msgid="1154273129608299386">"Секогаш дозволувај"</item>
+  </string-array>
+</resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index d8aa7d7..db99c9f 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Ноќен режим"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Мрежа и интернет"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Мобилна мрежа"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-картичка</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-картички</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Активна/SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Неактивна/SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Активна/Преземена SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Неактивна/Преземена SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Додајте повеќе"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Мобилен интернет"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Пристап на интернет преку мобилната мрежа"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Да се исклучи мобилниот интернет?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Треба да се избере"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Да се користи <xliff:g id="CARRIER">%1$s</xliff:g> за интернет?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Користите <xliff:g id="CARRIER2_0">%2$s</xliff:g> за мобилен интернет. Ако се префрлите на <xliff:g id="CARRIER1">%1$s</xliff:g>, <xliff:g id="CARRIER2_1">%2$s</xliff:g> веќе нема да се користи за мобилен интернет."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Користи <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Роаминг"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Поврзувај се со интернет-услуги во роаминг"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Да се дозволи ли интернет-роаминг?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Може да направите големи трошоци."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Потрошен сообраќај"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Примарен сообраќај"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Потрошен сообраќај: <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Премиум SMS може да ве чини пари, а сумата ќе се додаде на сметките од операторот. Ако овозможите дозвола за апликацијата, ќе може да испраќате премиум SMS со неа."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Пристап до употреба"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Пристапот за користење овозможува апликацијата да следи кои други апликации ги користите и колку често, како и операторот, поставките за јазик и други детали."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Пристап до адресарот"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Контрола на Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Контролата на Wi-Fi дозволува апликацијава да вклучува или исклучува Wi-Fi, да скенира и да се поврзува на Wi-Fi мрежи, да додава или отстранува мрежи или да започне локална точка на пристап."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Повеќе"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Локација"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Последни барања за локација"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Нема неодамнешни барања за локација"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Дозволете апликациите и услугите да скенираат уреди во близина во секое време, дури и кога Bluetooth е исклучен. Ова може да се користи, на пример, за да се подобрат функциите и услугите базирани на локација."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Систем"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Ажурирања на системот"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Недостапно"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Верзија на Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"Ниво на безбедносна лепенка на Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Модел"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Верзија на кернел"</string>
     <string name="build_number" msgid="3997326631001009102">"Број на верзија"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Адреса на Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Адреса на MAC за Wi-Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Не се достапни"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Статус"</string>
     <string name="device_status" msgid="267298179806290920">"Статус"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Не е дозволена низа на цифри со растечки, опаѓачки или повторлив редослед."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Опции за заклучување на екранот"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g>: пред <xliff:g id="NUM_DAYS">%3$s</xliff:g> дена"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Додај доверлив уред"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth ќе се вклучи за да додаде доверлив уред"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Доверливи уреди"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> уред</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> уреди</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Вашиот <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> ќе го отклучува автомобилов кога е поврзан. Ако некој ви го земе <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, ќе може да пристапува до уредов"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Потврди"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Отстрани доверлив уред"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Готово"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Употребете ја придружната апликација за да поставите доверлив уред. Откако ќе го поставите, вашиот кориснички профил ќе се отклучи автоматски кога вашиот телефон ќе се открие во близина на возилото."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Преземете ја придружната апликација на телефонот"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Изберете <xliff:g id="CAR_NAME">%1$s</xliff:g> на телефонот за да ги спарите уредите"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Доверлив уред во близина на вашиот автомобил може да го отклучи корисничкиот профил по стартувањето на автомобилот, дури и кога некој друг го држи уредот."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Потврдете дека кодовите за спарување се совпаѓаат"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Телефонот е регистриран успешно"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Регистрацијата на <xliff:g id="DEVICE_NAME">%1$s</xliff:g> не успеа"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Ако додадете доверлив уред, ќе треба да поставите метод на проверка во следниот чекор. Ако доверливиот уред не ви е при рака, ќе ви биде потребна проверка за да пристапите до профилот."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Врската со уредот се прекина."</string>
     <string name="forget" msgid="3971143908183848527">"Избриши го"</string>
     <string name="connect" msgid="5861699594602380150">"Поврзи"</string>
     <string name="disconnect" msgid="6140789953324820336">"Исклучи"</string>
diff --git a/res/values-ml/arrays.xml b/res/values-ml/arrays.xml
new file mode 100644
index 0000000..2677c2e
--- /dev/null
+++ b/res/values-ml/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"ചോദിക്കുക"</item>
+    <item msgid="933409503308401889">"ഒരിക്കലും അനുവദിക്കരുത്"</item>
+    <item msgid="1154273129608299386">"എല്ലായ്‌പ്പോഴും അനുവദിക്കുക"</item>
+  </string-array>
+</resources>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index f75447c..d7c1a68 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"നൈറ്റ് മോഡ്"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"നെറ്റ്‌വർക്കും ഇന്റർനെറ്റും"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"മൊബൈൽ നെറ്റ്‌വർക്ക്"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-കള്‍</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"സജീവം / SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"നിഷ്‌ക്രിയം / SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"സജീവം / ഡൗൺലോഡ് ചെയ്‌ത SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"നിഷ്‌ക്രിയം / ഡൗൺലോഡ് ചെയ്‌ത SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"കൂടുതൽ ചേർക്കുക"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"മൊബൈൽ ഡാറ്റ"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"മൊബൈൽ നെറ്റ്‌വർക്ക് ഉപയോഗിച്ച് ഡാറ്റ ആക്‌സസ് ചെയ്യുക"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"മൊബൈൽ ഡാറ്റ ഓഫാക്കണോ?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"തിരഞ്ഞെടുക്കേണ്ടത് ആവശ്യമാണ്"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"മൊബൈൽ ഡാറ്റയ്‌ക്ക് <xliff:g id="CARRIER">%1$s</xliff:g> വേണോ?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"നിങ്ങൾ മൊബൈൽ ഡാറ്റയ്ക്ക് <xliff:g id="CARRIER2_0">%2$s</xliff:g> ഉപയോഗിക്കുന്നു. നിങ്ങൾ <xliff:g id="CARRIER1">%1$s</xliff:g> എന്നതിലേക്ക് മാറുകയാണെങ്കിൽ മൊബൈൽ ഡാറ്റ ലഭിക്കാൻ ഇനിമുതൽ <xliff:g id="CARRIER2_1">%2$s</xliff:g> ഉപയോഗിക്കില്ല."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g> ഉപയോഗിക്കുക"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"റോമിംഗ്"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"റോമിംഗിൽ ഡാറ്റാ സേവനങ്ങളിലേക്ക് കണ‌ക്റ്റ് ചെയ്യുക"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"ഡാറ്റാ റോമിംഗ് അനുവദിക്കണോ?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"നിങ്ങളിൽ നിന്ന് നിശ്ചിത നിരക്കുകൾ ഈടാക്കിയേക്കാം."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"ഡാറ്റ ഉപയോഗം"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"പ്രാഥമിക ഡാറ്റ"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> ഉപയോഗിച്ചു"</string>
@@ -320,12 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"പ്രീമിയം SMS-ന് നിങ്ങൾ പണം നൽകേണ്ടി വന്നേക്കാം, സേവനദാതാവിന്റെ ബില്ലിലേക്ക് ഈ തുക ചേർക്കുന്നതാണ്. നിങ്ങളൊരു ആപ്പിന് അനുമതി പ്രവർത്തനക്ഷമമാക്കുന്നുവെങ്കിൽ, ആ ആപ്പ് ഉപയോഗിച്ച് പ്രീമിയം SMS അയയ്ക്കാനാകും."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"ഉപയോഗ ആക്‌സസ്"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"നിങ്ങൾ മറ്റ് ഏതെല്ലാം ആപ്പുകൾ ഉപയോഗിക്കുന്നുണ്ടെന്നും അവ എത്ര തവണ ഉപയോഗിക്കുന്നുണ്ടെന്നും നിങ്ങളുടെ സേവനദാതാവ്, ഭാഷാ ക്രമീകരണം എന്നിവയും മറ്റ് വിശദാംശങ്ങളും ട്രാക്ക് ചെയ്യാനും ഉപയോഗ ആക്‌സസ് ആപ്പിനെ അനുവദിക്കുന്നു."</string>
-    <!-- no translation found for directory_access_title (7117264853202268740) -->
-    <skip />
-    <!-- no translation found for directory_on_volume (4947971311247097078) -->
-    <skip />
     <string name="wifi_control_title" msgid="5660436566907731929">"വൈഫൈ നിയന്ത്രണം"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"വൈഫൈ ഓണാക്കാനോ ഓഫാക്കാനോ, സ്‌കാൻ ചെയ്‌ത് വൈഫൈ നെറ്റ്‌വർക്കുകളിലേക്ക് കണക്‌റ്റ് ചെയ്യാനും നെറ്റ്‌വർക്കുകൾ ചേർക്കാനോ നീക്കം ചെയ്യാനോ, ഉപകരണം ഉള്ളിടത്ത് മാത്രം പ്രവർത്തിക്കുന്ന ഹോട്ട്‌സ്‌പോട്ട് ആരംഭിക്കാനോ വൈഫൈ നിയന്ത്രണം ആപ്പിനെ അനുവദിക്കുന്നു."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"കൂടുതൽ"</string>
     <string name="location_settings_title" msgid="901334356682423679">"ലൊക്കേഷൻ"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"അടുത്തിടെയുള്ള ലൊക്കേഷൻ അഭ്യർത്ഥനകൾ"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"അടുത്തിടെയുള്ള ലൊക്കേഷൻ അഭ്യർത്ഥനകളൊന്നുമില്ല"</string>
@@ -338,8 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Bluetooth ഓഫാണെങ്കിൽ പോലും, ഏതുസമയത്തും അടുത്തുള്ള ഉപകരണങ്ങൾ സ്‌കാൻ ചെയ്യാൻ ആപ്പുകളെയും സേവനങ്ങളെയും അനുവദിക്കുക. ഉദാഹരണത്തിന്, ലൊക്കേഷൻ‌ അടിസ്ഥാനമാക്കിയുള്ള ഫീച്ചറുകളും സേവനങ്ങളും മെച്ചപ്പെടുത്താൻ ഇത് ഉപയോഗിക്കാം."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"സിസ്റ്റം"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"സി‌സ്‌റ്റം അപ്‌ഡേറ്റുകൾ"</string>
-    <!-- no translation found for status_unavailable (3737918179898732010) -->
-    <skip />
     <string name="firmware_version" msgid="8491753744549309333">"Android പതിപ്പ്"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android സുരക്ഷാ പാച്ച് നില"</string>
     <string name="model_info" msgid="4966408071657934452">"മോഡല്‍"</string>
@@ -347,8 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"പ്രധാന പതിപ്പ്"</string>
     <string name="build_number" msgid="3997326631001009102">"ബിൽഡ് നമ്പർ"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth വിലാസം"</string>
-    <!-- no translation found for about_wifi_mac_address (3934228440550548053) -->
-    <skip />
     <string name="device_info_not_available" msgid="2095601973977376655">"ലഭ്യമല്ല"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"സ്റ്റാറ്റസ്"</string>
     <string name="device_status" msgid="267298179806290920">"സ്റ്റാറ്റസ്"</string>
@@ -610,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"അക്കങ്ങൾ ആരോഹണ ക്രമത്തിലോ അവരോഹണ ക്രമത്തിലോ അനുക്രമമായോ നൽകുന്നത് അനുവദനീയമല്ല."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"സ്‌ക്രീൻ ലോക്ക് ഓപ്ഷനുകള്‍"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> ദിവസം മുമ്പ്"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"വിശ്വസ്‌ത ഉപകരണം ചേർക്കുക"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"വിശ്വസ്‌ത ഉപകരണങ്ങൾ ചേർക്കാൻ Bluetooth ഓണാകും"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"വിശ്വസ്‌ത ഉപകരണങ്ങൾ"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g>ഉപകരണങ്ങൾ</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> ഉപകരണം</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"നിങ്ങളുടെ <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> കണക്റ്റ് ചെയ്‌തിരിക്കുമ്പോൾ അത് ഈ കാർ അൺലോക്ക് ചെയ്യും. ആരെങ്കിലും നിങ്ങളുടെ <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> എടുക്കുകയാണെങ്കിൽ അവർക്ക് ഈ ഉപകരണം ആക്‌സസ് ചെയ്യാനായേക്കും"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"സ്ഥിരീകരിക്കുക"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"വിശ്വസ്‌ത ഉപകരണം നീക്കം ചെയ്യുക"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"ചെയ്‌തു"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"വിശ്വസ്‌ത ഉപകരണം സജ്ജീകരിക്കാൻ സഹകാരി ആപ്പ് ഉപയോഗിക്കുക. ഒരിക്കൽ സജ്ജീകരിച്ചാൽ, വാഹനത്തിനടുത്ത് നിങ്ങളുടെ ഫോൺ കണ്ടെത്തുമ്പോൾ നിങ്ങളുടെ ഉപയോക്തൃ പ്രൊഫൈൽ സ്വയമേവ അൺലോക്ക് ചെയ്യും."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. നിങ്ങളുടെ ഫോണിൽ സഹകാരി ആപ്പ് ഡൗൺലോഡ് ചെയ്യുക"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. ഉപകരണങ്ങൾ ജോഡിയാക്കാൻ നിങ്ങളുടെ ഫോണിൽ <xliff:g id="CAR_NAME">%1$s</xliff:g> തിരഞ്ഞെടുക്കുക"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"മറ്റൊരാളുടെ കൈവശം ഉപകരണമുണ്ടെങ്കിൽപ്പോലും നിങ്ങളുടെ കാറിന് സമീപമുള്ള വിശ്വസ്‌ത ഉപകരണം കാർ ഇഗ്‌നിഷനിലാകുമ്പോൾ ഉപയോക്തൃ പ്രൊഫൈൽ അൺലോക്ക് ചെയ്യും."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"ജോടിയാക്കൽ കോഡുകൾ തമ്മിൽ പൊരുത്തമുണ്ടെന്ന് ഉറപ്പാക്കുക"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"ഫോൺ എൻറോൾ ചെയ്‌തു"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> എൻറോൾമെന്റ് പരാജയപ്പെട്ടു"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"ഒരു വിശ്വസ്‌ത ഉപകരണം ചേർക്കുന്നതിന്, അടുത്തതായി ഒരു പരിശോധിച്ചുറപ്പിക്കൽ രീതി നിങ്ങൾ സജ്ജീകരിക്കേണ്ടതുണ്ട്. വിശ്വസ്‌ത ഉപകരണം നിങ്ങളുടെ കൈവശമില്ലെങ്കിൽ, നിങ്ങളുടെ പ്രൊഫൈൽ ആക്‌സസ് ചെയ്യാൻ പരിശോധിച്ചുറപ്പിക്കൽ ആവശ്യമാണ്."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"ഉപകരണം വിച്ഛേദിച്ചു."</string>
     <string name="forget" msgid="3971143908183848527">"മറക്കുക"</string>
     <string name="connect" msgid="5861699594602380150">"കണക്റ്റ് ചെയ്യുക"</string>
     <string name="disconnect" msgid="6140789953324820336">"വിച്ഛേദിക്കുക"</string>
diff --git a/res/values-mn/arrays.xml b/res/values-mn/arrays.xml
new file mode 100644
index 0000000..9870bd6
--- /dev/null
+++ b/res/values-mn/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Асуух"</item>
+    <item msgid="933409503308401889">"Хэзээ ч зөвшөөрөхгүй"</item>
+    <item msgid="1154273129608299386">"Үргэлж зөвшөөрөх"</item>
+  </string-array>
+</resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 5423664..32f8b52 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Шөнийн горим"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Сүлжээ &amp; интернэт"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Мобайл сүлжээ"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> СИМ</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> СИМ</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Идэвхтэй / СИМ"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Идэвхгүй / СИМ"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Идэвхтэй / Татаж авсан СИМ"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Идэвхгүй / Татаж авсан СИМ"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Бусдыг нэмэх"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Мобайл дата"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Мобайл сүлжээг ашиглан датад хандах"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Мобайл датаг унтраах уу?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Сонгох шаардлагатай"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"<xliff:g id="CARRIER">%1$s</xliff:g>-г мобайл датад ашиглах уу?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Та <xliff:g id="CARRIER2_0">%2$s</xliff:g>-г мобайл датад ашиглаж байна. Та <xliff:g id="CARRIER1">%1$s</xliff:g> руу сэлгэх тохиолдолд <xliff:g id="CARRIER2_1">%2$s</xliff:g>-г мобайл датад ашиглах боломжгүй болно."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g>-г ашиглах"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Роуминг"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Роуминг ашиглах үед дата үйлчилгээнд холбогдох"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Дата роуминг зөвшөөрөх үү?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Таны төлбөр өндөр гарч болзошгүй."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Дата ашиглалт"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Үндсэн дата"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>-г ашигласан"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Premium SMS-н төлбөрийг таны оператор компанийн төлбөр дээр нэмэхийг анхаарна уу. Та энэ аппын зөвшөөрлийг идэвхжүүлсэн тохиолдолд энэ аппыг ашиглан premium SMS илгээх боломжтой болно."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Ашиглалтын хандалт"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Ашиглалтын хандалт нь аппад таны хэрэглэж буй бусад апп болон хэрэглээний давтамж, мөн оператор компани, хэлний тохиргоо болон бусад дэлгэрэнгүй мэдээллийг хянахыг зөвшөөрдөг."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Лавлахын хандалт"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi хяналт"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Wi-Fi хяналт нь аппад Wi-Fi-г унтраах эсвэл асаах, Wi-Fi сүлжээнд скан хийх болон холбогдох, сүлжээ нэмэх эсвэл хасах, эсвэл зөвхөн дотоодод ашиглах сүлжээний цэгийг эхлүүлэхийг зөвшөөрдөг."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Бусад"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Байршил"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Саяхны байршлын хүсэлтүүд"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Саяхны байршлын хүсэлт алга"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Апп болон үйлчилгээнд Bluetooth унтраалттай үед ч ойролцоох төхөөрөмжийг хүссэн үедээ скан хийхийг зөвшөөрнө үү. Үүнийг байршилд суурилсан онцлогууд болон үйлчилгээнүүдийг сайжруулахад ашиглаж магадгүй."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Систем"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Системийн шинэчлэлт"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Боломжгүй"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Андройд хувилбар"</string>
     <string name="security_patch" msgid="4794276590178386903">"Андройдын аюулгүй байдлын patch-н түвшин"</string>
     <string name="model_info" msgid="4966408071657934452">"Загвар"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Кернел хувилбар"</string>
     <string name="build_number" msgid="3997326631001009102">"Хийцийн дугаар"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth хаяг"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Wi-Fi MAC хаяг"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Боломжгүй"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Төлөв"</string>
     <string name="device_status" msgid="267298179806290920">"Төлөв"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Өсөж буй, буурч буй эсвэл давхардсан цифрийг зөвшөөрдөггүй."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Дэлгэцийн түгжээний сонголтууд"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> өдрийн өмнө"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Итгэмжлэгдсэн төхөөрөмж нэмэх"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Итгэмжлэгдсэн төхөөрөмжүүд нэмэхийн тулд Bluetooth асна"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Итгэмжлэгдсэн төхөөрөмжүүд"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> төхөөрөмж</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> төхөөрөмж</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Таны <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> холбогдсон үедээ энэ машины түгжээг тайлна. Таны <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>-г хэн нэгэн авсан тохиолдолд энэ төхөөрөмжид хандах боломжтой байж болзошгүй"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Баталгаажуулах"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Итгэмжлэгдсэн төхөөрөмжийг устгах"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Болсон"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Итгэмжлэгдсэн төхөөрөмжийг тохируулахын тулд дэмжигч аппыг ашиглана уу. Үүнийг тохируулмагц таны утсыг тээврийн хэрэгслийн ойролцоо байгааг илрүүлэх үед таны хэрэглэгчийн профайл түгжээг автоматаар тайлна."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Утсандаа дэмжигч аппыг татаж авна уу"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Төхөөрөмжүүдийг хослуулахын тулд утаснаасаа <xliff:g id="CAR_NAME">%1$s</xliff:g>-г сонгоно уу"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Хэн нэгэн төхөөрөмжийг барьж байсан ч таны машины ойролцоох итгэмжлэгдсэн төхөөрөмж хэрэглэгчийн профайлыг асаахад түгжээг тайлна."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Хослуулах кодын тохирох сонголтыг баталгаажуулна уу"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Утсыг амжилттай бүртгүүллээ"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>-г бүртгүүлж чадсангүй"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Итгэмжлэгдсэн төхөөрөмж нэмснээр танаас дараа нь нотолгооны хэлбэр тохируулахыг шаарддаг. Хэрэв та итгэмжлэгдсэн төхөөрөмжөө өөртөө авч яваагүй бол нотлохын тулд профайлдаа хандахыг шаардана."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Төхөөрөмж салсан байна."</string>
     <string name="forget" msgid="3971143908183848527">"Мартах"</string>
     <string name="connect" msgid="5861699594602380150">"Холбох"</string>
     <string name="disconnect" msgid="6140789953324820336">"Салгах"</string>
diff --git a/res/values-mr/arrays.xml b/res/values-mr/arrays.xml
new file mode 100644
index 0000000..6c70cab
--- /dev/null
+++ b/res/values-mr/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"विचारा"</item>
+    <item msgid="933409503308401889">"कधीही अनुमती देऊ नका"</item>
+    <item msgid="1154273129608299386">"नेहमी अनुमती द्या"</item>
+  </string-array>
+</resources>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 7dc2239..d6e29c8 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"नाइट मोड"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"नेटवर्क आणि इंटरनेट"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"मोबाइल नेटवर्क"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> सिम</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> सिम</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"अ‍ॅक्टिव्ह / सिम"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"अ‍ॅक्टिव्ह नसलेले / सिम"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"ॲक्टिव्ह / डाउनलोड केलेले सिम"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"अ‍ॅक्टिव्ह नसलेले / डाउनलोड केलेले सिम"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"अधिक जोडा"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"मोबाइल डेटा"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"मोबाइल नेटवर्क वापरून डेटा ॲक्सेस करा"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"मोबाइल डेटा बंद करायचा आहे का?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"निवड आवश्यक आहे"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"मोबाइल डेटासाठी <xliff:g id="CARRIER">%1$s</xliff:g> वापरायचे का?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"तुम्ही मोबाइल डेटासाठी <xliff:g id="CARRIER2_0">%2$s</xliff:g> वापरत आहात. तुम्ही <xliff:g id="CARRIER1">%1$s</xliff:g> वर स्विच केल्यास, मोबाइल डेटासाठी <xliff:g id="CARRIER2_1">%2$s</xliff:g> वापरले जाणार नाही."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g> वापरा"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"रोमिंग"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"रोमिंग असताना डेटा सेवांशी कनेक्ट करा"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"डेटा रोमिंगला अनुमती द्यायची आहे का?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"तुमच्याकडून आवश्यक शुल्क आकारले जाऊ शकते."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"डेटा वापर"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"प्राथमिक डेटा"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> वापरला आहे"</string>
@@ -320,12 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"प्रीमियम SMS मुळे तुम्हाला कदाचित शुल्क लागू होतील आणि तुमच्या कॅरियर बिलमध्ये जोडले जातील. तुम्ही अ‍ॅपसाठी परवानगी सुरू केल्यास, तुम्ही ते अ‍ॅप वापरून प्रीमियम SMS पाठवू शकता."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"वापर अ‍ॅक्सेस"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"तुम्ही इतर अ‍ॅप्स किती वारंवार वापरत आहात, तसेच तुमचे वाहक, भाषा सेटिंग्ज आणि इतर तपशील यांचा मागोवा घेण्‍याची वापर अ‍ॅक्सेस अ‍ॅपला अनुमती देतो."</string>
-    <!-- no translation found for directory_access_title (7117264853202268740) -->
-    <skip />
-    <!-- no translation found for directory_on_volume (4947971311247097078) -->
-    <skip />
     <string name="wifi_control_title" msgid="5660436566907731929">"वाय-फाय नियंत्रण"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"वाय-फाय नियंत्रण ॲपला वाय-फाय सुरू किंवा बंद करण्याची, वाय-फाय नेटवर्क स्कॅन आणि त्याच्याशी कनेक्ट करण्याची, नेटवर्क जोडण्याची किंवा काढण्याची किंवा फक्त स्थानिक हॉटस्पॉट सुरू करण्याची अनुमती देते."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"आणखी"</string>
     <string name="location_settings_title" msgid="901334356682423679">"स्थान"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"अलीकडील स्थान विनंत्या"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"अलीकडील कोणत्याही स्थान विनंत्या नाहीत"</string>
@@ -338,8 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"ब्लूटूथ बंद असले, तरीही अ‍ॅप्स आणि सेवांना जवळपासची डिव्हाइस कधीही स्कॅन करण्याची अनुमती द्या. याचा वापर उदाहरणार्थ, स्थान आधारित वैशिष्ट्ये आणि सेवा सुधारण्यासाठी केला जाऊ शकतो."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"सिस्टम"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"सिस्टम अपडेट"</string>
-    <!-- no translation found for status_unavailable (3737918179898732010) -->
-    <skip />
     <string name="firmware_version" msgid="8491753744549309333">"Android आवृत्ती"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android सुरक्षितता पॅच पातळी"</string>
     <string name="model_info" msgid="4966408071657934452">"मॉडेल"</string>
@@ -347,8 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"कर्नेल आवृत्ती"</string>
     <string name="build_number" msgid="3997326631001009102">"बिल्ड नंबर"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"ब्लूटूथ पत्ता"</string>
-    <!-- no translation found for about_wifi_mac_address (3934228440550548053) -->
-    <skip />
     <string name="device_info_not_available" msgid="2095601973977376655">"उपलब्ध नाही"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"स्थिती"</string>
     <string name="device_status" msgid="267298179806290920">"स्थिती"</string>
@@ -610,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"अंकांच्या चढत्या, उतरत्या किंवा पुनरावृत्त क्रमाला अनुमती नाही."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"स्क्रीन लॉक पर्याय"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> दिवसांपूर्वी"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"विश्वसनीय डिव्हाइस जोडा"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"विश्वसनीय डिव्हाइस जोडण्यासाठी ब्लूटूथ सुरू होईल"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"विश्वसनीय डिव्हाइस"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> डिव्हाइस</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g>डिव्हाइस</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"ते कनेक्ट केलेले असते तेव्‍हा <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> तुमची कार अनलॉक करेल. एखाद्याने तुमचे <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> घेतल्यास, tकदाचित ते डिव्हाइस अ‍ॅक्सेस करू शकतील"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"खात्री करा"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"विश्वसनीय डिव्हाइस काढून टाका"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"पूर्ण झाले"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"विश्वसनीय डिव्हाइस सेट करण्यासाठी सहयोगी अ‍ॅप वापरा. एकदा सेट केल्यानंतर, तुमचा फोन वाहनाजवळ सापडताच तुमची वापरकर्ता प्रोफाईल आपोआप अनलॉक होईल."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"१. तुमच्या फोनवर सहयोगी अ‍ॅप डाउनलोड करा"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"२. डिव्हाइस पेअर करण्यासाठी तुमच्या फोनवर <xliff:g id="CAR_NAME">%1$s</xliff:g> निवडा"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"तुमचे विश्वसनीय डिव्हाइस दुसऱ्या कोणाच्या हातात असताना देखील ते तुमची वापरकर्ता प्रोफाइल कार जवळपास असताना सुरू होताच अनलॉक करेल."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"कृपया पेअरींग कोड जुळत असल्याची खात्री करा"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"फोनची यशस्वीरीत्या नोंदणी झाली आहे"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>ची नोंदणी करता आली नाही"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"विश्वासू डिव्हाइस जोडण्यााठी तुम्हाला यापुढे ऑथेंटिकेशन सेट करण्याची आवश्यकता आहे. तुमच्याजवळ तुमचे विश्वासू डिव्हाइस नसल्यास, ऑथेंटिकेशनला तुमची प्रोफाइल ॲक्सेस करण्याची आवश्यकता असेल."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"डिव्हाइस डिस्कनेक्ट केले आहे."</string>
     <string name="forget" msgid="3971143908183848527">"विसरा"</string>
     <string name="connect" msgid="5861699594602380150">"कनेक्ट करा"</string>
     <string name="disconnect" msgid="6140789953324820336">"डिस्कनेक्ट करा"</string>
diff --git a/res/values-ms/arrays.xml b/res/values-ms/arrays.xml
new file mode 100644
index 0000000..85320bc
--- /dev/null
+++ b/res/values-ms/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Tanya"</item>
+    <item msgid="933409503308401889">"Jangan sekali-kali benarkan"</item>
+    <item msgid="1154273129608299386">"Sentiasa benarkan"</item>
+  </string-array>
+</resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index d99fd2a..7dafff3 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Mod malam"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Rangkaian &amp; Internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Rangkaian mudah alih"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Aktif / SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Tidak aktif / SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Aktif / SIM Dimuat Turun"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Tidak Aktif / SIM Dimuat Turun"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Tambah lagi"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Data mudah alih"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Akses data menggunakan rangkaian mudah alih"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Matikan data mudah alih?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Pilihan diperlukan"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Gunakan data mudah alih <xliff:g id="CARRIER">%1$s</xliff:g>?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Anda menggunakan <xliff:g id="CARRIER2_0">%2$s</xliff:g> untuk data mudah alih. Jika anda bertukar kepada <xliff:g id="CARRIER1">%1$s</xliff:g>, <xliff:g id="CARRIER2_1">%2$s</xliff:g> tidak lagi digunakan untuk data mudah alih."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Gunakan <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Perayauan"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Sambung ke perkhidmatan data semasa perayauan"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Benarkan perayauan data?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Anda mungkin dikenakan caj yang tinggi."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Penggunaan data"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Data utama"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> digunakan"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"SMS Premium bukan percuma dan cajnya akan ditambahkan pada bil pembawa anda. Jika anda mendayakan kebenaran untuk apl, anda akan dapat menghantar SMS premium menggunakan apl itu."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Akses penggunaan"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Akses penggunaan membenarkan apl mengesan apl lain yang anda gunakan dan kekerapan penggunaan tersebut serta pembawa, tetapan bahasa dan butiran anda yang lain."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Akses direktori"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Kawalan Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Kawalan Wi-Fi membenarkan apl menghidupkan atau mematikan Wi-Fi, mengimbas dan menyambung ke rangkaian Wi-Fi, menambah atau mengalih keluar rangkaian, atau memulakan tempat liputan setempat sahaja."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Lagi"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Lokasi"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Permintaan Lokasi Terbaharu"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Tiada permintaan lokasi terbaharu"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Benarkan apl dan perkhidmatan mengimbas untuk mengesan peranti berdekatan pada bila-bila masa, meskipun apabila Bluetooth dimatikan. Ini dapat digunakan, contohnya, untuk meningkatkan ciri dan perkhidmatan berasaskan lokasi."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Sistem"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Kemas kini sistem"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Tidak tersedia"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Versi Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"Tahap tampung keselamatan Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Model"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Versi inti"</string>
     <string name="build_number" msgid="3997326631001009102">"Nombor binaan"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Alamat Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Alamat MAC Wi-Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Tidak tersedia"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Status"</string>
     <string name="device_status" msgid="267298179806290920">"Status"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Angka menaik, menurun atau jujukan berulang tidak dibenarkan."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Pilihan kunci skrin"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> hari lalu"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Tambah peranti dipercayai"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth akan dihidupkan untuk peranti dipercayai"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Peranti dipercayai"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> peranti</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> peranti</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> anda akan membuka kunci kereta ini apabila disambungkan. Jika seseorang mengambil <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> anda, orang itu mungkin dapat mengakses peranti ini"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Sahkan"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Alih keluar peranti yang dipercayai"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Selesai"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Gunakan apl rakan untuk menyediakan peranti yang dipercayai. Setelah peranti disediakan, profil pengguna anda akan dibuka kunci secara automatik apabila telefon anda dikesan berada berdekatan kenderaan."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Muat turun apl rakan pada telefon anda"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Pilih <xliff:g id="CAR_NAME">%1$s</xliff:g> pada telefon anda untuk menggandingkan peranti tersebut"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Peranti yang dipercayai berdekatan kereta anda akan membuka kunci profil pengguna apabila kereta dihidupkan, walaupun orang lain yang memegang peranti itu."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Sila sahkan bahawa kod gandingan adalah sepadan"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Telefon telah berjaya didaftarkan"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Pendaftaran <xliff:g id="DEVICE_NAME">%1$s</xliff:g> gagal"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Penambahan peranti yang dipercayai memerlukan anda menetapkan kaedah pengesahan selepas ini. Jika peranti yang dipercayai tiada dengan anda, pengesahan perlu mengakses profil anda."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Peranti diputuskan sambungan."</string>
     <string name="forget" msgid="3971143908183848527">"Lupakan"</string>
     <string name="connect" msgid="5861699594602380150">"Sambung"</string>
     <string name="disconnect" msgid="6140789953324820336">"Putuskan sambungan"</string>
diff --git a/res/values-my/arrays.xml b/res/values-my/arrays.xml
new file mode 100644
index 0000000..4754122
--- /dev/null
+++ b/res/values-my/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"မေးပါ"</item>
+    <item msgid="933409503308401889">"လုံးဝ ခွင့်မပြုပါ"</item>
+    <item msgid="1154273129608299386">"အမြဲခွင့်ပြုပါ"</item>
+  </string-array>
+</resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 5d17fa3..b9906a1 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"ညသုံးမုဒ်"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"ကွန်ရက်နှင့် အင်တာနက်"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"မိုဘိုင်းကွန်ရက်"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other">ဆင်းမ်ကတ် <xliff:g id="COUNT_1">%1$d</xliff:g> ခု</item>
+      <item quantity="one">ဆင်းမ်ကတ် <xliff:g id="COUNT_0">%1$d</xliff:g> ခု</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"သုံးနေသော / ဆင်းမ်ကတ်"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"မသုံးသော / ဆင်းမ်ကတ်"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"သုံးနေသော / ဒေါင်းလုဒ်လုပ်ထားသော ဆင်းမ်"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"မသုံးသော / ဒေါင်းလုဒ်လုပ်ထားသော ဆင်းမ်"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"ထပ်ထည့်ရန်"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"မိုဘိုင်းဒေတာ"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"မိုဘိုင်းကွန်ရက်သုံးပြီး ဒေတာကို ဝင်သုံးခွင့်ပေးပါ"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"မိုဘိုင်းဒေတာ ပိတ်လိုသလား။"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"ရွေးချယ်မှု လိုအပ်သည်"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"မိုဘိုင်းဒေတာအတွက် <xliff:g id="CARRIER">%1$s</xliff:g> သုံးမလား။"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"မိုဘိုင်းဒေတာအတွက် <xliff:g id="CARRIER2_0">%2$s</xliff:g> အသုံးပြုနေသည်။ <xliff:g id="CARRIER1">%1$s</xliff:g> သို့ပြောင်းလျှင် မိုဘိုင်းဒေတာအတွက် <xliff:g id="CARRIER2_1">%2$s</xliff:g> ကို အသုံးပြုတော့မည် မဟုတ်ပါ။"</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g> သုံးရန်"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"ပြင်ပကွန်ရက်သို့ ချိတ်ဆက်ခြင်း"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"ပြင်ပကွန်ရက် သုံးသောအခါ ဒေတာဝန်ဆောင်မှုများနှင့် ချိတ်ဆက်သည်"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"ပြင်ပကွန်ရက် ဒေတာသုံးခွင့်ပြုမလား။"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"ငွေကြေးအတန်အသင့် ကုန်ကျနိုင်ပါသည်။"</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"ဒေတာသုံးစွဲမှု"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"အဓိက ဒေတာ"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> အသုံးပြုထားသည်"</string>
@@ -321,10 +338,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"ပရီမီယံ SMS သည်ငွေကြေးကုန်ကျနိုင်ပြီး သင့်ဖုန်းဝန်ဆောင်မှုပေးသူ၏ ငွေတောင်းခံလွှာသို့ ပေါင်း၍ ထည့်သွင်းပါမည်။ အက်ပ်တစ်ခုကို သင်ခွင့်ပြုလိုက်လျှင် ၎င်းအက်ပ်ကိုအသုံးပြုပြီး ပရီမီယံ SMS ပို့နိုင်မည်ဖြစ်သည်။"</string>
     <string name="usage_access_title" msgid="7153427122072303254">"အသုံးပြုမှု ကြည့်ခြင်း"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"ဝင်ရောက်အသုံးပြုခွင့်သည် အက်ပ်တစ်ခုအား သင်အသုံးပြုနေသော အခြားအက်ပ်များနှင့် သုံးသည့် အကြိမ်ရေနှင့်တကွ သင့်ဖုန်း၏ ဝန်ဆောင်မှုဌာန၊ ဘာသာစကား ဆက်တင်နှင့် အခြားအသေးစိတ်များကို ခြေရာခံရန် ခွင့်ပြုသည်။"</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"ဖိုင်လမ်းညွှန် သုံးခွင့်"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi ထိန်းချုပ်မှု"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Wi-Fi ထိန်းချုပ်မှုသည် အက်ပ်တစ်ခုအား Wi-Fi ဖွင့်ရန် သို့မဟုတ် ပိတ်ရန်၊ Wi-Fi ကွန်ရက်များ ရှာဖွေရန်နှင့် ၎င်းတို့သို့ ချိတ်ဆက်ရန်၊ ကွန်ရက်များ ထည့်ရန် သို့မဟုတ် ဖယ်ရှားရန် သို့မဟုတ် စက်တွင်းသာသုံးသည့် ဟော့စပေါ့စတင်ရန်တို့ကို ခွင့်ပြုသည်။"</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"နောက်ထပ်"</string>
     <string name="location_settings_title" msgid="901334356682423679">"တည်နေရာ"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"လတ်တလော တည်နေရာတောင်းဆိုချက်များ"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"လတ်တလော တည်နေရာတောင်းဆိုချက်များ မရှိပါ"</string>
@@ -337,7 +353,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"ဘလူးတုသ်ကို ပိတ်ထားသော်လည်း အနီးအနားရှိ စက်ပစ္စည်းများကို အချိန်မရွေးရှာဖွေရန် အက်ပ်နှင့် ဝန်ဆောင်မှုများအား ခွင့်ပြုပါ။ ဥပမာအားဖြင့် ၎င်းကို တည်နေရာအခြေပြု လုပ်ဆောင်ချက်နှင့် ဝန်ဆောင်မှုများ တိုးတက်လာစေရန် အသုံးပြုနိုင်ပါသည်။"</string>
     <string name="system_setting_title" msgid="6864599341809463440">"စနစ်"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"စနစ်အပ်ဒိတ်များ"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"မရနိုင်ပါ"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android ဗားရှင်း"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android လုံခြုံရေးပက်ချ်အဆင့်"</string>
     <string name="model_info" msgid="4966408071657934452">"မော်ဒယ်"</string>
@@ -345,7 +360,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Kernel ဗားရှင်း"</string>
     <string name="build_number" msgid="3997326631001009102">"တည်ဆောက်မှုနံပါတ်"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"ဘလူးတုသ်လိပ်စာ"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Wi-Fi ၏ MAC လိပ်စာ"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"မရနိုင်ပါ"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"အခြေအနေ"</string>
     <string name="device_status" msgid="267298179806290920">"အခြေအနေ"</string>
@@ -607,6 +621,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"အစဉ်လိုက်ဖြစ်နေသော ဂဏန်း အငယ်မှအကြီး၊ အကြီးမှအငယ် သို့မဟုတ် ထပ်နေသည့် နံပါတ်စဉ်များကို ခွင့်မပြုပါ။"</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"မျက်နှာပြင်လော့ခ်ချခြင်း ရွေးချယ်စရာများ"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> - လွန်ခဲ့သော <xliff:g id="NUM_DAYS">%3$s</xliff:g> ရက်"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"ယုံကြည်ရသည့် စက်ကိုထည့်ရန်"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"စိတ်ချရသည့် ကိရိယာထည့်ရန် ဘလူးတုသ် ဖွင့်ပါမည်"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"ယုံကြည်ရသည့် စက်များ"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other">စက်ပစ္စည်း <xliff:g id="COUNT_1">%d</xliff:g> ခု</item>
+      <item quantity="one">စက်ပစ္စည်း <xliff:g id="COUNT_0">%d</xliff:g> ခု</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"ချိတ်ဆက်သည့်အခါ သင့် <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> က ဤကားကို လော့ခ်ဖွင့်ပါမည်။ တစ်စုံတစ်ယောက်က သင့် <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> ကိုယူသွားလျှင် သူသည် ဤကိရိယာကို အသုံးပြုခွင့်ရရှိနိုင်ပါသည်"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"အတည်ပြုရန်"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"ယုံကြည်ရသော ကိရိယာ ဖယ်ရှားရန်"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"ပြီးပြီ"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"စိတ်ချရသည့် စက်ပစ္စည်းကို သတ်မှတ်ရန် တွဲဖက်အက်ပ်ကို သုံးပါ။ သတ်မှတ်ပြီးသည်နှင့် သင့်စက်ကို ယာဉ်အနီးတွင် တွေ့ရှိရသည့်အခါ သင့်အသုံးပြုသူပရိုဖိုင်သည် အလိုအလျောက် လော့ခ်ပွင့်ပါမည်။"</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"၁။ တွဲဖက် အက်ပ်ကို သင့်ဖုန်းတွင် ဒေါင်းလုဒ်လုပ်ပါ"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"၂။ စက်ပစ္စည်းနှင့်အတူ တွဲချိတ်ရန် သင့်ဖုန်းတွင် <xliff:g id="CAR_NAME">%1$s</xliff:g> ကို ရွေးပေးပါ"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"စိတ်ချရသည့် စက်တစ်ခုသည် အခြားသူတစ်ဦး၏လက်ထဲတွင် ရှိနေစေကာမူ ကားစက်နှိုးလိုက်သည်နှင့် သင့်ကားအနီးရှိ ယင်းစက်တစ်ခုက အသုံးပြုသူ ပရိုဖိုင်ကို လော့ခ်ဖွင့်ပေးပါမည်။"</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"အတူတွဲချိတ်ရန် ကုဒ်များ ကိုက်ညီကြောင်း အတည်ပြုပါ"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"ဖုန်းကို စာရင်းသွင်းပြီးပါပြီ"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ကို စာရင်းသွင်း၍ မရပါ"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"စိတ်ချရသည့် ကိရိယာတစ်ခုကို ထည့်ပြီးပါက အထောက်အထားစိစစ်ခြင်း နည်းလမ်းတစ်ခုကို သတ်မှတ်ရပါမည်။ သင့်တွင် စိတ်ချရသည့် ကိရိယာ အတူပါမလာပါက သင့်ပရိုဖိုင်ကို ဝင်သုံးခွင့်ရရန် အထောက်အထားစိစစ်ခြင်း လိုအပ်ပါလိမ့်မည်။"</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"စက်ချိတ်ဆက်မှု ပြတ်တောက်သွားသည်။"</string>
     <string name="forget" msgid="3971143908183848527">"မေ့ပစ်ရန်"</string>
     <string name="connect" msgid="5861699594602380150">"ချိတ်ရန်"</string>
     <string name="disconnect" msgid="6140789953324820336">"ချိတ်ဆက်မှု ဖြုတ်ရန်"</string>
diff --git a/res/values-nb/arrays.xml b/res/values-nb/arrays.xml
new file mode 100644
index 0000000..7f9d7ee
--- /dev/null
+++ b/res/values-nb/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Spør"</item>
+    <item msgid="933409503308401889">"Tillat aldri"</item>
+    <item msgid="1154273129608299386">"Tillat alltid"</item>
+  </string-array>
+</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 922ad09..4e1ffc2 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Nattmodus"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Nettverk og internett"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mobilnettverk"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-kort</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM-kort</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Aktiv / SIM-kort"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Inaktiv / SIM-kort"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Aktiv / nedlastet SIM-kort"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Inaktiv / nedlastet SIM-kort"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Legg til mer"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Mobildata"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Bruk data via mobilnettverket"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Vil du slå av mobildata?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Du må velge en SIM-innstilling"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Vil du bruke <xliff:g id="CARRIER">%1$s</xliff:g> for mobildata?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Du bruker <xliff:g id="CARRIER2_0">%2$s</xliff:g> for mobildata. Hvis du bytter til <xliff:g id="CARRIER1">%1$s</xliff:g>, brukes ikke <xliff:g id="CARRIER2_1">%2$s</xliff:g> for mobildata lenger."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Bruk <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roaming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Koble til datatjenester ved roaming"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Vil du tillate data-roaming?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Det kan medføre betydelige kostnader."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Databruk"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Primære data"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> er brukt"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Premium-SMS kan koste penger og legges til telefonregningen din. Hvis du slår på tillatelse for en app, kan du sende premium-SMS via den appen."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Brukstilgang"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Med brukstilgang kan apper spore hvilke andre apper du bruker, og hvor ofte du bruker dem. Operatør, språkinnstillinger og annen informasjon kan også spores med brukstilgang."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Katalogtilgang"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi-kontroll"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Med Wi-Fi-kontroll kan en app slå Wi-Fi på eller av, søke etter og koble til Wi-Fi-nettverk, legge til eller fjerne nettverk eller starte en lokal Wi-Fi-sone"</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Mer"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Posisjon"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Nylige posisjonsforespørsler"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Ingen nylige posisjonsforespørsler"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"La apper og tjenester søke etter enheter i nærheten når som helst, selv når Bluetooth er slått av. Dette kan for eksempel brukes til å forbedre posisjonsbaserte funksjoner og tjenester."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"System"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Systemoppdateringer"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Utilgjengelig"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android-versjon"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android-sikkerhetsoppdatering"</string>
     <string name="model_info" msgid="4966408071657934452">"Modell"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Kjerneversjon"</string>
     <string name="build_number" msgid="3997326631001009102">"Delversjonsnummer"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth-adresse"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"MAC-adresse for Wi-Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Ikke tilgjengelig"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Status"</string>
     <string name="device_status" msgid="267298179806290920">"Status"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"En sekvens av stigende, synkende eller like sifre er ikke tillatt."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Alternativer for skjermlås"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : for <xliff:g id="NUM_DAYS">%3$s</xliff:g> dager siden"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Legg til en godkjent enhet"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth slås på for å legge til godkjent enhet"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Godkjente enheter"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> enheter</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> enhet</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> låser opp denne bilen når den er tilkoblet. Hvis noen tar <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, får vedkommende tilgang til denne enheten."</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Bekreft"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Fjern godkjent enhet"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Ferdig"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Bruk følgeappen for å konfigurere en godkjent enhet. Når den er konfigurert, låser brukerprofilen din opp automatisk når telefonen oppdages i nærheten av kjøretøyet."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Last ned følgeappen på telefonen din"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Velg <xliff:g id="CAR_NAME">%1$s</xliff:g> på telefonen for å koble til enhetene"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"En godkjent enhet i nærheten av bilen din låser opp brukerprofilen ved tenning – selv om noen andre holder enheten."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Bekreft at sammenkoblingskodene er like"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Telefonen er registrert"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Kunne ikke registrere <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Hvis du legger til en godkjent enhet, må du angi en autentiseringsmetode. Hvis du ikke har den godkjente enheten din med deg, kreves autentisering for å få tilgang til profilen din."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Enheten er frakoblet."</string>
     <string name="forget" msgid="3971143908183848527">"Glem"</string>
     <string name="connect" msgid="5861699594602380150">"Koble til"</string>
     <string name="disconnect" msgid="6140789953324820336">"Koble fra"</string>
diff --git a/res/values-ne/arrays.xml b/res/values-ne/arrays.xml
new file mode 100644
index 0000000..3ee6c50
--- /dev/null
+++ b/res/values-ne/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"सोध्नुहोस्"</item>
+    <item msgid="933409503308401889">"कहिल्यै पनि अनुमति नदिनुहोस्"</item>
+    <item msgid="1154273129608299386">"सधैँ अनुमति दिनुहोस्"</item>
+  </string-array>
+</resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 3f47012..6f6f421 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"रात्रि मोड"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"नेटवर्क र इन्टरनेट"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"मोबाइल नेटवर्क"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM हरू</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"सक्रिय / SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"निष्क्रिय / SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"सक्रिय / डाउनलोड गरिएको SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"निष्क्रिय / डाउनलोड गरिएको SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"थप थप्नुहोस्"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"मोबाइल डेटा"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"मोबाइल नेटवर्क प्रयोग गरी डेटामाथि पहुँच राख्नु…"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"मोबाइल डेटा निष्क्रिय पार्ने हो?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"चयन गर्न आवश्यक छ"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"मोबाइल डेटाका लागि <xliff:g id="CARRIER">%1$s</xliff:g> प्रयोग गर्ने हो?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"तपाईं मोबाइल डेटाका लागि <xliff:g id="CARRIER2_0">%2$s</xliff:g> प्रयोग गर्दै हुनुहुन्छ। तपाईं <xliff:g id="CARRIER1">%1$s</xliff:g> मा जानुभयो भने मोबाइल डेटाका लागि अब उप्रान्त <xliff:g id="CARRIER2_1">%2$s</xliff:g> को प्रयोग गरिने छैन।"</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g> प्रयोग गर्नुहोस्"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"रोमिङ"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"रोमिङको बेलामा डेटा सेवामा जोड्नुहोस्"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"डेटा रोमिङ गर्ने अनुमति दिने हो?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"तपाईंले चर्को शुल्क तिर्नु पर्ने हुन सक्छ।"</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"डेटाको प्रयोग"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"प्राथमिक डेटा"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g><xliff:g id="ID_2">^2</xliff:g> प्रयोग गरियो"</string>
@@ -320,12 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"प्रिमियम SMS सुविधा सक्रिय गर्नाले तपाईंलाई पैसा लाग्न सक्छ र उक्त लागत तपाईंको सेवा प्रदायकलाई तिर्नु पर्ने बिलमा जोडिने छ। तपाईंले अनुप्रयोगका लागि अनुमति सक्षम पार्नुभएका खण्डमा तपाईं त्यस अनुप्रयोगको प्रयोग गरेर प्रिमियम SMS पठाउन सक्नु हुने छ।"</string>
     <string name="usage_access_title" msgid="7153427122072303254">"प्रयोगसम्बन्धी पहुँच"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"प्रयोगको पहुँचले अनुप्रयोगलाई तपाईंले आफ्नो सेवा प्रदायक, भाषासम्बन्धी सेटिङ र अन्य विवरणहरूसहित अन्य कुन कुन अनुप्रयोगहरू गरिरहनुभएको छ र कत्तिको प्रयोग गर्नुहुन्छ भन्ने कुरा ट्र्याक गर्न दिन्छ।"</string>
-    <!-- no translation found for directory_access_title (7117264853202268740) -->
-    <skip />
-    <!-- no translation found for directory_on_volume (4947971311247097078) -->
-    <skip />
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi को नियन्त्रण"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Wi-Fi नियन्त्रकले अनुप्रयोगलाई Wi-Fi सक्रिय गर्ने वा निष्क्रिय पार्ने, स्क्यान गरी Wi-Fi नेटवर्कमा जडान गर्ने, नेटवर्कहरू थप्ने वा हटाउने, वा स्थानीय रूपमा मात्र प्रयोग गर्न मिल्ने हटस्पट सुरु गर्ने अनुमति दिन्छ।"</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"थप"</string>
     <string name="location_settings_title" msgid="901334356682423679">"स्थान"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"हालका स्थानसम्बन्धी अनुरोधहरू"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"हालसालैका स्थानसम्बन्धी कुनै पनि अनुरोध छैन"</string>
@@ -338,8 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"अनुप्रयोग तथा सेवाहरूलाई जुनसुकै बेला (ब्लुटुथ निष्क्रिय भएको बेलामा पनि) वरपरका यन्त्रहरू स्क्यान गर्न अनुमति दिनुहोस्‌। यसलाई स्थानमा आधारित सुविधा तथा सेवाहरू सुधार गर्ने जस्ता कार्यहरू गर्नाका लागि प्रयोग गर्न सकिन्छ।"</string>
     <string name="system_setting_title" msgid="6864599341809463440">"प्रणाली"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"प्रणालीसम्बन्धी अद्यावधिकहरू"</string>
-    <!-- no translation found for status_unavailable (3737918179898732010) -->
-    <skip />
     <string name="firmware_version" msgid="8491753744549309333">"Android संस्करण"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android सुरक्षा प्याचको चरण"</string>
     <string name="model_info" msgid="4966408071657934452">"मोडेल"</string>
@@ -347,8 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"कर्नेल संस्करण"</string>
     <string name="build_number" msgid="3997326631001009102">"बिल्डको नम्बर"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"ब्लुटुथ ठेगाना"</string>
-    <!-- no translation found for about_wifi_mac_address (3934228440550548053) -->
-    <skip />
     <string name="device_info_not_available" msgid="2095601973977376655">"उपलब्ध छैन"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"स्थिति"</string>
     <string name="device_status" msgid="267298179806290920">"स्थिति"</string>
@@ -610,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"अङ्कहरूको बढ्दो, घट्दो वा दोहोरिएको अनुक्रम निषेध गरिएको छ।"</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"स्क्रिन लकका विकल्पहरू"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> दिनअघि"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"विश्वसनीय यन्त्र थप्नुहोस्"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"विश्वसनीय यन्त्र थप्न ब्लुटुथ सक्रिय हुने छ"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"विश्वसनीय यन्त्रहरू"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> यन्त्रहरू</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> यन्त्र</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"तपाईंको <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> जडान भएका बेला यसले यो कार अनलक गर्ने छ कुनै व्यक्तिले तपाईंको <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> लैजानुभयो भने उहाँले यो यन्त्रमाथि पहुँच राख्न सक्ने सम्भावना छ।"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"पुष्टि गर्नुहोस्"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"विश्वसनीय यन्त्रलाई हटाउनुहोस्"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"सम्पन्न भयो"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"कुनै विश्वसनीय यन्त्र सेटअप गर्न सहयोगी अनुप्रयोग प्रयोग गर्नुहोस्। सेटअप भएपछि तपाईंको फोन सवारी साधानको नजिकै भएको कुरा पहिचान हुँदा तपाईंको प्रयोगकर्ता प्रोफाइल अनलक हुने छ।"</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"१. आफ्नो फोनमा सहयोगी अनुप्रयोग डाउनलोड गर्नुहोस्"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"२. यन्त्रहरूको जोडा बनाउन आफ्नो फोनमा <xliff:g id="CAR_NAME">%1$s</xliff:g> चयन गर्नुहोस्"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"अरू कसैले यन्त्र समातिरहेको भए पनि स्विच अन हुँदा तपाईंको कार नजिक रहेको उक्त यन्त्रले प्रयोगकर्ताको प्रोफाइल खोल्ने छ।"</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"जोडा मिलाउने कोड मिल्दाजुल्दा छन् भन्ने सुनिश्चित गर्नुहोस्"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"फोन सफलतापूर्वक दर्ता गरिएको छ"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> दर्ता गर्न सकिएन"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"कुनै विश्वसनीय यन्त्र थप्दा तपाईंले यसपछिको चरणमा प्रमाणीकरण विधि सेट गर्नु पर्छ। तपाईंसँग आफ्नो विश्वसनीय यन्त्र छैन भने तपाईंको प्रोफाइलमाथि पहुँच राख्न प्रमाणीकरणको आवश्यकता पर्ने छ।"</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"यन्त्र विच्छेद गरियो।"</string>
     <string name="forget" msgid="3971143908183848527">"बिर्सनुहोस्"</string>
     <string name="connect" msgid="5861699594602380150">"जडान गर्नुहोस्"</string>
     <string name="disconnect" msgid="6140789953324820336">"विच्छेद गर्नुहोस्"</string>
diff --git a/res/values-nl/arrays.xml b/res/values-nl/arrays.xml
new file mode 100644
index 0000000..372331c
--- /dev/null
+++ b/res/values-nl/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Vragen"</item>
+    <item msgid="933409503308401889">"Nooit toestaan"</item>
+    <item msgid="1154273129608299386">"Altijd toestaan"</item>
+  </string-array>
+</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 0ff3a7f..93303e7 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Nachtmodus"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Netwerk en internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mobiel netwerk"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> simkaarten</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> simkaart</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Actief/simkaart"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Inactief/simkaart"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Actief, gedownloade simkaart"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Inactief/gedownloade simkaart"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Meer toevoegen"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Mobiele data"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Datatoegang via mobiel netwerk"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Mobiele data uitschakelen?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Selectie vereist"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"<xliff:g id="CARRIER">%1$s</xliff:g> gebruiken voor mobiele data?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Je gebruikt <xliff:g id="CARRIER2_0">%2$s</xliff:g> voor mobiele data. Als je overschakelt naar <xliff:g id="CARRIER1">%1$s</xliff:g>, wordt <xliff:g id="CARRIER2_1">%2$s</xliff:g> niet meer gebruikt voor mobiele data."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g> gebruiken"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roaming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Verbinding maken met dataservices tijdens roaming"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Dataroaming toestaan?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Er kunnen hoge kosten in rekening worden gebracht."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Datagebruik"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Primaire data"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> gebruikt"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Premium sms\'jes kunnen je geld kosten en worden toegevoegd aan de facturen van je provider. Als je rechten aan een app verleent, kun je premium sms\'jes verzenden met die app."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Gebruikstoegang"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Met gebruikstoegang kan een app bijhouden welke andere apps je gebruikt (en hoe vaak), welke provider je hebt, je taalinstellingen en andere details."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Toegang tot directory"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wifi-beheer"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Met \'Wifi-beheer\' kun je een app toestaan om wifi in of uit te schakelen, wifi-netwerken te scannen en er verbinding mee te maken, netwerken toe te voegen of te verwijderen of een hotspot \'Alleen lokaal\' te starten."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Meer"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Locatie"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Recente locatieverzoeken"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Geen recente locatieverzoeken"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Apps en services toestaan altijd te scannen naar apparaten in de buurt, zelfs als Bluetooth is uitgeschakeld. Dit kan bijvoorbeeld worden gebruikt om locatiegebaseerde functies en services te verbeteren."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Systeem"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Systeemupdates"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Niet beschikbaar"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android-versie"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android-beveiligingspatchniveau"</string>
     <string name="model_info" msgid="4966408071657934452">"Model"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Kernel-versie"</string>
     <string name="build_number" msgid="3997326631001009102">"Build-nummer"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth-adres"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"MAC-adres voor wifi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Niet beschikbaar"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Status"</string>
     <string name="device_status" msgid="267298179806290920">"Status"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Een oplopende, aflopende of herhaalde reeks cijfers is niet toegestaan."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Schermvergrendelingsopties"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g>: <xliff:g id="NUM_DAYS">%3$s</xliff:g> dagen geleden"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Vertrouwd apparaat toevoegen"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Vertrouwd apparaat wordt toegevoegd via Bluetooth"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Vertrouwde apparaten"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> apparaten</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> apparaat</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Je <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> ontgrendelt deze auto wanneer je apparaat is verbonden. Als iemand je <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> in handen krijgt, kan die persoon mogelijk toegang krijgen tot dit apparaat."</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Bevestigen"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Veilig apparaat verwijderen"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Klaar"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Gebruik de bijbehorende app om een vertrouwd apparaat in te stellen. Na het instellen wordt je gebruikersprofiel automatisch ontgrendeld wanneer je telefoon in de buurt van het voertuig wordt waargenomen."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Download de bijbehorende app op je telefoon"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Selecteer <xliff:g id="CAR_NAME">%1$s</xliff:g> op je telefoon om de apparaten te koppelen"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Een vertrouwd apparaat in de buurt van je auto ontgrendelt het gebruikersprofiel wanneer de auto wordt gestart, ook als iemand anders het apparaat vasthoudt."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Bevestig dat de koppelingscodes overeenkomen"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"De telefoon is ingeschreven"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Inschrijving van <xliff:g id="DEVICE_NAME">%1$s</xliff:g> mislukt"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Als je een vertrouwd apparaat toevoegt, moet je daarna een verificatiemethode instellen. Als je je vertrouwde apparaat niet bij je hebt, is verificatie vereist voor toegang tot je profiel."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Verbinding met apparaat verbroken."</string>
     <string name="forget" msgid="3971143908183848527">"Vergeten"</string>
     <string name="connect" msgid="5861699594602380150">"Verbinden"</string>
     <string name="disconnect" msgid="6140789953324820336">"Verbinding verbreken"</string>
diff --git a/res/values-or/arrays.xml b/res/values-or/arrays.xml
new file mode 100644
index 0000000..ec65b14
--- /dev/null
+++ b/res/values-or/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"ପଚାରନ୍ତୁ"</item>
+    <item msgid="933409503308401889">"ଆଦୌ ଅନୁମତି ଦିଅନ୍ତୁ ନାହିଁ"</item>
+    <item msgid="1154273129608299386">"ସର୍ବଦା ଅନୁମତି ଦିଅନ୍ତୁ"</item>
+  </string-array>
+</resources>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 1ae8b39..07d117d 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"ନାଇଟ୍ ମୋଡ୍"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"ନେଟ୍‌ୱର୍କ ଓ ଇର୍ଣ୍ଟନେଟ୍"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"ମୋବାଇଲ୍‌ ନେଟ୍‌ୱର୍କ"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g>ଟି SIM</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g>ଟି SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"ସକ୍ରିୟ / SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"ନିଷ୍କ୍ରିୟ / SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"ସକ୍ରିୟ / ଡାଉନଲୋଡ୍ କରଯାଇଥିବା SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"ନିଷ୍କ୍ରିୟ / ଡାଉନଲୋଡ୍ ହୋଇଥିବା SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"ଅଧିକ ଯୋଗ କରନ୍ତୁ"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"ମୋବାଇଲ୍ ଡାଟା"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"ମୋବାଇଲ୍ ନେଟ୍‌ୱର୍କକୁ ବ୍ୟବହାରକରି ଡାଟା ଆକ୍ସେସ୍ କରନ୍ତୁ"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"ମୋବାଇଲ୍‌ ଡାଟା ବନ୍ଦ କରିବେ?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"ଆବଶ୍ୟକୀୟ ମନୋନୟନ"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"ମୋବାଇଲ୍ ଡାଟା ପାଇଁ <xliff:g id="CARRIER">%1$s</xliff:g> ବ୍ୟବହାର କରିନ୍ତୁ?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"ମୋବାଇଲ୍ ଡାଟା ପାଇଁ ଆପଣ <xliff:g id="CARRIER2_0">%2$s</xliff:g> ବ୍ୟବହାର କରୁଛନ୍ତି। ଯଦି ଆପଣ <xliff:g id="CARRIER1">%1$s</xliff:g>କୁ ସ୍ୱିଚ୍ କରୁଛନ୍ତି, ତେବେ ମୋବାଇଲ୍ ଡାଟା ପାଇଁ ଆଉ <xliff:g id="CARRIER2_1">%2$s</xliff:g> ବ୍ୟବହୃତ ହେବ ନାହିଁ।"</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g> ବ୍ୟବହାର କରନ୍ତୁ"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"ରୋମିଂ"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"ରୋମିଂ ବେଳେ ଡାଟା ସେବାଗୁଡ଼ିକୁ ସଂଯୋଗ କରନ୍ତୁ"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"ଡାଟା ରୋମିଂର ଅନୁମତି ଦେବେ?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"ଆପଣଙ୍କୁ ଅଧିକ ଦେୟ ଲାଗୁ ହୋଇପାରେ।"</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"ଡାଟାର ବ୍ୟବହାର"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"ପ୍ରାଥମିକ ଡାଟା"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> ବ୍ୟବହୃତ ହୋଇଛି"</string>
@@ -320,12 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"ପ୍ରିମିୟମ୍ SMSରେ ଆପଣଙ୍କୁ ଖର୍ଚ୍ଚ କରିବାକୁ ପଡ଼ିପାରେ ଏବଂ ତାହା ଆପଣଙ୍କର ମୋବାଇଲ୍ କମ୍ପାନୀର ବିଲ୍‌ରେ ଯୋଗ ହୋଇଯିବ। ଯଦି ଆପଣ ଏକ ଆପ୍ ପାଇଁ ଅନୁମତି ଦେଇଛନ୍ତି, ତେବେ ସେହି ଆପ୍ ବ୍ୟବହାର କରି ଆପଣ ପ୍ରିମିୟମ୍ SMS ପଠାଇ ପାରିବେ।"</string>
     <string name="usage_access_title" msgid="7153427122072303254">"ବ୍ୟବହାର ଆକସେସ୍"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"ଆପଣ କେଉଁ ଅନ୍ୟ ଆପ୍ସ କେତେ ଥର ବ୍ୟବହାର କରୁଛନ୍ତି, ତଥା ଆପଣଙ୍କ ମୋବାଇଲ କମ୍ପାନୀ, ଭାଷା ସେଟିଂସ୍ ଏବଂ ଅନ୍ୟ ବିବରଣୀକୁ ଟ୍ରାକ୍ କରିବା ପାଇଁ, ବ୍ୟବହାରର ଆକସେସ୍‍ ଏକ ଆପ୍‌କୁ ଅନୁମତି ଦେଇଥାଏ।"</string>
-    <!-- no translation found for directory_access_title (7117264853202268740) -->
-    <skip />
-    <!-- no translation found for directory_on_volume (4947971311247097078) -->
-    <skip />
     <string name="wifi_control_title" msgid="5660436566907731929">"ୱାଇ-ଫାଇ ନିୟନ୍ତ୍ରଣ"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"ୱାଇ-ଫାଇ ନିୟନ୍ତ୍ରଣ କୌଣସି ଆପ୍‍କୁ ୱାଇ-ଫାଇ ଚାଲୁ କରିବା କିମ୍ବା ବନ୍ଦ କରିବା, ସ୍କାନ୍ କରି ୱାଇ-ଫାଇ ନେଟ୍‍ୱାର୍କ ସହ ସଂଯୋଗ କରିବା, ନେଟ୍‍ୱାର୍କଗୁଡ଼ିକୁ ଯୋଗ କରିବା କିମ୍ବା କାଢ଼ି ଦେବା କିମ୍ବା କେବଳ ଏକ ସ୍ଥାନୀୟ ହଟ୍‌ସ୍ପଟ୍ ଆରମ୍ଭ କରିବାକୁ ଅନୁମତି ଦେଇଥାଏ।"</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"ଅଧିକ"</string>
     <string name="location_settings_title" msgid="901334356682423679">"ଲୋକେସନ୍‌"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"ସାମ୍ପ୍ରତିକ ଲୋକେସନ୍‌ ଅନୁରୋଧ"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"କୌଣସି ନିକଟର ଲୋକେସନ୍‍ ଅନୁରୋଧ ହୋଇନାହିଁ"</string>
@@ -338,8 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"ଏପରିକି ବ୍ଲୁଟୁଥ୍‍‌ ବନ୍ଦ ଥିଲେ ମଧ୍ୟ, ଆପ୍ ଓ ସେବାଗୁଡ଼ିକୁ ଯେକୌଣସି ସମୟରେ ଆଖପାଖରେ ଥିବା ଡିଭାଇସ୍‌ ଖୋଜିବାକୁ ଦିଏ। ଏହାକୁ ଲୋକେସନ୍‌ ଆଧାରିତ ଫିଚର୍ ଓ ସେବା ଇତ୍ୟାଦିକୁ ଉନ୍ନତ କରିବା ପାଇଁ ବ୍ୟବହାର କରାଯାଇପାରେ।"</string>
     <string name="system_setting_title" msgid="6864599341809463440">"ସିଷ୍ଟମ୍‌"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"ସିଷ୍ଟମ୍‌ ଅପ୍‌ଡେଟ୍"</string>
-    <!-- no translation found for status_unavailable (3737918179898732010) -->
-    <skip />
     <string name="firmware_version" msgid="8491753744549309333">"Android ଭର୍ସନ୍‌"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android ସୁରକ୍ଷା ପାଚ୍‌ ସ୍ତର"</string>
     <string name="model_info" msgid="4966408071657934452">"ମଡେଲ୍‌"</string>
@@ -347,8 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"କର୍ନେଲ୍‌ ଭର୍ସନ୍‌"</string>
     <string name="build_number" msgid="3997326631001009102">"ନମ୍ୱ‍ର୍‌ ଗଠନ କରନ୍ତୁ"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"ବ୍ଲୁଟୁଥ୍ ଠିକଣା"</string>
-    <!-- no translation found for about_wifi_mac_address (3934228440550548053) -->
-    <skip />
     <string name="device_info_not_available" msgid="2095601973977376655">"ଉପଲବ୍ଧ ନାହିଁ"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"ସ୍ଥିତି"</string>
     <string name="device_status" msgid="267298179806290920">"ସ୍ଥିତି"</string>
@@ -610,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"ସଂଖ୍ୟାର କ୍ରମବୃଦ୍ଧି, କ୍ରମହ୍ରାସ, କିମ୍ବା କ୍ରମ ଦୋହରାଇବାର ଅନୁମତି ନାହିଁ।"</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"ସ୍କ୍ରୀନ୍‌ ଲକ୍‌ ବିକଳ୍ପମାନ"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> ଦିନ ପୂର୍ବେ"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"ବିଶ୍ୱସ୍ତ ଡିଭାଇସ୍‍‍‍ ଯୋଗ କରନ୍ତୁ"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"ବିଶ୍ୱସ୍ତ ଡିଭାଇସ୍‌କୁ ଯୋଗ କରିବାକୁ ବ୍ଲୁଟୁଥ୍ ଚାଲୁ ହେବ"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"ବିଶ୍ୱସ୍ତ ଡିଭାଇସ୍"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g>ଟି ଡିଭାଇସ୍</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g>ଟିି ଡିିିଭାଇସ୍</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"ଏହା ସଂଯୋଗ ହେଲେ ଆପଣଙ୍କର <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> ଏହି କାର୍‍ ଅନ୍‍ଲକ‍ କରିବ। ଯଦି କେହିଜଣେ ଆପଣଙ୍କର <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> ନିଏ, ସେମାନେ ହୁଏତ ଏହି ଡିଭାଇସ୍‍ ଆକ୍ସେସ୍‍ କରିବାକୁ ସକ୍ଷମ ହୋଇପାରନ୍ତି"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"ନିଶ୍ଚିତ କରନ୍ତୁ"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"ବିଶ୍ୱସ୍ତ ଡିଭାଇସ୍ କାଢ଼ିଦିଅନ୍ତୁ"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"ହୋଇଗଲା"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"ଏକ ବିଶ୍ୱସ୍ତ ଡିଭାଇସ୍ ସେଟ୍ ଅପ୍ କରିବା ପାଇଁ ସହଯୋଗୀ ଆପ୍ ବ୍ୟବହାର କରନ୍ତୁ। ଥରେ ସେଟ୍ ଅପ୍ ହେଲେ, ଆପଣଙ୍କର ଫୋନ୍ ଗାଡି ପାଖରେ ଚିହ୍ନଟ ହେଉଥିବା ସମୟରେ ଆପଣଙ୍କର ଉପଯୋଗକର୍ତ୍ତା ପ୍ରୋଫାଇଲ୍ ସ୍ୱଚାଳିତ ଭାବେ ଅନ୍‌ଲକ୍ ହେବ।"</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. ଆପଣଙ୍କର ଫୋନ୍‍‍ରେ ସହଯୋଗୀ ଆପ୍ ଡାଉନ୍‍ଲୋଡ୍ କରନ୍ତୁ"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. ଡିଭାଇସ୍ ପେୟାର୍ କରିବାକୁ ଆପଣଙ୍କ ଫୋନ୍‍‍ରୁ <xliff:g id="CAR_NAME">%1$s</xliff:g> ବାଛନ୍ତୁ"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"ଅନ୍ୟ କେହି ଡିଭାଇସ୍‌କୁ ଧରି ଥିଲେ ମଧ୍ୟ, ଇଞ୍ଜିନ୍ ଚାଲୁ ହେଲେ ଆପଣଙ୍କର କାର୍ ନିକଟର ଏକ ବିଶ୍ୱସ୍ତ ଡିଭାଇସ୍ ଉପଭୋକ୍ତା ପ୍ରୋଫାଇଲ୍‍କୁ ଅନ୍‌ଲକ୍ କରିବ।"</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"ଦୟାକରି ସୁନିଶ୍ଚିତ କରନ୍ତୁ ଯେ ପେୟାରିଂ କୋଡ୍‍ଗୁଡ଼ିକ ମେଳ ଖାଉଛି"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"ଫୋନ୍ ସଫଳତାର ସହ ପଞ୍ଜୀକୃତ ହୋଇଛି"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ନାମାଙ୍କନ ହୋଇପାରିଲା ନାହିଁ"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"ଏହାପରେ ଏକ ବିଶ୍ୱସନୀୟ ଡିଭାଇସ୍‌ ଯୋଗ କରିବାରେ ଆପଣଙ୍କୁ ପ୍ରମାଣିକରଣର ଉପାୟ ସେଟ୍‍ କରିବାକୁ ହେବ। ଯଦି ଆପଣଙ୍କ ପାଖରେ ବିଶ୍ୱସନୀୟ ଡିଭାଇସ୍‌ ନାହିଁ, ତେବେ ଆପଣଙ୍କ ପ୍ରୋଫାଇଲ୍‌ ଆକ୍ସେସ୍‌ କରିବାକୁ ପ୍ରମାଣିକରଣ ଆବଶ୍ୟକ ହେବ।"</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"ଡିଭାଇସ୍ ବିଚ୍ଛିନ୍ନ ହୋଇଛି।"</string>
     <string name="forget" msgid="3971143908183848527">"ଭୁଲିଗଲେ"</string>
     <string name="connect" msgid="5861699594602380150">"ସଂଯୋଗ କରନ୍ତୁ"</string>
     <string name="disconnect" msgid="6140789953324820336">"ବିଛିନ୍ନ କରନ୍ତୁ"</string>
diff --git a/res/values-pa/arrays.xml b/res/values-pa/arrays.xml
new file mode 100644
index 0000000..2cd3675
--- /dev/null
+++ b/res/values-pa/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"ਪੁੱਛੋ"</item>
+    <item msgid="933409503308401889">"ਕਦੇ ਵੀ ਕਰਨ ਨਾ ਦਿਓ"</item>
+    <item msgid="1154273129608299386">"ਹਮੇਸ਼ਾਂ ਕਰਨ ਦਿਓ"</item>
+  </string-array>
+</resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 4755cec..e296e36 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"ਰਾਤ ਵਾਲਾ ਮੋਡ"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"ਨੈੱਟਵਰਕ ਅਤੇ ਇੰਟਰਨੈੱਟ"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> ਸਿਮ</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ਸਿਮ</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"ਕਿਰਿਆਸ਼ੀਲ / ਸਿਮ"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"ਅਕਿਰਿਆਸ਼ੀਲ / ਸਿਮ"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"ਕਿਰਿਆਸ਼ੀਲ / ਡਾਊਨਲੋਡ ਕੀਤਾ ਸਿਮ"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"ਅਕਿਰਿਆਸ਼ੀਲ / ਡਾਊਨਲੋਡ ਕੀਤਾ ਸਿਮ"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"ਹੋਰ ਸ਼ਾਮਲ ਕਰੋ"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"ਮੋਬਾਈਲ ਡਾਟਾ"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਵਰਤ ਕੇ ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਪ੍ਰਾਪਤ ਕਰੋ"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"ਕੀ ਮੋਬਾਈਲ ਡਾਟਾ ਬੰਦ ਕਰਨਾ ਹੈ?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"ਚੋਣ ਲੋੜੀਂਦੀ ਹੈ"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"ਕੀ ਮੋਬਾਈਲ ਡਾਟੇ ਲਈ <xliff:g id="CARRIER">%1$s</xliff:g> ਵਰਤਣਾ ਹੈ?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"ਤੁਸੀਂ ਮੋਬਾਈਲ ਡਾਟੇ ਲਈ <xliff:g id="CARRIER2_0">%2$s</xliff:g> ਵਰਤ ਰਹੇ ਹੋ। ਜੇ ਤੁਸੀਂ <xliff:g id="CARRIER1">%1$s</xliff:g> \'ਤੇ ਜਾਂਦੇ ਹੋ, ਤਾਂ ਹੁਣ <xliff:g id="CARRIER2_1">%2$s</xliff:g> ਮੋਬਾਈਲ ਡਾਟਾ ਲਈ ਨਹੀਂ ਵਰਤਿਆ ਜਾਵੇਗਾ।"</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g> ਵਰਤੋ"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"ਰੋਮਿੰਗ"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"ਰੋਮਿੰਗ ਵੇਲੇ ਡਾਟਾ ਸੇਵਾਵਾਂ ਨਾਲ ਕਨੈਕਟ ਕਰੋ"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"ਕੀ ਡਾਟਾ ਰੋਮਿੰਗ ਵਿਕਲਪ ਵਰਤਣ ਦੇਣਾ ਹੈ?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"ਤੁਹਾਨੂੰ ਵਾਧੂ ਖਰਚਾ ਦੇਣਾ ਪੈ ਸਕਦਾ ਹੈ।"</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"ਡਾਟਾ ਵਰਤੋਂ"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"ਮੁੱਖ ਡਾਟਾ"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> ਡਾਟਾ ਵਰਤਿਆ ਗਿਆ"</string>
@@ -320,12 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"ਪ੍ਰੀਮੀਅਮ SMS ਦਾ ਤੁਹਾਡੇ ਤੋਂ ਖਰਚਾ ਲਿਆ ਜਾ ਸਕਦਾ ਹੈ ਅਤੇ ਇਸ ਨਾਲ ਤੁਹਾਡੇ ਕੈਰੀਅਰ ਬਿੱਲਾਂ ਵਿੱਚ ਵਾਧਾ ਹੋ ਜਾਵੇਗਾ। ਜੇ ਤੁਸੀਂ ਕਿਸੇ ਐਪ ਨੂੰ ਇਜਾਜ਼ਤ ਦਿੰਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਉਸ ਐਪ ਦੀ ਵਰਤੋਂ ਨਾਲ ਪ੍ਰੀਮੀਅਮ SMS ਭੇਜਣ ਦੇ ਯੋਗ ਹੋ ਜਾਵੋਗੇ।"</string>
     <string name="usage_access_title" msgid="7153427122072303254">"ਵਰਤੋਂ ਪਹੁੰਚ"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"ਵਰਤੋਂ ਪਹੁੰਚ ਕਿਸੇ ਐਪ ਨੂੰ ਇਹ ਨਜ਼ਰ ਰੱਖਣ ਦਿੰਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਕਿਹੜੀਆਂ ਐਪਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹੋ ਅਤੇ ਕਿੰਨੀ ਵਾਰੀ, ਜਿਵੇਂ ਕਿ ਤੁਹਾਡਾ ਕੈਰੀਅਰ, ਭਾਸ਼ਾ ਸੈਟਿੰਗਾਂ, ਅਤੇ ਹੋਰ ਵੇਰਵੇ।"</string>
-    <!-- no translation found for directory_access_title (7117264853202268740) -->
-    <skip />
-    <!-- no translation found for directory_on_volume (4947971311247097078) -->
-    <skip />
     <string name="wifi_control_title" msgid="5660436566907731929">"ਵਾਈ‑ਫਾਈ ਕੰਟਰੋਲ"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"ਵਾਈ-ਫਾਈ ਕੰਟਰੋਲ ਰਾਹੀਂ ਕੋਈ ਐਪ ਵਾਈ-ਫਾਈ ਚਾਲੂ ਜਾਂ ਬੰਦ ਕਰ ਸਕਦੀ ਹੈ, ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕਾਂ ਨੂੰ ਸਕੈਨ ਅਤੇ ਉਹਨਾਂ ਨਾਲ ਕਨੈਕਟ ਕਰ ਸਕਦੀ ਹੈ, ਨੈੱਟਵਰਕਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰ ਜਾਂ ਹਟਾ ਸਕਦੀ ਹੈ, ਜਾਂ ਸਿਰਫ਼-ਸਥਾਨਕ ਹੌਟਸਪੌਟ ਸ਼ੁਰੂ ਕਰ ਸਕਦੀ ਹੈ।"</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"ਹੋਰ"</string>
     <string name="location_settings_title" msgid="901334356682423679">"ਟਿਕਾਣਾ"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"ਹਾਲੀਆ ਟਿਕਾਣਾ ਬੇਨਤੀਆਂ"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"ਕੋਈ ਹਾਲੀਆ ਟਿਕਾਣਾ ਬੇਨਤੀਆਂ ਨਹੀਂ"</string>
@@ -338,8 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"ਬਲੂਟੁੱਥ ਬੰਦ ਹੋਣ \'ਤੇ ਵੀ ਐਪਾਂ ਅਤੇ ਸੇਵਾਵਾਂ ਨੂੰ ਕਿਸੇ ਵੀ ਵੇਲੇ ਨਜ਼ਦੀਕੀ ਡੀਵਾਈਸਾਂ ਲਈ ਸਕੈਨ ਕਰਨ ਦਿਓ। ਇਸਦੀ ਵਰਤੋਂ ਕਰਕੇ ਟਿਕਾਣਾ-ਆਧਾਰਿਤ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਅਤੇ ਸੇਵਾਵਾਂ ਵਰਗੀਆਂ ਚੀਜ਼ਾਂ ਨੂੰ ਬਿਹਤਰ ਬਣਾਇਆ ਜਾ ਸਕਦਾ ਹੈ।"</string>
     <string name="system_setting_title" msgid="6864599341809463440">"ਸਿਸਟਮ"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"ਸਿਸਟਮ ਅੱਪਡੇਟ"</string>
-    <!-- no translation found for status_unavailable (3737918179898732010) -->
-    <skip />
     <string name="firmware_version" msgid="8491753744549309333">"Android ਵਰਜਨ"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android ਸੁਰੱਖਿਆ ਪੈਚ ਪੱਧਰ"</string>
     <string name="model_info" msgid="4966408071657934452">"ਮਾਡਲ"</string>
@@ -347,8 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"ਕਰਨਲ ਵਰਜਨ"</string>
     <string name="build_number" msgid="3997326631001009102">"ਬਿਲਡ ਨੰਬਰ"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"ਬਲੂਟੁੱਥ ਪਤਾ"</string>
-    <!-- no translation found for about_wifi_mac_address (3934228440550548053) -->
-    <skip />
     <string name="device_info_not_available" msgid="2095601973977376655">"ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"ਸਥਿਤੀ"</string>
     <string name="device_status" msgid="267298179806290920">"ਸਥਿਤੀ"</string>
@@ -610,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"ਅੰਕਾਂ ਦਾ ਵਧਦਾ ਕ੍ਰਮ, ਘਟਦਾ ਕ੍ਰਮ, ਜਾਂ ਦੁਹਰਾਈ ਗਈ ਲੜੀ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।"</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"ਸਕ੍ਰੀਨ ਲਾਕ ਦੇ ਵਿਕਲਪ"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> ਦਿਨ ਪਹਿਲਾਂ"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"ਭਰੋਸੇਯੋਗ ਡੀਵਾਈਸ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"ਭਰੋਸੇਯੋਗ ਡੀਵਾਈਸ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਬਲੂਟੁੱਥ ਚਾਲੂ ਹੋਵੇਗਾ"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"ਭਰੋਸੇਯੋਗ ਡੀਵਾਈਸਾਂ"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> ਡੀਵਾਈਸ</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> ਡੀਵਾਈਸਾਂ</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"ਤੁਹਾਡਾ <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> ਇਸ ਕਾਰ ਨੂੰ ਅਣਲਾਕ ਕਰ ਦੇਵੇਗਾ, ਜਦੋਂ ਇਹ ਕਨੈਕਟ ਕੀਤਾ ਹੋਇਆ ਹੋਵੇਗਾ। ਜੇਕਰ ਕੋਈ ਤੁਹਾਡਾ <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> ਲੈ ਲੈਂਦਾ ਹੈ, ਤਾਂ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਉਹ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਪਹੁੰਚ ਕਰਨ ਦੇ ਯੋਗ ਹੋ ਜਾਵੇ।"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"ਪੁਸ਼ਟੀ ਕਰੋ"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"ਭਰੋਸੇਯੋਗ ਡੀਵਾਈਸ ਹਟਾਓ"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"ਹੋ ਗਿਆ"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"ਕਿਸੇ ਭਰੋਸੇਯੋਗ ਡੀਵਾਈਸ ਨੂੰ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਸੰਬੰਧੀ ਐਪ ਵਰਤੋ। ਤੁਹਾਡਾ ਫ਼ੋਨ ਵਾਹਨ ਦੇ ਨੇੜੇ ਹੋਣ \'ਤੇ ਇੱਕ ਵਾਰ ਸੈੱਟਅੱਪ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਤੁਹਾਡੀ ਵਰਤੋਂਕਾਰ ਪ੍ਰੋਫਾਈਲ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਅਣਲਾਕ ਹੋ ਜਾਵੇਗੀ।"</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. ਆਪਣੇ ਫ਼ੋਨ \'ਤੇ ਸੰਬੰਧੀ ਐਪ ਡਾਊਨਲੋਡ ਕਰੋ"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. ਡੀਵਾਈਸਾਂ ਨੂੰ ਜੋੜਾਬੱਧ ਕਰਨ ਲਈ ਆਪਣੇ ਫ਼ੋਨ \'ਤੇ <xliff:g id="CAR_NAME">%1$s</xliff:g> ਚੁਣੋ"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"ਕਿਸੇ ਭਰੋਸੇਯੋਗ ਡੀਵਾਈਸ ਦਾ ਤੁਹਾਡੀ ਕਾਰ ਦੇ ਨਜ਼ਦੀਕ ਹੋਣਾ ਵਰਤੋਂਕਾਰ ਪ੍ਰੋਫਾਈਲ ਨੂੰ ਬਲਨ ਵੇਲੇ ਅਣਲਾਕ ਰੱਖੇਗਾ, ਭਾਵੇਂ ਡੀਵਾਈਸ ਨੂੰ ਕਿਸੇ ਹੋਰ ਨੇ ਫੜਿਆ ਹੋਵੇ।"</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"ਕਿਰਪਾ ਕਰਕੇ ਜੋੜਾਬੱਧਕਰਨ ਕੋਡਾਂ ਦੇ ਮੇਲ ਖਾਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"ਫ਼ੋਨ ਨੂੰ ਸਫਲਤਾਪੂਰਵਕ ਦਰਜ ਕੀਤਾ ਗਿਆ"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ਨੂੰ ਦਰਜ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"ਭਰੋਸੇਯੋਗ ਡੀਵਾਈਸ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਅੱਗੇ ਤੁਹਾਨੂੰ ਪ੍ਰਮਾਣੀਕਰਨ ਵਿਧੀ ਸੈੱਟ ਕਰਨ ਦੀ ਲੋੜ ਹੋਵੇਗੀ। ਜੇ ਤੁਹਾਡੇ ਕੋਲ ਤੁਹਾਡਾ ਭਰੋਸੇਯੋਗ ਡੀਵਾਈਸ ਨਹੀਂ ਹੈ, ਤਾਂ ਤੁਹਾਨੂੰ ਆਪਣੇ ਪ੍ਰੋਫ਼ਾਈਲ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ ਪ੍ਰਮਾਣੀਕਰਨ ਦੀ ਲੋੜ ਹੋਵੇਗੀ।"</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"ਡੀਵਾਈਸ ਡਿਸਕਨੈਕਟ ਕੀਤਾ ਗਿਆ।"</string>
     <string name="forget" msgid="3971143908183848527">"ਛੱਡੋ"</string>
     <string name="connect" msgid="5861699594602380150">"ਕਨੈਕਟ ਕਰੋ"</string>
     <string name="disconnect" msgid="6140789953324820336">"ਡਿਸਕਨੈਕਟ ਕਰੋ"</string>
diff --git a/res/values-pl/arrays.xml b/res/values-pl/arrays.xml
new file mode 100644
index 0000000..a1b7498
--- /dev/null
+++ b/res/values-pl/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Zapytaj"</item>
+    <item msgid="933409503308401889">"Nigdy nie zezwalaj"</item>
+    <item msgid="1154273129608299386">"Zawsze zezwalaj"</item>
+  </string-array>
+</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 1eefca4..276a89f 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -31,9 +31,28 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Tryb nocny"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Sieć i internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Sieć komórkowa"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="few"><xliff:g id="COUNT_1">%1$d</xliff:g> karty SIM</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> kart SIM</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> karty SIM</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> karta SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Aktywna / SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Nieaktywna / SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Aktywna / Pobrana karta SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Nieaktywna / Pobrana karta SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Dodaj więcej"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Dane mobilne"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Korzystaj z danych przy użyciu sieci komórkowej"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Wyłączyć mobilną transmisję danych?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Musisz wybrać kartę"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Użyć: <xliff:g id="CARRIER">%1$s</xliff:g> do transmisji danych?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Używasz sieci <xliff:g id="CARRIER2_0">%2$s</xliff:g> do mobilnej transmisji danych. Jeśli przełączysz się na sieć <xliff:g id="CARRIER1">%1$s</xliff:g>, sieć <xliff:g id="CARRIER2_1">%2$s</xliff:g> nie będzie już używana w tym celu."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Użyj karty operatora <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roaming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Połącz z usługami transmisji danych podczas roamingu"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Zezwalać na roaming danych?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Mogą się z tym wiązać wysokie opłaty."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Użycie danych"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Dane podstawowe"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Wykorzystano <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -324,10 +343,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Za SMS-y specjalne może być pobierana dodatkowa, wyższa opłata, która pojawi się na Twoim rachunku telefonicznym. Po włączeniu tego uprawnienia możliwe będzie wysyłanie SMS-ów specjalnych z wybranej aplikacji."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Dostęp do danych o użyciu"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Dostęp do danych o użyciu umożliwia aplikacji śledzenie tego, jakich innych aplikacji używasz i jak często, oraz odczytywanie m.in. informacji o operatorze i ustawień językowych."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Dostęp do katalogu"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Sterowanie Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Sterowanie Wi-Fi pozwala aplikacji na włączanie i wyłączanie Wi-Fi, wyszukiwanie sieci Wi-Fi i łączenie się z nimi, dodawanie oraz usuwanie sieci i uruchamianie lokalnego hotspota."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Więcej"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Lokalizacja"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Ostatnie prośby o lokalizację"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Brak ostatnich próśb o lokalizację"</string>
@@ -340,7 +358,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Zezwól na wyszukiwanie urządzeń w pobliżu przez aplikacje i usługi w dowolnym momencie, nawet gdy Bluetooth jest wyłączony. Może to np. pomóc usprawnić działanie funkcji i usług opartych na lokalizacji."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"System"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Aktualizacje systemu"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Brak dostępu"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Wersja Androida"</string>
     <string name="security_patch" msgid="4794276590178386903">"Stan aktualizacji zabezpieczeń Androida"</string>
     <string name="model_info" msgid="4966408071657934452">"Model"</string>
@@ -348,7 +365,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Wersja jądra"</string>
     <string name="build_number" msgid="3997326631001009102">"Numer kompilacji"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Adres Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Adres MAC karty Wi-Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Niedostępna"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Stan"</string>
     <string name="device_status" msgid="267298179806290920">"Stan"</string>
@@ -626,6 +642,28 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Ciąg cyfr rosnących, malejących lub powtarzających się jest niedozwolony."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Opcje blokady ekranu"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g>: <xliff:g id="NUM_DAYS">%3$s</xliff:g> dni temu"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Dodaj zaufane urządzenie"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Aby dodać zaufane urządzenie, włączy się Bluetooth"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Zaufane urządzenia"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> urządzenia</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> urządzeń</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> urządzenia</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> urządzenie</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> odblokuje ten samochód, gdy się z nim połączy. Jeśli <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> znajdzie się w niepowołanych rękach, taka osoba będzie mogła uzyskać dostęp do tego urządzenia."</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Potwierdź"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Usuń zaufane urządzenie"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"OK"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Skonfiguruj zaufane urządzenie w aplikacji towarzyszącej. Dzięki temu Twój profil użytkownika odblokuje się automatycznie, gdy tylko samochód wykryje Twój telefon w pobliżu."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Pobierz aplikację towarzyszącą na telefon"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Na telefonie wybierz <xliff:g id="CAR_NAME">%1$s</xliff:g>, by sparować urządzenia"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Zaufane urządzenie w pobliżu samochodu odblokuje profil użytkownika w momencie włączenia zapłonu, nawet jeśli urządzenie trzyma ktoś inny."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Potwierdź, że kody parowania są takie same"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Telefon został zarejestrowany"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Nie udało się zarejestrować urządzenia <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Po dodaniu zaufanego urządzenia musisz wybrać metodę uwierzytelniania. Dzięki niej uzyskasz dostęp do swojego profilu, gdy akurat nie będziesz mieć zaufanego urządzenia przy sobie."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Urządzenie zostało rozłączone."</string>
     <string name="forget" msgid="3971143908183848527">"Zapomnij"</string>
     <string name="connect" msgid="5861699594602380150">"Połącz"</string>
     <string name="disconnect" msgid="6140789953324820336">"Odłącz"</string>
diff --git a/res/values-pt-rPT/arrays.xml b/res/values-pt-rPT/arrays.xml
new file mode 100644
index 0000000..ffa51f0
--- /dev/null
+++ b/res/values-pt-rPT/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Perguntar"</item>
+    <item msgid="933409503308401889">"Nunca permitir"</item>
+    <item msgid="1154273129608299386">"Permitir sempre"</item>
+  </string-array>
+</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index e926451..db97256 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Modo noturno"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Rede e Internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Rede móvel"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIMs</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Ativo/SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Inativo/SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Ativo/SIM transferido"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Inativo/SIM transferido"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Adicione mais"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Dados móveis"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Aceder aos dados através de rede móvel"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Pretende desativar os dados móveis?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"A seleção é necessária."</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Utilizar <xliff:g id="CARRIER">%1$s</xliff:g> para dados móveis?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Está a utilizar o operador <xliff:g id="CARRIER2_0">%2$s</xliff:g> para dados móveis. Se mudar para o operador <xliff:g id="CARRIER1">%1$s</xliff:g>, o operador <xliff:g id="CARRIER2_1">%2$s</xliff:g> deixa de ser utilizado para dados móveis."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Utilizar <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roaming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Ligar a serviços de dados em roaming"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Pretende permitir roaming de dados?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Pode incorrer em custos significativos."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Utilização de dados"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Dados principais"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> utilizado(s)"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"O serviço de SMS premium pode custar dinheiro e, nesse caso, será adicionado às faturas do seu operador. Se ativar a autorização para uma aplicação, poderá enviar SMS premium através da mesma."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Acesso de utilização"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"O acesso de utilização permite a uma aplicação monitorizar que outras aplicações está a utilizar e com que frequência, bem como o operador e as definições de idioma, entre outros detalhes."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Acesso ao diretório"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Controlo de Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"O controlo de Wi-Fi permite a uma aplicação ativar ou desativar o Wi-Fi, procurar e estabelecer ligação a redes Wi-Fi, adicionar ou remover redes, assim como iniciar uma zona Wi-Fi apenas local."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Mais"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Localização"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Pedidos de localização recentes"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Sem pedidos de localização recentes."</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Permita que as aplicações e os serviços procurem dispositivos próximos em qualquer altura, mesmo quando o Bluetooth estiver desativado. Isto pode ser utilizado para, p. ex., melhorar as funcionalidades e os serviços baseados na localização."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Sistema"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Atualizações do sistema"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Indisponível"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Versão do Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"Nível do patch de segurança do Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Modelo"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Versão do kernel"</string>
     <string name="build_number" msgid="3997326631001009102">"Número de compilação"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Endereço Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Endereço MAC de Wi-Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Não disponível"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Estado"</string>
     <string name="device_status" msgid="267298179806290920">"Estado"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Não é permitida uma sequência de dígitos ascendente, descendente ou repetida."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Opções de bloqueio de ecrã"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g>: há <xliff:g id="NUM_DAYS">%3$s</xliff:g> dias"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Adicionar disposit. fidedigno"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"O Bluetooth será ativado p/ adicionar disp. fided."</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Disposit. fidedignos"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> dispositivos</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> dispositivo</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"O dispositivo <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> irá desbloquear este automóvel quando for ligado. Se alguém pegar no dispositivo <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, essa pessoa pode aceder ao mesmo."</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Confirmar"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Remover dispositivo fidedigno"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Concluído"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Utilize a aplicação associada para configurar um dispositivo fidedigno. Após a configuração, o seu perfil de utilizador será desbloqueado automaticamente quando o telemóvel for detetado perto do veículo."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Transfira a aplicação associada no telemóvel."</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Selecione o automóvel <xliff:g id="CAR_NAME">%1$s</xliff:g> no telemóvel para sincronizar os dispositivos."</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Um dispositivo fidedigno próximo do seu automóvel irá desbloquear o perfil do utilizador no arranque, mesmo se outra pessoa estiver a utilizar o dispositivo."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Confirme se os códigos de sincronização coincidem"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"O telemóvel foi inscrito com êxito."</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Falha ao inscrever o dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Ao adicionar um dispositivo fidedigno, tem de definir um método de autenticação a seguir. Se não tiver o dispositivo fidedigno consigo, será necessária a autenticação para aceder ao seu perfil."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Dispositivo desligado."</string>
     <string name="forget" msgid="3971143908183848527">"Esquecer"</string>
     <string name="connect" msgid="5861699594602380150">"Ligar"</string>
     <string name="disconnect" msgid="6140789953324820336">"Desligar"</string>
diff --git a/res/values-pt/arrays.xml b/res/values-pt/arrays.xml
new file mode 100644
index 0000000..a0a1dd4
--- /dev/null
+++ b/res/values-pt/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Perguntar"</item>
+    <item msgid="933409503308401889">"Nunca permitir"</item>
+    <item msgid="1154273129608299386">"Sempre permitir"</item>
+  </string-array>
+</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 1de4f4c..5439f17 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Modo noturno"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Rede e Internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Rede móvel"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> chip</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> chips</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Ativo/chip"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Inativo/chip"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Ativo/chip transferido por download"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Inativo/chip transferido por download"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Adicionar mais"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Dados móveis"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Acessar os dados pela rede móvel"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Desativar os dados móveis?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"É necessário selecionar uma opção"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Usar <xliff:g id="CARRIER">%1$s</xliff:g> para dados móveis?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Você está usando a <xliff:g id="CARRIER2_0">%2$s</xliff:g> para dados móveis. Se mudar para a <xliff:g id="CARRIER1">%1$s</xliff:g>, a <xliff:g id="CARRIER2_1">%2$s</xliff:g> não será mais usada para dados móveis."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Usar <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roaming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Conectar aos serviços de dados quando estiver em roaming"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Permitir roaming de dados?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Pode haver cobranças significativas."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Uso de dados"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Dados primários"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Usados: <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"O SMS premium pode gerar custos e será adicionado à sua conta da operadora. Se você conceder permissão para um app, será possível enviar SMS premium usando esse app."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Acesso ao uso"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"O acesso ao uso permite que um app monitore quais outros apps você está usando e com que frequência, bem como sua operadora, suas configurações de idioma e outros detalhes."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Acesso ao diretório"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Controle de Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"O controle de Wi-Fi permite que um app ative ou desative o Wi-Fi, verifique redes Wi-Fi e se conecte a elas, adicione ou remova redes, ou inicie um ponto de acesso somente local."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Mais"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Local"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Solicitações recentes"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Nenhuma solicitação recente de local"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Permitir que apps e serviços procurem dispositivos próximos a qualquer momento, mesmo quando o Bluetooth estiver desativado. Essa configuração pode ser usada, por exemplo, para melhorar recursos e serviços baseados na localização."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Sistema"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Atualizações do sistema"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Indisponível"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Versão do Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"Nível do patch de segurança do Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Modelo"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Versão do kernel"</string>
     <string name="build_number" msgid="3997326631001009102">"Número da versão"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Endereço Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Endereço MAC da rede Wi-Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Não disponível"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Status"</string>
     <string name="device_status" msgid="267298179806290920">"Status"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Não é permitido usar uma sequência de dígitos em ordem crescente, decrescente ou repetidos."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Opções de bloqueio de tela"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> dias atrás"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Adicionar disp. confiável"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth será ativ. p/ adicionar disp. confiáveis"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Disp. confiáveis"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> dispositivo</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> dispositivos</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Seu <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> desbloqueará este carro quando estiver conectado. Se alguém pegar o <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, essa pessoa pode conseguir acessar este dispositivo."</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Confirmar"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Remover dispositivo confiável"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Concluído"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Use o app complementar para configurar um dispositivo confiável. Após a configuração, seu perfil de usuário será desbloqueado automaticamente quando o smartphone for detectado pelo veículo."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Faça o download do app complementar no smartphone."</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Selecione <xliff:g id="CAR_NAME">%1$s</xliff:g> no smartphone para parear os dispositivos."</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"O perfil de usuário será desbloqueado com um dispositivo confiável próximo após a ignição, mesmo que outra pessoa esteja segurando o dispositivo."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Confirme a correspondências dos códigos de pareamento"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"A inscrição do smartphone foi concluída"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Falha na inscrição do <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Depois de adicionar um dispositivo confiável, é necessário configurar um método de autenticação. Se o dispositivo confiável não estiver com você, a autenticação será necessária para acessar seu perfil."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Dispositivo desconectado."</string>
     <string name="forget" msgid="3971143908183848527">"Ignorar"</string>
     <string name="connect" msgid="5861699594602380150">"Conectar"</string>
     <string name="disconnect" msgid="6140789953324820336">"Desconectar"</string>
diff --git a/res/values-ro/arrays.xml b/res/values-ro/arrays.xml
new file mode 100644
index 0000000..3d69bf2
--- /dev/null
+++ b/res/values-ro/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Întrebați"</item>
+    <item msgid="933409503308401889">"Nu permiteți niciodată"</item>
+    <item msgid="1154273129608299386">"Permiteți întotdeauna"</item>
+  </string-array>
+</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index ef2ee3b..c81b484 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -31,9 +31,27 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Modul noapte"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Rețea și internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Rețea mobilă"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="few"><xliff:g id="COUNT_1">%1$d</xliff:g> carduri SIM</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> de carduri SIM</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> carduri SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Activ/SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Inactiv/SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Activ/SIM descărcat"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Inactiv/SIM descărcat"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Adăugați mai multe"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Date mobile"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Accesați datele folosind rețeaua mobilă"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Dezactivați datele mobile?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Selectați o opțiune"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Folosiți <xliff:g id="CARRIER">%1$s</xliff:g> pentru date mobile?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Folosiți <xliff:g id="CARRIER2_0">%2$s</xliff:g> pentru datele mobile. Când comutați la <xliff:g id="CARRIER1">%1$s</xliff:g>, <xliff:g id="CARRIER2_1">%2$s</xliff:g> nu va mai fi folosit pentru date mobile."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Folosiți <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roaming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Conectați-vă la serviciile de date în roaming"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Permiteți roamingul de date?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Se pot acumula costuri mari."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Utilizarea datelor"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Date principale"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> folosiți"</string>
@@ -322,10 +340,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"SMS-urile premium pot genera costuri care se vor adăuga la factura operatorului. Dacă activați permisiunea pentru o aplicație, veți putea trimite SMS-uri premium folosind acea aplicație."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Acces la datele de utilizare"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Cu accesul la datele de utilizare, o aplicație poate să înregistreze ce alte aplicații folosiți și cât de des le folosiți, precum și operatorul, setările de limbă și alte detalii."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Acces la director"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Control Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Cu controlul rețelei Wi-Fi, o aplicație poate să activeze sau să dezactiveze conexiunea Wi-Fi, să scaneze și să se conecteze la rețelele Wi-Fi, să adauge sau să elimine rețele sau să pornească un hotspot local."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Mai multe"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Locație"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Solicitări recente privind locația"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Nu există solicitări recente privind locația"</string>
@@ -338,7 +355,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Permiteți aplicațiilor și serviciilor să caute permanent dispozitive din apropiere, chiar dacă setarea Bluetooth este dezactivată. Această opțiune poate fi folosită, de exemplu, pentru a îmbunătăți funcțiile și serviciile bazate pe locație."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Sistem"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Actualizări de sistem"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Indisponibil"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Versiunea Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"Nivelul corecției de securitate Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Model"</string>
@@ -346,7 +362,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Versiune nucleu"</string>
     <string name="build_number" msgid="3997326631001009102">"Numărul versiunii"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Adresă Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Adresă MAC Wi-Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Indisponibil"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Stare"</string>
     <string name="device_status" msgid="267298179806290920">"Stare"</string>
@@ -616,6 +631,27 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Șirurile de cifre ascendente, descendente sau repetate nu sunt permise."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Opțiuni de blocare a ecranului"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g>: acum <xliff:g id="NUM_DAYS">%3$s</xliff:g> zile"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Adăugați un dispozitiv de încredere"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth se va activa și va adăuga dispozitivul"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Dispozitive de încredere"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> dispozitive</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> de dispozitive</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> dispozitiv</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> va debloca această mașină când este conectat. Dacă cineva vă ia <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, este posibil să poată accesa acest dispozitiv"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Confirmați"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Eliminați dispozitivul de încredere"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Gata"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Folosiți aplicația parteneră pentru a configura un dispozitiv de încredere. După configurare, profilul dvs. de utilizator va debloca automat mașina atunci când aceasta vă detectează telefonul în apropiere."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Descărcați aplicația parteneră pe telefon"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Selectați <xliff:g id="CAR_NAME">%1$s</xliff:g> de pe telefon pentru a asocia dispozitivele"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Un dispozitiv de încredere aflat în apropierea mașinii dvs. va debloca profilul utilizatorului atunci când mașina este pornită, chiar dacă este folosit de o altă persoană."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Confirmați potrivirea codurilor de conectare"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Telefonul a fost înregistrat"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Înscrierea dispozitivului <xliff:g id="DEVICE_NAME">%1$s</xliff:g> a eșuat"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Dacă adăugați un dispozitiv de încredere, trebuie să setați apoi o metodă de autentificare. Dacă nu aveți dispozitivul de încredere cu dvs., va fi necesar să vă autentificați pentru a vă accesa profilul."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Dispozitivul a fost deconectat."</string>
     <string name="forget" msgid="3971143908183848527">"Eliminați"</string>
     <string name="connect" msgid="5861699594602380150">"Conectați"</string>
     <string name="disconnect" msgid="6140789953324820336">"Deconectați"</string>
diff --git a/res/values-ru/arrays.xml b/res/values-ru/arrays.xml
new file mode 100644
index 0000000..6c4d79f
--- /dev/null
+++ b/res/values-ru/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Спрашивать"</item>
+    <item msgid="933409503308401889">"Не разрешать"</item>
+    <item msgid="1154273129608299386">"Разрешать всегда"</item>
+  </string-array>
+</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index f35a8cb..83a7902 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -31,9 +31,28 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Ночной режим"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Сеть и Интернет"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Мобильная сеть"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-карта</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-карты</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-карт</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-карты</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Активно (SIM-карта)"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Неактивно (SIM-карта)"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Активно (cкачанная SIM-карта)"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Неактивно (скачанная SIM-карта)"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Добавить"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Мобильный Интернет"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Доступ к Интернету по мобильной сети"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Отключить мобильный Интернет?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Выберите SIM-карту"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Переключиться на оператора \"<xliff:g id="CARRIER">%1$s</xliff:g>\"?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Вы пользуетесь мобильным Интернетом в сети оператора \"<xliff:g id="CARRIER2_0">%2$s</xliff:g>\". После переключения на SIM-карту \"<xliff:g id="CARRIER1">%1$s</xliff:g>\" вы не сможете использовать мобильный Интернет оператора \"<xliff:g id="CARRIER2_1">%2$s</xliff:g>\"."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Выбрать оператора \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Роуминг"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Подключаться к службам передачи данных в роуминге"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Разрешить интернет-роуминг?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Возможны значительные расходы."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Передача данных"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Основные данные"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Расход <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -324,10 +343,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Обратите внимание, что такие SMS могут оплачиваться дополнительно. Предоставив разрешение приложению, вы сможете отправлять платные SMS с его помощью."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Доступ к истории использования"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Эта настройка разрешает отслеживать данные об использовании других приложений, сведения об операторе связи, языковые настройки и другую информацию."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Доступ к каталогам"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Управление сетями Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Эта настройка разрешает приложению сканировать, добавлять и удалять сети Wi-Fi, подключаться к ним, включать и отключать модуль Wi-Fi, а также создавать локальные точки доступа."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Ещё"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Передача геоданных"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Последние запросы местоположения"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Нет недавних запросов местоположения."</string>
@@ -340,7 +358,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Разрешите приложениям и сервисам искать сигналы устройств, расположенных поблизости, даже если Bluetooth отключен. Таким образом можно улучшить работу функций и сервисов, использующих данные о местоположении."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Система"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Обновления системы"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Недоступно"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Версия Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"Обновление системы безопасности"</string>
     <string name="model_info" msgid="4966408071657934452">"Модель"</string>
@@ -348,7 +365,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Версия ядра"</string>
     <string name="build_number" msgid="3997326631001009102">"Номер сборки"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Адрес Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"MAC-адрес Wi-Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Недоступно"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Статус"</string>
     <string name="device_status" msgid="267298179806290920">"Статус"</string>
@@ -626,6 +642,28 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Нельзя использовать последовательности из идущих подряд или повторяющихся цифр."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Варианты блокировки экрана"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> (<xliff:g id="NUM_DAYS">%3$s</xliff:g> дн. назад)"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Добавить надежное устройство"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Будет включена функция Bluetooth"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Надежные устройства"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> устройство</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> устройства</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> устройств</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> устройства</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Устройство <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> будет разблокировать автомобиль при подключении. Если кто-то возьмет <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, то сможет получить доступ к этому устройству."</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"ОК"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Удалить надежное устройство"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Готово"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Для настройки надежного устройства используйте сопутствующее приложение. С помощью надежного устройства ваш профиль пользователя будет автоматически разблокироваться сразу после того, как автомобиль обнаружит ваш телефон."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Скачайте сопутствующее приложение на телефон."</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Чтобы подключить устройства, нажмите \"<xliff:g id="CAR_NAME">%1$s</xliff:g>\" на телефоне."</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"После запуска двигателя находящееся рядом с автомобилем надежное устройство сможет разблокировать профиль пользователя, даже если оно находится в руках другого человека."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Подтвердите совпадение кодов подключения"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Устройство зарегистрировано."</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Не удалось зарегистрировать устройство \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Чтобы добавить надежное устройство, необходимо выбрать способ аутентификации. Если надежного устройства не будет под рукой, вы сможете получить доступ к своему профилю только после аутентификации."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Устройство отключено."</string>
     <string name="forget" msgid="3971143908183848527">"Удалить"</string>
     <string name="connect" msgid="5861699594602380150">"Подключить"</string>
     <string name="disconnect" msgid="6140789953324820336">"Отключить"</string>
diff --git a/res/values-si/arrays.xml b/res/values-si/arrays.xml
new file mode 100644
index 0000000..72928c5
--- /dev/null
+++ b/res/values-si/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"විමසන්න"</item>
+    <item msgid="933409503308401889">"කිසිවිටෙකත් ඉඩ නොදෙන්න"</item>
+    <item msgid="1154273129608299386">"සැමවිටම ඉඩ දෙන්න"</item>
+  </string-array>
+</resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index f654a20..5177c96 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"රාත්‍රී ප්‍රකාරය"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"ජාලය සහ අන්තර්ජාලය"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"ජංගම ජාලය"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one">SIMs <xliff:g id="COUNT_1">%1$d</xliff:g></item>
+      <item quantity="other">SIMs <xliff:g id="COUNT_1">%1$d</xliff:g></item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"සක්‍රිය / SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"අක්‍රිය / SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"සක්‍රිය / බාගත් SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"අක්‍රිය / බාගත් SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"තව එක් කරන්න"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"ජංගම දත්ත"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"ජංගම ජාලය භාවිතයෙන් දත්තවලට ප්‍රවේශය"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"ජංගම දත්ත ක්‍රියාවිරහිත කරන්න ද?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"තේරීම අවශ්‍යයි"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"ජංගම දත්ත සඳහා <xliff:g id="CARRIER">%1$s</xliff:g> භාවිත කරන්න ද?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"ඔබ ජංගම දත්ත සඳහා <xliff:g id="CARRIER2_0">%2$s</xliff:g> භාවිතා කරයි. ඔබ <xliff:g id="CARRIER1">%1$s</xliff:g> වෙත මාරු වන්නේ නම්, ජංගම දත්ත සඳහා <xliff:g id="CARRIER2_1">%2$s</xliff:g>තවදුරටත් භාවිත නොකෙරේ."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g> භාවිතා කරන්න"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"රෝමිං"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"රෝමිං විට දත්ත සේවාවලට සබඳින්න"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"දත්ත සැරිසරණයට අවසර දෙන්නේද?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"ඔබට සැලකිය යුතු ගාස්තු ඇති විය හැක."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"දත්ත භාවිතය"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"ප්‍රාථමික දත්ත"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> භාවිතයි"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"පාරිතෝෂික කෙටිපණිවුඩ ඔබෙන් මුදල් අය කළ හැකි අතර ඔබේ වාහක බිල්පත්වලට එක් කරනු ඇත. ඔබ යෙදුමක් සඳහා අවසරය සබල කරන්නේ නම්, ඔබට එම යෙදුම භාවිතයෙන් පාරිතෝෂික කෙටිපණිවුඩ යැවීමට හැකි වනු ඇත."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"පරිශීලන ප්‍රවේශය"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"ඔබ භාවිත කරන වෙනත් යෙදුම් මොනවාද යන්න සහ ඒවා කොතරම් භාවිත කරන්නේද යන්න මෙන්ම, ඔබේ වාහකය, භාෂා සැකසීම්, සහ වෙනත් විස්තර පිළිබඳව හඹා යාමට පරිශීලන ප්‍රවේශය යෙදුමකට ඉඩ දෙයි."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"නාමාවලි ප්‍රවේශය"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi පාලනය"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Wi-Fi පාලනය යෙදුමකට Wi-Fi ක්‍රියාත්මක හෝ ක්‍රියාවිරහිත කිරීමට, Wi-Fi ජාල ස්කෑන් කර සබැඳීමට, ජාල එක් කිරීමට හෝ ඉවත් කිරීමට, හෝ ස්ථානීය-පමණි හොට්ස්පොටයක් ඇරඹීමට ඉඩ දෙයි."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"තව"</string>
     <string name="location_settings_title" msgid="901334356682423679">"ස්ථානය"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"මෑත ස්ථාන ඉල්ලීම්"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"මෑත ස්ථාන ඉල්ලීම් නැත"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"බ්ලූටූත් ක්‍රියාවිරහිත විට පවා, ඕනෑම වේලාවක දී අවට උපාංග සඳහා ස්කෑන් කිරීමට යෙදුම් සහ සේවාවන්ට ඉඩ දෙන්න. උදාහරණයක් ලෙස, ස්ථානය-පදනම් වූ විශේෂාංග සහ සේවා වැඩි දියුණු කිරීම සඳහා මෙය භාවිතා කළ හැකිය."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"පද්ධතිය"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"පද්ධති යාවත්කාලීන"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"නොමැත"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android අනුවාදය"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android ආරක්ෂක පැච් මට්ටම"</string>
     <string name="model_info" msgid="4966408071657934452">"මාදිලිය"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"කර්නලයේ අනුවාදය"</string>
     <string name="build_number" msgid="3997326631001009102">"නිමැවුම් අංකය"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"බ්ලූටූත් ලිපිනය"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Wi-Fi MAC ලිපිනය"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"ලද නොහැක"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"තත්ත්වය"</string>
     <string name="device_status" msgid="267298179806290920">"තත්ත්වය"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"ආරෝහණ, අවරෝහණ හෝ පුනරාවර්ත අනුක්‍රමයේ ඉලක්කම්වලට ඉඩ නොදේ."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"තිර අගුළු විකල්ප"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : දින <xliff:g id="NUM_DAYS">%3$s</xliff:g>කට පෙර"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"විශ්වාසදායී උපාංගය එක් කරන්න"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"විශ්වාසී උපාංගය එක් කිරීමට බ්ලූටූත් ක්‍රියාත්මක වේ"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"විශ්වාසදායී උපාංග"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one">උපාංග <xliff:g id="COUNT_1">%d</xliff:g> ක්</item>
+      <item quantity="other">උපාංග <xliff:g id="COUNT_1">%d</xliff:g> ක්</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"ඔබේ <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> සම්බන්ධ වන විට මෙම මෝටර් රථය අගුළු හරිනු ඇත. යමෙකු ඔබේ <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>රැගෙන ගියහොත්, ඔවුන්ට මෙම උපාංගයට ප්‍රවේශ වීමට හැකි වනු ඇත"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"තහවුරු කරන්න"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"විශ්වාසදායී උපාංගය ඉවත් කරන්න"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"නිමයි"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"විශ්වසනීය උපාංගයක් සැකසීමට මිත්‍ර යෙදුම භාවිත කරන්න. වරක් සැකසූ පසු, ඔබේ දුරකථනය ඔබේ වාහනය අවට තිබීම අනාවරණ වූ විට ඔබේ පරිශීලක පැතිකඩ ස්වයංක්‍රීයව අඟුලු අරිනු ලැබේ."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. ඔබේ දුරකථනය මත මිත්‍ර යෙදුම බාගන්න"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. උපාංග යුගල කිරීමට ඔබේ දුරකථනයේ <xliff:g id="CAR_NAME">%1$s</xliff:g> තෝරන්න"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"වෙන කෙනෙක් උපාංගය අල්ලා ගෙන සිටියත්, ඔබේ මෝටර් රථය අවට විශ්වාසදායී උපාංගයක් ජ්වලනයත් සමඟ පරිශීලක පැතිකඩ අගුළු හරිනු ඇත."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"යුගලන කේත ගැළපෙන බව තහවුරු කරන්න"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"දුරකථනය සාර්ථකව ලියාපදිංචි වී ඇත"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ලියාපදිංචි වීම අසාර්ථකයි"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"විශ්වාසදායී උපාංගයක් එක් කිරීමට ඔබට මීළඟට සත්‍යාපන ක්‍රමයක් සැකසීමට අවශ්‍ය කරයි. ඔබට ඔබේ විශ්වාසදායී උපාංගය ළඟ නොමැති නම්, ඔබේ පැතිකඩට ප්‍රවේශයට සත්‍යාපනය අවශ්‍ය වනු ඇත."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"උපාංගය විසන්ධි වී ඇත."</string>
     <string name="forget" msgid="3971143908183848527">"අමතක කරන්න"</string>
     <string name="connect" msgid="5861699594602380150">"සබඳින්න"</string>
     <string name="disconnect" msgid="6140789953324820336">"විසන්ධි කරන්න"</string>
diff --git a/res/values-sk/arrays.xml b/res/values-sk/arrays.xml
new file mode 100644
index 0000000..6151dca
--- /dev/null
+++ b/res/values-sk/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Opýtať sa"</item>
+    <item msgid="933409503308401889">"Nikdy nepovoliť"</item>
+    <item msgid="1154273129608299386">"Vždy povoliť"</item>
+  </string-array>
+</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index aad8950..8aedb3a 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -31,9 +31,28 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Nočný režim"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Sieť a internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mobilná sieť"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="few"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM karty</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> SIMs</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM kariet</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM karta</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Aktívne / SIM karta"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Neaktívne / SIM karta"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Aktívne / stiahnutá SIM karta"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Neaktívne / stiahnutá SIM karta"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Pridať ďalšie"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Mobilné dáta"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Prístup k dátam pomocou mobilnej siete"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Vypnúť mobilné dáta?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Vyžaduje sa výber"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Používať <xliff:g id="CARRIER">%1$s</xliff:g> na mobilné dáta?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Na mobilné dáta používate <xliff:g id="CARRIER2_0">%2$s</xliff:g>. Ak prepnete na <xliff:g id="CARRIER1">%1$s</xliff:g>, <xliff:g id="CARRIER2_1">%2$s</xliff:g> sa už nebude používať na mobilné dáta."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Použiť <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roaming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Pripájať sa k dátovým službám pri roamingu"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Chcete povoliť dátový roaming?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Môžu sa vám účtovať vysoké poplatky."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Využitie dát"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Primárne údaje"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Využité dáta: <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -324,10 +343,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Za prémiové správy SMS sa môžu účtovať poplatky, ktoré sa naúčtujú na faktúru operátora. Ak aktivujete toto povolenie pre aplikáciu, budete môcť pomocou nej posielať prémiové správy SMS."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Prístup k údajom o používaní"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Prístup k údajom o používaní umožňuje aplikácii sledovať, aké ďalšie aplikácie používate, ako často ich používate, ako aj nastavenia jazyka, operátora a ďalšie podrobnosti."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Prístup k adresáru"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Ovládanie Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Ovládanie Wi‑Fi umožňuje aplikácii zapnúť alebo vypnúť pripojenie Wi‑Fi, vyhľadávať siete Wi‑Fi a pripájať sa k nim, pridávať ich alebo odstraňovať, prípadne spustiť výhradne miestny hotspot."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Viac"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Poloha"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Nedávne žiadosti o polohu"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Žiadne nedávne žiadosti o polohu"</string>
@@ -340,7 +358,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Povoľte aplikáciám a službám kedykoľvek vyhľadávať zariadenia v okolí, a to aj vtedy, keď je rozhranie Bluetooth vypnuté. Môžete to využiť napríklad na zlepšenie funkcií a služieb podmienených polohou."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Systém"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Aktualizácie systému"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Nie je k dispozícii"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Verzia Androidu"</string>
     <string name="security_patch" msgid="4794276590178386903">"Úroveň opráv zabezpečenia systému"</string>
     <string name="model_info" msgid="4966408071657934452">"Model"</string>
@@ -348,7 +365,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Verzia jadra"</string>
     <string name="build_number" msgid="3997326631001009102">"Číslo zostavy"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Adresa Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Adresa MAC siete Wi‑Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Nie je k dispozícii"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Stav"</string>
     <string name="device_status" msgid="267298179806290920">"Stav"</string>
@@ -626,6 +642,28 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Vzostupná, zostupná alebo opakovaná sekvencia čísiel nie je povolená."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Možnosti zámky obrazovky"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : pred <xliff:g id="NUM_DAYS">%3$s</xliff:g> dňami"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Pridanie dôveryhodného zar."</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Zapne sa Bluetooth s cieľom pridať dôv. zariadenia"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Dôveryhodné zar."</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> zariadenia</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> devices</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> zariadení</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> zariadenie</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Vaše zariadenie <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> po pripojení odomkne toto auto. Ak vám niekto zariadenie <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> vezme, pravdepodobne bude mať prístup do tohto zariadenia"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Potvrdiť"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Odstrániť dôveryhodné zariadenie"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Hotovo"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Nastavte dôveryhodné zariadenie pomocou sprievodnej aplikácie. Po nastavení sa bude váš profil používateľa automaticky odomykať, keď vozidlo rozpozná v blízkosti váš telefón."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Stiahnite v telefóne sprievodnú aplikáciu"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Vyberte v telefóne auto <xliff:g id="CAR_NAME">%1$s</xliff:g> a spárujte tak zariadenia"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Dôveryhodné zariadenie v blízkosti auta môže po naštartovaní odomknúť používateľsky profil, a to aj vtedy, keď ho drží iná osoba."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Potvrďte, že sa párovacie kódy zhodujú"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Telefón bol úspešne zaregistrovaný"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> sa nepodarilo zaregistrovať"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Ak chcete pridať dôveryhodné zariadenie, musíte v ďalšom kroku nastaviť spôsob overenia. Ak nemáte dôveryhodné zariadenie pri sebe, prístup do vášho profilu bude možný až po overení."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Zariadenie bolo odpojené."</string>
     <string name="forget" msgid="3971143908183848527">"Odstrániť"</string>
     <string name="connect" msgid="5861699594602380150">"Pripojiť"</string>
     <string name="disconnect" msgid="6140789953324820336">"Odpojiť"</string>
diff --git a/res/values-sl/arrays.xml b/res/values-sl/arrays.xml
new file mode 100644
index 0000000..b07a4ce
--- /dev/null
+++ b/res/values-sl/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Vprašaj"</item>
+    <item msgid="933409503308401889">"Nikoli ne dovoli"</item>
+    <item msgid="1154273129608299386">"Vedno dovoli"</item>
+  </string-array>
+</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index f6480a8..ffa0ca9 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -31,9 +31,28 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Nočni način"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Omrežje in internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mobilno omrežje"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> kartica SIM</item>
+      <item quantity="two"><xliff:g id="COUNT_1">%1$d</xliff:g> kartici SIM</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%1$d</xliff:g> kartice SIM</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> kartic SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Aktivno/SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Neaktivno/SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Aktivno/prenesena kartica SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Neaktivno/prenesena kartica SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Dodaj več"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Prenos pod. v mobilnem omrežju"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Dostop do podatkov prek mobilnega omrežja"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Želite izklopiti prenos pod. v mobilnih omrežjih?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Izbira je obvezna"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Podatki v mob. omr. z oper. <xliff:g id="CARRIER">%1$s</xliff:g>?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Za prenos podatkov v mobilnem omrežju uporabljate operaterja <xliff:g id="CARRIER2_0">%2$s</xliff:g>. Če preklopite na operaterja <xliff:g id="CARRIER1">%1$s</xliff:g>, operaterja <xliff:g id="CARRIER2_1">%2$s</xliff:g> ne boste več uporabljali za prenos podatkov v mobilnem omrežju."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Uporabi operaterja <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Gostovanje"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Med gostovanjem vzpostavi povezavo s podatkovnimi storitvami"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Želite dovoliti podatkovno gostovanje?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Stroški utegnejo biti veliki."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Prenesena količina podatkov"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Glavni podatki"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Porabljeno: <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -324,10 +343,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Plačljiva sporočila SMS vam lahko povzročijo stroške in povečajo račun za mobilno telefonijo. Če za aplikacijo omogočite dovoljenje, boste lahko s tisto aplikacijo pošiljali plačljiva sporočila SMS."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Dostop do podatkov o uporabi"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Dostop do podatkov o uporabi aplikaciji omogoča, da spremlja, katere aplikacije še uporabljate in kako pogosto, ter da si ogleda podrobnosti o operaterju, nastavitvah jezika in drugem."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Dostop do imenika"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Upravljanje povezave Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Upravljanje povezave Wi-Fi aplikaciji omogoča vklop ali izklop povezave Wi-Fi, iskanje omrežij Wi-Fi in povezovanje z njimi, dodajanje ali odstranjevanje omrežij ali zagon lokalne dostopne točke."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Več"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Lokacija"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Nedavne zahteve za lokacijo"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Ni nedavnih zahtev za lokacijo"</string>
@@ -340,7 +358,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Aplikacijam in storitvam omogoči, da kadar koli iščejo naprave v bližini, tudi ko je Bluetooth izklopljen. To funkcijo lahko na primer uporabite, če želite izboljšati funkcije in storitve, ki pri delovanju uporabljajo lokacijo."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Sistem"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Posodobitve sistema"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Ni na voljo"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Različica Androida"</string>
     <string name="security_patch" msgid="4794276590178386903">"Raven popravkov za varnost v Androidu"</string>
     <string name="model_info" msgid="4966408071657934452">"Model"</string>
@@ -348,7 +365,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Različica jedra"</string>
     <string name="build_number" msgid="3997326631001009102">"Delovna različica"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Naslov vmesnika Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Naslov MAC za Wi‑Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Ni na voljo"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Stanje"</string>
     <string name="device_status" msgid="267298179806290920">"Stanje"</string>
@@ -626,6 +642,28 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Naraščajoč, padajoč ali ponavljajoč se niz števk je prepovedan."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Možnosti zaklepanja zaslona"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g>: pred toliko dnevi: <xliff:g id="NUM_DAYS">%3$s</xliff:g>"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Dodaj zaupanja vredno napravo"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Vklop Bluetootha za dodaj. zaupanja vredne naprave"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Zaup. vredne naprave"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> naprava</item>
+      <item quantity="two"><xliff:g id="COUNT_1">%d</xliff:g> napravi</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> naprave</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> naprav</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Naprava <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> bo odklenila ta avtomobil, ko je povezana. Če vam kdo vzame napravo <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, lahko ta oseba morda dostopa do nje."</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Potrdi"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Odstrani zaupanja vredno napravo"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Končano"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"S spremljevalno aplikacijo nastavite zaupanja vredno napravo. Ko je nastavljena, se profil uporabnika odklene samodejno, ko je telefon zaznan v bližini vozila."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. V telefon prenesite spremljevalno aplikacijo"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Če želite seznaniti napravi, v telefonu izberite avtomobil <xliff:g id="CAR_NAME">%1$s</xliff:g>"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Zaupanja vredna naprava v bližini avtomobila bo po vžigu odklenila profil uporabnika, tudi če ima napravo v rokah kdo drug."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Potrdite ujemanje kod za seznanjanje"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Telefon je uspešno prijavljen"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Včlanitev naprave <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ni uspela"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Če želite dodati zaupanja vredno napravo, morate nato nastaviti način za preverjanje pristnosti. Če zaupanja vredne naprave nimate pri sebi, boste morali preveriti pristnost, če boste želeli dostopati do profila."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Naprava je odklopljena."</string>
     <string name="forget" msgid="3971143908183848527">"Pozabi"</string>
     <string name="connect" msgid="5861699594602380150">"Poveži"</string>
     <string name="disconnect" msgid="6140789953324820336">"Prekini povezavo"</string>
diff --git a/res/values-sq/arrays.xml b/res/values-sq/arrays.xml
new file mode 100644
index 0000000..8762326
--- /dev/null
+++ b/res/values-sq/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Pyet"</item>
+    <item msgid="933409503308401889">"Mos lejo asnjëherë"</item>
+    <item msgid="1154273129608299386">"Lejo gjithmonë"</item>
+  </string-array>
+</resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index ddb8fa6..f1406a1 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Modaliteti i natës"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Rrjeti dhe interneti"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Rrjeti celular"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> karta SIM</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> kartë SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Aktiv / SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Joaktiv / SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Aktiv / karta SIM e shkarkuar"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Joaktiv / karta SIM e shkarkuar"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Shto më shumë"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Të dhënat celulare"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Qasu te të dhënat duke përdorur rrjetin celular"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Të çaktivizohen të dhënat celulare?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Kërkohet përzgjedhja"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Të përdoret <xliff:g id="CARRIER">%1$s</xliff:g> për të dhënat celulare?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Po përdor <xliff:g id="CARRIER2_0">%2$s</xliff:g> për të dhënat celulare. Nëse kalon te <xliff:g id="CARRIER1">%1$s</xliff:g>, <xliff:g id="CARRIER2_1">%2$s</xliff:g> nuk do të përdoret më për të dhënat celulare."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Përdor <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roaming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Lidhu me shërbimet e të dhënave kur je në roaming"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Të lejohet përdorimi i të dhënave kur je në roaming?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Mund të shkaktohen tarifa të larta."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Përdorimi i të dhënave"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Të dhënat kryesore"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> të përdorura"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Mesazhet SMS premium mund të kushtojnë dhe do të rritin faturat e operatorit tënd celular. Nëse e aktivizon lejen për një aplikacion, do të mund të dërgosh mesazhe SMS premium me atë aplikacion."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Qasja në përdorim"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Qasja në përdorim lejon që një aplikacion të monitorojë se çfarë aplikacionesh të tjera po përdor ti dhe sa shpesh i përdor, si edhe operatorin celular, cilësimet e gjuhës dhe detaje të tjera."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Qasja në direktori"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Kontrolli i lidhjes Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Kontrolli i lidhjes Wi-Fi lejon që një aplikacion të aktivizojë ose të çaktivizojë Wi-Fi, të skanojë dhe të lidhet me rrjetet Wi-Fi, të shtojë ose të heqë rrjetet ose të nisë një zonë qasjeje për internetin vetëm në nivel lokal."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Më shumë"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Vendndodhja"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Kërkesat e vendndodhjeve të fundit"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Nuk ka kërkesa të vendndodhjeve të fundit"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Lejo që aplikacionet dhe shërbimet të skanojnë për pajisje në afërsi në çdo moment, edhe kur Bluetooth është joaktiv. Kjo mund të përdoret, për shembull, për të përmirësuar funksionet dhe shërbimet e bazuara te vendndodhja."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Sistemi"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Përditësimet e sistemit"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Nuk ofrohet"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Versioni i Android-it"</string>
     <string name="security_patch" msgid="4794276590178386903">"Niveli i korrigjimit të sigurisë së Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Modeli"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Versioni i bërthamës"</string>
     <string name="build_number" msgid="3997326631001009102">"Numri i ndërtimit"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Adresa e Bluetooth-it"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Adresa MAC e Wi‑Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Nuk ofrohet"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Statusi"</string>
     <string name="device_status" msgid="267298179806290920">"Statusi"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Nuk lejohet një sekuencë shifrash në rritje, në zbritje ose me përsëritje."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Opsionet e kyçjes së ekranit"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> ditë më parë"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Shto një pajisje të besuar"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth-i do të aktivizohet për të shtuar pajisjen e besuar"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Pajisjet e besuara"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> pajisje</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> pajisje</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Pajisja jote <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> do ta shkyçë këtë makinë kur është e lidhur. Nëse dikush merr pajisjen tënde <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, mund të jetë në gjendje të ketë qasje te kjo pajisje"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Konfirmo"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Hiq pajisjen e besuar"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"U krye"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Përdor aplikacionin shoqërues për të konfiguruar një pajisje të besuar. Pasi të konfigurohet, profili yt si përdorues do të shkyçet automatikisht kur telefoni yt të zbulohet pranë automjetit."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Shkarko aplikacionin shoqërues në telefonin tënd"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Zgjidh <xliff:g id="CAR_NAME">%1$s</xliff:g> në telefon për të çiftuar pajisjet"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Një pajisje e besuar në afërsi do ta shkyçë profilin e përdoruesit pas ndezjes, edhe nëse pajisjen e mban dikush tjetër."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Konfirmo se kodet e çiftimit përputhen"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Telefoni është regjistruar me sukses"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Regjistrimi i <xliff:g id="DEVICE_NAME">%1$s</xliff:g> dështoi"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Shtimi i një pajisjeje të besuar kërkon që të caktosh më pas një metodë vërtetimi. Nëse nuk e ke pajisjen e besuar me vete, do të kërkohet vërtetim për të pasur qasje te profili yt."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Pajisja u shkëput"</string>
     <string name="forget" msgid="3971143908183848527">"Harro"</string>
     <string name="connect" msgid="5861699594602380150">"Lidh"</string>
     <string name="disconnect" msgid="6140789953324820336">"Shkëput"</string>
diff --git a/res/values-sr/arrays.xml b/res/values-sr/arrays.xml
new file mode 100644
index 0000000..38562bc
--- /dev/null
+++ b/res/values-sr/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Питај"</item>
+    <item msgid="933409503308401889">"Никада не дозволи"</item>
+    <item msgid="1154273129608299386">"Увек дозволи"</item>
+  </string-array>
+</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 143fed9..865c6b1 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -31,9 +31,27 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Ноћни режим"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Мрежа и интернет"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Мобилна мрежа"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM картица</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM картице</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM картица</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Активно/SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Неактивно/SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Активно/преузети SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Неактивно/преузети SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Додајте још"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Мобилни подаци"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Користи податке преко мобилне мреже"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Желите ли да искључите мобилне податке?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Треба да изаберете нешто"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Користити <xliff:g id="CARRIER">%1$s</xliff:g> за моб. податке?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Користите <xliff:g id="CARRIER2_0">%2$s</xliff:g> за мобилне податке. Ако пређете на <xliff:g id="CARRIER1">%1$s</xliff:g>, <xliff:g id="CARRIER2_1">%2$s</xliff:g> се више неће користити за мобилне податке."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Користи <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Роминг"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Повежи са услугама за податке у ромингу"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Желите ли да дозволите пренос података у ромингу?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Могу да настану значајни трошкови."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Потрошња података"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Примарни подаци"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> потрошено"</string>
@@ -322,10 +340,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Премијум SMS-ови могу да коштају и повећаће рачуне код мобилног оператера. Ако омогућите дозволу за неку апликацију, моћи ћете да шаљете премијум SMS-ове помоћу те апликације."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Приступ коришћењу"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Приступ коришћењу омогућава апликацији да прати које друге апликације користите и колико често, као и да види мобилног оператера, језичка подешавања и друге податке."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Приступ директоријумима"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Контрола Wi-Fi мреже"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Контрола Wi-Fi мреже омогућава апликацији да укључи или искључи Wi-Fi, тражи и повезује се на Wi-Fi мреже, додаје или уклања мреже или покреће само локални хотспот."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Још"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Локација"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Недавни захтеви за локацију"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Нема недавних захтева за локацију"</string>
@@ -338,7 +355,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Дозволите апликацијама и услугама да траже уређаје у близини у сваком тренутку, чак и када је Bluetooth искључен. Ово може да се користи, на пример, за побољшање функција и услуга заснованих на локацији."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Систем"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Ажурирања система"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Није доступно"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Верзија Android-а"</string>
     <string name="security_patch" msgid="4794276590178386903">"Ниво безбедносне закрпе за Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Модел"</string>
@@ -346,7 +362,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Верзија језгра"</string>
     <string name="build_number" msgid="3997326631001009102">"Број верзије"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth адреса"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Wi-Fi MAC адреса"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Није доступно"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Статус"</string>
     <string name="device_status" msgid="267298179806290920">"Статус"</string>
@@ -616,6 +631,27 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Растући, опадајући или поновљени низ цифара није дозвољен."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Опције закључавања екрана"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g>: пре <xliff:g id="NUM_DAYS">%3$s</xliff:g> дан(а)"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Додај поуздани уређај"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth се укључује ради додавања поузд. уређаја"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Поуздани уређаји"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> уређај</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> уређаја</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> уређаја</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> ће откључати овај аутомобил када се повеже. Ако вам неко узме <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, можда ће моћи да приступа овом уређају"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Потврди"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Уклони поуздани уређај"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Готово"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Поуздани уређај подесите помоћу пратеће апликације. Када га подесите, кориснички профил се аутоматски откључава када се открије да је телефон близу возила."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Преузмите пратећу апликацију на телефону"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Изаберите <xliff:g id="CAR_NAME">%1$s</xliff:g> на телефону да бисте упарили уређаје"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Поуздани уређај у близини аутомобила откључава профил корисника после паљења, чак и када га неко други држи."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Потврдите да се кодови за упаривање подударају"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Телефон је регистрован"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Регистрација уређаја <xliff:g id="DEVICE_NAME">%1$s</xliff:g> није успела"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"За додавање поузданог уређаја следеће што треба да урадите је да подесите метод потврде идентитета. Ако немате поуздани уређај са собом, потврда идентитета ће бити потребна да бисте приступили профилу."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Прекинута је веза са уређајем."</string>
     <string name="forget" msgid="3971143908183848527">"Заборави"</string>
     <string name="connect" msgid="5861699594602380150">"Повежи"</string>
     <string name="disconnect" msgid="6140789953324820336">"Прекини везу"</string>
diff --git a/res/values-sv/arrays.xml b/res/values-sv/arrays.xml
new file mode 100644
index 0000000..582a3eb
--- /dev/null
+++ b/res/values-sv/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Fråga"</item>
+    <item msgid="933409503308401889">"Tillåt aldrig"</item>
+    <item msgid="1154273129608299386">"Tillåt alltid"</item>
+  </string-array>
+</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 1a31495..d6dde64 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Nattläge"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Nätverk och internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mobilnätverk"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-kort</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM-kort</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Aktiv/SIM-kort"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Inaktiv/SIM-kort"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Aktiv/nedladdat SIM-kort"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Inaktiv/nedladdat SIM-kort"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Lägg till fler"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Mobildata"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Få åtkomst till data via mobilt nätverk"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Vill du inaktivera mobildata?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Du måste välja något"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Ska mobildata från <xliff:g id="CARRIER">%1$s</xliff:g> användas?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Du använder mobildata från <xliff:g id="CARRIER2_0">%2$s</xliff:g>. Om du byter till <xliff:g id="CARRIER1">%1$s</xliff:g> används inte längre mobildata från <xliff:g id="CARRIER2_1">%2$s</xliff:g>."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Använd <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roaming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Anslut till datatjänster vid roaming"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Vill du tillåta dataroaming?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Detta kan leda till höga kostnader."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Dataanvändning"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Primär data"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> använt"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Det kan hända att premium-sms kostar pengar och läggs till på dina fakturor från operatören. Om du ger en app åtkomst kan du skicka premium-sms med den appen."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Åtkomst till användningsdata"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Med åtkomst till användningsdata kan en app spåra vilka andra appar du använder och hur ofta, samt vilken operatör du har, språkinställningar och andra uppgifter."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Katalogåtkomst"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi-styrning"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Med Wi-Fi-styrning får den här appen behörighet att aktivera eller inaktivera Wi-Fi, söka efter och ansluta till Wi-Fi-nätverk, lägga till eller ta bort nätverk samt starta en lokal surfzon."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Mer"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Plats"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Nyligen gjorda platsbegäranden"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Inga platsbegäranden har gjorts nyligen"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Tillåt att appar och tjänster söker efter enheter i närheten när som helst, även när Bluetooth är inaktiverat. Funktionen kan till exempel användas till att förbättra platsbaserade funktioner och tjänster."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"System"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Systemuppdateringar"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Inte tillgängligt"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android-version"</string>
     <string name="security_patch" msgid="4794276590178386903">"Korrigeringsnivå för Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Modell"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Kernel-version"</string>
     <string name="build_number" msgid="3997326631001009102">"Version"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth-adress"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"MAC-adress för Wi-Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Ej tillgängligt"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Status"</string>
     <string name="device_status" msgid="267298179806290920">"Status"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"En stigande, fallande eller upprepad siffersekvens är inte tillåten."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Alternativ för skärmlås"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g>: <xliff:g id="NUM_DAYS">%3$s</xliff:g> dagar sedan"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Lägg till betrodd enhet"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth aktiveras vid koppling av betrodd enhet"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Betrodda enheter"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> enheter</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> enhet</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Bilen låses upp av din <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> när den är ansluten. Om någon kommer över din <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> kan de få åtkomst till den här enheten"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Bekräfta"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Ta bort betrodd enhet"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Klar"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Konfigurera en betrodd enhet med den tillhörande appen. När den har konfigurerats låses användarprofilen upp automatiskt när mobilen upptäcks i närheten av fordonet."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Ladda ned den tillhörande appen på mobilen"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Koppla enheterna genom att välja <xliff:g id="CAR_NAME">%1$s</xliff:g> på mobilen"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"När en betrodd enhet är i närheten av din bil låses användarprofilen upp vid start, även om någon annan håller i enheten."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Bekräfta att kopplingskoderna stämmer överens"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Mobilen har registrerats"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Det gick inte att registrera <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"När du lägger till en betrodd enhet måste du lägga till en autentiseringsmetod också. Autentisering krävs för att komma åt profilen om du inte skulle ha den betrodda enheten med dig."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Enheten har kopplats från."</string>
     <string name="forget" msgid="3971143908183848527">"Glöm"</string>
     <string name="connect" msgid="5861699594602380150">"Anslut"</string>
     <string name="disconnect" msgid="6140789953324820336">"Koppla från"</string>
diff --git a/res/values-sw/arrays.xml b/res/values-sw/arrays.xml
new file mode 100644
index 0000000..e0aca35
--- /dev/null
+++ b/res/values-sw/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Uliza"</item>
+    <item msgid="933409503308401889">"Usiruhusu kamwe"</item>
+    <item msgid="1154273129608299386">"Ruhusu kila wakati"</item>
+  </string-array>
+</resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 3caf8ee..8ed15fe 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Hali ya usiku"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Mtandao na intaneti"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mtandao wa simu"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other">SIM <xliff:g id="COUNT_1">%1$d</xliff:g></item>
+      <item quantity="one">SIM <xliff:g id="COUNT_0">%1$d</xliff:g></item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Inatumika / SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Haitumiki / SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Inatumika / Imepakua SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Haitumiki / Imepakua SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Ongeza zaidi"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Data ya mtandao wa simu"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Tumia data ya mtandao wa simu"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Ungependa kuzima data ya mtandao wa simu?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Unahitaji kuchagua"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Utatumia <xliff:g id="CARRIER">%1$s</xliff:g> kwa data ya mtandao wa simu?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Unatumia <xliff:g id="CARRIER2_0">%2$s</xliff:g> kwa ajili ya data ya mtandao wa simu. Ukibadilisha uweke <xliff:g id="CARRIER1">%1$s</xliff:g>, <xliff:g id="CARRIER2_1">%2$s</xliff:g> haitatumika tena kwa ajili ya data ya mtandao wa simu."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Tumia <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Kutumia mitandao ya ng\'ambo"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Unganisha huduma ya data wakati natumia mtandao wa ng\'ambo"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Ungependa kuruhusu matumizi ya mitandao ya ng\'ambo?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Huenda ukatozwa gharama kubwa."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Matumizi ya data"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Data ya msingi"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Umetumia <xliff:g id="ID_2">^2</xliff:g> <xliff:g id="ID_1">^1</xliff:g>"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Gharama ya huduma ya SMS zinazolipiwa itajumuishwa kwenye bili yako ya mtoa huduma. Ikiwa utaipa programu fulani ruhusa, utaweza kutuma SMS zinazolipiwa ukitumia programu hiyo."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Kufikia matumizi"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Ufikiaji wa matumizi huruhusu programu kufuatilia programu zingine unazotumia na mara ngapi unazitumia, pamoja na mtoa huduma, mipangilio ya lugha na maelezo yako mengine."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Kufikia saraka"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Kudhibiti Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Kidhibiti cha Wi-Fi huruhusu programu iwashe au izime Wi-Fi, itafute na iunganishe kwenye mitandao ya Wi-Fi, iongeze au iondoe mitandao au ianzishe mtandaopepe wa eneo mahususi."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Zaidi"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Mahali"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Maombi ya Hivi Karibuni ya Kutambua Eneo"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Hamna maombi ya hivi karibuni ya kutambua eneo"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Ruhusu programu na huduma itafute vifaa vilivyo karibu wakati wowote, hata wakati umezima Bluetooth. Hali hii inaweza kutumika, kwa mfano, kuboresha huduma na vipengele vinavyohusiana na mahali."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Mfumo"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Masasisho ya mfumo"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Haipatikani"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Toleo la Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"Usasishaji wa rekebisho la usalama kwenye Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Muundo"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Toleo la kiini"</string>
     <string name="build_number" msgid="3997326631001009102">"Nambari ya muundo"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Anwani ya Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Anwani ya Wi-Fi ya MAC"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Haipatikani"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Hali"</string>
     <string name="device_status" msgid="267298179806290920">"Hali"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Haturuhusu mpangilio wa tarakimu wa kupanda, kushuka au kujirudia."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Chaguo za kufunga skrini"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : Siku <xliff:g id="NUM_DAYS">%3$s</xliff:g> zilizopita"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Ongeza kifaa unachokiamini"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth itawaka ili kuongeza kifaa unachokiamini"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Vifaa unavyoviamini"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other">Vifaa <xliff:g id="COUNT_1">%d</xliff:g></item>
+      <item quantity="one">Kifaa <xliff:g id="COUNT_0">%d</xliff:g></item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> yako itafungua gari hili itakapounganishwa. Mtu akichukua <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> yako, huenda ataweza kufikia kifaa hiki."</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Thibitisha"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Ondoa kifaa unachokiamini"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Nimemaliza"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Tumia programu inayotumika kudhibiti ili uweke mipangilio ya kifaa unachokiamini. Ukimaliza kuweka mipangilio, wasifu wako wa mtumiaji utafunguka kiotomatiki simu yako inapotambuliwa karibu na gari."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Pakua programu saidizi kwenye simu yako"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Chagua <xliff:g id="CAR_NAME">%1$s</xliff:g> kwenye simu yako ili uoanishe vifaa"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Kifaa unachokiamini kilicho karibu na gari lako kitafungua wasifu wa mtumiaji itakapowashwa, hata ikiwa kimebebwa na mtu mwingine."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Tafadhali thibitisha kuwa misimbo ya kuoanisha inalingana"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Umesajili kifaa bila tatizo"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Imeshindwa kuandikisha <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Unatakiwa uweke njia ya kuthibitisha ili uongeze kifaa unachoamini katika hatua inayofuata. Kama huna kifaa unachoamini, uthibitishaji utataka idhini ya kufikia wasifu wako."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Kifaa kimeondolewa."</string>
     <string name="forget" msgid="3971143908183848527">"Sahau"</string>
     <string name="connect" msgid="5861699594602380150">"Unganisha"</string>
     <string name="disconnect" msgid="6140789953324820336">"Tenganisha"</string>
diff --git a/res/values-ta/arrays.xml b/res/values-ta/arrays.xml
new file mode 100644
index 0000000..f83ed2a
--- /dev/null
+++ b/res/values-ta/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"கேள்"</item>
+    <item msgid="933409503308401889">"ஒருபோதும் அனுமதிக்காதே"</item>
+    <item msgid="1154273129608299386">"எப்போதும் அனுமதி"</item>
+  </string-array>
+</resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 50e68d4..0720992 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"இரவுப் பயன்முறை"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"நெட்வொர்க் &amp; இணையம்"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"மொபைல் நெட்வொர்க்"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> சிம்கள்</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> சிம்</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"செயலில் உள்ளது / சிம்"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"செயலில் இல்லை / சிம்"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"செயலில் உள்ளது / பதிவிறக்கிய சிம்"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"செயலில் இல்லை / பதிவிறக்கிய சிம்"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"மேலும் சேர்"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"மொபைல் டேட்டா"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"மொபைல் நெட்வொர்க் மூலம் டேட்டாவைப் பயன்படுத்து"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"மொபைல் டேட்டாவை ஆஃப் செய்யவா?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"தேர்ந்தெடுக்க வேண்டும்"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"டேட்டாவிற்கு <xliff:g id="CARRIER">%1$s</xliff:g>ஐ உபயோகிக்கவா?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"மொபைல் டேட்டாவிற்கு <xliff:g id="CARRIER2_0">%2$s</xliff:g> சிம்மைப் பயன்படுத்துகிறீர்கள். <xliff:g id="CARRIER1">%1$s</xliff:g> சிம்மிற்கு மாறினால் <xliff:g id="CARRIER2_1">%2$s</xliff:g> சிம்மை மொபைல் டேட்டாவிற்குத் தொடர்ந்து பயன்படுத்த இயலாது."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g> சிம்மைப் பயன்படுத்து"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"ரோமிங்"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"ரோமிங்கின்போது டேட்டா சேவைகளுடன் இணை"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"டேட்டா ரோமிங்கை அனுமதிக்கவா?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"கட்டணம் விதிக்கப்படலாம்."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"டேட்டா உபயோகம்"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"முதன்மை டேட்டா"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> பயன்படுத்தப்பட்டது"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"பிரீமிய SMSஸுக்குக் கட்டணம் விதிக்கப்படலாம், அது மொபைல் நிறுவன பில்களில் சேர்க்கப்படும். ஆப்ஸுக்கான அனுமதியை இயக்கினால் அதன் மூலம் பிரீமிய SMSஸை அனுப்ப இயலும்."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"உபயோக அணுகல்"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"’உபயோக அணுகல்’ மூலம் நீங்கள் வேறு எந்தெந்த ஆப்ஸை எவ்வளவு அடிக்கடி பயன்படுத்துகிறீர்கள் என்பதை அறிந்துகொள்ளும் அனுமதியை ஆப்ஸிற்கு வழங்கலாம். உங்கள் மொபைல் நிறுவனம், மொழி அமைப்புகள் மற்றும் பிற விவரங்களையும் அறிந்து கொள்ளும் அனுமதியும் இதில் அடங்கும்."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"கோப்பக அணுகல்"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"வைஃபை அணுகல்"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"’வைஃபை கட்டுப்பாடு’ மூலம் ஆப்ஸிலிருந்து வைஃபையை ஆன் அல்லது ஆஃப் செய்யலாம், வைஃபை நெட்வொர்க்குகளை ஸ்கேன் செய்து இணைக்கலாம், நெட்வொர்க்குகளைச் சேர்க்ககலாம் அல்லது அகற்றலாம் அல்லது சாதனத்திற்குள் மட்டும் இயங்கும் ஹாட்ஸ்பாட்டைத் தொடங்கலாம்."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"மேலும்"</string>
     <string name="location_settings_title" msgid="901334356682423679">"இடம்"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"இருப்பிடத் தகவல் குறித்த சமீபத்திய கோரிக்கைகள்"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"இருப்பிடத் தகவல் குறித்த சமீபத்திய கோரிக்கைகள் இல்லை"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"புளூடூத் ஆஃப் செய்யப்பட்டிருந்தாலும்கூட எந்தநேரத்திலும் அருகிலுள்ள சாதனங்களைத் தேட ஆப்ஸையும் சேவைகளையும் அனுமதிக்கும். உதாரணத்திற்கு இருப்பிடம் சார்ந்த அம்சங்களையும் சேவைகளையும் மேம்படுத்துவதற்கும் இதைப் பயன்படுத்தலாம்."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"சிஸ்டம்"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"சிஸ்டம் புதுப்பிப்புகள்"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"கிடைக்கவில்லை"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android பதிப்பு"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android பாதுகாப்பின் பேட்ச் நிலை"</string>
     <string name="model_info" msgid="4966408071657934452">"மாடல்"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"கர்னல் பதிப்பு"</string>
     <string name="build_number" msgid="3997326631001009102">"பதிப்பு எண்"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"புளூடூத் முகவரி"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"வைஃபை MAC முகவரி"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"கிடைக்கவில்லை"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"நிலை"</string>
     <string name="device_status" msgid="267298179806290920">"நிலை"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"இலக்கங்கள் ஏறுவரிசையில், இறங்குவரிசையில் அல்லது ஒரே இலக்கத்தைத் தொடர்ந்து பயன்படுத்துவது அனுமதிக்கப்படாது."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"திரைப் பூட்டு விருப்பங்கள்"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> நாட்கள் முன்பு"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"நம்பகமான சாதனத்தைச் சேர்"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"நம்பகமான சாதனத்தைச் சேர்க்க புளூடூத் ஆன் ஆகும்"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"நம்பகமான சாதனங்கள்"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> சாதனங்கள்</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> சாதனம்</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> சாதனம் இணைக்கப்படும்போது உங்கள் காரை அது திறக்கும். <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> சாதனம் எவர் கையிலாவது கிடைத்தால் அவர்கள் அதைப் பயன்படுத்த வாய்ப்பிருக்கிறது"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"உறுதிப்படுத்து"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"நம்பகமான சாதனத்தை அகற்று"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"முடிந்தது"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"’நம்பகமான சாதனம்’ ஒன்றை அமைக்க கம்பேனியன் ஆப்ஸைப் பயன்படுத்தவும். அமைத்த பிறகும் வாகனத்திற்கு அருகில் மொபைல் கண்டறியப்பட்டால் உங்களின் பயனர் சுயவிவரத்தை அன்லாக் செய்ய முடியும்."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. உங்கள் மொபைலில் கம்பேனியன் ஆப்ஸைப் பதிவிறக்கவும்"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. சாதனங்களை இணைக்க உங்கள் மொபைலில் <xliff:g id="CAR_NAME">%1$s</xliff:g> என்பதைத் தேர்வுசெய்யவும்"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"வேறு யாராவது இந்தச் சாதனத்தை வைத்திருந்தாலும்கூட உங்கள் காருக்கு அருகில் இருக்கும்போது ஆன் செய்தால் ஒரு நம்பகமான சாதனம் பயனர் சுயவிவரத்தை அன்லாக் செய்யும்."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"இணைத்தல் குறியீடுகள் பொருந்துவதை உறுதிசெய்க"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"மொபைல் பதிவுசெய்யப்பட்டது"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> பதிவு செய்வதில் தோல்வி"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"நம்பகமான சாதனத்தைச் சேர்த்த பிறகு அடையாளச் சரிபார்ப்பு முறையை அமைக்க வேண்டும். உங்களிடம் நம்பகமான சாதனம் இல்லையெனில் அடையாளச் சரிபார்ப்பிற்காக உங்கள் சுயவிவரத்தை அணுக வேண்டிய அவசியம் ஏற்படும்."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"சாதனம் துண்டிக்கப்பட்டது."</string>
     <string name="forget" msgid="3971143908183848527">"அகற்று"</string>
     <string name="connect" msgid="5861699594602380150">"இணை"</string>
     <string name="disconnect" msgid="6140789953324820336">"துண்டி"</string>
diff --git a/res/values-te/arrays.xml b/res/values-te/arrays.xml
new file mode 100644
index 0000000..e0b2986
--- /dev/null
+++ b/res/values-te/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"అడగండి"</item>
+    <item msgid="933409503308401889">"ఎప్పటికీ అనుమతించవద్దు"</item>
+    <item msgid="1154273129608299386">"ఎల్లప్పుడూ అనుమతించు"</item>
+  </string-array>
+</resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 53f061c..4ab127f 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"రాత్రి మోడ్"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"నెట్‌వర్క్ &amp; ఇంటర్నెట్"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"మొబైల్ నెట్‌వర్క్"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIMలు</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"యాక్టివ్‌గా ఉంది / SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"ఇన్‌యాక్టివ్‌గా ఉంది / SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"యాక్టివ్ / డౌన్‌లోడ్ చేసిన SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"ఇన్‌యాక్టివ్ / డౌన్‌లోడ్ చేసిన SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"మరిన్నింటిని జోడించు"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"మొబైల్ డేటా"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"మొబైల్ నెట్‌వర్క్‌ను ఉపయోగించి డేటాను యాక్సెస్ చేయండి"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"మొబైల్ డేటాని ఆఫ్ చేయాలా?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"ఎంపిక అవసరం"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"మొబైల్ డేటా కోసం <xliff:g id="CARRIER">%1$s</xliff:g> ఉపయోగించాలా?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"మీరు మొబైల్ డేటా కోసం <xliff:g id="CARRIER2_0">%2$s</xliff:g>ను వినియోగిస్తున్నారు. మీరు <xliff:g id="CARRIER1">%1$s</xliff:g>కు మారితే, <xliff:g id="CARRIER2_1">%2$s</xliff:g> ఇప్పటి నుండి మొబైల్ డేటా కోసం ఉపయోగించబడదు."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g>ను ఉపయోగించు"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"రోమింగ్"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"రోమింగ్‌లో ఉన్నప్పుడు డేటా సేవలకు కనెక్ట్ చేయి"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"డేటా రోమింగ్‌ను అనుమతించాలా?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"మీకు గణనీయ ఛార్జీలు విధించబడవచ్చు."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"డేటా వినియోగం"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"ప్రాథమిక డేటా"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> వినియోగించబడింది"</string>
@@ -320,12 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"ప్రీమియం SMSతో మీకు డబ్బు ఖర్చు కావచ్చు, ఈ ఛార్జీ మీ క్యారియర్ బిల్లులలో విధించబడుతుంది. మీరు ఒక యాప్‌కు అనుమతిని ఇస్తే, ఆ యాప్‌ను ఉపయోగించి మీరు ప్రీమియం SMSను పంపగలరు."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"వినియోగ యాక్సెస్"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"వినియోగ యాక్సెస్‌తో యాప్ మీరు ఉపయోగించే ఇతర యాప్‌ల గురించి మరియు వాటిని ఎంత తరచుగా ఉపయోగిస్తున్నారనే దాని గురించి అలాగే మీ క్యారియర్, భాష సెట్టింగ్‌లు మరియు ఇతర వివరాలను ట్రాక్ చేయగలదు."</string>
-    <!-- no translation found for directory_access_title (7117264853202268740) -->
-    <skip />
-    <!-- no translation found for directory_on_volume (4947971311247097078) -->
-    <skip />
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi నియంత్రణ"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"యాప్‌కు Wi-Fiను ఆన్ లేదా ఆఫ్ చేయడానికి, Wi-Fi నెట్‌వర్క్‌లను స్కాన్ చేసి, కనెక్ట్ చేయడానికి, నెట్‌వర్క్‌లను జోడించడానికి లేదా తీసివేయడానికి, స్థానికం-మాత్రమే హాట్‌స్పాట్‌ను ప్రారంభించడానికి ఈ Wi-Fi కంట్రోలర్ అనుమతిస్తుంది."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"మరిన్ని"</string>
     <string name="location_settings_title" msgid="901334356682423679">"స్థానం"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"ఇటీవలి స్థాన అభ్యర్థనలు"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"ఇటీవలి స్థాన అభ్యర్థనలు లేవు"</string>
@@ -338,8 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"బ్లూటూత్ ఆఫ్‌లో ఉన్నప్పుడు కూడా, ఏ సమయంలోనైనా సమీపంలోని పరికరాలను స్కాన్ చేయడానికి యాప్‌లను మరియు సేవలను అనుమతించండి. ఉదాహరణకు, ఇది స్థాన ఆధారిత ఫీచర్‌లు మరియు సేవలను మెరుగుపరచడానికి ఉపయోగించబడుతుంది."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"సిస్టమ్"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"సిస్టమ్ అప్‌డేట్‌లు"</string>
-    <!-- no translation found for status_unavailable (3737918179898732010) -->
-    <skip />
     <string name="firmware_version" msgid="8491753744549309333">"Android వెర్షన్"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android భద్రతా ప్యాచ్ స్థాయి"</string>
     <string name="model_info" msgid="4966408071657934452">"మోడల్"</string>
@@ -347,8 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"కెర్నెల్ వెర్షన్"</string>
     <string name="build_number" msgid="3997326631001009102">"బిల్డ్ సంఖ్య"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"బ్లూటూత్ చిరునామా"</string>
-    <!-- no translation found for about_wifi_mac_address (3934228440550548053) -->
-    <skip />
     <string name="device_info_not_available" msgid="2095601973977376655">"అందుబాటులో లేదు"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"స్థితి"</string>
     <string name="device_status" msgid="267298179806290920">"స్థితి"</string>
@@ -610,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"అంకెలను ఆరోహణ, అవరోహణ క్రమంలో లేదా ఒకే అంకెను వరుసగా పునరావృతంగా ఉపయోగించకూడదు."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"స్క్రీన్ లాక్ ఎంపికలు"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> రోజుల క్రితం"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"విశ్వసనీయ పరికరాన్ని జోడించండి"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"విశ్వసనీయ పరికరం కోసం బ్లూటూత్ ఆన్ అవుతుంది"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"విశ్వసనీయ పరికరాలు"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> పరికరాలు</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> పరికరం</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"కనెక్ట్ అయి ఉన్నప్పుడు మీ <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> మీ కారును అన్‌లాక్ చేస్తుంది. ఎవరైనా మీ <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>ను తీసుకున్నట్లయితే, వారు ఈ పరికరాన్ని యాక్సెస్ చేయగలరు"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"నిర్ధారించు"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"విశ్వసనీయ పరికరాన్ని తీసివేయి"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"పూర్తయింది"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"విశ్వసనీయ పరికరాన్ని సెటప్ చేయడానికి సహచర యాప్‌ను ఉపయోగించండి. ఒకసారి సెటప్ చేసుకున్న తర్వాత, వాహనం దగ్గరలో మీ ఫోన్ కనుగొనబడినప్పుడు మీ వినియోగదారు ప్రొఫైల్ ఆటోమేటిక్‌గా అన్‌లాక్ అవుతుంది."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. మీ ఫోన్‌లో సహచర యాప్‌ను డౌన్‌లోడ్ చేయండి"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. పరికరాలను జత చేయడానికి మీ ఫోన్‌లో <xliff:g id="CAR_NAME">%1$s</xliff:g>ను ఎంచుకోండి"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"కారులో ఎప్పుడైనా నిప్పు అంటుకోవడం లాంటివి జరిగితే, విశ్వసనీయ పరికరాన్ని వేరే వారు పట్టుకుని ఉన్నా కూడా ఆ పరికరం మీ వినియోగదారు ప్రొఫైల్‌ను అన్‌లాక్ చేస్తుంది."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"దయచేసి జత చేసే కోడ్‌లు సరిపోలాయని నిర్ధారించండి"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"ఫోన్ విజయవంతంగా నమోదు చేయబడింది"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> నమోదు విఫలమైంది"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"విశ్వసనీయ పరికరాన్ని జోడించడానికి తర్వాత ప్రమాణీకరణ పద్ధతిని సెట్ చేయాల్సిన అవసరం ఉంది. మీ వద్ద మీ విశ్వసనీయ పరికరం లేకపోతే, మీ ప్రొఫైల్‌ను యాక్సెస్ చేయడానికి ప్రామాణీకరణ చేయాల్సిన అవసరం ఉంది."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"పరికరం డిస్‌కనెక్ట్ చేయబడింది."</string>
     <string name="forget" msgid="3971143908183848527">"విస్మరించు"</string>
     <string name="connect" msgid="5861699594602380150">"కనెక్ట్ చేయి"</string>
     <string name="disconnect" msgid="6140789953324820336">"డిస్‌కనెక్ట్ చేయి"</string>
diff --git a/res/values-th/arrays.xml b/res/values-th/arrays.xml
new file mode 100644
index 0000000..bc1d926
--- /dev/null
+++ b/res/values-th/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"ถาม"</item>
+    <item msgid="933409503308401889">"ไม่อนุญาตเลย"</item>
+    <item msgid="1154273129608299386">"อนุญาตเสมอ"</item>
+  </string-array>
+</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index b658aef..02c3fc6 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"โหมดกลางคืน"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"เครือข่ายและอินเทอร์เน็ต"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"เครือข่ายมือถือ"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ซิม</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ซิม</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"ใช้งานอยู่/ซิม"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"ไม่ได้ใช้งาน/ซิม"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"ใช้งานอยู่/ซิมที่ดาวน์โหลด"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"ไม่ได้ใช้งาน/ซิมที่ดาวน์โหลด"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"เพิ่มอีก"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"เน็ตมือถือ"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"เข้าถึงอินเทอร์เน็ตโดยใช้เครือข่ายมือถือ"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"ปิดเน็ตมือถือใช่ไหม"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"ต้องเลือก"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"ใช้อินเทอร์เน็ตมือถือของ <xliff:g id="CARRIER">%1$s</xliff:g> ไหม"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"คุณกำลังใช้อินเทอร์เน็ตมือถือของ <xliff:g id="CARRIER2_0">%2$s</xliff:g> หากเปลี่ยนเป็น <xliff:g id="CARRIER1">%1$s</xliff:g> ระบบจะหยุดใช้อินเทอร์เน็ตมือถือของ <xliff:g id="CARRIER2_1">%2$s</xliff:g>"</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"ใช้ <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"โรมมิ่ง"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"เชื่อมต่ออินเทอร์เน็ตมือถือขณะโรมมิ่ง"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"อนุญาตการโรมมิ่งข้อมูลไหม"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"คุณอาจต้องเสียค่าใช้จ่ายมาก"</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"ปริมาณการใช้อินเทอร์เน็ต"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"ข้อมูลหลัก"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"ใช้ไป <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"SMS แบบพรีเมียมอาจมีค่าใช้จ่ายและจะเพิ่มเข้าไปในใบเรียกเก็บเงินจากผู้ให้บริการ หากคุณให้สิทธิ์แอปหนึ่งๆ คุณจะใช้แอปนั้นส่ง SMS แบบพรีเมียมได้"</string>
     <string name="usage_access_title" msgid="7153427122072303254">"การเข้าถึงการใช้งาน"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"การเข้าถึงการใช้งานทำให้แอปติดตามได้ว่าคุณกำลังใช้แอปอื่นใดอยู่บ้างในความถี่มากน้อยเท่าใด ตลอดจนทราบข้อมูลผู้ให้บริการ การตั้งค่าภาษา และรายละเอียดอื่นๆ"</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"การเข้าถึงไดเรกทอรี"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"การควบคุม Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"การควบคุม Wi-Fi จะอนุญาตให้แอปเปิดหรือปิด Wi-Fi, สแกนหาและเชื่อมต่อเครือข่าย Wi-Fi, เพิ่มหรือนำเครือข่ายออก หรือเริ่มฮอตสปอตในพื้นที่เท่านั้น"</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"เพิ่มเติม"</string>
     <string name="location_settings_title" msgid="901334356682423679">"ตำแหน่ง"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"คำขอตำแหน่งล่าสุด"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"ไม่มีคำขอตำแหน่งล่าสุด"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"อนุญาตให้แอปและบริการต่างๆ สแกนหาอุปกรณ์ใกล้เคียงตลอดเวลา แม้บลูทูธจะปิดอยู่ การตั้งค่านี้ใช้เพื่อปรับปรุงสิ่งต่างๆ เช่น ฟีเจอร์และบริการตามสถานที่"</string>
     <string name="system_setting_title" msgid="6864599341809463440">"ระบบ"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"การอัปเดตระบบ"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"ไม่พร้อมใช้งาน"</string>
     <string name="firmware_version" msgid="8491753744549309333">"เวอร์ชันของ Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"ระดับแพตช์ความปลอดภัยของ Android"</string>
     <string name="model_info" msgid="4966408071657934452">"รุ่น"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"เวอร์ชันเคอร์เนล"</string>
     <string name="build_number" msgid="3997326631001009102">"หมายเลขบิวด์"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"ที่อยู่บลูทูธ"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"ที่อยู่ MAC ของ Wi-Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"ไม่พร้อมให้บริการ"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"สถานะ"</string>
     <string name="device_status" msgid="267298179806290920">"สถานะ"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"ไม่อนุญาตให้เรียงจากน้อยไปมาก จากมากไปน้อย หรือเรียงลำดับตัวเลขที่ซ้ำกัน"</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"ตัวเลือกการล็อกหน้าจอ"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> วันที่ผ่านมา"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"เพิ่มอุปกรณ์ที่เชื่อถือได้"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"บลูทูธจะเปิดเพื่อเพิ่มอุปกรณ์ที่เชื่อถือได้"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"อุปกรณ์ที่เชื่อถือได้"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other">อุปกรณ์ <xliff:g id="COUNT_1">%d</xliff:g> เครื่อง</item>
+      <item quantity="one">อุปกรณ์ <xliff:g id="COUNT_0">%d</xliff:g> เครื่อง</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> จะปลดล็อกรถคันนี้เมื่อมีการเชื่อมต่อ หากมีคนเอา <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> ของคุณไป เขาก็อาจใช้งานอุปกรณ์นี้ได้"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"ยืนยัน"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"นำอุปกรณ์ที่เชื่อถือได้ออก"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"เสร็จ"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"ใช้แอปที่ใช้ร่วมกันเพื่อตั้งค่าอุปกรณ์ที่เชื่อถือได้ เมื่อตั้งค่าแล้ว โปรไฟล์ผู้ใช้ของคุณจะปลดล็อกโดยอัตโนมัติเมื่อระบบตรวจพบโทรศัพท์ใกล้ยานพาหนะ"</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. ดาวน์โหลดแอปที่ใช้ร่วมกันในโทรศัพท์"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. เลือก <xliff:g id="CAR_NAME">%1$s</xliff:g> ในโทรศัพท์เพื่อจับคู่กับอุปกรณ์"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"อุปกรณ์ที่เชื่อถือได้ใกล้รถของคุณจะปลดล็อกโปรไฟล์ผู้ใช้เมื่อสตาร์ทรถ แม้อุปกรณ์จะอยู่ในมือคนอื่น"</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"โปรดยืนยันว่ารหัสการจับคู่อุปกรณ์ตรงกัน"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"ลงทะเบียนโทรศัพท์เรียบร้อยแล้ว"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"การลงทะเบียน <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ล้มเหลว"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"ในการเพิ่มอุปกรณ์ที่เชื่อถือได้ คุณจำเป็นต้องกำหนดวิธีการตรวจสอบสิทธิ์ในขั้นถัดไป หากไม่มีอุปกรณ์ที่เชื่อถือได้ ระบบจะขอให้มีการตรวจสอบสิทธิ์ในการเข้าถึงโปรไฟล์ของคุณ"</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"อุปกรณ์ถูกตัดการเชื่อมต่อ"</string>
     <string name="forget" msgid="3971143908183848527">"ลืม"</string>
     <string name="connect" msgid="5861699594602380150">"เชื่อมต่อ"</string>
     <string name="disconnect" msgid="6140789953324820336">"ยกเลิกการเชื่อมต่อ"</string>
diff --git a/res/values-tl/arrays.xml b/res/values-tl/arrays.xml
new file mode 100644
index 0000000..701c61a
--- /dev/null
+++ b/res/values-tl/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Magtanong"</item>
+    <item msgid="933409503308401889">"Huwag kailanman payagan"</item>
+    <item msgid="1154273129608299386">"Palaging payagan"</item>
+  </string-array>
+</resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 13f82ae..b2ab7c3 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Night mode"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Network at internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mobile network"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> na SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Aktibo / SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Hindi aktibo / SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Aktibo / Na-download na SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Hindi aktibo / Na-download na SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Magdagdag pa"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Mobile data"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"I-access ang data gamit ang mobile network"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"I-off ang mobile data?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Kinakailangang pumili"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Gamitin ang <xliff:g id="CARRIER">%1$s</xliff:g> sa mobile data?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Ginagamit mo ang <xliff:g id="CARRIER2_0">%2$s</xliff:g> para sa mobile data. Kung lilipat ka sa <xliff:g id="CARRIER1">%1$s</xliff:g>, hindi na gagamitin ang <xliff:g id="CARRIER2_1">%2$s</xliff:g> para sa mobile data."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Gamitin ang <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Roaming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Kumonekta sa mga serbisyo ng data kapag naka-roaming"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Payagan ang data roaming?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Puwede kang magkaroon ng malaking bayarin."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Paggamit ng data"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Pangunahing data"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> ang nagamit"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Puwedeng kailanganin mong magbayad para sa Premium SMS at isasama ito sa mga singilin ng iyong carrier. Kung ie-enable mo ang pahintulot para sa isang app, magagawa mong magpadala ng premium SMS gamit ang app na iyon."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Access sa paggamit"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Ang access sa paggamit ay nagbibigay-daan sa isang app na subaybayan kung ano ang iba pang app na ginagamit mo at kung gaano kadalas, pati ang iyong carrier, mga setting ng wika, at iba pang detalye."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Access sa directory"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Kontrol sa Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Nagbibigay-daan ang kontrol sa Wi-Fi na i-on o i-off ng isang app ang Wi-Fi, mag-scan ng at kumonekta sa mga Wi-Fi network, magdagdag o mag-alis ng mga network, o magsimula ng panglokal lang na hotspot."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Higit pa"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Lokasyon"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Mga Kamakailang Kahilingan sa Lokasyon"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Walang kamakailang kahilingan sa lokasyon"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Bigyang-daan ang mga app at serbisyo na mag-scan ng mga kalapit na device anumang oras, kahit na naka-off ang Bluetooth. Magagamit ito, halimbawa, para pahusayin ang mga feature at serbisyong batay sa lokasyon."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"System"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Mga pag-update ng system"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Hindi available"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Bersyon ng Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"Antas ng patch ng seguridad ng Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Modelo"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Kernel version"</string>
     <string name="build_number" msgid="3997326631001009102">"Numero ng build"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Address ng bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"MAC Address ng Wi-Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Hindi available"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Status"</string>
     <string name="device_status" msgid="267298179806290920">"Status"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Hindi pinapayagan ang pataas, pababa, o paulit-ulit na pagkakasunod-sunod ng mga digit."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Mga opsyon sa lock ng screen"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> (na) araw ang nakalipas"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Magdagdag ng trusted na device"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Mag-o-on ang Bluetooth para idagdag ang pinagkakatiwalaang device"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Trusted na device"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> device</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> na device</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"Maa-unlock ng iyong <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> ang kotseng ito kapag nakakonekta ito. Kung may kumuha ng iyong <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, maaari niyang ma-access ang device na ito"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Kumpirmahin"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Mag-alis ng pinagkakatiwalaang device"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Tapos na"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Buksan ang kasamang app para mag-set up ng pinagkakatiwalaang device. Kapag na-set up na, awtomatikong maa-unlock ang iyong profile ng user kapag na-detect na malapit sa sasakyan ang telepono."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. I-download ang kasamang app sa iyong telepono"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Piliin ang <xliff:g id="CAR_NAME">%1$s</xliff:g> sa iyong telepono para ipares ang mga device"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Ia-unlock ng pinagkakatiwalaang device malapit sa iyong kotse ang profile ng user kapag pinaandar ito, kahit na ibang tao ang humahawak sa device."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Pakikumpirma kung magkatugma ang mga code ng pagpapares"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Matagumpay na na-enroll ang teleponono"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Hindi na-enroll ang <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Kapag nagdagdag ng pinagkakatiwalaang device, kinakailangan mong magtakda ng paraan ng pag-authenticate. Kung wala sa iyo ang pinagkakatiwalaan mong device, kakailanganin ang pag-authenticate para ma-access ang iyong profile."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Nadiskonekta ang device."</string>
     <string name="forget" msgid="3971143908183848527">"Kalimutan"</string>
     <string name="connect" msgid="5861699594602380150">"Kumonekta"</string>
     <string name="disconnect" msgid="6140789953324820336">"Idiskonekta"</string>
diff --git a/res/values-tr/arrays.xml b/res/values-tr/arrays.xml
new file mode 100644
index 0000000..9f1c8b2
--- /dev/null
+++ b/res/values-tr/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Sor"</item>
+    <item msgid="933409503308401889">"Asla izin verme"</item>
+    <item msgid="1154273129608299386">"Her zaman izin ver"</item>
+  </string-array>
+</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 54493ee..6290cc5 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Gece modu"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Ağ ve internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mobil ağ"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Etkin/SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Etkin değil/SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Etkin/İndirilen SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Etkin değil/İndirilen SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Başka ekle"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Mobil veri"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Verilere mobil ağ üzerinden erişim"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Mobil veri kapatılsın mı?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Seçim yapmanız gerekiyor"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Mobil veride <xliff:g id="CARRIER">%1$s</xliff:g> kullanılsın mı?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Mobil veri için <xliff:g id="CARRIER2_0">%2$s</xliff:g> operatörünü kullanıyorsunuz. <xliff:g id="CARRIER1">%1$s</xliff:g> operatörüne geçiş yaparsanız mobil veri için <xliff:g id="CARRIER2_1">%2$s</xliff:g> operatörünü artık kullanamazsınız."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g> adlı operatörü kullan"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Dolaşım"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Dolaşımdayken veri hizmetlerine bağlan"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Veri dolaşımına izin verilsin mi?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Yüksek miktarda ücretler ödeyebilirsiniz."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Veri kullanımı"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Birincil veriler"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> kullanıldı"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Premium SMS kullanımı, para ödemenizi gerektirebilir ve bu ücret operatör faturanıza eklenir. Bir uygulamaya bu izni verdiğinizde söz konusu uygulamayı kullanarak premium SMS gönderebilirsiniz."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Kullanım erişimi"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Kullanım erişimi vermeniz hâlinde uygulama, başka hangi uygulamaları ve ne sıklıkta kullandığınızı, operatörünüzü, dil ayarlarınızı ve diğer ayrıntıları takip edebilir."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Dizin erişimi"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi kontrolü"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Kablosuz bağlantı kontrolü, bir uygulamanın kablosuz bağlantıyı açmasına veya kapatmasına, kablosuz ağları taramasına, eklemesine ya da kaldırmasına, kablosuz ağlara bağlanmasına veya yalnızca yerel hotspot bağlantısı başlatmasına izin verir."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Daha fazla"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Konum"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Yeni Konum İstekleri"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Yeni konum isteği yok"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Uygulamaların ve hizmetlerin etrafınızdaki cihazları Bluetooth kapalıyken bile her zaman taramasına izin verin. Bu özellik, konuma dayalı özellikleri ve hizmetleri iyileştirme gibi amaçlar için kullanılabilir."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Sistem"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Sistem güncellemeleri"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Kullanılamıyor"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android sürümü"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android güvenlik yaması düzeyi"</string>
     <string name="model_info" msgid="4966408071657934452">"Model"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Çekirdek sürümü"</string>
     <string name="build_number" msgid="3997326631001009102">"Derleme numarası"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth adresi"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Kablosuz MAC Adresi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Kullanılamıyor"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Durum"</string>
     <string name="device_status" msgid="267298179806290920">"Durum"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Artan, azalan veya tekrar eden rakam dizisine izin verilmez."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Ekran kilidi seçenekleri"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> gün önce"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Güvenilen cihaz ekle"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth, güvenilen cihaz eklemek için açılacak"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Güvenilen cihazlar"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> cihaz</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> cihaz</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> cihazınız bu araca bağlı olduğunda aracın kilidini açacaktır. <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> cihazınız bir kişinin eline geçerse bu kişi cihazınıza erişebilir."</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Onayla"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Güvenilen cihazı kaldır"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Bitti"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Güvenilen cihaz ayarlamak için tamamlayıcı uygulamayı kullanın. Ayarlama yapıldıktan sonra telefonunuz aracın yakınında algılandığında kullanıcı profiliniz kilidi otomatik olarak açacaktır."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Tamamlayıcı uygulamayı telefonunuza indirin"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Cihazları eşlemek için telefonunuzda <xliff:g id="CAR_NAME">%1$s</xliff:g> seçimini yapın"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Aracınızın yakınındaki güvenilen bir cihaz, cihazı başka biri tutuyor olsa bile kontak açıldıktan sonra kullanıcı profilinin kilidini açacaktır."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Lütfen eşleme kodlarının eşleştiğini onaylayın"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Telefon başarıyla kaydedildi"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> kaydı başarısız oldu"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Güvenilen cihaz eklemek için kimlik doğrulama yöntemi belirlemeniz gerekir. Güvenilen cihazınız yanınızda değilse profilinize erişmek için kimlik doğrulama gerekecektir."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Cihazın bağlantısı kesildi."</string>
     <string name="forget" msgid="3971143908183848527">"Unut"</string>
     <string name="connect" msgid="5861699594602380150">"Bağlan"</string>
     <string name="disconnect" msgid="6140789953324820336">"Bağlantıyı kes"</string>
diff --git a/res/values-uk/arrays.xml b/res/values-uk/arrays.xml
new file mode 100644
index 0000000..a2df917
--- /dev/null
+++ b/res/values-uk/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Запитувати"</item>
+    <item msgid="933409503308401889">"Ніколи не дозволяти"</item>
+    <item msgid="1154273129608299386">"Завжди дозволяти"</item>
+  </string-array>
+</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 9a515c6..3f875b0 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -31,9 +31,28 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Нічний режим"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Мережа й Інтернет"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Мобільна мережа"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-карта</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-карти</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-карт</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM-карти</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Активовано/SIM-карта"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Не активовано/SIM-карта"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Активовано/завантажена SIM-карта"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Не активовано/завантажена SIM-карта"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Додати ще"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Мобільне передавання даних"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Доступ до даних через мобільну мережу"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Вимкнути мобільне передавання даних?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Виберіть варіант"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Використовувати оператора <xliff:g id="CARRIER">%1$s</xliff:g> для мобільного передавання даних?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Оператор <xliff:g id="CARRIER2_0">%2$s</xliff:g> використовується для мобільного передавання даних. Якщо ви перейдете до оператора <xliff:g id="CARRIER1">%1$s</xliff:g>, <xliff:g id="CARRIER2_1">%2$s</xliff:g> більше не використовуватиметься для мобільного передавання."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Використовувати <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Роумінг"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Підключатися до сервісів передавання даних у роумінгу"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Дозволити роумінг даних?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Може стягуватися значна плата."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Використання трафіку"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Основні дані"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Використано: <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -187,7 +206,7 @@
     <string name="keyboard_settings" msgid="1959697870618278081">"Клавіатура"</string>
     <string name="manage_keyboard" msgid="4045394766282200132">"Керуйте клавіатурами"</string>
     <string name="text_to_speech_settings" msgid="811985746199507343">"Вивід синтезу мовлення"</string>
-    <string name="text_to_speech_preferred_engine_settings" msgid="2766782925699132256">"Система за умовчанням"</string>
+    <string name="text_to_speech_preferred_engine_settings" msgid="2766782925699132256">"Бажана система"</string>
     <string name="text_to_speech_current_engine" msgid="8133107484909612597">"Поточна система"</string>
     <string name="tts_speech_rate" msgid="4512944877291943133">"Темп мовлення"</string>
     <string name="tts_pitch" msgid="2389171233852604923">"Тон"</string>
@@ -324,10 +343,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Кошти за платні SMS стягує оператор. Ви зможете надсилати платні SMS у додатку, якому надасте такий дозвіл."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Доступ до історії використання"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Завдяки доступу до історії використання додаток може відстежувати, які інші додатки ви використовуєте та як часто, а також визначати назву вашого оператора, налаштування мови й інші відомості."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Доступ до каталогу"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Керування Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Додаток із дозволом на керування Wi-Fi може вмикати й вимикати Wi-Fi, шукати, додавати й вилучати мережі, підключатися до них, а також запускати локальну точку доступу."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Більше"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Місце"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Останні запити на геодані"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Немає останніх запитів на геодані"</string>
@@ -340,7 +358,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Дозволити додаткам і службам будь-коли шукати пристрої поруч, навіть коли Bluetooth вимкнено. Це може покращити, наприклад, роботу функцій і служб, які використовують геодані."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Система"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Оновлення системи"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Недоступно"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Версія Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"Рівень виправлення системи безпеки Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Модель"</string>
@@ -348,7 +365,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Версія ядра"</string>
     <string name="build_number" msgid="3997326631001009102">"Номер складання"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Адреса Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"MAC-адреса Wi-Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Недоступно"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Статус"</string>
     <string name="device_status" msgid="267298179806290920">"Статус"</string>
@@ -626,6 +642,28 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Заборонено однакові цифри або в порядку зростання чи спадання."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Способи блокування екрана"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> дн. тому"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Додати надійний пристрій"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth увімкнеться, щоб додати надійні пристрої"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Надійні пристрої"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> пристрій</item>
+      <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> пристрої</item>
+      <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> пристроїв</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> пристрою</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> буде розблоковувати автомобіль, якщо його підключити. <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> надає доступ до цього пристрою в будь-чиїх руках"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Підтвердити"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Вилучити надійний пристрій"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Готово"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Налаштуйте надійний пристрій у супутньому додатку. Тоді ваш профіль користувача розблокуватиметься автоматично, коли телефон підключиться до транспортного засобу."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Завантажте супутній додаток на телефон"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. На телефоні виберіть <xliff:g id="CAR_NAME">%1$s</xliff:g>, щоб підключити пристрої"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Надійний пристрій розблоковує профіль користувача після запалювання, якщо він поруч, навіть в іншої людини."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Підтвердьте, що коди підключення збігаються"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Телефон зареєстровано"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Не вдалося зареєструвати пристрій <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Додавши надійний пристрій, потрібно налаштувати спосіб автентифікації. Якщо пристрій не з вами, автентифікація знадобиться для доступу в профіль."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Утрачено з’єднання з пристроєм."</string>
     <string name="forget" msgid="3971143908183848527">"Забути"</string>
     <string name="connect" msgid="5861699594602380150">"Підключити"</string>
     <string name="disconnect" msgid="6140789953324820336">"Від’єднати"</string>
diff --git a/res/values-ur/arrays.xml b/res/values-ur/arrays.xml
new file mode 100644
index 0000000..7cdd01d
--- /dev/null
+++ b/res/values-ur/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"پوچھیں"</item>
+    <item msgid="933409503308401889">"کبھی اجازت نہ دیں"</item>
+    <item msgid="1154273129608299386">"ہمیشہ اجازت دیں"</item>
+  </string-array>
+</resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 475093b..59973fa 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"نائٹ موڈ"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"نیٹ ورک اور انٹرنیٹ"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"موبائل نیٹ ورک"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other">‎<xliff:g id="COUNT_1">%1$d</xliff:g> SIMs</item>
+      <item quantity="one">‎<xliff:g id="COUNT_0">%1$d</xliff:g> SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"فعال / SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"غیر فعال / SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"فعال / ڈاؤن لوڈ کردہ SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"غیر فعال / ڈاؤن لوڈ کردہ SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"مزید شامل کریں"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"موبائل ڈیٹا"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"موبائل نیٹ ورک کے ذریعے ڈیٹا تک رسائی حاصل کریں"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"موبائل ڈیٹا آف کریں؟"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"انتخاب درکار ہے"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"موبائل ڈیٹا کیلئے <xliff:g id="CARRIER">%1$s</xliff:g> یوز کریں؟"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"آپ موبائل ڈیٹا کے لیے <xliff:g id="CARRIER2_0">%2$s</xliff:g> استعمال کر رہے ہیں۔ اگر آپ <xliff:g id="CARRIER1">%1$s</xliff:g> پر سوئچ کریں گے تو <xliff:g id="CARRIER2_1">%2$s</xliff:g> کو موبائل ڈیٹا کے لیے مزید استعمال نہیں کیا جائے گا۔"</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g> استعمال کریں"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"رومنگ"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"رومنگ کے وقت ڈیٹا سروسز سے منسلک کریں"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"ڈیٹا رومنگ کی اجازت دیں؟"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"آپ پر خاطر خواہ چارجز لگ سکتے ہیں۔"</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"ڈیٹا کا استعمال"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"بنیادی ڈیٹا"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> استعمال شدہ"</string>
@@ -320,12 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"ہو سکتا ہے آپ کو پریمیم SMS کے پیسے ادا کرنا پڑیں اور یہ آپ کے کیرئیر بلز میں شامل ہو جائیں گے۔ اگر آپ ایک ایپ کیلئے اجازت فعال کرتے ہیں تو آپ اس ایپ کو استعمال کرکے آپ پریمیم SMS بھیج پائیں گے۔"</string>
     <string name="usage_access_title" msgid="7153427122072303254">"استعمال تک رسائی"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"استعمال تک رسائی کسی ایپ کو آپ کا کیریئر، زبان کی ترتیبات اور دیگر تفصیلات سمیت یہ ٹریک کرنے کی اجازت دیتی ہے کہ آپ کن دیگر ایپس کو اور کتنی بار استعمال کر رہے ہیں۔"</string>
-    <!-- no translation found for directory_access_title (7117264853202268740) -->
-    <skip />
-    <!-- no translation found for directory_on_volume (4947971311247097078) -->
-    <skip />
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi کنٹرول"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Wi-Fi کنٹرول ایپ کو Wi-Fi آن یا آف کرنے، Wi-Fi نیٹ ورکس اسکین اور ان سے منسلک کرنے، نیٹ ورکس شامل کرنے یا ہٹانے یا صرف مقامی ہاٹ اسپاٹ شروع کرنے کی اجازت دیتا ہے۔"</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"مزید"</string>
     <string name="location_settings_title" msgid="901334356682423679">"مقام"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"مقام کی حالیہ درخواستیں"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"مقام کی کوئی حالیہ درخواست نہیں ہے"</string>
@@ -338,8 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"بلوٹوتھ کے آف ہونے پر بھی ایپس اور سروسز کو کسی بھی وقت قریبی آلات اسکین کرنے کی اجازت دیں۔ مثال کے طور، اسے مقام پر مبنی خصوصیات اور سروسز کو بہتر بنانے کے لیے استعمال کیا جا سکتا ہے۔"</string>
     <string name="system_setting_title" msgid="6864599341809463440">"سسٹم"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"سسٹم اپ ڈیٹس"</string>
-    <!-- no translation found for status_unavailable (3737918179898732010) -->
-    <skip />
     <string name="firmware_version" msgid="8491753744549309333">"Android ورژن"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android سیکیورٹی پیچ کی سطح"</string>
     <string name="model_info" msgid="4966408071657934452">"ماڈل"</string>
@@ -347,8 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"کرنل ورژن"</string>
     <string name="build_number" msgid="3997326631001009102">"بلڈ نمبر"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"بلوٹوتھ پتہ"</string>
-    <!-- no translation found for about_wifi_mac_address (3934228440550548053) -->
-    <skip />
     <string name="device_info_not_available" msgid="2095601973977376655">"دستیاب نہیں ہے"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"صورتحال"</string>
     <string name="device_status" msgid="267298179806290920">"صورتحال"</string>
@@ -610,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"ہندسوں کی صعودی، نزولی یا مکرر ترتیب کی اجازت نہیں ہے۔"</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"اسکرین لاک کے اختیارات"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> دن پہلے"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"بھروسہ مند آلہ شامل کریں"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"بھروسہ مند آلات شامل کے لیے بلوٹوتھ آن ہو جائے گا"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"بھروسہ مند آلات"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> آلات</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> آلہ</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"منسلک ہونے پر آپ کا <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> اس کار کو غیر مقفل کر دے گا۔ اگر کوئی شخص آپ کا <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> لیتا ہے تو اسے اس آلہ تک رسائی حاصل ہو سکتی ہے"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"تصدیق کریں"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"بھروسہ مند آلہ ہٹائیں"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"ہو گیا"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"بھروسہ مند آلہ کو سیٹ اپ کرنے کے لیے ساتھی ایپ کا استعمال کریں۔ ایک بار سیٹ اپ ہو جانے پر، وہیکل کے قریب آپ کا فون دریافت ہونے پر آپ کا صارف پروفائل خودکار طور پر غیر مقفل ہو جائے گا۔"</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1۔ اپنے فون پر ساتھی ایپ ڈاؤن لوڈ کریں"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2۔ آلات کو جوڑنے کے لیے فون پر <xliff:g id="CAR_NAME">%1$s</xliff:g> منتخب کریں"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"آپ کی کار کے قریب ایک بھروسہ مند آلہ آتش زنی پر صارف پروفائل کو غیر مقفل کر دے گا، اس وقت بھی جب کوئی اور آلے کو پکڑے ہوئے ہے۔"</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"براہ کرم توثیق کریں کہ جوڑا بنانے کے کوڈز مماثل ہیں"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"فون کامیابی کے ساتھ اندراج کر دیا گیا ہے"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> اندراج ناکام ہوگیا"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"بھروسہ مند آلہ شامل کرنے کے لیے آپ کو آگے ایک تصدیقی طریقہ سیٹ کرنا ہوگا۔ اگر آپ کے پاس بھروسہ مند آلہ نہیں ہے تو آپ کے پروفائل تک رسائی حاصل کرنے کے لیے تصدیق درکار ہوگی۔"</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"آلہ غیر منسلک ہو گیا۔"</string>
     <string name="forget" msgid="3971143908183848527">"بھول جائیں"</string>
     <string name="connect" msgid="5861699594602380150">"منسلک کریں"</string>
     <string name="disconnect" msgid="6140789953324820336">"غیر منسلک کریں"</string>
diff --git a/res/values-uz/arrays.xml b/res/values-uz/arrays.xml
new file mode 100644
index 0000000..a9d61e3
--- /dev/null
+++ b/res/values-uz/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Soʻrash"</item>
+    <item msgid="933409503308401889">"Hech qachon ruxsat berilmasin"</item>
+    <item msgid="1154273129608299386">"Har doim ruxsat berilsin"</item>
+  </string-array>
+</resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index a870e27..100bb4d 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Tungi rejim"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Tarmoq va Internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mobil tarmoq"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ta SIM karta</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> ta SIM karta</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Faol / SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Nofaol / SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Faol / Yuklab olingan SIM"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Nofaol / Yuklab olingan SIM"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Yana"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Mobil internet"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Mobil internet trafik sarfi"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Mobil internet uzilsinmi?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Tanlash zarur"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Internet uchun <xliff:g id="CARRIER">%1$s</xliff:g> ishlatilsinmi?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Mobil internet uchun <xliff:g id="CARRIER2_0">%2$s</xliff:g> ishlatmoqdasiz. <xliff:g id="CARRIER1">%1$s</xliff:g> faollashtirilganda, <xliff:g id="CARRIER2_1">%2$s</xliff:g> qayta mobil internet uchun ishlatilmaydi."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"<xliff:g id="CARRIER">%1$s</xliff:g> ishlatish"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Rouming"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Rouming vaqtida mobil internetga ulanish"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Internet-roumingga ruxsat berilsinmi?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Roumingda internet narxi ancha yuqori."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Trafik sarfi"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Asosiy trafik"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> sarflandi"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"SMS uchun sizdan haq olinishi va operatorga qoʻshimcha to‘lov amalga oshirilishi mumkin. Agar ilova uchun ruxsatnoma taqdim etsangiz, oʻsha ilovadan SMS yuborishingiz mumkin boʻladi."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Foydalanish tarixiga kirish"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Foydalanish tarixiga kirish huquqi qanday ilovalardan va qancha muddatda foydalanishingiz, shuningdek, tarmoq operatori, til va boshqa parametrlarni kuzatish imkonini beradi."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Kataloglarga kirish"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi tarmoqlarni boshqarish"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Wi-Fi tarmoqlarni boshqarish ilovaga Wi-Fi aloqasini yoqish yoki faolsizlantirish, Wi-Fi tarmoqlarni aniqlash va ularga ulanish, tarmoqlar kiritish yoki ularni olib tashlash yoki faqat mahalliy hotspotni ishga tushirish imkoniyatini beradi."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Yana"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Joylashuv"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Oxirgi joylashuv axboroti talablari"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Hech qanday joylashuvga oid talablar olinmagan"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Bluetooth yoniq emasligida ham ilovalar va xizmatlarga yaqin-atrofdagi qurilmalarni qidirish uchun ruxsat. Shunda joylashuv axborotiga asoslangan funksiya va xizmatlarning ishlashi yanada yaxshilanadi."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Tizim"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Tizimni yangilash"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Mavjud emas"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android versiyasi"</string>
     <string name="security_patch" msgid="4794276590178386903">"Tizim xavfsizligi uchun yangilanish"</string>
     <string name="model_info" msgid="4966408071657934452">"Modeli"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Yadro versiyasi"</string>
     <string name="build_number" msgid="3997326631001009102">"Nashr raqami"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Bluetooth manzili"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Wi‑Fi MAC manzili"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Mavjud emas"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Holati"</string>
     <string name="device_status" msgid="267298179806290920">"Holati"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Oshib boruvchi, kamayib boruvchi yoki qaytarilgan ketma-ket raqamlarga ruxsat berilmaydi."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Ekran qulfi parametrlari"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> kun oldin"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Ishonchli qurilma kiritish"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Qurilmani kiritish uchun Bluetooth yoqiladi"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Ishonchli qurilmalar"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> ta qurilma</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> ta qurilma</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> avtomobilga ulanishi bilan uning qulfini ochadi. <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> yordamida boshqalar ham bu qurilmaga kira oladi"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"OK"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Ishonchli qurilmani olib tashlash"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"OK"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Ishonchli qurilma sifatida sozlash uchun hamroh ilovadan foydalaning. Sozlangandan keyin telefoningizni avtomobil tanishi bilan foydalanuvchi profilingizni qulfdan chiqarish imkoni paydo boʻladi"</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Telefoningiz orqali hamroh ilovani yuklab oling"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Qurilmalarni bir-biriga ulash uchun telefoningizdan <xliff:g id="CAR_NAME">%1$s</xliff:g> nomini tanlang"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Ishonchli qurilmangizni boshqa odam ushlab turgan holda ham, avtomobilingiz motori oʻt olgandan keyin foydalanuvchi profilini qulfdan chiqarish mumkin."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Ulanish kodlari bir xil ekanligini tasdiqlang"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Telefon qayd qilindi"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> qayd qilinmadi"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Ishonchl qurilma kiritgandan keyin autentifikatsiya usulini sozlash talab qilinadi. Agar ishonchli qurilma yoningizda boʻlmasa, autentifikatsiya profilingizga kirishda talab etiladi."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Qurilma uzildi."</string>
     <string name="forget" msgid="3971143908183848527">"Olib tashlash"</string>
     <string name="connect" msgid="5861699594602380150">"Ulash"</string>
     <string name="disconnect" msgid="6140789953324820336">"Uzish"</string>
diff --git a/res/values-vi/arrays.xml b/res/values-vi/arrays.xml
new file mode 100644
index 0000000..3fe8aa1
--- /dev/null
+++ b/res/values-vi/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Hỏi"</item>
+    <item msgid="933409503308401889">"Không bao giờ cho phép"</item>
+    <item msgid="1154273129608299386">"Luôn cho phép"</item>
+  </string-array>
+</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 674ee8c..b78f271 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Chế độ ban đêm"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Mạng và Internet"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Mạng di động"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Đang hoạt động/SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Không hoạt động/SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Đang hoạt động/Đã tải SIM xuống"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Không hoạt động/Đã tải SIM xuống"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Thêm"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Dữ liệu di động"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Sử dụng dữ liệu qua mạng di động"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Tắt dữ liệu di động?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Cần phải lựa chọn"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Sử dụng <xliff:g id="CARRIER">%1$s</xliff:g> cho dữ liệu di động?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Bạn đang sử dụng <xliff:g id="CARRIER2_0">%2$s</xliff:g> cho dữ liệu di động. Nếu chuyển sang <xliff:g id="CARRIER1">%1$s</xliff:g>, bạn sẽ không dùng được <xliff:g id="CARRIER2_1">%2$s</xliff:g> cho dữ liệu di động nữa."</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Sử dụng <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Chuyển vùng"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Kết nối với dịch vụ dữ liệu khi chuyển vùng"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Cho phép chuyển vùng dữ liệu?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Bạn có thể phải trả khoản phí đáng kể."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Mức sử dụng dữ liệu"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Dữ liệu chính"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"Đã dùng <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"Tin nhắn dịch vụ có thể làm bạn mất tiền và sẽ cộng thêm vào hóa đơn nhà mạng của bạn. Nếu cấp quyền cho một ứng dụng, thì bạn có thể gửi Tin nhắn dịch vụ bằng ứng dụng đó."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Quyền truy cập dữ liệu sử dụng"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Quyền truy cập vào dữ liệu sử dụng cho phép một ứng dụng theo dõi các ứng dụng khác mà bạn đang dùng và tần suất sử dụng, cũng như thông tin nhà mạng, các tùy chọn cài đặt ngôn ngữ và thông tin chi tiết khác."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Quyền truy cập vào thư mục"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Kiểm soát Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Tùy chọn kiểm soát Wi-Fi cho phép một ứng dụng bật/tắt Wi-Fi, quét và kết nối vào mạng Wi-Fi, thêm/xóa mạng hoặc bắt đầu một điểm phát sóng chỉ dành cho mạng cục bộ."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Xem thêm"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Vị trí"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Yêu cầu vị trí gần đây"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Không có yêu cầu vị trí gần đây nào"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Cho phép các ứng dụng và dịch vụ quét tìm thiết bị lân cận bất kỳ lúc nào, ngay cả khi Bluetooth đang tắt. Bạn có thể sử dụng tùy chọn cài đặt này để cải thiện các tính năng và dịch vụ dựa trên vị trí."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Hệ thống"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Bản cập nhật hệ thống"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Không có sẵn"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Phiên bản Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"Cấp bản vá bảo mật của Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Kiểu máy"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Phiên bản Kernel"</string>
     <string name="build_number" msgid="3997326631001009102">"Số bản dựng"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Địa chỉ Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Địa chỉ MAC của Wi-Fi"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Không có"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Trạng thái"</string>
     <string name="device_status" msgid="267298179806290920">"Trạng thái"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Không cho phép thứ tự chữ số tăng dần, giảm dần hoặc lặp lại."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Tùy chọn phương thức khóa màn hình"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> ngày trước"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Thêm thiết bị tin cậy"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"Bluetooth sẽ bật để thêm thiết bị tin cậy"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Thiết bị tin cậy"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> thiết bị</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> thiết bị</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> của bạn sẽ mở khóa ô tô này khi kết nối với ô tô. Nếu người khác cầm <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g> của bạn, họ có thể truy cập vào thiết bị này"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Xác nhận"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Xóa thiết bị tin cậy"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Xong"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Dùng ứng dụng đồng hành để thiết lập thiết bị tin cậy. Sau khi thiết lập xong, hồ sơ người dùng của bạn sẽ tự động mở khóa khi hệ thống phát hiện điện thoại ở gần ô tô."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Tải ứng dụng đồng hành xuống điện thoại"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Chọn <xliff:g id="CAR_NAME">%1$s</xliff:g> trên điện thoại để ghép nối các thiết bị"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Thiết bị tin cậy ở gần ô tô của bạn sẽ mở khóa hồ sơ người dùng khi ô tô nổ máy, kể cả khi người khác đang giữ thiết bị này."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Vui lòng xác nhận rằng mã ghép nối trùng khớp"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Đã đăng ký thành công điện thoại"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Không đăng ký được <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Sau khi thêm thiết bị tin cậy, bạn phải đặt một phương thức xác thực. Nếu không mang theo thiết bị tin cậy, bạn sẽ phải sử dụng phương thức xác thực này để truy cập hồ sơ của mình."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Đã ngắt kết nối thiết bị."</string>
     <string name="forget" msgid="3971143908183848527">"Xóa"</string>
     <string name="connect" msgid="5861699594602380150">"Kết nối"</string>
     <string name="disconnect" msgid="6140789953324820336">"Ngắt kết nối"</string>
diff --git a/res/values-zh-rCN/arrays.xml b/res/values-zh-rCN/arrays.xml
new file mode 100644
index 0000000..b6ec898
--- /dev/null
+++ b/res/values-zh-rCN/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"询问"</item>
+    <item msgid="933409503308401889">"一律不允许"</item>
+    <item msgid="1154273129608299386">"一律允许"</item>
+  </string-array>
+</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 8da4ac2..a6cf95a 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"夜间模式"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"网络和互联网"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"移动网络"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> 个 SIM 卡</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> 个 SIM 卡</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"已启用/SIM 卡"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"未启用/SIM 卡"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"已启用/已下载的 SIM 卡"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"未启用/已下载的 SIM 卡"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"添加更多"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"移动数据"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"通过移动网络访问数据"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"要关闭移动数据网络吗？"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"必须选择"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"要使用<xliff:g id="CARRIER">%1$s</xliff:g>的移动数据吗？"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"您目前使用的是<xliff:g id="CARRIER2_0">%2$s</xliff:g>的移动数据。如果切换到<xliff:g id="CARRIER1">%1$s</xliff:g>，系统将不再使用<xliff:g id="CARRIER2_1">%2$s</xliff:g>的移动数据。"</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"使用<xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"漫游"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"漫游时连接到移动数据网络服务"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"要允许数据网络漫游吗？"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"这可能会产生高额费用。"</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"流量消耗"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"主要数据"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"已使用 <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -322,10 +339,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"“付费短信”可能会产生费用，而且相关费用将计入您的运营商帐单。如果您为某个应用启用该权限，那么您将能够使用该应用发送付费短信。"</string>
     <string name="usage_access_title" msgid="7153427122072303254">"使用情况访问权限"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"向应用授予“使用情况访问权限”后，应用即可跟踪您正在使用的其他应用和使用频率，以及您的运营商、语言设置及其他详细信息。"</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"目录访问权限"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g>（<xliff:g id="DIRECTORY">%2$s</xliff:g>）"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"WLAN 控制"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"向应用授予“WLAN 控制”权限后，应用就能开启或关闭 WLAN、扫描及连接到 WLAN 网络、添加或移除网络，或启动仅限本地的热点。"</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"更多"</string>
     <string name="location_settings_title" msgid="901334356682423679">"位置信息"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"最近的位置信息请求"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"最近没有任何位置信息请求"</string>
@@ -338,7 +354,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"允许应用和服务随时扫描附近的设备（即使蓝牙已关闭）。这可用于改进基于位置的功能和服务。"</string>
     <string name="system_setting_title" msgid="6864599341809463440">"系统"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"系统更新"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"不可用"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android 版本"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android 安全补丁程序级别"</string>
     <string name="model_info" msgid="4966408071657934452">"型号"</string>
@@ -346,7 +361,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"内核版本"</string>
     <string name="build_number" msgid="3997326631001009102">"版本号"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"蓝牙地址"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"WLAN MAC 地址"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"未提供"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"状态"</string>
     <string name="device_status" msgid="267298179806290920">"状态"</string>
@@ -609,6 +623,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"不允许使用以升序、降序或重复序列进行排列的一串数字。"</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"屏幕锁定选项"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g>：<xliff:g id="NUM_DAYS">%3$s</xliff:g> 天前"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"添加可信设备"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"系统将开启蓝牙以添加可信设备"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"可信设备"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> 台设备</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> 台设备</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"您的 <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> 会在连接到这辆车后将其解锁。如果有人拿到您的 <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>，对方也许能够访问此设备"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"确认"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"移除可信设备"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"完成"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"请使用配套应用来设置可信设备。设置后，您的用户个人资料就会在系统检测到手机位于汽车附近时自动解锁。"</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1.在手机上下载配套应用"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2.在手机上选择“<xliff:g id="CAR_NAME">%1$s</xliff:g>”以与相应设备配对"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"只要可信设备位于您的汽车附近，即可在汽车发动后将用户个人资料解锁（即使该设备在其他人手中也是如此）。"</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"请确认配对码是否一致"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"手机已成功注册"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> 注册失败"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"添加可信设备后，接下来您必须设置身份验证方法。如果您没有随身携带可信设备，则必须进行身份验证才能访问自己的个人资料。"</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"设备已断开连接。"</string>
     <string name="forget" msgid="3971143908183848527">"忽略"</string>
     <string name="connect" msgid="5861699594602380150">"连接"</string>
     <string name="disconnect" msgid="6140789953324820336">"断开连接"</string>
diff --git a/res/values-zh-rHK/arrays.xml b/res/values-zh-rHK/arrays.xml
new file mode 100644
index 0000000..fd9b1b8
--- /dev/null
+++ b/res/values-zh-rHK/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"詢問"</item>
+    <item msgid="933409503308401889">"永不允許"</item>
+    <item msgid="1154273129608299386">"永遠允許"</item>
+  </string-array>
+</resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 2bd149c..fcb4711 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"夜間模式"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"網絡和互聯網"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"流動網絡"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> 張 SIM 卡</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> 張 SIM 卡</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"已啟用/SIM 卡"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"已停用/SIM 卡"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"已啟用/已下載的 SIM 卡"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"已停用/已下載的 SIM 卡"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"新增更多"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"流動數據"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"使用流動網絡存取數據"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"要關閉流動數據嗎？"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"請選取偏好設定"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"是否使用<xliff:g id="CARRIER">%1$s</xliff:g>提供的流動數據服務？"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"您正在使用<xliff:g id="CARRIER2_0">%2$s</xliff:g>提供的流動數據服務。如果您切換至<xliff:g id="CARRIER1">%1$s</xliff:g>，<xliff:g id="CARRIER2_1">%2$s</xliff:g>將不再用於提供流動數據服務。"</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"使用<xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"漫遊"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"漫遊時連線到數據服務"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"要允許數據漫遊嗎？"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"您可能需要支付龐大的費用。"</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"數據用量"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"主要數據"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"已使用 <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"付費短訊的費用可能高昂，並會增加您流動網絡供應商帳單的款項。如果您為應用程式開放權限，將可以透過該應用程式發送付費短訊。"</string>
     <string name="usage_access_title" msgid="7153427122072303254">"使用情況存取權"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"使用記錄存取權允許應用程式追蹤您正在使用的其他應用程式和使用頻率，以及流動網絡供應商、語言設定和其他詳情。"</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"目錄存取權"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi 控制"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Wi-Fi 控制允許應用程式開啟或關閉 Wi-Fi，掃瞄和連線至 Wi-Fi 網絡、新增或移除網絡，或啟動僅限本機的熱點。"</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"更多"</string>
     <string name="location_settings_title" msgid="901334356682423679">"位置"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"最近的位置資訊要求"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"最近沒有位置資訊要求"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"允許應用程式和服務隨時掃瞄附近的裝置 (即使藍牙功能已關閉)。此操作可用來改善適地性功能和服務。"</string>
     <string name="system_setting_title" msgid="6864599341809463440">"系統"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"系統更新"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"無法提供"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android 版本"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android 安全性修補程式級別"</string>
     <string name="model_info" msgid="4966408071657934452">"型號"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"核心版本"</string>
     <string name="build_number" msgid="3997326631001009102">"版本號碼"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"藍牙位址"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Wi-Fi MAC 位址"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"未有資料"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"狀態"</string>
     <string name="device_status" msgid="267298179806290920">"狀態"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"不可使用依遞增或遞減順序排列或重複的連續數字。"</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"螢幕鎖定選項"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g>：<xliff:g id="NUM_DAYS">%3$s</xliff:g> 天前"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"加入信任的裝置"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"系統將開啟藍牙以新增信任的裝置"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"信任的裝置"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> 部裝置</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> 部裝置</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"您的 <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> 將在連接後為此汽車解鎖。如果有人取得您的 <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>，他們或許能存取此裝置。"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"確認"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"移除信任的裝置"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"完成"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"使用隨附應用程式設定信任的裝置。完成設定後，汽車將會在偵測到您的手機時自動解鎖使用者設定檔。"</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1.在手機下載隨附應用程式"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2.在手機選取「<xliff:g id="CAR_NAME">%1$s</xliff:g>」以配對裝置"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"在汽車引擎啟動後，即使信任的裝置在他人手上，仍可在靠近汽車時解鎖使用者設定檔。"</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"請確認配對碼相符"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"已成功註冊手機"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」註冊失敗"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"如要加入信任的裝置，則需要在下一步設定驗證方法。如果未有攜帶信任的裝置，便需要通過驗證才可存取您的設定檔。"</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"裝置已中斷連線。"</string>
     <string name="forget" msgid="3971143908183848527">"忘記"</string>
     <string name="connect" msgid="5861699594602380150">"連接"</string>
     <string name="disconnect" msgid="6140789953324820336">"解除連接"</string>
diff --git a/res/values-zh-rTW/arrays.xml b/res/values-zh-rTW/arrays.xml
new file mode 100644
index 0000000..5f0415e
--- /dev/null
+++ b/res/values-zh-rTW/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"詢問"</item>
+    <item msgid="933409503308401889">"一律不允許"</item>
+    <item msgid="1154273129608299386">"一律允許"</item>
+  </string-array>
+</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index a32330d..b612028 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"夜間模式"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"網路和網際網路"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"行動網路"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> 張 SIM 卡</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> 張 SIM 卡</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"已啟用/SIM 卡"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"未啟用/SIM 卡"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"已啟用/已下載的 SIM 卡"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"未啟用/已下載的 SIM 卡"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"新增更多"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"行動數據"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"使用行動網路存取數據"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"要關閉行動數據嗎？"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"請選取要使用的 SIM 卡"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"要使用「<xliff:g id="CARRIER">%1$s</xliff:g>」的行動數據網路嗎？"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"你目前使用的是「<xliff:g id="CARRIER2_0">%2$s</xliff:g>」的行動數據網路。如果你切換至「<xliff:g id="CARRIER1">%1$s</xliff:g>」，系統將不再使用「<xliff:g id="CARRIER2_1">%2$s</xliff:g>」的行動數據網路。"</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"使用「<xliff:g id="CARRIER">%1$s</xliff:g>」"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"漫遊"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"漫遊時連線到數據傳輸服務"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"要允許漫遊服務嗎？"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"你可能需要支付可觀的費用。"</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"數據用量"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"主要數據"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"已使用 <xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g>"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"傳送付費簡訊必須另外付費，相關費用會併入電信費帳單。如果你為某個應用程式啟用權限，即可利用該應用程式傳送付費簡訊。"</string>
     <string name="usage_access_title" msgid="7153427122072303254">"使用情況存取權"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"取得「使用情況存取權」權限後，應用程式就能追蹤你使用的其他應用程式與頻率，以及你的電信業者、語言設定和其他詳細資料。"</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"目錄存取權"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Wi-Fi 控制"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"取得「Wi-Fi 控制」權限後，應用程式就能開啟或關閉 Wi-Fi、掃描及連上 Wi-Fi 網路、新增或移除網路，或者啟動僅限本機的無線基地台。"</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"更多"</string>
     <string name="location_settings_title" msgid="901334356682423679">"定位"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"最近的定位要求"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"最近沒有任何定位要求"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"允許應用程式和服務隨時掃描附近裝置 (即使藍牙功能處於關閉狀態)。這可以用來改善適地性功能和服務。"</string>
     <string name="system_setting_title" msgid="6864599341809463440">"系統"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"系統更新"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"無法取得"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Android 版本"</string>
     <string name="security_patch" msgid="4794276590178386903">"Android 安全性修補程式等級"</string>
     <string name="model_info" msgid="4966408071657934452">"型號"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"核心版本"</string>
     <string name="build_number" msgid="3997326631001009102">"版本號碼"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"藍牙位址"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Wi-Fi MAC 位址"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"無法取得"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"狀態"</string>
     <string name="device_status" msgid="267298179806290920">"狀態"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"不得使用依遞增或遞減順序排列或是重複的數字。"</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"螢幕鎖定選項"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g>：<xliff:g id="NUM_DAYS">%3$s</xliff:g> 天前"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"新增信任的裝置"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"系統會在新增信任的裝置時開啟藍牙"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"信任的裝置"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> 部裝置</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> 部裝置</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"如果你的 <xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> 與這輛車連結，就能將其解鎖。如果其他人取得你的 <xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>，對方或許能夠存取這個裝置"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"確認"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"移除信任的裝置"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"完成"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"請使用隨附應用程式設定信任的裝置。設定完成後，使用者設定檔就會在你的手機位於車輛附近時自動解鎖。"</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. 在手機上下載隨附應用程式"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. 在手機上選取 [<xliff:g id="CAR_NAME">%1$s</xliff:g>] 以便將裝置配對"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"只要信任的裝置位於車輛附近，即可在車輛處於發動狀態時將使用者設定檔解鎖，就算該裝置在其他人手中也一樣。"</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"請確認配對碼是否相符"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"已成功註冊手機"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"無法註冊 <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"你必須在新增信任的裝置後設定驗證方法。如果你手邊沒有信任的裝置，就必須通過驗證才能存取自己的個人資料。"</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"裝置已中斷連線。"</string>
     <string name="forget" msgid="3971143908183848527">"清除"</string>
     <string name="connect" msgid="5861699594602380150">"連線"</string>
     <string name="disconnect" msgid="6140789953324820336">"中斷連線"</string>
diff --git a/res/values-zu/arrays.xml b/res/values-zu/arrays.xml
new file mode 100644
index 0000000..8468802
--- /dev/null
+++ b/res/values-zu/arrays.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+    Copyright 2019 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 xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+  <string-array name="premium_sms_access_values">
+    <item msgid="1035030245423608806">"Buza"</item>
+    <item msgid="933409503308401889">"Ungavumeli"</item>
+    <item msgid="1154273129608299386">"Hlala uvumela"</item>
+  </string-array>
+</resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 9f488d7..f15241c 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -31,9 +31,26 @@
     <string name="night_mode_tile_label" msgid="6603597795502131664">"Imodi yasebusuku"</string>
     <string name="network_and_internet" msgid="4229023630498537530">"Inethiwekhi ne-inthanethi"</string>
     <string name="mobile_network_settings" msgid="1708621113321368597">"Inethiwekhi yeselula"</string>
+    <plurals name="mobile_network_summary_count" formatted="false" msgid="6917348330386831454">
+      <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> Ama-SIM</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> Ama-SIM</item>
+    </plurals>
+    <string name="mobile_network_active_sim" msgid="1901674954229832811">"Ukusebenza / i-SIM"</string>
+    <string name="mobile_network_inactive_sim" msgid="3644984830926224318">"Ukungasebenzi / i-SIM"</string>
+    <string name="mobile_network_active_esim" msgid="5864100786496761032">"Kuyasebenza / I-SIM elandiwe"</string>
+    <string name="mobile_network_inactive_esim" msgid="1397332352238119032">"Akusebenzi / i-SIM elandiwe"</string>
+    <string name="mobile_network_list_add_more" msgid="6174294462747070655">"Engeza okuningi"</string>
     <string name="mobile_network_toggle_title" msgid="3515647310810280063">"Idatha yeselula"</string>
     <string name="mobile_network_toggle_summary" msgid="8698267487987697148">"Finyelela kudatha usebenzisa inethiwekhi yeselula"</string>
     <string name="confirm_mobile_data_disable" msgid="826493998804496639">"Vala idatha yeselula?"</string>
+    <string name="sim_selection_required_pref" msgid="6599562910262785784">"Ukukhetha kuyadingeka"</string>
+    <string name="sim_change_data_title" msgid="6677115745127365131">"Sebenzisa i-<xliff:g id="CARRIER">%1$s</xliff:g> yedatha yeselula?"</string>
+    <string name="sim_change_data_message" msgid="4669775284395549069">"Usebenzisa i-<xliff:g id="CARRIER2_0">%2$s</xliff:g> yedatha yeselula. Uma ushintshela ku-<xliff:g id="CARRIER1">%1$s</xliff:g>, i-<xliff:g id="CARRIER2_1">%2$s</xliff:g> ngeke isasetshenziselwa idatha yeselula"</string>
+    <string name="sim_change_data_ok" msgid="2348804996223271081">"Sebenzisa i-<xliff:g id="CARRIER">%1$s</xliff:g>"</string>
+    <string name="roaming_title" msgid="6218635014519017734">"Iyazulazula"</string>
+    <string name="roaming_summary" msgid="7476127740259728901">"Xhuma emasevisini edatha uma uzulazula"</string>
+    <string name="roaming_alert_title" msgid="4433901635766775763">"Vumela ukuhamba kwedatha?"</string>
+    <string name="roaming_warning" msgid="5313281900566657209">"Ungathola izindleko ezithile."</string>
     <string name="data_usage_settings" msgid="7877132994777987848">"Ukusebenzisa idatha"</string>
     <string name="data_usage_title" msgid="2923515974389203812">"Idatha eyinhloko"</string>
     <string name="data_used_formatted" msgid="6684557577780068339">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> esetshenzisiwe"</string>
@@ -320,10 +337,9 @@
     <string name="premium_sms_access_description" msgid="7119026067677052169">"I-Premium SMS ingakwenzela izindleko zemali futhi izongeza kumabhili enkampani yenethiwekhi. Uma unika amandla imvume yohlelo lokusebenza, uzokwazi ukuthumela i-premium SMS usebenzisa lolo hlelo lokusebenza."</string>
     <string name="usage_access_title" msgid="7153427122072303254">"Ukufinyelela ukusebenzisa"</string>
     <string name="usage_access_description" msgid="2413168719257435422">"Ukufinyelela kokusebenzisa kuvumela uhlelo lokusebenza ukuthi lulandelele ukuthi yiziphi ezinye izinhlelo zokusebenza ozisebenzisayo nokuthi kaningi kangakanani, kanye nenkampani yakho yenethiwekhi, izilungiselelo zolimi neminye imininingwane."</string>
-    <string name="directory_access_title" msgid="7117264853202268740">"Ukufinyelela kuhla lwemibhalo"</string>
-    <string name="directory_on_volume" msgid="4947971311247097078">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
     <string name="wifi_control_title" msgid="5660436566907731929">"Ulawulo lwe-Wi-Fi"</string>
     <string name="wifi_control_description" msgid="6021926850423169261">"Isilawuli se-Wi-Fi sivumela uhlelo lokusebenza ukuthi luvule noma luvale i-Wi-Fi, luskene futhi luxhumeke kumanethiwekhi e-Wi-Fi, lungeze noma lususe amanethiwekhi, noma luqale i-hotspot yasendaweni kuphela."</string>
+    <string name="more_special_access_title" msgid="166115485446645971">"Okuningi"</string>
     <string name="location_settings_title" msgid="901334356682423679">"Indawo"</string>
     <string name="location_settings_recent_requests_title" msgid="6345634382240930628">"Izicelo zakamuva zendawo"</string>
     <string name="location_settings_recent_requests_empty_message" msgid="7789667070033674910">"Azikho izicelo zakamuva zendawo"</string>
@@ -336,7 +352,6 @@
     <string name="location_settings_bluetooth_scanning_summary" msgid="9158101751700727062">"Vumela izinhlelo zokusebenza namasevisi ukuthi askenele amadivayisi aseduze noma kunini, nanoma i-Bluetooth ivaliwe. Lokhu kungasetshenziselwa, njengesibonelo, ukuthuthukisa izici ezisuselwa endaweni namasevisi."</string>
     <string name="system_setting_title" msgid="6864599341809463440">"Isistimu"</string>
     <string name="system_update_settings_title" msgid="8448588267784138855">"Izibuyekezo zesistimu"</string>
-    <string name="status_unavailable" msgid="3737918179898732010">"Akutholakali"</string>
     <string name="firmware_version" msgid="8491753744549309333">"Inguqulo ye-Android"</string>
     <string name="security_patch" msgid="4794276590178386903">"Ileveli yokuvikeleka ye-Android"</string>
     <string name="model_info" msgid="4966408071657934452">"Imodeli"</string>
@@ -344,7 +359,6 @@
     <string name="kernel_version" msgid="7327212934187011508">"Inguqulo ye-Kernel"</string>
     <string name="build_number" msgid="3997326631001009102">"Yakha inombolo"</string>
     <string name="bluetooth_mac_address" msgid="7641425947941688072">"Ikheli le-Bluetooth"</string>
-    <string name="about_wifi_mac_address" msgid="3934228440550548053">"Ikheli le-Wi-Fi MAC"</string>
     <string name="device_info_not_available" msgid="2095601973977376655">"Ayitholakali"</string>
     <string name="device_status_activity_title" msgid="4083567497305368200">"Isimo"</string>
     <string name="device_status" msgid="267298179806290920">"Isimo"</string>
@@ -606,6 +620,26 @@
     <string name="lockpassword_pin_no_sequential_digits" msgid="38813552228809240">"Ukwenyuka, ukwehla, noma ukulandelana okuphindiwe kwamadijithi akuvunyelwe."</string>
     <string name="setup_lock_settings_options_button_label" msgid="3337845811029780896">"Izinketho zokukhiya isikrini"</string>
     <string name="build_info_fmt" msgid="5592554123908086426">"<xliff:g id="FINGERPRINT">%1$s</xliff:g>\n<xliff:g id="DATE">%2$s</xliff:g> : <xliff:g id="NUM_DAYS">%3$s</xliff:g> izinsuku ezedlule"</string>
+    <string name="add_device_title" msgid="8452168024017866232">"Engeza idivayisi ethenjiwe"</string>
+    <string name="add_device_summary" msgid="5368217520710573302">"I-Bluetooth izovula ukungeza idivayisi ethembekile"</string>
+    <string name="trusted_device" msgid="5637378361866787603">"Amadivayisi athenjwa"</string>
+    <plurals name="trusted_device_subtitle" formatted="false" msgid="462041049834264945">
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> amadivayisi</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> amadivayisi</item>
+    </plurals>
+    <string name="remove_device_message" msgid="6447820559674148349">"I-<xliff:g id="CONNECTED_DEVICE_NAME_0">%1$s</xliff:g> yakho izovula le moto uma ixhunyiwe. Uma omunye umuntu athatha i-<xliff:g id="CONNECTED_DEVICE_NAME_1">%1$s</xliff:g>, angakwazi ukufinyelela le divayisi"</string>
+    <string name="trusted_device_confirm_button" msgid="102354635014627996">"Qinisekisa"</string>
+    <string name="trusted_device_remove_button" msgid="6140476996063415420">"Susa idivayisi ethenjiwe"</string>
+    <string name="trusted_device_done_button" msgid="8481956533222625296">"Kwenziwe"</string>
+    <string name="add_trusted_device_instruction" msgid="2280382609884918033">"Sebenzisa uhlelo lokusebenza elingumngane ukuze usethe idivayisi ethembekile. Uma seyisethiwe, iphrofayela yakho yomsebenzisi izovuleka ngokuzenzakalela uma ifoni yakho itholwa eduze kwemoto."</string>
+    <string name="trusted_device_download_app" msgid="6971096140154499983">"1. Landa uhlelo lokusebenza elingumngane efonini yakho"</string>
+    <string name="trusted_device_select_device" msgid="198902765179270739">"2. Khetha u-<xliff:g id="CAR_NAME">%1$s</xliff:g> efonini yakho ukuze ubhanqe amadivayisi"</string>
+    <string name="trusted_device_safety_alert" msgid="3834898922112046769">"Idivayisi ethenjiwe eseduze kwemoto yakho izovula iphrofayela yomsebenzisi uma isidunyiswa, nanoma kukhona omunye umuntu ophethe idivayisi."</string>
+    <string name="trusted_device_pairing_code_dialog_title" msgid="8173792468216796873">"Sicela uqinisekise ukuthi amakhodi okubhanqa ayafana"</string>
+    <string name="trusted_device_success_enrollment_toast" msgid="1238468775285575827">"Ifoni ibhaliswe ngempumelelo"</string>
+    <string name="trusted_device_fail_enrollment_toast" msgid="6801324174861209092">"Ukubhaliswa kwe-<xliff:g id="DEVICE_NAME">%1$s</xliff:g> kwehlulekiile"</string>
+    <string name="trusted_device_set_authentication_reminder" msgid="5947077589994822305">"Ukungeza idivayisi ethembekile kudinga ukuthi usethe indlela yokugunyaza elandelayo. Uma ungenayo idivayisi yakho ethembekile, ukugunyaza kuzodingeka ukufinyelela iphrofayela yakho."</string>
+    <string name="trusted_device_disconnected_toast" msgid="2541862946536880255">"Idivayisi inqanyuliwe."</string>
     <string name="forget" msgid="3971143908183848527">"Khohlwa"</string>
     <string name="connect" msgid="5861699594602380150">"Xhuma"</string>
     <string name="disconnect" msgid="6140789953324820336">"Nqamula"</string>
diff --git a/res/values/preference_keys.xml b/res/values/preference_keys.xml
index fffc0df..5dcf88c 100644
--- a/res/values/preference_keys.xml
+++ b/res/values/preference_keys.xml
@@ -50,7 +50,12 @@
     <string name="pk_network_and_internet_extra_settings" translatable="false">
         network_and_internet_extra_settings
     </string>
+    <string name="pk_mobile_network_list" translatable="false">mobile_network_list</string>
+    <string name="pk_mobile_network_list_add_more" translatable="false">
+        mobile_network_list_add_more
+    </string>
     <string name="pk_mobile_data_toggle" translatable="false">mobile_data_toggle</string>
+    <string name="pk_mobile_roaming_toggle" translatable="false">mobile_roaming_toggle</string>
     <string name="pk_data_usage_settings_entry" translatable="false">data_usage_settings_entry
     </string>
     <string name="pk_data_usage_summary" translatable="false">data_usage_summary</string>
@@ -144,9 +149,6 @@
     <string name="pk_default_assist_and_voice" translatable="false">default_assist_and_voice
     </string>
     <string name="pk_default_assist" translatable="false">default_assist</string>
-    <string name="pk_default_assist_and_voice_options" translatable="false">
-        default_assist_and_voice_options
-    </string>
     <string name="pk_assist_use_text_context" translatable="false">assist_use_text_context</string>
     <string name="pk_assist_use_screenshot" translatable="false">assist_use_screenshot</string>
     <string name="pk_default_voice_input" translatable="false">default_voice_input</string>
@@ -192,17 +194,11 @@
     <string name="pk_usage_access" translatable="false">usage_access</string>
     <string name="pk_usage_access_description" translatable="false">usage_access_description
     </string>
-    <string name="pk_directory_access_entry" translatable="false">directory_access_entry</string>
-    <string name="pk_directory_access" translatable="false">directory_access</string>
-    <string name="pk_directory_access_details" translatable="false">directory_access_details
-    </string>
-    <string name="pk_directory_access_details_app" translatable="false">
-        directory_access_details_app
-    </string>
     <string name="pk_wifi_control_entry" translatable="false">wifi_control_entry</string>
     <string name="pk_wifi_control" translatable="false">wifi_control</string>
     <string name="pk_wifi_control_description" translatable="false">wifi_control_description
     </string>
+    <string name="pk_more_special_access" translatable="false">more_special_access</string>
 
     <!-- DateTime Settings -->
     <string name="pk_auto_datetime_switch" translatable="false">auto_datetime_switch</string>
@@ -303,6 +299,15 @@
     <string name="pk_pattern_lock" translatable="false">pattern_lock</string>
     <string name="pk_password_lock" translatable="false">password_lock</string>
     <string name="pk_pin_lock" translatable="false">pin_lock</string>
+    <string name="pk_choose_lock_type" translatable="false">choose_lock_type</string>
+    <string name="pk_trusted_device" translatable="false">trusted_device</string>
+    <string name="pk_car_ble_name" translatable="false">car_ble_name</string>
+    <string name="pk_add_trusted_device" translatable="false">add_trusted_device</string>
+    <string name="pk_trusted_device_list" translatable="false">trusted_device_list</string>
+    <string name="pk_add_device_instruction" translatable="false">add_device_instruction</string>
+    <string name="pk_companion_app_download" translatable="false">companion_app_download</string>
+    <string name="pk_trusted_device_safety_alert" translatable="false">trusted_device_safety_alert
+    </string>
 
     <!-- System Settings -->
     <string name="pk_languages_and_input_settings" translatable="false">
@@ -359,7 +364,6 @@
     <string name="pk_regulatory_labels" translatable="false">regulatory_labels</string>
     <string name="pk_about_bluetooth_mac_address" translatable="false">about_bluetooth_mac_address
     </string>
-    <string name="pk_about_wifi_mac_address" translatable="false">about_wifi_mac_address</string>
 
     <!-- Reset Options -->
     <string name="pk_reset_network" translatable="false">reset_network</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 7b27df0..fd926b2 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -39,12 +39,59 @@
     <string name="network_and_internet">Network &amp; internet</string>
     <!-- Mobile network settings [CHAR LIMIT=30] -->
     <string name="mobile_network_settings">Mobile network</string>
+    <!-- Summary of the 'Mobile network' item on the Network & internet page when there is more than
+         one mobile service configured (aka "dual SIM") - it shows a count of SIM/eSIM and tapping
+         it leads to a page showing a list of the mobile service subscriptions. [CHAR LIMIT=40] -->
+    <plurals name="mobile_network_summary_count">
+        <item quantity="one"><xliff:g id="count" example="1">%1$d</xliff:g> SIM</item>
+        <item quantity="other"><xliff:g id="count" example="2">%1$d</xliff:g> SIMs</item>
+    </plurals>
+    <!-- Summary for an item in the page listing multiple mobile service subscriptions, indicating
+         that service is active and is tied to a physical SIM card [CHAR LIMIT=40] -->
+    <string name="mobile_network_active_sim">Active / SIM</string>
+    <!-- Summary for an item in the page listing multiple mobile service subscriptions, indicating
+         that service is inactive and is tied to a physical SIM card [CHAR LIMIT=40] -->
+    <string name="mobile_network_inactive_sim">Inactive / SIM</string>
+    <!-- Summary for an item in the page listing multiple mobile service subscriptions, indicating
+         that service is active and is tied to an eSIM profile [CHAR LIMIT=40] -->
+    <string name="mobile_network_active_esim">Active / Downloaded SIM</string>
+    <!-- Summary for an item in the page listing multiple mobile service subscriptions, indicating
+         that service is inactive and is tied to an eSIM profile [CHAR LIMIT=40] -->
+    <string name="mobile_network_inactive_esim">Inactive / Downloaded SIM</string>
+    <!-- Title of item shown at the bottom of the page listing multiple mobile service
+         subscriptions; tapping it leads to a UI to add more [CHAR LIMIT=40] -->
+    <string name="mobile_network_list_add_more">Add more</string>
     <!-- Mobile network screen, toggle mobile data title [CHAR LIMIT=30] -->
     <string name="mobile_network_toggle_title">Mobile data</string>
     <!-- Mobile network screen, toggle mobile data summary [CHAR LIMIT=50] -->
     <string name="mobile_network_toggle_summary">Access data using mobile network</string>
     <!-- Mobile network screen, confirmation dialog to turn off mobile data [CHAR LIMIT=50] -->
     <string name="confirm_mobile_data_disable">Turn off mobile data?</string>
+    <!-- When a SIM preference hasn't been selected yet, this string is displayed as the pref summary until the user chooses a SIM subscription from the preference list. [CHAR LIMIT=50] -->
+    <string name="sim_selection_required_pref">Selection required</string>
+    <!-- Title asking user if they wish to change the default sim for cellular data. [CHAR LIMIT=60] -->
+    <string name="sim_change_data_title">
+        Use <xliff:g id="carrier" example="Google Fi">%1$s</xliff:g> for mobile data?
+    </string>
+    <!-- Message confirming that the user wishes to change the default data SIM from one to another.  [CHAR LIMIT=NONE] -->
+    <string name="sim_change_data_message">
+        You\u0027re using <xliff:g id="carrier2" example="Google Fi">%2$s</xliff:g> for mobile data.
+        If you switch to <xliff:g id="carrier1" example="Verizon">%1$s</xliff:g>,
+        <xliff:g id="carrier2" example="Google Fi">%2$s</xliff:g> will no longer be used for mobile
+        data.
+    </string>
+    <!-- Ok button label confirming the user wishes to change the default data SIM from one to another. [CHAR LIMIT=25] -->
+    <string name="sim_change_data_ok">
+        Use <xliff:g id="carrier" example="Verizon">%1$s</xliff:g>
+    </string>
+    <!-- Mobile network screen, preference title for toggle to enable roaming [CHAR LIMIT=30] -->
+    <string name="roaming_title">Roaming</string>
+    <!-- Mobile network screen, preference summary for toggle to enable roaming [CHAR LIMIT=60] -->
+    <string name="roaming_summary">Connect to data services when roaming</string>
+    <!-- Mobile network settings screen, dialog message title when user selects the Data roaming toggle [CHAR LIMIT=60] -->
+    <string name="roaming_alert_title">Allow data roaming?</string>
+    <!-- Mobile network settings screen, message in dialog box that appears when you select the Data roaming toggle [CHAR LIMIT=80] -->
+    <string name="roaming_warning">You may incur significant charges.</string>
     <!-- Data usage settings [CHAR LIMIT=30] -->
     <string name="data_usage_settings">Data usage</string>
     <!-- Data usage title text [CHAR LIMIT=30] -->
@@ -665,14 +712,12 @@
     <string name="usage_access_title">Usage access</string>
     <!-- Description of the usage access permission. [CHAR_LIMIT=NONE] -->
     <string name="usage_access_description">Usage access allows an app to track what other apps you\u2019re using and how often, as well as your carrier, language settings, and other details.</string>
-    <!-- Title for managing external storage directory access settings. [CHAR_LIMIT=30] -->
-    <string name="directory_access_title">Directory access</string>
-    <!-- String used to describe the name of a directory on a particular volume. Example: SD Card (Movies). [CHAR_LIMIT=50] -->
-    <string name="directory_on_volume"><xliff:g id="volume" example="SD Card">%1$s</xliff:g> (<xliff:g id="directory" example="Movies">%2$s</xliff:g>)</string>
     <!-- Title for managing apps which can change Wi-Fi state. [CHAR_LIMIT=30] -->
     <string name="wifi_control_title">Wi-Fi control</string>
     <!-- Description of the change wifi state permission. [CHAR_LIMIT=NONE] -->
     <string name="wifi_control_description">Wi-Fi control allows an app to turn Wi-Fi on or off, scan and connect to Wi-Fi networks, add or remove networks, or start a local-only hotspot.</string>
+    <!-- Title for item that when selected will launch into additional special access settings. [CHAR_LIMIT=30] -->
+    <string name="more_special_access_title">More</string>
 
     <!-- Location --><skip/>
     <!-- Main setting menu item to go into location settings [CHAR LIMIT=40] -->
@@ -704,9 +749,6 @@
     <!-- System updates title.  Takes the user to the screen for seeing and installing system updates. [CHAR LIMIT=40] -->
     <string name="system_update_settings_title">System updates</string>
 
-    <!-- Settings About screen, status item value if the actual value is not available. [CHAR LIMIT=NONE]-->
-    <string name="status_unavailable">Unavailable</string>
-
     <!-- About phone screen, status item label  [CHAR LIMIT=40] -->
     <string name="firmware_version">Android version</string>
     <!-- About phone screen, status item label  [CHAR LIMIT=60] -->
@@ -721,8 +763,6 @@
     <string name="build_number">Build number</string>
     <!-- About phone screen,  setting option name  [CHAR LIMIT=40] -->
     <string name="bluetooth_mac_address">Bluetooth address</string>
-    <!-- About phone screen,  setting option name  [CHAR LIMIT=40] -->
-    <string name="about_wifi_mac_address">Wi-Fi MAC Address</string>
 
     <!-- About phone screen, show when a value of some status item is unavailable. -->
     <string name="device_info_not_available">Not available</string>
@@ -1290,6 +1330,45 @@
          user-debug and eng builds. -->
     <string name="build_info_fmt"><xliff:g example="google/gcar_emu_x86/..." id="fingerprint">%1$s</xliff:g>\n<xliff:g example="Thu Aug 30" id="date">%2$s</xliff:g> : <xliff:g example="4" id="num_days">%3$s</xliff:g> days ago</string>
 
+    <!-- security trusted device --><skip/>
+    <!-- Label for button to add a trusted device [CHAR LIMIT=50] -->
+    <string name="add_device_title">Add trusted device</string>
+    <!-- Label for button to add a trusted device [CHAR LIMIT=100] -->
+    <string name="add_device_summary">Bluetooth will turn on to add trusted device</string>
+    <!-- Screen title and label for button of trusted device [CHAR LIMIT=30]> -->
+    <string name="trusted_device">Trusted devices</string>
+    <!-- Subtitle of trusted device button in security page which displays the number of devices that are considered trusted[CHAR LIMIT=30]-->
+    <plurals name="trusted_device_subtitle">
+        <item quantity="one"><xliff:g id="count" example="1">%d</xliff:g> device</item>
+        <item quantity="other"><xliff:g id="count" example="10">%d</xliff:g> devices</item>
+    </plurals>
+    <!-- Message in dialog which will remind the user what a trusted device can do. [CHAR LIMIT=NONE]-->
+    <string name="remove_device_message">Your <xliff:g id="connected_device_name" example="Pixel2">%1$s</xliff:g> will unlock this car when it\'s connected. If someone takes your <xliff:g id="connected_device_name" example="Pixel2">%1$s</xliff:g>, they may be able to access this device</string>
+    <!-- Confirm button label of confirm pairing code dialog [CHAR LIMIT=30]-->
+    <string name="trusted_device_confirm_button">Confirm</string>
+    <!-- Confirm button label of confirm remove device dialog [CHAR LIMIT=40]-->
+    <string name="trusted_device_remove_button">Remove trusted device</string>
+    <!-- Cancel button label of confirm remove device dialog [CHAR LIMIT=20]-->
+    <string name="trusted_device_done_button">Done</string>
+    <!-- Message shown on the add trusted device page [CHAR LIMIT=NONE]-->
+    <string name="add_trusted_device_instruction">Use the companion app to set up a trusted device. Once set up, your user profile will unlock automatically when your phone is detected near the vehicle.</string>
+    <!-- Step one of adding a trusted device [CHAR LIMIT=NONE]-->
+    <string name="trusted_device_download_app">1. Download the companion app on your phone</string>
+    <!-- Step two of adding a trusted device [CHAR LIMIT=NONE]-->
+    <string name="trusted_device_select_device">2. Select <xliff:g id="car_name" example="MyCar">%1$s</xliff:g> on your phone to pair the devices</string>
+    <!-- Messages shown to alert user about the safety of the trusted device feature [CHAR LIMIT=NONE]-->
+    <string name="trusted_device_safety_alert">A trusted device nearby your car will unlock the user profile upon ignition, even if someone else is holding the device.</string>
+    <!-- Confirm pairing code dialog title [CHAR LIMIT=60]-->
+    <string name="trusted_device_pairing_code_dialog_title">Please confirm that the pairing codes match</string>
+    <!-- Toast shown when user enrolls a device successfully [CHAR LIMIT=100]-->
+    <string name="trusted_device_success_enrollment_toast">Phone has been enrolled successfully</string>
+    <!-- Toast shown when enrolling a device fails [CHAR LIMIT=50]-->
+    <string name="trusted_device_fail_enrollment_toast"><xliff:g id="device_name" example="Pixel2">%1$s</xliff:g> enrollment failed</string>
+    <!-- Message shown when user have not set authentication [CHAR LIMIT=NONE]-->
+    <string name="trusted_device_set_authentication_reminder">Adding a trusted device requires you to set an authentication method next. If you do not have your trusted device with you, authentication will be required to access your profile.</string>
+    <!-- Toast shown when phone is disconnected [CHAR LIMIT=50]-->
+    <string name="trusted_device_disconnected_toast">Device disconnected.</string>
+
     <!-- generic --><skip/>
     <!-- Button label for generic forget action [CHAR LIMIT=20] -->
     <string name="forget">Forget</string>
diff --git a/res/xml/about_settings_fragment.xml b/res/xml/about_settings_fragment.xml
index 97ad5fd..28a3ab5 100644
--- a/res/xml/about_settings_fragment.xml
+++ b/res/xml/about_settings_fragment.xml
@@ -55,9 +55,4 @@
         android:title="@string/bluetooth_mac_address"
         settings:controller="com.android.car.settings.system.BluetoothMacAddressPreferenceController"
         settings:showChevron="false"/>
-    <com.android.car.ui.preference.CarUiPreference
-        android:key="@string/pk_about_wifi_mac_address"
-        android:title="@string/about_wifi_mac_address"
-        settings:controller="com.android.car.settings.system.WifiMacAddressPreferenceController"
-        settings:showChevron="false"/>
 </PreferenceScreen>
diff --git a/res/xml/add_trusted_device_progress_fragment.xml b/res/xml/add_trusted_device_progress_fragment.xml
new file mode 100644
index 0000000..a7921f3
--- /dev/null
+++ b/res/xml/add_trusted_device_progress_fragment.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 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.
+-->
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+                  xmlns:settings="http://schemas.android.com/apk/res-auto"
+                  android:title="@string/add_device_title">
+    <Preference
+        android:key="@string/pk_add_device_instruction"
+        android:summary="@string/add_trusted_device_instruction"/>
+    <Preference
+        android:key="@string/pk_companion_app_download"
+        android:title="@string/trusted_device_download_app"/>
+    <Preference
+        android:key="@string/pk_car_ble_name"
+        settings:controller="com.android.car.settings.security.ChooseDeviceInstructionPreferenceController"/>
+    <Preference
+        android:key="@string/pk_trusted_device_safety_alert"
+        android:summary="@string/trusted_device_safety_alert"/>
+</PreferenceScreen>
diff --git a/res/xml/apps_and_notifications_fragment.xml b/res/xml/apps_and_notifications_fragment.xml
index 42f8aea..9bd08f7 100644
--- a/res/xml/apps_and_notifications_fragment.xml
+++ b/res/xml/apps_and_notifications_fragment.xml
@@ -25,10 +25,11 @@
         android:title="@string/all_applications"
         settings:controller="com.android.car.settings.common.DefaultRestrictionsPreferenceController"/>
     <Preference
-        android:fragment="com.android.car.settings.applications.DefaultApplicationsSettingsFragment"
         android:key="@string/pk_default_applications_settings_entry"
         android:title="@string/default_applications"
-        settings:controller="com.android.car.settings.common.DefaultRestrictionsPreferenceController"/>
+        settings:controller="com.android.car.settings.common.DefaultRestrictionsPreferenceController">
+        <intent android:action="android.settings.MANAGE_DEFAULT_APPS_SETTINGS"/>
+    </Preference>
     <Preference
         android:key="@string/pk_app_permissions_entry"
         android:title="@string/app_permissions"
diff --git a/res/xml/choose_trusted_device_fragment.xml b/res/xml/choose_trusted_device_fragment.xml
new file mode 100644
index 0000000..261b9b9
--- /dev/null
+++ b/res/xml/choose_trusted_device_fragment.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Copyright 2019 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.
+-->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+                  xmlns:settings="http://schemas.android.com/apk/res-auto"
+                  android:title="@string/trusted_device">
+    <com.android.car.settings.common.LogicalPreferenceGroup
+        android:key="@string/pk_trusted_device_list"
+        settings:controller="com.android.car.settings.security.TrustedDeviceListPreferenceController"/>
+    <Preference
+        android:icon="@drawable/ic_add"
+        android:key="@string/pk_add_trusted_device"
+        android:title="@string/add_device_title"
+        settings:controller="com.android.car.settings.security.AddTrustedDevicePreferenceController">
+        <intent
+            android:targetClass="com.android.car.settings.security.AddTrustedDeviceActivity"
+            android:targetPackage="com.android.car.settings"/>
+    </Preference>
+</PreferenceScreen>
diff --git a/res/xml/default_applications_settings_fragment.xml b/res/xml/default_applications_settings_fragment.xml
deleted file mode 100644
index 4282fc4..0000000
--- a/res/xml/default_applications_settings_fragment.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-    Copyright 2019 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.
--->
-
-<PreferenceScreen
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:title="@string/default_applications">
-    <Preference
-        android:fragment="com.android.car.settings.applications.assist.ManageAssistFragment"
-        android:key="@string/pk_default_assist_and_voice"
-        android:title="@string/assist_and_voice_input_settings"
-        settings:controller="com.android.car.settings.applications.assist.ManageAssistEntryPreferenceController"
-        settings:iconSpaceReserved="true"/>
-    <Preference
-        android:fragment="com.android.car.settings.applications.managedomainurls.ManageDomainUrlsFragment"
-        android:key="@string/pk_opening_links_entry"
-        android:title="@string/app_launch_domain_links_title"
-        settings:controller="com.android.car.settings.common.DefaultRestrictionsPreferenceController"
-        settings:iconSpaceReserved="true"/>
-</PreferenceScreen>
diff --git a/res/xml/default_assistant_picker_fragment.xml b/res/xml/default_assistant_picker_fragment.xml
deleted file mode 100644
index 27545a9..0000000
--- a/res/xml/default_assistant_picker_fragment.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-    Copyright 2019 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.
--->
-
-<PreferenceScreen
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:title="@string/assist_app_settings">
-    <com.android.car.settings.common.LogicalPreferenceGroup
-        android:key="@string/pk_default_assist_and_voice_options"
-        settings:controller="com.android.car.settings.applications.defaultapps.DefaultAssistantPickerPreferenceController"/>
-</PreferenceScreen>
diff --git a/res/xml/directory_access_fragment.xml b/res/xml/directory_access_fragment.xml
deleted file mode 100644
index ff5d2cb..0000000
--- a/res/xml/directory_access_fragment.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-    Copyright 2019 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.
--->
-
-<PreferenceScreen
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:title="@string/directory_access_title">
-    <com.android.car.settings.common.LogicalPreferenceGroup
-        android:key="@string/pk_directory_access"
-        settings:controller="com.android.car.settings.applications.specialaccess.DirectoryAccessPreferenceController"/>
-</PreferenceScreen>
diff --git a/res/xml/homepage_fragment.xml b/res/xml/homepage_fragment.xml
index fa343f6..2a69c32 100644
--- a/res/xml/homepage_fragment.xml
+++ b/res/xml/homepage_fragment.xml
@@ -97,14 +97,11 @@
         android:title="@string/storage_settings_title"
         settings:controller="com.android.car.settings.common.DefaultRestrictionsPreferenceController"/>
     <Preference
+        android:fragment="com.android.car.settings.security.SecuritySettingsFragment"
         android:icon="@drawable/ic_lock"
         android:key="@string/pk_security_settings_entry"
         android:title="@string/security_settings_title"
-        settings:controller="com.android.car.settings.security.SecurityEntryPreferenceController">
-        <intent
-            android:targetClass="com.android.car.settings.security.SettingsScreenLockActivity"
-            android:targetPackage="com.android.car.settings"/>
-    </Preference>
+        settings:controller="com.android.car.settings.security.SecurityEntryPreferenceController"/>
     <Preference
         android:fragment="com.android.car.settings.system.SystemSettingsFragment"
         android:icon="@drawable/ic_settings_about"
diff --git a/res/xml/manage_assist_fragment.xml b/res/xml/manage_assist_fragment.xml
index 0f682bc..e5010f8 100644
--- a/res/xml/manage_assist_fragment.xml
+++ b/res/xml/manage_assist_fragment.xml
@@ -20,7 +20,6 @@
     xmlns:settings="http://schemas.android.com/apk/res-auto"
     android:title="@string/assist_and_voice_input_settings">
     <com.android.car.settings.common.ButtonPreference
-        android:fragment="com.android.car.settings.applications.defaultapps.DefaultAssistantPickerFragment"
         android:key="@string/pk_default_assist"
         android:title="@string/assist_app_settings"
         android:widgetLayout="@layout/details_preference_widget"
diff --git a/res/xml/mobile_network_fragment.xml b/res/xml/mobile_network_fragment.xml
index 675ecb0..1b59b1c 100644
--- a/res/xml/mobile_network_fragment.xml
+++ b/res/xml/mobile_network_fragment.xml
@@ -24,4 +24,9 @@
         android:summary="@string/mobile_network_toggle_summary"
         android:title="@string/mobile_network_toggle_title"
         settings:controller="com.android.car.settings.network.MobileDataTogglePreferenceController"/>
+    <SwitchPreference
+        android:key="@string/pk_mobile_roaming_toggle"
+        android:summary="@string/roaming_summary"
+        android:title="@string/roaming_title"
+        settings:controller="com.android.car.settings.network.RoamingPreferenceController"/>
 </PreferenceScreen>
diff --git a/res/xml/directory_access_details_fragment.xml b/res/xml/mobile_network_list_fragment.xml
similarity index 63%
rename from res/xml/directory_access_details_fragment.xml
rename to res/xml/mobile_network_list_fragment.xml
index f773dd0..3c7d769 100644
--- a/res/xml/directory_access_details_fragment.xml
+++ b/res/xml/mobile_network_list_fragment.xml
@@ -18,12 +18,14 @@
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:title="@string/directory_access_title">
-    <Preference
-        android:key="@string/pk_directory_access_details_app"
-        android:selectable="false"
-        settings:controller="com.android.car.settings.applications.ApplicationPreferenceController"/>
+    android:title="@string/mobile_network_settings">
     <com.android.car.settings.common.LogicalPreferenceGroup
-        android:key="@string/pk_directory_access_details"
-        settings:controller="com.android.car.settings.applications.specialaccess.DirectoryAccessDetailsPreferenceController"/>
+        android:key="@string/pk_mobile_network_list"
+        settings:controller="com.android.car.settings.network.MobileNetworkListPreferenceController"/>
+    <Preference
+        android:icon="@drawable/ic_add"
+        android:key="@string/pk_mobile_network_list_add_more"
+        android:title="@string/mobile_network_list_add_more"
+        android:visibility="gone"
+        settings:controller="com.android.car.settings.network.AddMobileNetworkPreferenceController"/>
 </PreferenceScreen>
diff --git a/res/xml/security_settings_fragment.xml b/res/xml/security_settings_fragment.xml
new file mode 100644
index 0000000..b71d532
--- /dev/null
+++ b/res/xml/security_settings_fragment.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    Copyright 2018 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.
+-->
+
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
+    android:title="@string/security_settings_title">
+    <Preference
+        android:icon="@drawable/ic_lock"
+        android:key="@string/pk_choose_lock_type"
+        android:title="@string/lock_settings_picker_title"
+        settings:controller="com.android.car.settings.security.SecurityEntryPreferenceController">
+        <intent
+            android:targetClass="com.android.car.settings.security.SettingsScreenLockActivity"
+            android:targetPackage="com.android.car.settings"/>
+    </Preference>
+    <Preference
+        android:fragment="com.android.car.settings.security.ChooseTrustedDeviceFragment"
+        android:icon="@drawable/ic_lock"
+        android:key="@string/pk_trusted_device"
+        android:title="@string/trusted_device"
+        settings:controller="com.android.car.settings.security.TrustedDeviceEntryPreferenceController"/>
+</PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/special_access_fragment.xml b/res/xml/special_access_fragment.xml
index ecae227..e6cadfb 100644
--- a/res/xml/special_access_fragment.xml
+++ b/res/xml/special_access_fragment.xml
@@ -40,13 +40,12 @@
         android:title="@string/usage_access_title"
         settings:controller="com.android.car.settings.common.DefaultRestrictionsPreferenceController"/>
     <Preference
-        android:fragment="com.android.car.settings.applications.specialaccess.DirectoryAccessFragment"
-        android:key="@string/pk_directory_access_entry"
-        android:title="@string/directory_access_title"
-        settings:controller="com.android.car.settings.common.DefaultRestrictionsPreferenceController"/>
-    <Preference
         android:fragment="com.android.car.settings.applications.specialaccess.WifiControlFragment"
         android:key="@string/pk_wifi_control_entry"
         android:title="@string/wifi_control_title"
         settings:controller="com.android.car.settings.common.DefaultRestrictionsPreferenceController"/>
+    <Preference
+        android:key="@string/pk_more_special_access"
+        android:title="@string/more_special_access_title"
+        settings:controller="com.android.car.settings.applications.specialaccess.MoreSpecialAccessPreferenceController"/>
 </PreferenceScreen>
diff --git a/src/com/android/car/settings/accounts/AccountDetailsFragment.java b/src/com/android/car/settings/accounts/AccountDetailsFragment.java
index 7cd974e..c7b9b78 100644
--- a/src/com/android/car/settings/accounts/AccountDetailsFragment.java
+++ b/src/com/android/car/settings/accounts/AccountDetailsFragment.java
@@ -179,27 +179,27 @@
         private static final String KEY_ACCOUNT = "account";
         private static final String DIALOG_TAG = "confirmRemoveAccount";
         private static final Logger LOG = new Logger(ConfirmRemoveAccountDialogFragment.class);
-
-        private Fragment mTargetFragment;
         private final AccountManagerCallback<Bundle> mCallback =
                 future -> {
                     // If already out of this screen, don't proceed.
-                    if (!mTargetFragment.isResumed()) {
+                    if (!getTargetFragment().isResumed()) {
                         return;
                     }
 
                     boolean success = false;
                     try {
-                        success = future.getResult().getBoolean(AccountManager.KEY_BOOLEAN_RESULT);
+                        success =
+                                future.getResult().getBoolean(
+                                        AccountManager.KEY_BOOLEAN_RESULT);
                     } catch (OperationCanceledException | IOException | AuthenticatorException e) {
                         LOG.v("removeAccount error: " + e);
                     }
-
-                    Activity activity = mTargetFragment.getActivity();
+                    final Activity activity = getTargetFragment().getActivity();
                     if (!success && activity != null && !activity.isFinishing()) {
-                        ErrorDialog.show(mTargetFragment, R.string.remove_account_error_title);
+                        ErrorDialog.show(getTargetFragment(),
+                                R.string.remove_account_error_title);
                     } else {
-                        mTargetFragment.getFragmentManager().popBackStack();
+                        getTargetFragment().getFragmentManager().popBackStack();
                     }
                 };
         private Account mAccount;
@@ -207,7 +207,8 @@
 
         public static void show(
                 Fragment parent, Account account, UserHandle userHandle) {
-            ConfirmRemoveAccountDialogFragment dialog = new ConfirmRemoveAccountDialogFragment();
+            final ConfirmRemoveAccountDialogFragment dialog =
+                    new ConfirmRemoveAccountDialogFragment();
             Bundle bundle = new Bundle();
             bundle.putParcelable(KEY_ACCOUNT, account);
             bundle.putParcelable(Intent.EXTRA_USER, userHandle);
@@ -222,7 +223,6 @@
             final Bundle arguments = getArguments();
             mAccount = arguments.getParcelable(KEY_ACCOUNT);
             mUserHandle = arguments.getParcelable(Intent.EXTRA_USER);
-            mTargetFragment = getTargetFragment();
         }
 
         @Override
diff --git a/src/com/android/car/settings/applications/ApplicationDetailsFragment.java b/src/com/android/car/settings/applications/ApplicationDetailsFragment.java
index 8d6de88..19ad516 100644
--- a/src/com/android/car/settings/applications/ApplicationDetailsFragment.java
+++ b/src/com/android/car/settings/applications/ApplicationDetailsFragment.java
@@ -18,7 +18,6 @@
 
 import static android.app.Activity.RESULT_OK;
 
-import static com.android.car.settings.applications.ApplicationsUtils.isFallbackPackage;
 import static com.android.car.settings.applications.ApplicationsUtils.isKeepEnabledPackage;
 import static com.android.car.settings.applications.ApplicationsUtils.isProfileOrDeviceOwner;
 
@@ -304,11 +303,6 @@
             return true;
         }
 
-        if (isFallbackPackage(mPackageName)) {
-            LOG.d("Uninstall disabled because package is a fallback package");
-            return true;
-        }
-
         return false;
     }
 
diff --git a/src/com/android/car/settings/applications/ApplicationsUtils.java b/src/com/android/car/settings/applications/ApplicationsUtils.java
index 2047000..00aa190 100644
--- a/src/com/android/car/settings/applications/ApplicationsUtils.java
+++ b/src/com/android/car/settings/applications/ApplicationsUtils.java
@@ -21,12 +21,9 @@
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.pm.UserInfo;
-import android.os.RemoteException;
-import android.os.ServiceManager;
 import android.telecom.DefaultDialerManager;
 import android.text.TextUtils;
 import android.util.ArraySet;
-import android.webkit.IWebViewUpdateService;
 
 import com.android.internal.telephony.SmsApplication;
 
@@ -77,22 +74,4 @@
         }
         return false;
     }
-
-    /**
-     * Returns {@code true} if the given {@code packageName} is a fallback package as defined by
-     * {@link IWebViewUpdateService}.
-     */
-    public static boolean isFallbackPackage(String packageName) {
-        try {
-            IWebViewUpdateService webviewUpdateService = IWebViewUpdateService.Stub.asInterface(
-                    ServiceManager.getService("webviewupdate"));
-            if (webviewUpdateService != null && webviewUpdateService.isFallbackPackage(
-                    packageName)) {
-                return true;
-            }
-        } catch (RemoteException e) {
-            throw new RuntimeException(e);
-        }
-        return false;
-    }
 }
diff --git a/src/com/android/car/settings/applications/assist/DefaultVoiceInputPickerEntryPreferenceController.java b/src/com/android/car/settings/applications/assist/DefaultVoiceInputPickerEntryPreferenceController.java
index e923e7f..e0ed7a9 100644
--- a/src/com/android/car/settings/applications/assist/DefaultVoiceInputPickerEntryPreferenceController.java
+++ b/src/com/android/car/settings/applications/assist/DefaultVoiceInputPickerEntryPreferenceController.java
@@ -32,7 +32,6 @@
 import com.android.car.settings.common.FragmentController;
 import com.android.internal.app.AssistUtils;
 import com.android.settingslib.applications.DefaultAppInfo;
-import com.android.settingslib.wrapper.PackageManagerWrapper;
 
 import java.util.Objects;
 
@@ -57,14 +56,12 @@
         }
     };
 
-    private final PackageManagerWrapper mPm;
     private final VoiceInputInfoProvider mVoiceInputInfoProvider;
     private final AssistUtils mAssistUtils;
 
     public DefaultVoiceInputPickerEntryPreferenceController(Context context, String preferenceKey,
             FragmentController fragmentController, CarUxRestrictions uxRestrictions) {
         super(context, preferenceKey, fragmentController, uxRestrictions);
-        mPm = new PackageManagerWrapper(context.getPackageManager());
         mVoiceInputInfoProvider = new VoiceInputInfoProvider(context);
         mAssistUtils = new AssistUtils(context);
     }
@@ -95,8 +92,9 @@
     protected DefaultAppInfo getCurrentDefaultAppInfo() {
         VoiceInputInfoProvider.VoiceInputInfo info = mVoiceInputInfoProvider.getInfoForComponent(
                 VoiceInputUtils.getCurrentService(getContext()));
-        return (info == null) ? null : new DefaultVoiceInputServiceInfo(getContext(), mPm,
-                getCurrentProcessUserId(), info, /* enabled= */ true);
+        return (info == null) ? null : new DefaultVoiceInputServiceInfo(getContext(),
+                getContext().getPackageManager(), getCurrentProcessUserId(), info,
+                /* enabled= */ true);
     }
 
     @Nullable
diff --git a/src/com/android/car/settings/applications/assist/DefaultVoiceInputPickerPreferenceController.java b/src/com/android/car/settings/applications/assist/DefaultVoiceInputPickerPreferenceController.java
index 343c43f..0cc1eaf 100644
--- a/src/com/android/car/settings/applications/assist/DefaultVoiceInputPickerPreferenceController.java
+++ b/src/com/android/car/settings/applications/assist/DefaultVoiceInputPickerPreferenceController.java
@@ -28,7 +28,6 @@
 import com.android.car.settings.common.FragmentController;
 import com.android.internal.app.AssistUtils;
 import com.android.settingslib.applications.DefaultAppInfo;
-import com.android.settingslib.wrapper.PackageManagerWrapper;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -40,7 +39,6 @@
 
     private final AssistUtils mAssistUtils;
     private final VoiceInputInfoProvider mVoiceInputInfoProvider;
-    private final PackageManagerWrapper mPm;
 
     // Current assistant component name, used to restrict available voice inputs.
     private String mAssistComponentName = null;
@@ -48,7 +46,6 @@
     public DefaultVoiceInputPickerPreferenceController(Context context, String preferenceKey,
             FragmentController fragmentController, CarUxRestrictions uxRestrictions) {
         super(context, preferenceKey, fragmentController, uxRestrictions);
-        mPm = new PackageManagerWrapper(context.getPackageManager());
         mAssistUtils = new AssistUtils(context);
         mVoiceInputInfoProvider = new VoiceInputInfoProvider(context);
         if (Objects.equals(mAssistUtils.getAssistComponentForUser(getCurrentProcessUserId()),
@@ -68,14 +65,16 @@
                 mVoiceInputInfoProvider.getVoiceInteractionInfoList()) {
             boolean enabled = TextUtils.equals(info.getComponentName().flattenToString(),
                     mAssistComponentName);
-            candidates.add(new DefaultVoiceInputServiceInfo(getContext(), mPm,
-                    getCurrentProcessUserId(), info, enabled));
+            candidates.add(
+                    new DefaultVoiceInputServiceInfo(getContext(), getContext().getPackageManager(),
+                            getCurrentProcessUserId(), info, enabled));
         }
 
         for (VoiceInputInfoProvider.VoiceRecognitionInfo info :
                 mVoiceInputInfoProvider.getVoiceRecognitionInfoList()) {
-            candidates.add(new DefaultVoiceInputServiceInfo(getContext(), mPm,
-                    getCurrentProcessUserId(), info, /* enabled= */ true));
+            candidates.add(
+                    new DefaultVoiceInputServiceInfo(getContext(), getContext().getPackageManager(),
+                            getCurrentProcessUserId(), info, /* enabled= */ true));
         }
         return candidates;
     }
diff --git a/src/com/android/car/settings/applications/assist/DefaultVoiceInputServiceInfo.java b/src/com/android/car/settings/applications/assist/DefaultVoiceInputServiceInfo.java
index 8682ebf..369281e 100644
--- a/src/com/android/car/settings/applications/assist/DefaultVoiceInputServiceInfo.java
+++ b/src/com/android/car/settings/applications/assist/DefaultVoiceInputServiceInfo.java
@@ -18,13 +18,13 @@
 
 import android.content.Context;
 import android.content.Intent;
+import android.content.pm.PackageManager;
 
 import androidx.annotation.Nullable;
 
 import com.android.car.settings.applications.assist.VoiceInputInfoProvider.VoiceInteractionInfo;
 import com.android.car.settings.applications.assist.VoiceInputInfoProvider.VoiceRecognitionInfo;
 import com.android.settingslib.applications.DefaultAppInfo;
-import com.android.settingslib.wrapper.PackageManagerWrapper;
 
 /** An extension of {@link DefaultAppInfo} to help represent voice input services. */
 public class DefaultVoiceInputServiceInfo extends DefaultAppInfo {
@@ -38,7 +38,7 @@
      *                the Voice Input Service.
      * @param enabled determines whether the service should be selectable or not.
      */
-    public DefaultVoiceInputServiceInfo(Context context, PackageManagerWrapper pm, int userId,
+    public DefaultVoiceInputServiceInfo(Context context, PackageManager pm, int userId,
             VoiceInputInfoProvider.VoiceInputInfo info, boolean enabled) {
         super(context, pm, userId, info.getComponentName(), /* summary= */ null, enabled);
         mInfo = info;
diff --git a/src/com/android/car/settings/applications/assist/ManageAssistActivity.java b/src/com/android/car/settings/applications/assist/ManageAssistActivity.java
new file mode 100644
index 0000000..3ac4fa5
--- /dev/null
+++ b/src/com/android/car/settings/applications/assist/ManageAssistActivity.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2019 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.car.settings.applications.assist;
+
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+
+import com.android.car.settings.common.BaseCarSettingsActivity;
+
+/**
+ * Starts {@link ManageAssistFragment} in a separate activity to help with the back navigation
+ * flow. This setting differs from the other settings in that the user arrives here from the
+ * PermissionController rather than from within the Settings app itself.
+ */
+public class ManageAssistActivity extends BaseCarSettingsActivity {
+
+    @Nullable
+    @Override
+    protected Fragment getInitialFragment() {
+        return new ManageAssistFragment();
+    }
+}
diff --git a/src/com/android/car/settings/applications/assist/ManageAssistEntryPreferenceController.java b/src/com/android/car/settings/applications/assist/ManageAssistEntryPreferenceController.java
index 36a8704..b817e81 100644
--- a/src/com/android/car/settings/applications/assist/ManageAssistEntryPreferenceController.java
+++ b/src/com/android/car/settings/applications/assist/ManageAssistEntryPreferenceController.java
@@ -27,7 +27,6 @@
 import com.android.car.settings.common.FragmentController;
 import com.android.internal.app.AssistUtils;
 import com.android.settingslib.applications.DefaultAppInfo;
-import com.android.settingslib.wrapper.PackageManagerWrapper;
 
 /**
  * Business logic to show the currently selected default assist.
@@ -36,13 +35,11 @@
         DefaultAppEntryBasePreferenceController<Preference> {
 
     private final AssistUtils mAssistUtils;
-    private final PackageManagerWrapper mPm;
 
     public ManageAssistEntryPreferenceController(Context context, String preferenceKey,
             FragmentController fragmentController, CarUxRestrictions uxRestrictions) {
         super(context, preferenceKey, fragmentController, uxRestrictions);
         mAssistUtils = new AssistUtils(context);
-        mPm = new PackageManagerWrapper(context.getPackageManager());
     }
 
     @Override
@@ -56,6 +53,7 @@
         if (cn == null) {
             return null;
         }
-        return new DefaultAppInfo(getContext(), mPm, getCurrentProcessUserId(), cn);
+        return new DefaultAppInfo(getContext(), getContext().getPackageManager(),
+                getCurrentProcessUserId(), cn);
     }
 }
diff --git a/src/com/android/car/settings/applications/defaultapps/DefaultAssistantPickerEntryPreferenceController.java b/src/com/android/car/settings/applications/defaultapps/DefaultAssistantPickerEntryPreferenceController.java
index 374afef..a754297 100644
--- a/src/com/android/car/settings/applications/defaultapps/DefaultAssistantPickerEntryPreferenceController.java
+++ b/src/com/android/car/settings/applications/defaultapps/DefaultAssistantPickerEntryPreferenceController.java
@@ -16,6 +16,7 @@
 
 package com.android.car.settings.applications.defaultapps;
 
+import android.app.role.RoleManager;
 import android.car.drivingstate.CarUxRestrictions;
 import android.content.ComponentName;
 import android.content.Context;
@@ -28,10 +29,10 @@
 import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 
+import com.android.car.settings.common.ButtonPreference;
 import com.android.car.settings.common.FragmentController;
 import com.android.internal.app.AssistUtils;
 import com.android.settingslib.applications.DefaultAppInfo;
-import com.android.settingslib.wrapper.PackageManagerWrapper;
 
 import java.util.List;
 
@@ -47,13 +48,11 @@
             VoiceInteractionService.SERVICE_INTERFACE);
 
     private final AssistUtils mAssistUtils;
-    private final PackageManagerWrapper mPm;
 
     public DefaultAssistantPickerEntryPreferenceController(Context context, String preferenceKey,
             FragmentController fragmentController, CarUxRestrictions uxRestrictions) {
         super(context, preferenceKey, fragmentController, uxRestrictions);
         mAssistUtils = new AssistUtils(context);
-        mPm = new PackageManagerWrapper(context.getPackageManager());
     }
 
     @Nullable
@@ -63,7 +62,20 @@
         if (cn == null) {
             return null;
         }
-        return new DefaultAppInfo(getContext(), mPm, getCurrentProcessUserId(), cn);
+        return new DefaultAppInfo(getContext(), getContext().getPackageManager(),
+                getCurrentProcessUserId(), cn);
+    }
+
+    @Override
+    protected boolean handlePreferenceClicked(ButtonPreference preference) {
+        String packageName = getContext().getPackageManager().getPermissionControllerPackageName();
+        if (packageName != null) {
+            Intent intent = new Intent(Intent.ACTION_MANAGE_DEFAULT_APP)
+                    .setPackage(packageName)
+                    .putExtra(Intent.EXTRA_ROLE_NAME, RoleManager.ROLE_ASSISTANT);
+            getContext().startActivity(intent);
+        }
+        return true;
     }
 
     @Nullable
@@ -75,7 +87,7 @@
         }
 
         Intent probe = ASSISTANT_SERVICE.setPackage(cn.getPackageName());
-        PackageManager pm = mPm.getPackageManager();
+        PackageManager pm = getContext().getPackageManager();
         List<ResolveInfo> services = pm.queryIntentServices(probe, PackageManager.GET_META_DATA);
         if (services == null || services.isEmpty()) {
             return null;
diff --git a/src/com/android/car/settings/applications/defaultapps/DefaultAssistantPickerPreferenceController.java b/src/com/android/car/settings/applications/defaultapps/DefaultAssistantPickerPreferenceController.java
deleted file mode 100644
index be3ebed..0000000
--- a/src/com/android/car/settings/applications/defaultapps/DefaultAssistantPickerPreferenceController.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- * Copyright (C) 2019 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.car.settings.applications.defaultapps;
-
-import android.car.drivingstate.CarUxRestrictions;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.provider.Settings;
-import android.service.voice.VoiceInteractionService;
-import android.service.voice.VoiceInteractionServiceInfo;
-import android.speech.RecognitionService;
-import android.text.TextUtils;
-
-import androidx.annotation.VisibleForTesting;
-
-import com.android.car.settings.R;
-import com.android.car.settings.common.FragmentController;
-import com.android.car.settings.common.Logger;
-import com.android.internal.app.AssistUtils;
-import com.android.settingslib.applications.DefaultAppInfo;
-import com.android.settingslib.wrapper.PackageManagerWrapper;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/** Business logic for displaying and choosing the default assistant. */
-public class DefaultAssistantPickerPreferenceController extends
-        DefaultAppsPickerBasePreferenceController {
-
-    private static final Logger LOG = new Logger(DefaultAssistantPickerPreferenceController.class);
-    @VisibleForTesting
-    static final Intent ASSIST_SERVICE_PROBE = new Intent(
-            VoiceInteractionService.SERVICE_INTERFACE);
-    @VisibleForTesting
-    static final Intent ASSIST_ACTIVITY_PROBE = new Intent(Intent.ACTION_ASSIST);
-
-    private final AssistUtils mAssistUtils;
-    private final Map<String, Info> mAvailableAssistants = new LinkedHashMap<>();
-    private final PackageManagerWrapper mPm;
-
-    public DefaultAssistantPickerPreferenceController(Context context, String preferenceKey,
-            FragmentController fragmentController, CarUxRestrictions uxRestrictions) {
-        super(context, preferenceKey, fragmentController, uxRestrictions);
-        mAssistUtils = new AssistUtils(context);
-        mPm = new PackageManagerWrapper(getContext().getPackageManager());
-    }
-
-    @Override
-    protected List<DefaultAppInfo> getCandidates() {
-        mAvailableAssistants.clear();
-
-        List<Info> assistants = new ArrayList<>();
-        PackageManager pm = getContext().getPackageManager();
-        addAssistServices(pm, assistants);
-        addAssistActivities(pm, assistants);
-
-        // Return things to show.
-        Set<String> packages = new HashSet<>();
-        List<DefaultAppInfo> candidates = new ArrayList<>();
-        for (Info info : assistants) {
-            if (packages.contains(info.getComponentName().getPackageName())) {
-                continue;
-            }
-            packages.add(info.getComponentName().getPackageName());
-            candidates.add(new DefaultAppInfo(getContext(), mPm, getCurrentProcessUserId(),
-                    info.getComponentName()));
-            mAvailableAssistants.put(info.getComponentName().getPackageName(), info);
-        }
-
-        return candidates;
-    }
-
-    @Override
-    protected CharSequence getConfirmationMessage(DefaultAppInfo info) {
-        if (info == null) {
-            return null;
-        }
-        return getContext().getString(R.string.assistant_security_warning);
-    }
-
-    @Override
-    protected String getCurrentDefaultKey() {
-        ComponentName cn = getCurrentAssistant();
-        if (cn != null) {
-            return new DefaultAppInfo(getContext(), mPm, getCurrentProcessUserId(), cn).getKey();
-        }
-        return DefaultAppsPickerBasePreferenceController.NONE_PREFERENCE_KEY;
-    }
-
-    @Override
-    protected void setCurrentDefault(String key) {
-        if (TextUtils.isEmpty(key)) {
-            setAssistNone();
-            return;
-        }
-
-        ComponentName cn = ComponentName.unflattenFromString(key);
-        Info info = mAvailableAssistants.getOrDefault(cn.getPackageName(), null);
-        if (info == null) {
-            setAssistNone();
-            return;
-        }
-
-        if (info.isVoiceInteractionService()) {
-            setAssistService(info);
-        } else {
-            setAssistActivity(info);
-        }
-    }
-
-    private ComponentName getCurrentAssistant() {
-        return mAssistUtils.getAssistComponentForUser(getCurrentProcessUserId());
-    }
-
-    private void addAssistServices(PackageManager pm, List<Info> availableAssistants) {
-        List<ResolveInfo> services = pm.queryIntentServices(ASSIST_SERVICE_PROBE,
-                PackageManager.GET_META_DATA);
-        for (ResolveInfo resolveInfo : services) {
-            VoiceInteractionServiceInfo voiceInteractionServiceInfo =
-                    new VoiceInteractionServiceInfo(pm, resolveInfo.serviceInfo);
-            if (!voiceInteractionServiceInfo.getSupportsAssist()) {
-                continue;
-            }
-
-            Info info = new Info(new ComponentName(resolveInfo.serviceInfo.packageName,
-                    resolveInfo.serviceInfo.name), voiceInteractionServiceInfo);
-            availableAssistants.add(info);
-        }
-    }
-
-    private void addAssistActivities(PackageManager pm, List<Info> availableAssistants) {
-        List<ResolveInfo> activities = pm.queryIntentActivities(ASSIST_ACTIVITY_PROBE,
-                PackageManager.MATCH_DEFAULT_ONLY);
-        for (ResolveInfo resolveInfo : activities) {
-            Info info = new Info(new ComponentName(resolveInfo.activityInfo.packageName,
-                    resolveInfo.activityInfo.name));
-            availableAssistants.add(info);
-        }
-    }
-
-    private void setAssistNone() {
-        Settings.Secure.putString(getContext().getContentResolver(),
-                Settings.Secure.ASSISTANT, "");
-        Settings.Secure.putString(getContext().getContentResolver(),
-                Settings.Secure.VOICE_INTERACTION_SERVICE, "");
-        Settings.Secure.putString(getContext().getContentResolver(),
-                Settings.Secure.VOICE_RECOGNITION_SERVICE, getDefaultRecognizer());
-    }
-
-    private void setAssistService(Info serviceInfo) {
-        String serviceComponentName = serviceInfo.getComponentName().flattenToShortString();
-        String serviceRecognizerName = new ComponentName(
-                serviceInfo.getComponentName().getPackageName(),
-                serviceInfo.getVoiceInteractionServiceInfo().getRecognitionService())
-                .flattenToShortString();
-
-        Settings.Secure.putString(getContext().getContentResolver(),
-                Settings.Secure.ASSISTANT, serviceComponentName);
-        Settings.Secure.putString(getContext().getContentResolver(),
-                Settings.Secure.VOICE_INTERACTION_SERVICE, serviceComponentName);
-        Settings.Secure.putString(getContext().getContentResolver(),
-                Settings.Secure.VOICE_RECOGNITION_SERVICE, serviceRecognizerName);
-    }
-
-    private void setAssistActivity(Info activityInfo) {
-        Settings.Secure.putString(getContext().getContentResolver(),
-                Settings.Secure.ASSISTANT, activityInfo.getComponentName().flattenToShortString());
-        Settings.Secure.putString(getContext().getContentResolver(),
-                Settings.Secure.VOICE_INTERACTION_SERVICE, "");
-        Settings.Secure.putString(getContext().getContentResolver(),
-                Settings.Secure.VOICE_RECOGNITION_SERVICE, getDefaultRecognizer());
-    }
-
-    private String getDefaultRecognizer() {
-        ResolveInfo resolveInfo = getContext().getPackageManager().resolveService(
-                new Intent(RecognitionService.SERVICE_INTERFACE),
-                PackageManager.GET_META_DATA);
-        if (resolveInfo == null || resolveInfo.serviceInfo == null) {
-            LOG.w("Unable to resolve default voice recognition service.");
-            return "";
-        }
-
-        return new ComponentName(resolveInfo.serviceInfo.packageName,
-                resolveInfo.serviceInfo.name).flattenToShortString();
-    }
-
-    private static class Info {
-        private final ComponentName mComponentName;
-        private final VoiceInteractionServiceInfo mVoiceInteractionServiceInfo;
-
-        Info(ComponentName component) {
-            mComponentName = component;
-            mVoiceInteractionServiceInfo = null;
-        }
-
-        Info(ComponentName component, VoiceInteractionServiceInfo voiceInteractionServiceInfo) {
-            mComponentName = component;
-            mVoiceInteractionServiceInfo = voiceInteractionServiceInfo;
-        }
-
-        /** Returns {@code true} if this object represents a voice interaction service. */
-        public boolean isVoiceInteractionService() {
-            return mVoiceInteractionServiceInfo != null;
-        }
-
-        /** Returns the component name. */
-        public ComponentName getComponentName() {
-            return mComponentName;
-        }
-
-        /** Returns the voice interaction service info. */
-        public VoiceInteractionServiceInfo getVoiceInteractionServiceInfo() {
-            return mVoiceInteractionServiceInfo;
-        }
-    }
-}
diff --git a/src/com/android/car/settings/applications/defaultapps/DefaultAutofillPickerEntryPreferenceController.java b/src/com/android/car/settings/applications/defaultapps/DefaultAutofillPickerEntryPreferenceController.java
index b070466..91652a1 100644
--- a/src/com/android/car/settings/applications/defaultapps/DefaultAutofillPickerEntryPreferenceController.java
+++ b/src/com/android/car/settings/applications/defaultapps/DefaultAutofillPickerEntryPreferenceController.java
@@ -34,7 +34,6 @@
 import com.android.car.settings.common.FragmentController;
 import com.android.car.settings.common.Logger;
 import com.android.settingslib.applications.DefaultAppInfo;
-import com.android.settingslib.wrapper.PackageManagerWrapper;
 
 import java.util.List;
 
@@ -45,13 +44,11 @@
     private static final Logger LOG = new Logger(
             DefaultAutofillPickerEntryPreferenceController.class);
     private final AutofillManager mAutofillManager;
-    private final PackageManagerWrapper mPm;
 
     public DefaultAutofillPickerEntryPreferenceController(Context context, String preferenceKey,
             FragmentController fragmentController, CarUxRestrictions uxRestrictions) {
         super(context, preferenceKey, fragmentController, uxRestrictions);
         mAutofillManager = context.getSystemService(AutofillManager.class);
-        mPm = new PackageManagerWrapper(context.getPackageManager());
     }
 
     @Override
@@ -68,8 +65,9 @@
         String flattenComponent = Settings.Secure.getString(getContext().getContentResolver(),
                 Settings.Secure.AUTOFILL_SERVICE);
         if (!TextUtils.isEmpty(flattenComponent)) {
-            DefaultAppInfo appInfo = new DefaultAppInfo(getContext(), mPm,
-                    getCurrentProcessUserId(), ComponentName.unflattenFromString(flattenComponent));
+            DefaultAppInfo appInfo = new DefaultAppInfo(getContext(),
+                    getContext().getPackageManager(), getCurrentProcessUserId(),
+                    ComponentName.unflattenFromString(flattenComponent));
             return appInfo;
         }
         return null;
diff --git a/src/com/android/car/settings/applications/defaultapps/DefaultAutofillPickerPreferenceController.java b/src/com/android/car/settings/applications/defaultapps/DefaultAutofillPickerPreferenceController.java
index 0382352..8dcc5d9 100644
--- a/src/com/android/car/settings/applications/defaultapps/DefaultAutofillPickerPreferenceController.java
+++ b/src/com/android/car/settings/applications/defaultapps/DefaultAutofillPickerPreferenceController.java
@@ -33,7 +33,6 @@
 import com.android.car.settings.R;
 import com.android.car.settings.common.FragmentController;
 import com.android.settingslib.applications.DefaultAppInfo;
-import com.android.settingslib.wrapper.PackageManagerWrapper;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -42,24 +41,22 @@
 public class DefaultAutofillPickerPreferenceController extends
         DefaultAppsPickerBasePreferenceController {
 
-    private final PackageManagerWrapper mPm;
-
     public DefaultAutofillPickerPreferenceController(Context context, String preferenceKey,
             FragmentController fragmentController, CarUxRestrictions uxRestrictions) {
         super(context, preferenceKey, fragmentController, uxRestrictions);
-        mPm = new PackageManagerWrapper(context.getPackageManager());
     }
 
     @NonNull
     @Override
     protected List<DefaultAppInfo> getCandidates() {
         List<DefaultAppInfo> candidates = new ArrayList<>();
-        List<ResolveInfo> resolveInfos = mPm.queryIntentServices(
+        List<ResolveInfo> resolveInfos = getContext().getPackageManager().queryIntentServices(
                 new Intent(AutofillService.SERVICE_INTERFACE), PackageManager.GET_META_DATA);
         for (ResolveInfo info : resolveInfos) {
             String permission = info.serviceInfo.permission;
             if (Manifest.permission.BIND_AUTOFILL_SERVICE.equals(permission)) {
-                candidates.add(new DefaultAppInfo(getContext(), mPm, getCurrentProcessUserId(),
+                candidates.add(new DefaultAppInfo(getContext(), getContext().getPackageManager(),
+                        getCurrentProcessUserId(),
                         new ComponentName(info.serviceInfo.packageName, info.serviceInfo.name)));
             }
         }
diff --git a/src/com/android/car/settings/applications/managedomainurls/ManageDomainUrlsActivity.java b/src/com/android/car/settings/applications/managedomainurls/ManageDomainUrlsActivity.java
new file mode 100644
index 0000000..6920892
--- /dev/null
+++ b/src/com/android/car/settings/applications/managedomainurls/ManageDomainUrlsActivity.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2019 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.car.settings.applications.managedomainurls;
+
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+
+import com.android.car.settings.common.BaseCarSettingsActivity;
+
+/**
+ * Starts {@link ManageDomainUrlsFragment} in a separate activity to help with the back navigation
+ * flow. This setting differs from the other settings in that the user arrives here from the
+ * PermissionController rather than from within the Settings app itself.
+ */
+public class ManageDomainUrlsActivity extends BaseCarSettingsActivity {
+
+    @Nullable
+    @Override
+    protected Fragment getInitialFragment() {
+        return new ManageDomainUrlsFragment();
+    }
+}
diff --git a/src/com/android/car/settings/applications/specialaccess/DirectoryAccessDetailsFragment.java b/src/com/android/car/settings/applications/specialaccess/DirectoryAccessDetailsFragment.java
deleted file mode 100644
index ac9d1d8..0000000
--- a/src/com/android/car/settings/applications/specialaccess/DirectoryAccessDetailsFragment.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright 2019 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.car.settings.applications.specialaccess;
-
-import android.car.userlib.CarUserManagerHelper;
-import android.content.Context;
-import android.os.Bundle;
-
-import androidx.annotation.XmlRes;
-
-import com.android.car.settings.R;
-import com.android.car.settings.applications.ApplicationPreferenceController;
-import com.android.car.settings.common.SettingsFragment;
-import com.android.settingslib.applications.ApplicationsState;
-
-import java.util.ArrayList;
-
-/** Displays directory access permissions for a specific package. */
-public class DirectoryAccessDetailsFragment extends SettingsFragment {
-
-    public static final String ARG_PACKAGE_NAME = "package";
-
-    private CarUserManagerHelper mCarUserManagerHelper;
-    private String mPackageName;
-    private ApplicationsState mAppState;
-    private ApplicationsState.Session mSession;
-    private ApplicationsState.AppEntry mAppEntry;
-
-    /** Creates an instance of this fragment, passing {@code packageName} as an argument. */
-    public static DirectoryAccessDetailsFragment getInstance(String packageName) {
-        DirectoryAccessDetailsFragment directoryAccessDetailsFragment =
-                new DirectoryAccessDetailsFragment();
-        Bundle bundle = new Bundle();
-        bundle.putString(ARG_PACKAGE_NAME, packageName);
-        directoryAccessDetailsFragment.setArguments(bundle);
-        return directoryAccessDetailsFragment;
-    }
-
-    @Override
-    @XmlRes
-    protected int getPreferenceScreenResId() {
-        return R.xml.directory_access_details_fragment;
-    }
-
-    @Override
-    public void onAttach(Context context) {
-        super.onAttach(context);
-        mCarUserManagerHelper = new CarUserManagerHelper(context);
-
-        mPackageName = getArguments().getString(ARG_PACKAGE_NAME);
-
-        mAppState = ApplicationsState.getInstance(requireActivity().getApplication());
-        mSession = mAppState.newSession(mApplicationStateCallbacks, getLifecycle());
-
-        retrieveAppEntry();
-
-        use(ApplicationPreferenceController.class,
-                R.string.pk_directory_access_details_app).setAppEntry(mAppEntry).setAppState(
-                mAppState);
-        use(DirectoryAccessDetailsPreferenceController.class,
-                R.string.pk_directory_access_details).setPackage(mPackageName);
-    }
-
-    @Override
-    public void onStart() {
-        super.onStart();
-        // Resume the session earlier than the lifecycle so that cached information is updated
-        // even if settings is not resumed (for example in multi-display).
-        mSession.onResume();
-        refresh();
-    }
-
-    @Override
-    public void onStop() {
-        super.onStop();
-        // Since we resume early in onStart, make sure we clean up even if we don't receive onPause.
-        mSession.onPause();
-    }
-
-    private void refresh() {
-        retrieveAppEntry();
-        if (mAppEntry == null) {
-            goBack();
-        }
-    }
-
-    private void retrieveAppEntry() {
-        mAppEntry = mAppState.getEntry(mPackageName,
-                mCarUserManagerHelper.getCurrentProcessUserId());
-    }
-
-    private final ApplicationsState.Callbacks mApplicationStateCallbacks =
-            new ApplicationsState.Callbacks() {
-                @Override
-                public void onRunningStateChanged(boolean running) {
-                }
-
-                @Override
-                public void onPackageListChanged() {
-                    refresh();
-                }
-
-                @Override
-                public void onRebuildComplete(ArrayList<ApplicationsState.AppEntry> apps) {
-                }
-
-                @Override
-                public void onPackageIconChanged() {
-                }
-
-                @Override
-                public void onPackageSizeChanged(String packageName) {
-                }
-
-                @Override
-                public void onAllSizesComputed() {
-                }
-
-                @Override
-                public void onLauncherInfoChanged() {
-                }
-
-                @Override
-                public void onLoadEntriesCompleted() {
-                }
-            };
-}
diff --git a/src/com/android/car/settings/applications/specialaccess/DirectoryAccessDetailsPreferenceController.java b/src/com/android/car/settings/applications/specialaccess/DirectoryAccessDetailsPreferenceController.java
deleted file mode 100644
index e565e91..0000000
--- a/src/com/android/car/settings/applications/specialaccess/DirectoryAccessDetailsPreferenceController.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- * Copyright 2019 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.car.settings.applications.specialaccess;
-
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.AUTHORITY;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.COL_GRANTED;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.TABLE_PERMISSIONS;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.TABLE_PERMISSIONS_COLUMNS;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.TABLE_PERMISSIONS_COL_DIRECTORY;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.TABLE_PERMISSIONS_COL_GRANTED;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.TABLE_PERMISSIONS_COL_PACKAGE;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.TABLE_PERMISSIONS_COL_VOLUME_UUID;
-
-import android.annotation.Nullable;
-import android.car.drivingstate.CarUxRestrictions;
-import android.content.ContentResolver;
-import android.content.ContentValues;
-import android.content.Context;
-import android.database.Cursor;
-import android.net.Uri;
-import android.os.storage.StorageManager;
-import android.os.storage.VolumeInfo;
-import android.util.ArrayMap;
-import android.util.Pair;
-
-import androidx.preference.PreferenceGroup;
-import androidx.preference.SwitchPreference;
-
-import com.android.car.settings.R;
-import com.android.car.settings.common.FragmentController;
-import com.android.car.settings.common.Logger;
-import com.android.car.settings.common.PreferenceController;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Detailed settings for an app's directory access permissions (A.K.A Scoped Directory Access).
- *
- * <p>It shows the directories for which the user denied access with the "Do not ask again" flag.
- * The user can use the preference toggles to grant access again.
- *
- * <p>This controller dynamically lists all such permissions starting with one preference per
- * directory in the primary storage then adding additional preferences for external volumes (one
- * for the whole volume and one for each individual directory). Granting access to a whole volume
- * will hide individual directory permissions.
- */
-public class DirectoryAccessDetailsPreferenceController extends
-        PreferenceController<PreferenceGroup> {
-
-    private static final Logger LOG = new Logger(DirectoryAccessDetailsPreferenceController.class);
-
-    private String mPackageName;
-
-    public DirectoryAccessDetailsPreferenceController(Context context, String preferenceKey,
-            FragmentController fragmentController, CarUxRestrictions uxRestrictions) {
-        super(context, preferenceKey, fragmentController, uxRestrictions);
-    }
-
-    @Override
-    protected Class<PreferenceGroup> getPreferenceType() {
-        return PreferenceGroup.class;
-    }
-
-    /**
-     * Sets the package for which to display directory access. This should be called right after the
-     * controller is instantiated.
-     */
-    public void setPackage(String packageName) {
-        mPackageName = packageName;
-    }
-
-    @Override
-    protected void checkInitialized() {
-        if (mPackageName == null) {
-            throw new IllegalStateException("Must specify package for directory access details");
-        }
-    }
-
-    @Override
-    protected void updateState(PreferenceGroup preferenceGroup) {
-        preferenceGroup.removeAll();
-        preferenceGroup.setOrderingAsAdded(false);
-
-        Map<String, ExternalVolume> externalVolumes = new ArrayMap<>();
-        Uri providerUri = new Uri.Builder().scheme(ContentResolver.SCHEME_CONTENT).authority(
-                AUTHORITY).appendPath(TABLE_PERMISSIONS).appendPath("*").build();
-        // Query provider for entries.
-        try (Cursor cursor = getContext().getContentResolver().query(providerUri,
-                TABLE_PERMISSIONS_COLUMNS, /* selection= */ null,
-                new String[]{mPackageName}, /* sortOrder= */ null)) {
-            if (cursor == null) {
-                LOG.w("Didn't get cursor for " + mPackageName);
-                return;
-            }
-            int count = cursor.getCount();
-            if (count == 0) {
-                // This setting screen should not be reached if there was no permission, so just
-                // ignore it.
-                LOG.w("No permissions for " + mPackageName);
-                return;
-            }
-
-            while (cursor.moveToNext()) {
-                String pkg = cursor.getString(TABLE_PERMISSIONS_COL_PACKAGE);
-                String uuid = cursor.getString(TABLE_PERMISSIONS_COL_VOLUME_UUID);
-                String dir = cursor.getString(TABLE_PERMISSIONS_COL_DIRECTORY);
-                boolean granted = cursor.getInt(TABLE_PERMISSIONS_COL_GRANTED) == 1;
-                LOG.v("Pkg:" + pkg + " uuid: " + uuid + " dir: " + dir + " granted:" + granted);
-
-                if (!mPackageName.equals(pkg)) {
-                    // Sanity check, shouldn't happen.
-                    LOG.w("Ignoring " + uuid + "/" + dir + " due to package mismatch: "
-                            + "expected " + mPackageName + ", got " + pkg);
-                    continue;
-                }
-
-                if (uuid == null) {
-                    if (dir == null) {
-                        // Sanity check, shouldn't happen.
-                        LOG.wtf("Ignoring permission on primary storage root");
-                    } else {
-                        // Primary storage entry: add right away
-                        preferenceGroup.addPreference(
-                                createPreference(dir, providerUri, /* uuid= */ null, dir,
-                                        granted));
-                    }
-                } else {
-                    // External volume entry: save it for later.
-                    ExternalVolume externalVolume = externalVolumes.get(uuid);
-                    if (externalVolume == null) {
-                        externalVolume = new ExternalVolume(uuid);
-                        externalVolumes.put(uuid, externalVolume);
-                    }
-                    if (dir == null) {
-                        // Whole volume.
-                        externalVolume.mIsGranted = granted;
-                    } else {
-                        // Directory only.
-                        externalVolume.mChildren.add(new Pair<>(dir, granted));
-                    }
-                }
-            }
-        }
-
-        LOG.v("external volumes: " + externalVolumes);
-
-        if (externalVolumes.isEmpty()) {
-            // We're done!
-            return;
-        }
-
-        // Add entries from external volumes
-
-        // Query StorageManager to get the user-friendly volume names.
-        StorageManager sm = getContext().getSystemService(StorageManager.class);
-        List<VolumeInfo> volumes = sm.getVolumes();
-        if (volumes.isEmpty()) {
-            LOG.w("StorageManager returned no secondary volumes");
-            return;
-        }
-        Map<String, String> volumeNames = new HashMap<>(volumes.size());
-        for (VolumeInfo volume : volumes) {
-            String uuid = volume.getFsUuid();
-            if (uuid == null) {
-                continue; // Primary storage, only directory name used.
-            }
-            String name = sm.getBestVolumeDescription(volume);
-            if (name == null) {
-                LOG.w("No description for " + volume + "; using uuid instead: " + uuid);
-                name = uuid;
-            }
-            volumeNames.put(uuid, name);
-        }
-        LOG.v("UUID -> name mapping: " + volumeNames);
-
-        for (ExternalVolume volume : externalVolumes.values()) {
-            String volumeName = volumeNames.get(volume.mUuid);
-            if (volumeName == null) {
-                LOG.w("Ignoring entry for invalid UUID: " + volume.mUuid);
-                continue;
-            }
-            // First add the preference for the whole volume...
-            preferenceGroup.addPreference(createPreference(volumeName, providerUri, volume.mUuid,
-                    /* dir= */ null, volume.mIsGranted));
-
-            // ... then the child preferences for directories.
-            if (!volume.mIsGranted) {
-                volume.mChildren.forEach(pair -> {
-                    String dir = pair.first;
-                    boolean isGranted = pair.second;
-                    String name = getContext().getResources()
-                            .getString(R.string.directory_on_volume, volumeName, dir);
-                    SwitchPreference childPref =
-                            createPreference(name, providerUri, volume.mUuid, dir, isGranted);
-                    preferenceGroup.addPreference(childPref);
-                });
-            }
-        }
-    }
-
-    private SwitchPreference createPreference(String title, Uri providerUri, String uuid,
-            String dir, boolean isGranted) {
-        SwitchPreference pref = new SwitchPreference(getContext());
-        pref.setKey(String.format("%s:%s", uuid, dir));
-        pref.setTitle(title);
-        pref.setChecked(isGranted);
-        pref.setPersistent(false);
-        pref.setOnPreferenceChangeListener((unused, value) -> {
-            boolean newGrantedState = (Boolean) value;
-            setGranted(newGrantedState, providerUri, uuid, dir);
-            refreshUi();
-            return true;
-        });
-        return pref;
-    }
-
-    private void setGranted(boolean isGranted, Uri providerUri,
-            @Nullable String uuid, @Nullable String directory) {
-        LOG.d("Asking " + providerUri + " to update " + uuid + "/" + directory + " to "
-                + isGranted);
-        ContentValues values = new ContentValues(1);
-        values.put(COL_GRANTED, isGranted);
-        int updated = getContext().getContentResolver().update(providerUri, values,
-                /* where= */ null, new String[]{mPackageName, uuid, directory});
-        LOG.d("Updated " + updated + " entries for " + uuid + "/" + directory);
-    }
-
-    private static class ExternalVolume {
-
-        String mUuid;
-        /** Key: directory, Value: isGranted */
-        List<Pair<String, Boolean>> mChildren = new ArrayList<>();
-        boolean mIsGranted;
-
-        ExternalVolume(String uuid) {
-            mUuid = uuid;
-        }
-
-        @Override
-        public String toString() {
-            return "ExternalVolume: [uuid=" + mUuid + ", granted=" + mIsGranted + ", children="
-                    + mChildren + "]";
-        }
-    }
-}
diff --git a/src/com/android/car/settings/applications/specialaccess/DirectoryAccessFragment.java b/src/com/android/car/settings/applications/specialaccess/DirectoryAccessFragment.java
deleted file mode 100644
index cb6394b..0000000
--- a/src/com/android/car/settings/applications/specialaccess/DirectoryAccessFragment.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright 2019 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.car.settings.applications.specialaccess;
-
-import androidx.annotation.XmlRes;
-
-import com.android.car.settings.R;
-import com.android.car.settings.common.SettingsFragment;
-
-/** Displays the list of applications which have been denied external storage directory access. */
-public class DirectoryAccessFragment extends SettingsFragment {
-
-    @Override
-    @XmlRes
-    protected int getPreferenceScreenResId() {
-        return R.xml.directory_access_fragment;
-    }
-}
diff --git a/src/com/android/car/settings/applications/specialaccess/DirectoryAccessPreferenceController.java b/src/com/android/car/settings/applications/specialaccess/DirectoryAccessPreferenceController.java
deleted file mode 100644
index b87930e..0000000
--- a/src/com/android/car/settings/applications/specialaccess/DirectoryAccessPreferenceController.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright 2019 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.car.settings.applications.specialaccess;
-
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.AUTHORITY;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.TABLE_PACKAGES;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.TABLE_PACKAGES_COLUMNS;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.TABLE_PACKAGES_COL_PACKAGE;
-
-import android.car.drivingstate.CarUxRestrictions;
-import android.content.ContentResolver;
-import android.content.Context;
-import android.database.Cursor;
-import android.net.Uri;
-import android.util.ArraySet;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.PreferenceGroup;
-
-import com.android.car.settings.common.FragmentController;
-import com.android.car.settings.common.Logger;
-import com.android.car.settings.common.PreferenceController;
-import com.android.car.ui.preference.CarUiPreference;
-import com.android.settingslib.applications.ApplicationsState.AppEntry;
-import com.android.settingslib.applications.ApplicationsState.AppFilter;
-
-import java.util.List;
-import java.util.Set;
-
-/**
- * Displays a list of preferences for apps that have directory access permissions set. Selecting an
- * app launches a detailed view for controlling permissions at the directory level.
- */
-public class DirectoryAccessPreferenceController extends PreferenceController<PreferenceGroup> {
-
-    private static final Logger LOG = new Logger(DirectoryAccessPreferenceController.class);
-
-    private static final AppFilter FILTER_APP_HAS_DIRECTORY_ACCESS = new AppFilter() {
-
-        private Set<String> mPackages;
-
-        @Override
-        public void init() {
-            throw new UnsupportedOperationException("Need to call constructor that takes context");
-        }
-
-        @Override
-        public void init(Context context) {
-            mPackages = null;
-            Uri providerUri = new Uri.Builder()
-                    .scheme(ContentResolver.SCHEME_CONTENT)
-                    .authority(AUTHORITY)
-                    .appendPath(TABLE_PACKAGES)
-                    .appendPath("*")
-                    .build();
-            try (Cursor cursor = context.getContentResolver().query(providerUri,
-                    TABLE_PACKAGES_COLUMNS, /* queryArgs= */ null, /* cancellationSignal= */
-                    null)) {
-                if (cursor == null) {
-                    LOG.w("Didn't get cursor for " + providerUri);
-                    return;
-                }
-                int count = cursor.getCount();
-                if (count == 0) {
-                    LOG.d("No packages anymore (was " + mPackages + ")");
-                    return;
-                }
-                mPackages = new ArraySet<>(count);
-                while (cursor.moveToNext()) {
-                    mPackages.add(cursor.getString(TABLE_PACKAGES_COL_PACKAGE));
-                }
-                LOG.d("init(): " + mPackages);
-            }
-        }
-
-
-        @Override
-        public boolean filterApp(AppEntry info) {
-            return mPackages != null && mPackages.contains(info.info.packageName);
-        }
-    };
-
-    private final AppEntryListManager.Callback mCallback = new AppEntryListManager.Callback() {
-        @Override
-        public void onAppEntryListChanged(List<AppEntry> entries) {
-            mEntries = entries;
-            refreshUi();
-        }
-    };
-
-    @VisibleForTesting
-    AppEntryListManager mAppEntryListManager;
-    private List<AppEntry> mEntries;
-
-    public DirectoryAccessPreferenceController(Context context, String preferenceKey,
-            FragmentController fragmentController, CarUxRestrictions uxRestrictions) {
-        super(context, preferenceKey, fragmentController, uxRestrictions);
-        mAppEntryListManager = new AppEntryListManager(context);
-    }
-
-    @Override
-    protected Class<PreferenceGroup> getPreferenceType() {
-        return PreferenceGroup.class;
-    }
-
-    @Override
-    protected void onCreateInternal() {
-        mAppEntryListManager.init(/* extraInfoBridge= */ null,
-                () -> FILTER_APP_HAS_DIRECTORY_ACCESS, mCallback);
-    }
-
-    @Override
-    protected void onStartInternal() {
-        mAppEntryListManager.start();
-    }
-
-    @Override
-    protected void onStopInternal() {
-        mAppEntryListManager.stop();
-    }
-
-    @Override
-    protected void onDestroyInternal() {
-        mAppEntryListManager.destroy();
-    }
-
-    @Override
-    protected void updateState(PreferenceGroup preference) {
-        if (mEntries == null) {
-            // Still loading.
-            return;
-        }
-        preference.removeAll();
-        for (AppEntry entry : mEntries) {
-            CarUiPreference appPreference = new CarUiPreference(getContext());
-            String key = entry.info.packageName + "|" + entry.info.uid;
-            appPreference.setKey(key);
-            appPreference.setTitle(entry.label);
-            appPreference.setIcon(entry.icon);
-            appPreference.setOnPreferenceClickListener(clickedPref -> {
-                getFragmentController().launchFragment(
-                        DirectoryAccessDetailsFragment.getInstance(entry.info.packageName));
-                return true;
-            });
-            preference.addPreference(appPreference);
-        }
-    }
-}
diff --git a/src/com/android/car/settings/applications/specialaccess/MoreSpecialAccessPreferenceController.java b/src/com/android/car/settings/applications/specialaccess/MoreSpecialAccessPreferenceController.java
new file mode 100644
index 0000000..05f2a80
--- /dev/null
+++ b/src/com/android/car/settings/applications/specialaccess/MoreSpecialAccessPreferenceController.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright 2019 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.car.settings.applications.specialaccess;
+
+import android.car.drivingstate.CarUxRestrictions;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+
+import androidx.annotation.Nullable;
+import androidx.preference.Preference;
+
+import com.android.car.settings.common.FragmentController;
+import com.android.car.settings.common.PreferenceController;
+
+/**
+ * Launches into additional special access settings if they are supported by the permission
+ * controller package.
+ */
+public class MoreSpecialAccessPreferenceController extends PreferenceController<Preference> {
+
+    @Nullable
+    private final Intent mIntent;
+
+    public MoreSpecialAccessPreferenceController(Context context, String preferenceKey,
+            FragmentController fragmentController, CarUxRestrictions uxRestrictions) {
+        super(context, preferenceKey, fragmentController, uxRestrictions);
+        PackageManager packageManager = getContext().getPackageManager();
+        String packageName = packageManager.getPermissionControllerPackageName();
+        if (packageName != null) {
+            Intent intent = new Intent(Intent.ACTION_MANAGE_SPECIAL_APP_ACCESSES).setPackage(
+                    packageName);
+            ResolveInfo resolveInfo = packageManager.resolveActivity(intent,
+                    PackageManager.MATCH_DEFAULT_ONLY);
+            mIntent = (resolveInfo != null) ? intent : null;
+        } else {
+            mIntent = null;
+        }
+    }
+
+    @Override
+    protected Class<Preference> getPreferenceType() {
+        return Preference.class;
+    }
+
+    @Override
+    protected int getAvailabilityStatus() {
+        return (mIntent != null) ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    protected boolean handlePreferenceClicked(Preference preference) {
+        if (mIntent != null) {
+            getContext().startActivity(mIntent);
+            return true;
+        }
+        return false;
+    }
+}
diff --git a/src/com/android/car/settings/bluetooth/BluetoothDeviceNamePreferenceController.java b/src/com/android/car/settings/bluetooth/BluetoothDeviceNamePreferenceController.java
index afb7db5..3d09b37 100644
--- a/src/com/android/car/settings/bluetooth/BluetoothDeviceNamePreferenceController.java
+++ b/src/com/android/car/settings/bluetooth/BluetoothDeviceNamePreferenceController.java
@@ -53,12 +53,9 @@
     protected void updateState(Preference preference) {
         CachedBluetoothDevice cachedDevice = getCachedDevice();
         Pair<Drawable, String> pair =
-                com.android.settingslib.bluetooth.Utils.getBtClassDrawableWithDescription(
+                com.android.settingslib.bluetooth.BluetoothUtils.getBtClassDrawableWithDescription(
                         getContext(),
-                        cachedDevice,
-                        getContext().getResources().getFraction(
-                                R.fraction.bt_battery_scale_fraction, /* base= */1, /* pbase= */
-                                1));
+                        cachedDevice);
         StringJoiner summaryJoiner = new StringJoiner(System.lineSeparator());
         summaryJoiner.setEmptyValue("");
 
@@ -68,8 +65,7 @@
         }
         // If hearing aids are connected, two battery statuses should be shown.
         String pairDeviceSummary =
-                getBluetoothManager().getCachedDeviceManager().getHearingAidPairDeviceSummary(
-                        cachedDevice);
+                getBluetoothManager().getCachedDeviceManager().getSubDeviceSummary(cachedDevice);
         if (!TextUtils.isEmpty(pairDeviceSummary)) {
             summaryJoiner.add(pairDeviceSummary);
         }
diff --git a/src/com/android/car/settings/bluetooth/BluetoothDevicePreference.java b/src/com/android/car/settings/bluetooth/BluetoothDevicePreference.java
index 66274c9..dfba4c6 100644
--- a/src/com/android/car/settings/bluetooth/BluetoothDevicePreference.java
+++ b/src/com/android/car/settings/bluetooth/BluetoothDevicePreference.java
@@ -78,7 +78,7 @@
         setTitle(mCachedDevice.getName());
         setSummary(mCachedDevice.getCarConnectionSummary());
 
-        final Pair<Drawable, String> pair = com.android.settingslib.bluetooth.Utils
+        final Pair<Drawable, String> pair = com.android.settingslib.bluetooth.BluetoothUtils
                 .getBtClassDrawableWithDescription(getContext(), mCachedDevice);
         if (pair.first != null) {
             setIcon(pair.first);
diff --git a/src/com/android/car/settings/bluetooth/BluetoothPairingDialog.java b/src/com/android/car/settings/bluetooth/BluetoothPairingDialog.java
index b27c39e..8098e7d 100644
--- a/src/com/android/car/settings/bluetooth/BluetoothPairingDialog.java
+++ b/src/com/android/car/settings/bluetooth/BluetoothPairingDialog.java
@@ -16,6 +16,7 @@
 
 package com.android.car.settings.bluetooth;
 
+import android.annotation.Nullable;
 import android.bluetooth.BluetoothDevice;
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -23,7 +24,6 @@
 import android.content.IntentFilter;
 import android.os.Bundle;
 
-import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.fragment.app.FragmentActivity;
 
diff --git a/src/com/android/car/settings/bluetooth/BluetoothPairingSelectionFragment.java b/src/com/android/car/settings/bluetooth/BluetoothPairingSelectionFragment.java
index ff3b1e8..25cb543 100644
--- a/src/com/android/car/settings/bluetooth/BluetoothPairingSelectionFragment.java
+++ b/src/com/android/car/settings/bluetooth/BluetoothPairingSelectionFragment.java
@@ -33,22 +33,10 @@
 
     private final BluetoothCallback mCallback = new BluetoothCallback() {
         @Override
-        public void onBluetoothStateChanged(int bluetoothState) {
-        }
-
-        @Override
         public void onScanningStateChanged(boolean started) {
         }
 
         @Override
-        public void onDeviceAdded(CachedBluetoothDevice cachedDevice) {
-        }
-
-        @Override
-        public void onDeviceDeleted(CachedBluetoothDevice cachedDevice) {
-        }
-
-        @Override
         public void onDeviceBondStateChanged(CachedBluetoothDevice cachedDevice, int bondState) {
             if (bondState == BluetoothDevice.BOND_BONDED) {
                 // We are in a dispatch loop from event manager to all listeners. goBack will pop
@@ -59,19 +47,6 @@
                         BluetoothPairingSelectionFragment.this::goBack);
             }
         }
-
-        @Override
-        public void onConnectionStateChanged(CachedBluetoothDevice cachedDevice, int state) {
-        }
-
-        @Override
-        public void onActiveDeviceChanged(CachedBluetoothDevice activeDevice,
-                int bluetoothProfile) {
-        }
-
-        @Override
-        public void onAudioModeChanged() {
-        }
     };
 
     private LocalBluetoothManager mManager;
diff --git a/src/com/android/car/settings/bluetooth/BluetoothUnbondedDevicesPreferenceController.java b/src/com/android/car/settings/bluetooth/BluetoothUnbondedDevicesPreferenceController.java
index 04fc935..9b0861e 100644
--- a/src/com/android/car/settings/bluetooth/BluetoothUnbondedDevicesPreferenceController.java
+++ b/src/com/android/car/settings/bluetooth/BluetoothUnbondedDevicesPreferenceController.java
@@ -61,8 +61,8 @@
             LOG.d("startPairing");
             // Indicate that this client (vehicle) would like access to contacts (PBAP) and messages
             // (MAP) if there is a server which permits it (usually a phone).
-            cachedDevice.setPhonebookPermissionChoice(CachedBluetoothDevice.ACCESS_ALLOWED);
-            cachedDevice.setMessagePermissionChoice(CachedBluetoothDevice.ACCESS_ALLOWED);
+            cachedDevice.getDevice().setPhonebookAccessPermission(BluetoothDevice.ACCESS_ALLOWED);
+            cachedDevice.getDevice().setMessageAccessPermission(BluetoothDevice.ACCESS_ALLOWED);
         } else {
             BluetoothUtils.showError(getContext(), cachedDevice.getName(),
                     R.string.bluetooth_pairing_error_message);
diff --git a/src/com/android/car/settings/bluetooth/BluetoothUtils.java b/src/com/android/car/settings/bluetooth/BluetoothUtils.java
index 5533a4e..d6783c6 100644
--- a/src/com/android/car/settings/bluetooth/BluetoothUtils.java
+++ b/src/com/android/car/settings/bluetooth/BluetoothUtils.java
@@ -41,7 +41,8 @@
         @Override
         public void onBluetoothManagerInitialized(Context appContext,
                 LocalBluetoothManager bluetoothManager) {
-            com.android.settingslib.bluetooth.Utils.setErrorListener(BluetoothUtils::showError);
+            com.android.settingslib.bluetooth.BluetoothUtils.setErrorListener(
+                    com.android.car.settings.bluetooth.BluetoothUtils::showError);
         }
     };
 
diff --git a/src/com/android/car/settings/common/ConfirmationDialogFragment.java b/src/com/android/car/settings/common/ConfirmationDialogFragment.java
index a55c02e..ee1d54c 100644
--- a/src/com/android/car/settings/common/ConfirmationDialogFragment.java
+++ b/src/com/android/car/settings/common/ConfirmationDialogFragment.java
@@ -77,6 +77,13 @@
         }
 
         /** Sets the positive button label. */
+        public Builder setPositiveButton(String label, ConfirmListener confirmListener) {
+            mPosLabel = label;
+            mConfirmListener = confirmListener;
+            return this;
+        }
+
+        /** Sets the positive button label. */
         public Builder setPositiveButton(@StringRes int label, ConfirmListener confirmListener) {
             mPosLabel = mContext.getString(label);
             mConfirmListener = confirmListener;
@@ -84,6 +91,13 @@
         }
 
         /** Sets the negative button label. */
+        public Builder setNegativeButton(String label, RejectListener rejectListener) {
+            mNegLabel = label;
+            mRejectListener = rejectListener;
+            return this;
+        }
+
+        /** Sets the negative button label. */
         public Builder setNegativeButton(@StringRes int label, RejectListener rejectListener) {
             mNegLabel = mContext.getString(label);
             mRejectListener = rejectListener;
diff --git a/src/com/android/car/settings/common/FragmentResolver.java b/src/com/android/car/settings/common/FragmentResolver.java
index 5350cbf..dc8656c 100644
--- a/src/com/android/car/settings/common/FragmentResolver.java
+++ b/src/com/android/car/settings/common/FragmentResolver.java
@@ -18,7 +18,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
-import android.os.storage.StorageManager;
+import android.net.wifi.WifiManager;
 import android.provider.Settings;
 import android.text.TextUtils;
 
@@ -30,10 +30,7 @@
 import com.android.car.settings.accounts.ChooseAccountFragment;
 import com.android.car.settings.applications.ApplicationDetailsFragment;
 import com.android.car.settings.applications.ApplicationsSettingsFragment;
-import com.android.car.settings.applications.DefaultApplicationsSettingsFragment;
-import com.android.car.settings.applications.assist.ManageAssistFragment;
 import com.android.car.settings.applications.defaultapps.DefaultAutofillPickerFragment;
-import com.android.car.settings.applications.specialaccess.DirectoryAccessFragment;
 import com.android.car.settings.applications.specialaccess.ModifySystemSettingsFragment;
 import com.android.car.settings.applications.specialaccess.NotificationAccessFragment;
 import com.android.car.settings.applications.specialaccess.UsageAccessFragment;
@@ -46,6 +43,7 @@
 import com.android.car.settings.language.LanguagePickerFragment;
 import com.android.car.settings.location.LocationScanningFragment;
 import com.android.car.settings.network.MobileNetworkFragment;
+import com.android.car.settings.network.NetworkAndInternetFragment;
 import com.android.car.settings.quicksettings.QuickSettingFragment;
 import com.android.car.settings.sound.SoundSettingsFragment;
 import com.android.car.settings.storage.StorageSettingsFragment;
@@ -90,11 +88,16 @@
                 return new DisplaySettingsFragment();
 
             case Settings.ACTION_SOUND_SETTINGS:
+            case Settings.Panel.ACTION_VOLUME:
                 return new SoundSettingsFragment();
 
-            case android.net.wifi.WifiManager.ACTION_PICK_WIFI_NETWORK:
+            case Settings.Panel.ACTION_INTERNET_CONNECTIVITY:
+                return new NetworkAndInternetFragment();
+
+            case WifiManager.ACTION_PICK_WIFI_NETWORK:
             case Settings.ACTION_WIFI_SETTINGS:
             case Settings.ACTION_WIRELESS_SETTINGS:
+            case Settings.Panel.ACTION_WIFI:
                 return new WifiSettingsFragment();
 
             case Settings.ACTION_WIFI_IP_SETTINGS:
@@ -135,12 +138,6 @@
                 }
                 return ApplicationDetailsFragment.getInstance(pkg);
 
-            case Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS:
-                return new DefaultApplicationsSettingsFragment();
-
-            case Settings.ACTION_VOICE_INPUT_SETTINGS:
-                return new ManageAssistFragment();
-
             case Settings.ACTION_MANAGE_WRITE_SETTINGS:
                 return new ModifySystemSettingsFragment();
 
@@ -150,9 +147,6 @@
             case Settings.ACTION_USAGE_ACCESS_SETTINGS:
                 return new UsageAccessFragment();
 
-            case Settings.ACTION_STORAGE_VOLUME_ACCESS_SETTINGS:
-                return new DirectoryAccessFragment();
-
             case Intent.ACTION_QUICK_CLOCK:
             case Settings.ACTION_DATE_SETTINGS:
                 return new DatetimeSettingsFragment();
@@ -167,7 +161,6 @@
                 return new AccountSettingsFragment();
 
             case Settings.ACTION_INTERNAL_STORAGE_SETTINGS:
-            case StorageManager.ACTION_MANAGE_STORAGE:
                 return new StorageSettingsFragment();
 
             case Settings.ACTION_LOCALE_SETTINGS:
diff --git a/src/com/android/car/settings/common/PreferenceController.java b/src/com/android/car/settings/common/PreferenceController.java
index 4aa8fcf..c2796f5 100644
--- a/src/com/android/car/settings/common/PreferenceController.java
+++ b/src/com/android/car/settings/common/PreferenceController.java
@@ -95,7 +95,7 @@
      */
     @Retention(RetentionPolicy.SOURCE)
     @IntDef({AVAILABLE, CONDITIONALLY_UNAVAILABLE, UNSUPPORTED_ON_DEVICE, DISABLED_FOR_USER,
-        AVAILABLE_FOR_VIEWING})
+            AVAILABLE_FOR_VIEWING})
     public @interface AvailabilityStatus {
     }
 
diff --git a/src/com/android/car/settings/datausage/DataUsagePreferenceController.java b/src/com/android/car/settings/datausage/DataUsagePreferenceController.java
index 9c0652a..b0febdd 100644
--- a/src/com/android/car/settings/datausage/DataUsagePreferenceController.java
+++ b/src/com/android/car/settings/datausage/DataUsagePreferenceController.java
@@ -30,6 +30,8 @@
  */
 public class DataUsagePreferenceController extends PreferenceController<Preference> {
 
+    private int mSubId = Integer.MIN_VALUE;
+
     private SubscriptionManager mSubscriptionManager;
 
     public DataUsagePreferenceController(Context context, String preferenceKey,
@@ -45,9 +47,21 @@
 
     @Override
     protected boolean handlePreferenceClicked(Preference preference) {
-        int subId = DataUsageUtils.getDefaultSubscriptionId(mSubscriptionManager);
+        int subId = mSubId != Integer.MIN_VALUE ? mSubId : getDefaultSubId();
         AppDataUsageFragment appDataUsageFragment = AppDataUsageFragment.newInstance(subId);
         getFragmentController().launchFragment(appDataUsageFragment);
         return true;
     }
+
+    /**
+     * Sets the subId for which data usage will be loaded. If this is not set then default subId
+     * will be used to load data.
+     */
+    public void setSubId(int subId) {
+        mSubId = subId;
+    }
+
+    private int getDefaultSubId() {
+        return DataUsageUtils.getDefaultSubscriptionId(mSubscriptionManager);
+    }
 }
diff --git a/src/com/android/car/settings/location/LocationServicesPreferenceController.java b/src/com/android/car/settings/location/LocationServicesPreferenceController.java
index f0b4ff9..b17fb20 100644
--- a/src/com/android/car/settings/location/LocationServicesPreferenceController.java
+++ b/src/com/android/car/settings/location/LocationServicesPreferenceController.java
@@ -36,6 +36,7 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Injects Location Services into a {@link PreferenceGroup} with a matching key.
@@ -72,12 +73,9 @@
     @Override
     protected void onCreateInternal() {
         int profileId = UserHandle.USER_CURRENT;
-        if (mSettingsInjector.hasInjectedSettings(profileId)) {
-            // If there are injected settings, get and inject them.
-            List<Preference> injectedSettings = getSortedInjectedPreferences(profileId);
-            for (Preference preference : injectedSettings) {
-                getPreference().addPreference(preference);
-            }
+        List<Preference> injectedSettings = getSortedInjectedPreferences(profileId);
+        for (Preference preference : injectedSettings) {
+            getPreference().addPreference(preference);
         }
     }
 
@@ -104,8 +102,12 @@
     }
 
     private List<Preference> getSortedInjectedPreferences(int profileId) {
-        List<Preference> sortedInjections = new ArrayList<>(
-                mSettingsInjector.getInjectedSettings(getContext(), profileId));
+        List<Preference> sortedInjections = new ArrayList<>();
+        Map<Integer, List<Preference>> injections =
+                mSettingsInjector.getInjectedSettings(getContext(), profileId);
+        for (Map.Entry<Integer, List<Preference>> entry : injections.entrySet()) {
+            sortedInjections.addAll(entry.getValue());
+        }
         Collections.sort(sortedInjections);
         return sortedInjections;
     }
diff --git a/src/com/android/car/settings/location/RecentLocationRequestsPreferenceController.java b/src/com/android/car/settings/location/RecentLocationRequestsPreferenceController.java
index a358215..6860e7b 100644
--- a/src/com/android/car/settings/location/RecentLocationRequestsPreferenceController.java
+++ b/src/com/android/car/settings/location/RecentLocationRequestsPreferenceController.java
@@ -65,11 +65,12 @@
     protected void updateState(PreferenceGroup group) {
         if (mRecentLocationRequests == null) {
             // First time displaying a list.
-            mRecentLocationRequests = mRecentLocationApps.getAppListSorted();
+            mRecentLocationRequests =
+                    mRecentLocationApps.getAppListSorted(/* showSystemApps= */ true);
         } else {
             // If preferences were already added to the screen, get a new list
             // and only update the displayed app-list if there is a difference.
-            List<Request> newRequests = mRecentLocationApps.getAppListSorted();
+            List<Request> newRequests = mRecentLocationApps.getAppListSorted(true);
             // listsEqual compares by elements' package names only, using List.equals() will
             // not work because it will always return false since it also compares the time.
             if (listsEqual(newRequests, mRecentLocationRequests)) {
diff --git a/src/com/android/car/settings/network/AddMobileNetworkPreferenceController.java b/src/com/android/car/settings/network/AddMobileNetworkPreferenceController.java
new file mode 100644
index 0000000..22d5d83
--- /dev/null
+++ b/src/com/android/car/settings/network/AddMobileNetworkPreferenceController.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2019 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.car.settings.network;
+
+import static android.telephony.euicc.EuiccManager.ACTION_PROVISION_EMBEDDED_SUBSCRIPTION;
+import static android.telephony.euicc.EuiccManager.EXTRA_FORCE_PROVISION;
+
+import android.car.drivingstate.CarUxRestrictions;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ResolveInfo;
+import android.telephony.euicc.EuiccManager;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+
+import com.android.car.settings.common.FragmentController;
+import com.android.car.settings.common.PreferenceController;
+
+import java.util.List;
+
+/**
+ * Controls the visibility of the preference to add another mobile network based on if there is an
+ * activity to handle that intent.
+ */
+public class AddMobileNetworkPreferenceController extends PreferenceController<Preference> {
+
+    @VisibleForTesting
+    static final Intent ADD_NETWORK_INTENT = new Intent(
+            ACTION_PROVISION_EMBEDDED_SUBSCRIPTION).putExtra(EXTRA_FORCE_PROVISION, true);
+
+    public AddMobileNetworkPreferenceController(Context context, String preferenceKey,
+            FragmentController fragmentController, CarUxRestrictions uxRestrictions) {
+        super(context, preferenceKey, fragmentController, uxRestrictions);
+    }
+
+    @Override
+    protected Class<Preference> getPreferenceType() {
+        return Preference.class;
+    }
+
+    @Override
+    protected int getAvailabilityStatus() {
+        EuiccManager euiccManager = getContext().getSystemService(EuiccManager.class);
+        if (!euiccManager.isEnabled()) {
+            return UNSUPPORTED_ON_DEVICE;
+        }
+
+        List<ResolveInfo> resolveInfos = getContext().getPackageManager().queryIntentActivities(
+                ADD_NETWORK_INTENT, /* flags= */ 0);
+        if (resolveInfos.isEmpty()) {
+            return UNSUPPORTED_ON_DEVICE;
+        }
+
+        return AVAILABLE;
+    }
+
+    @Override
+    protected boolean handlePreferenceClicked(Preference preference) {
+        getContext().startActivity(ADD_NETWORK_INTENT);
+        return true;
+    }
+}
diff --git a/src/com/android/car/settings/network/ConfirmMobileDataDisableDialog.java b/src/com/android/car/settings/network/ConfirmMobileDataDisableDialog.java
deleted file mode 100644
index f963153..0000000
--- a/src/com/android/car/settings/network/ConfirmMobileDataDisableDialog.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (C) 2019 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.car.settings.network;
-
-import android.app.Dialog;
-import android.content.DialogInterface;
-import android.os.Bundle;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.android.car.settings.R;
-import com.android.car.ui.AlertDialogBuilder;
-import com.android.car.ui.preference.CarUiDialogFragment;
-
-/** Dialog to confirm disabling mobile data. */
-public class ConfirmMobileDataDisableDialog extends CarUiDialogFragment {
-
-    /**
-     * Tag used to open and identify the dialog fragment from the FragmentManager or
-     * FragmentController.
-     */
-    public static final String TAG = "ConfirmMobileDataDisableDialog";
-
-    private ConfirmMobileDataDisableListener mListener;
-
-    /**
-     * Sets a listener which will determine how to handle the user action when they press ok or
-     * cancel.
-     */
-    public void setListener(ConfirmMobileDataDisableListener listener) {
-        mListener = listener;
-    }
-
-    @NonNull
-    @Override
-    public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
-        return new AlertDialogBuilder(getContext())
-                .setMessage(R.string.confirm_mobile_data_disable)
-                .setPositiveButton(android.R.string.ok, this)
-                .setNegativeButton(android.R.string.cancel, this)
-                .create();
-    }
-
-    @Override
-    public void onClick(DialogInterface dialog, int which) {
-        if (which == DialogInterface.BUTTON_POSITIVE) {
-            if (mListener != null) {
-                mListener.onMobileDataDisableConfirmed();
-            }
-        }
-        if (which == DialogInterface.BUTTON_NEGATIVE) {
-            if (mListener != null) {
-                mListener.onMobileDataDisableRejected();
-            }
-        }
-    }
-
-    @Override
-    protected void onDialogClosed(boolean positiveResult) {
-    }
-
-    /**
-     * Interface for listeners that want to receive a callback when user confirms to disable mobile
-     * data.
-     */
-    public interface ConfirmMobileDataDisableListener {
-        /**
-         * Method called only when user presses confirm button.
-         */
-        void onMobileDataDisableConfirmed();
-
-        /**
-         * Method called only when user presses cancel button.
-         */
-        void onMobileDataDisableRejected();
-    }
-}
diff --git a/src/com/android/car/settings/network/MobileDataTogglePreferenceController.java b/src/com/android/car/settings/network/MobileDataTogglePreferenceController.java
index ebb9f36..e0e8e3e 100644
--- a/src/com/android/car/settings/network/MobileDataTogglePreferenceController.java
+++ b/src/com/android/car/settings/network/MobileDataTogglePreferenceController.java
@@ -18,10 +18,20 @@
 
 import android.car.drivingstate.CarUxRestrictions;
 import android.content.Context;
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.Looper;
+import android.provider.Settings;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 
+import androidx.annotation.VisibleForTesting;
 import androidx.preference.TwoStatePreference;
 
+import com.android.car.settings.R;
+import com.android.car.settings.common.ConfirmationDialogFragment;
 import com.android.car.settings.common.FragmentController;
 import com.android.car.settings.common.PreferenceController;
 
@@ -31,14 +41,40 @@
  */
 public class MobileDataTogglePreferenceController extends
         PreferenceController<TwoStatePreference> implements
-        ConfirmMobileDataDisableDialog.ConfirmMobileDataDisableListener {
+        MobileNetworkUpdateManager.MobileNetworkUpdateListener {
 
+    @VisibleForTesting
+    static final String DISABLE_DIALOG_TAG = ConfirmationDialogFragment.TAG + "_DisableData";
+    @VisibleForTesting
+    static final String ENABLE_MULTISIM_DIALOG_TAG =
+            ConfirmationDialogFragment.TAG + "_EnableMultisim";
+
+    private final SubscriptionManager mSubscriptionManager;
     private TelephonyManager mTelephonyManager;
+    private int mSubId;
+
+    private final ContentObserver mMobileDataChangeObserver = new ContentObserver(
+            new Handler(Looper.getMainLooper())) {
+        @Override
+        public void onChange(boolean selfChange) {
+            super.onChange(selfChange);
+            refreshUi();
+        }
+    };
+
+    private final ConfirmationDialogFragment.ConfirmListener mConfirmDisableListener =
+            arguments -> setMobileDataEnabled(
+                    /* enabled= */ false, /* disableOtherSubscriptions= */ false);
+    private final ConfirmationDialogFragment.ConfirmListener mConfirmMultiSimListener =
+            arguments -> setMobileDataEnabled(
+                    /* enabled= */ true, /* disableOtherSubscriptions= */ true);
+    private final ConfirmationDialogFragment.RejectListener mRejectRefreshListener =
+            arguments -> refreshUi();
 
     public MobileDataTogglePreferenceController(Context context, String preferenceKey,
             FragmentController fragmentController, CarUxRestrictions uxRestrictions) {
         super(context, preferenceKey, fragmentController, uxRestrictions);
-        mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
+        mSubscriptionManager = getContext().getSystemService(SubscriptionManager.class);
     }
 
     @Override
@@ -46,46 +82,124 @@
         return TwoStatePreference.class;
     }
 
+    /** Sets the subscription id to be controlled by this controller. */
+    public void setSubId(int subId) {
+        mSubId = subId;
+        mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(mSubId);
+    }
+
+    @Override
+    protected int getAvailabilityStatus() {
+        return mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID ? AVAILABLE
+                : CONDITIONALLY_UNAVAILABLE;
+    }
+
     @Override
     protected void onCreateInternal() {
-        ConfirmMobileDataDisableDialog dialog =
-                (ConfirmMobileDataDisableDialog) getFragmentController().findDialogByTag(
-                        ConfirmMobileDataDisableDialog.TAG);
-        if (dialog != null) {
-            dialog.setListener(this);
+        ConfirmationDialogFragment.resetListeners(
+                (ConfirmationDialogFragment) getFragmentController().findDialogByTag(
+                        DISABLE_DIALOG_TAG), mConfirmDisableListener, mRejectRefreshListener);
+
+        ConfirmationDialogFragment.resetListeners(
+                (ConfirmationDialogFragment) getFragmentController().findDialogByTag(
+                        ENABLE_MULTISIM_DIALOG_TAG), mConfirmMultiSimListener,
+                mRejectRefreshListener);
+    }
+
+    @Override
+    protected void onStartInternal() {
+        if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+            getContext().getContentResolver().registerContentObserver(getObservableUri(mSubId),
+                    /* notifyForDescendants= */ false, mMobileDataChangeObserver);
+        }
+    }
+
+    @Override
+    protected void onStopInternal() {
+        if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+            getContext().getContentResolver().unregisterContentObserver(mMobileDataChangeObserver);
         }
     }
 
     @Override
     protected void updateState(TwoStatePreference preference) {
-        preference.setChecked(mTelephonyManager.isDataEnabled());
+        preference.setEnabled(!isOpportunistic());
+        preference.setChecked(
+                mTelephonyManager != null ? mTelephonyManager.isDataEnabled() : false);
     }
 
     @Override
     protected boolean handlePreferenceChanged(TwoStatePreference preference, Object newValue) {
-        boolean newToggleValue = (Boolean) newValue;
-        if (!newToggleValue) {
-            ConfirmMobileDataDisableDialog dialog = new ConfirmMobileDataDisableDialog();
-            dialog.setListener(this);
-            getFragmentController().showDialog(dialog, ConfirmMobileDataDisableDialog.TAG);
+        boolean newToggleValue = (boolean) newValue;
+        boolean isMultiSim = (mTelephonyManager.getSimCount() > 1);
+        int defaultSubId = mSubscriptionManager.getDefaultDataSubscriptionId();
+        boolean needToDisableOthers = mSubscriptionManager.isActiveSubscriptionId(defaultSubId)
+                && mSubId != defaultSubId;
+
+        if (!newToggleValue && !isMultiSim) {
+            getFragmentController().showDialog(getConfirmDataDisableDialog(), DISABLE_DIALOG_TAG);
+        } else if (newToggleValue && isMultiSim && needToDisableOthers) {
+            getFragmentController().showDialog(getConfirmMultisimEnableDialog(),
+                    ENABLE_MULTISIM_DIALOG_TAG);
         } else {
-            setMobileDataEnabled(true);
+            setMobileDataEnabled(newToggleValue, /* disableOtherSubscriptions= */ false);
         }
         return false;
     }
 
     @Override
-    public void onMobileDataDisableConfirmed() {
-        setMobileDataEnabled(false);
-    }
-
-    @Override
-    public void onMobileDataDisableRejected() {
+    public void onMobileNetworkUpdated(int subId) {
+        setSubId(subId);
         refreshUi();
     }
 
-    private void setMobileDataEnabled(boolean enabled) {
-        mTelephonyManager.setDataEnabled(enabled);
+    private void setMobileDataEnabled(boolean enabled, boolean disableOtherSubscriptions) {
+        NetworkUtils.setMobileDataEnabled(getContext(), mSubId, enabled, disableOtherSubscriptions);
         refreshUi();
     }
+
+    private boolean isOpportunistic() {
+        SubscriptionInfo info = mSubscriptionManager.getActiveSubscriptionInfo(mSubId);
+        return info != null && info.isOpportunistic();
+    }
+
+    private Uri getObservableUri(int subId) {
+        Uri uri = Settings.Global.getUriFor(Settings.Global.MOBILE_DATA);
+        if (TelephonyManager.from(getContext()).getSimCount() != 1) {
+            uri = Settings.Global.getUriFor(Settings.Global.MOBILE_DATA + subId);
+        }
+        return uri;
+    }
+
+    private ConfirmationDialogFragment getConfirmDataDisableDialog() {
+        return new ConfirmationDialogFragment.Builder(getContext())
+                .setMessage(R.string.confirm_mobile_data_disable)
+                .setPositiveButton(android.R.string.ok, mConfirmDisableListener)
+                .setNegativeButton(android.R.string.cancel, mRejectRefreshListener)
+                .build();
+    }
+
+    private ConfirmationDialogFragment getConfirmMultisimEnableDialog() {
+        SubscriptionInfo previousSubInfo =
+                mSubscriptionManager.getDefaultDataSubscriptionInfo();
+        SubscriptionInfo newSubInfo =
+                mSubscriptionManager.getActiveSubscriptionInfo(mSubId);
+
+        String previousName = (previousSubInfo == null)
+                ? getContext().getResources().getString(R.string.sim_selection_required_pref)
+                : previousSubInfo.getDisplayName().toString();
+
+        String newName = (newSubInfo == null)
+                ? getContext().getResources().getString(R.string.sim_selection_required_pref)
+                : newSubInfo.getDisplayName().toString();
+
+        return new ConfirmationDialogFragment.Builder(getContext())
+                .setTitle(getContext().getString(R.string.sim_change_data_title, newName))
+                .setMessage(getContext().getString(R.string.sim_change_data_message,
+                        newName, previousName))
+                .setPositiveButton(getContext().getString(R.string.sim_change_data_ok, newName),
+                        mConfirmMultiSimListener)
+                .setNegativeButton(android.R.string.cancel, mRejectRefreshListener)
+                .build();
+    }
 }
diff --git a/src/com/android/car/settings/network/MobileNetworkEntryPreferenceController.java b/src/com/android/car/settings/network/MobileNetworkEntryPreferenceController.java
index 3db2065..534024b 100644
--- a/src/com/android/car/settings/network/MobileNetworkEntryPreferenceController.java
+++ b/src/com/android/car/settings/network/MobileNetworkEntryPreferenceController.java
@@ -18,49 +18,40 @@
 
 import android.car.drivingstate.CarUxRestrictions;
 import android.car.userlib.CarUserManagerHelper;
-import android.content.BroadcastReceiver;
 import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
 import android.net.ConnectivityManager;
 import android.os.UserManager;
-import android.provider.Settings;
-import android.telephony.PhoneStateListener;
-import android.telephony.ServiceState;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 
 import androidx.preference.Preference;
 
+import com.android.car.settings.R;
 import com.android.car.settings.common.FragmentController;
 import com.android.car.settings.common.PreferenceController;
 
+import java.util.List;
+
 /** Controls the preference for accessing mobile network settings. */
-public class MobileNetworkEntryPreferenceController extends PreferenceController<Preference> {
+public class MobileNetworkEntryPreferenceController extends
+        PreferenceController<Preference> implements
+        SubscriptionsChangeListener.SubscriptionsChangeAction {
 
     private final CarUserManagerHelper mCarUserManagerHelper;
-    private final TelephonyManager mTelephonyManager;
+    private final SubscriptionsChangeListener mChangeListener;
+    private final SubscriptionManager mSubscriptionManager;
     private final ConnectivityManager mConnectivityManager;
-    private final PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
-        @Override
-        public void onServiceStateChanged(ServiceState serviceState) {
-            refreshUi();
-        }
-    };
-    private final BroadcastReceiver mAirplaneModeChangedReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            refreshUi();
-        }
-    };
-    private final IntentFilter mIntentFilter = new IntentFilter(
-            Intent.ACTION_AIRPLANE_MODE_CHANGED);
+    private final TelephonyManager mTelephonyManager;
 
     public MobileNetworkEntryPreferenceController(Context context, String preferenceKey,
             FragmentController fragmentController, CarUxRestrictions uxRestrictions) {
         super(context, preferenceKey, fragmentController, uxRestrictions);
         mCarUserManagerHelper = new CarUserManagerHelper(context);
+        mChangeListener = new SubscriptionsChangeListener(context, /* action= */ this);
+        mSubscriptionManager = context.getSystemService(SubscriptionManager.class);
+        mConnectivityManager = context.getSystemService(ConnectivityManager.class);
         mTelephonyManager = context.getSystemService(TelephonyManager.class);
-        mConnectivityManager = getContext().getSystemService(ConnectivityManager.class);
     }
 
     @Override
@@ -70,14 +61,12 @@
 
     @Override
     protected void onStartInternal() {
-        mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_SERVICE_STATE);
-        getContext().registerReceiver(mAirplaneModeChangedReceiver, mIntentFilter);
+        mChangeListener.start();
     }
 
     @Override
     protected void onStopInternal() {
-        mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
-        getContext().unregisterReceiver(mAirplaneModeChangedReceiver);
+        mChangeListener.stop();
     }
 
     @Override
@@ -97,12 +86,43 @@
 
     @Override
     protected void updateState(Preference preference) {
-        preference.setSummary(mTelephonyManager.getNetworkOperatorName());
-        preference.setEnabled(isAirplaneModeOff());
+        List<SubscriptionInfo> subs = SubscriptionUtils.getAvailableSubscriptions(
+                mSubscriptionManager, mTelephonyManager);
+        preference.setEnabled(!subs.isEmpty());
+        preference.setSummary(getSummary(subs));
     }
 
-    private boolean isAirplaneModeOff() {
-        return Settings.Global.getInt(getContext().getContentResolver(),
-                Settings.Global.AIRPLANE_MODE_ON, 0) == 0;
+    @Override
+    protected boolean handlePreferenceClicked(Preference preference) {
+        List<SubscriptionInfo> subs = SubscriptionUtils.getAvailableSubscriptions(
+                mSubscriptionManager, mTelephonyManager);
+        if (subs.isEmpty()) {
+            return true;
+        }
+
+        if (subs.size() == 1) {
+            getFragmentController().launchFragment(
+                    MobileNetworkFragment.newInstance(subs.get(0).getSubscriptionId()));
+        } else {
+            getFragmentController().launchFragment(new MobileNetworkListFragment());
+        }
+        return true;
+    }
+
+    @Override
+    public void onSubscriptionsChanged() {
+        refreshUi();
+    }
+
+    private CharSequence getSummary(List<SubscriptionInfo> subs) {
+        int count = subs.size();
+        if (subs.isEmpty()) {
+            return null;
+        } else if (count == 1) {
+            return subs.get(0).getDisplayName();
+        } else {
+            return getContext().getResources().getQuantityString(
+                    R.plurals.mobile_network_summary_count, count, count);
+        }
     }
 }
diff --git a/src/com/android/car/settings/network/MobileNetworkFragment.java b/src/com/android/car/settings/network/MobileNetworkFragment.java
index 27cb83e..9ad6085 100644
--- a/src/com/android/car/settings/network/MobileNetworkFragment.java
+++ b/src/com/android/car/settings/network/MobileNetworkFragment.java
@@ -16,17 +16,108 @@
 
 package com.android.car.settings.network;
 
+import android.content.Context;
+import android.os.Bundle;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+
+import androidx.annotation.VisibleForTesting;
 import androidx.annotation.XmlRes;
 
 import com.android.car.settings.R;
 import com.android.car.settings.common.SettingsFragment;
+import com.android.internal.util.CollectionUtils;
+
+import com.google.android.collect.Lists;
+
+import java.util.List;
 
 /** Mobile network settings homepage. */
-public class MobileNetworkFragment extends SettingsFragment {
+public class MobileNetworkFragment extends SettingsFragment implements
+        MobileNetworkUpdateManager.MobileNetworkUpdateListener {
+
+    @VisibleForTesting
+    static final String ARG_NETWORK_SUB_ID = "network_sub_id";
+
+    private SubscriptionManager mSubscriptionManager;
+    private MobileNetworkUpdateManager mMobileNetworkUpdateManager;
+    private CharSequence mTitle;
+
+    /**
+     * Creates a new instance of the {@link MobileNetworkFragment}, which shows settings related to
+     * the given {@code subId}.
+     */
+    public static MobileNetworkFragment newInstance(int subId) {
+        MobileNetworkFragment fragment = new MobileNetworkFragment();
+        Bundle args = new Bundle();
+        args.putInt(ARG_NETWORK_SUB_ID, subId);
+        fragment.setArguments(args);
+        return fragment;
+    }
 
     @Override
     @XmlRes
     protected int getPreferenceScreenResId() {
         return R.xml.mobile_network_fragment;
     }
+
+    @Override
+    public void onAttach(Context context) {
+        super.onAttach(context);
+        mSubscriptionManager = context.getSystemService(SubscriptionManager.class);
+
+        int subId = getArguments() != null
+                ? getArguments().getInt(ARG_NETWORK_SUB_ID, MobileNetworkUpdateManager.SUB_ID_NULL)
+                : MobileNetworkUpdateManager.SUB_ID_NULL;
+        mMobileNetworkUpdateManager = new MobileNetworkUpdateManager(context, subId);
+        getLifecycle().addObserver(mMobileNetworkUpdateManager);
+
+        List<MobileNetworkUpdateManager.MobileNetworkUpdateListener> listeners =
+                Lists.newArrayList(
+                        this,
+                        use(MobileDataTogglePreferenceController.class,
+                                R.string.pk_mobile_data_toggle),
+                        use(RoamingPreferenceController.class, R.string.pk_mobile_roaming_toggle));
+        for (MobileNetworkUpdateManager.MobileNetworkUpdateListener listener : listeners) {
+            mMobileNetworkUpdateManager.registerListener(listener);
+        }
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        if (mTitle != null) {
+            getToolbar().setTitle(mTitle);
+        }
+    }
+
+    @Override
+    public void onMobileNetworkUpdated(int subId) {
+        SubscriptionInfo info = null;
+
+        if (subId != MobileNetworkUpdateManager.SUB_ID_NULL) {
+            for (SubscriptionInfo subscriptionInfo :
+                    mSubscriptionManager.getSelectableSubscriptionInfoList()) {
+                if (subscriptionInfo.getSubscriptionId() == subId) {
+                    info = subscriptionInfo;
+                }
+            }
+        }
+
+        if (info == null && !CollectionUtils.isEmpty(
+                mSubscriptionManager.getActiveSubscriptionInfoList())) {
+            info = mSubscriptionManager.getActiveSubscriptionInfoList().get(0);
+        }
+
+        if (info != null) {
+            // It is possible for this to be called before the activity is fully created. If so,
+            // cache the value so that it can be constructed onActivityCreated.
+            mTitle = info.getDisplayName();
+            try {
+                getToolbar().setTitle(mTitle);
+            } catch (IllegalArgumentException ex) {
+                // Toolbar is not found since the activity is not loaded yet. Continue.
+            }
+        }
+    }
 }
diff --git a/src/com/android/car/settings/applications/defaultapps/DefaultAssistantPickerFragment.java b/src/com/android/car/settings/network/MobileNetworkListFragment.java
similarity index 70%
copy from src/com/android/car/settings/applications/defaultapps/DefaultAssistantPickerFragment.java
copy to src/com/android/car/settings/network/MobileNetworkListFragment.java
index 78c1473..4ec94fd 100644
--- a/src/com/android/car/settings/applications/defaultapps/DefaultAssistantPickerFragment.java
+++ b/src/com/android/car/settings/network/MobileNetworkListFragment.java
@@ -14,19 +14,22 @@
  * limitations under the License.
  */
 
-package com.android.car.settings.applications.defaultapps;
+package com.android.car.settings.network;
 
 import androidx.annotation.XmlRes;
 
 import com.android.car.settings.R;
 import com.android.car.settings.common.SettingsFragment;
 
-/** Shows the option to choose the default assistant. */
-public class DefaultAssistantPickerFragment extends SettingsFragment {
+/**
+ * Shows the list of mobile networks if there are multiple. Clicking into any one of these mobile
+ * networks shows {@link MobileNetworkFragment} for that specific mobile network.
+ */
+public class MobileNetworkListFragment extends SettingsFragment {
 
     @Override
     @XmlRes
     protected int getPreferenceScreenResId() {
-        return R.xml.default_assistant_picker_fragment;
+        return R.xml.mobile_network_list_fragment;
     }
 }
diff --git a/src/com/android/car/settings/network/MobileNetworkListPreferenceController.java b/src/com/android/car/settings/network/MobileNetworkListPreferenceController.java
new file mode 100644
index 0000000..c4fb438
--- /dev/null
+++ b/src/com/android/car/settings/network/MobileNetworkListPreferenceController.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2019 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.car.settings.network;
+
+import android.car.drivingstate.CarUxRestrictions;
+import android.content.Context;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceGroup;
+
+import com.android.car.settings.R;
+import com.android.car.settings.common.FragmentController;
+import com.android.car.settings.common.PreferenceController;
+
+import java.util.List;
+
+/** Business logic to populate the list of available mobile networks. */
+public class MobileNetworkListPreferenceController extends
+        PreferenceController<PreferenceGroup> implements
+        SubscriptionsChangeListener.SubscriptionsChangeAction {
+
+    private final SubscriptionsChangeListener mSubscriptionsChangeListener;
+    private final SubscriptionManager mSubscriptionManager;
+    private final TelephonyManager mTelephonyManager;
+
+    public MobileNetworkListPreferenceController(Context context, String preferenceKey,
+            FragmentController fragmentController, CarUxRestrictions uxRestrictions) {
+        super(context, preferenceKey, fragmentController, uxRestrictions);
+
+        mSubscriptionsChangeListener = new SubscriptionsChangeListener(context, /* action= */ this);
+        mSubscriptionManager = context.getSystemService(SubscriptionManager.class);
+        mTelephonyManager = context.getSystemService(TelephonyManager.class);
+    }
+
+    @Override
+    protected Class<PreferenceGroup> getPreferenceType() {
+        return PreferenceGroup.class;
+    }
+
+    @Override
+    protected void onStartInternal() {
+        mSubscriptionsChangeListener.start();
+    }
+
+    @Override
+    protected void onStopInternal() {
+        mSubscriptionsChangeListener.stop();
+    }
+
+    @Override
+    protected void updateState(PreferenceGroup preferenceGroup) {
+        preferenceGroup.removeAll();
+
+        List<SubscriptionInfo> subscriptions = SubscriptionUtils.getAvailableSubscriptions(
+                mSubscriptionManager, mTelephonyManager);
+        for (SubscriptionInfo info : subscriptions) {
+            preferenceGroup.addPreference(createPreference(info));
+        }
+    }
+
+    @Override
+    public void onSubscriptionsChanged() {
+        refreshUi();
+    }
+
+    private Preference createPreference(SubscriptionInfo info) {
+        Preference preference = new Preference(getContext());
+        preference.setTitle(info.getDisplayName());
+        preference.setKey(Integer.toString(info.getSubscriptionId()));
+
+        boolean isEsim = info.isEmbedded();
+        if (mSubscriptionManager.isActiveSubscriptionId(info.getSubscriptionId())) {
+            preference.setSummary(isEsim ? R.string.mobile_network_active_esim
+                    : R.string.mobile_network_active_sim);
+        } else {
+            preference.setSummary(isEsim ? R.string.mobile_network_inactive_esim
+                    : R.string.mobile_network_inactive_sim);
+        }
+
+        preference.setOnPreferenceClickListener(pref -> {
+            MobileNetworkFragment fragment = MobileNetworkFragment.newInstance(
+                    info.getSubscriptionId());
+            getFragmentController().launchFragment(fragment);
+            return true;
+        });
+
+        return preference;
+    }
+}
diff --git a/src/com/android/car/settings/network/MobileNetworkUpdateManager.java b/src/com/android/car/settings/network/MobileNetworkUpdateManager.java
new file mode 100644
index 0000000..4b9a688
--- /dev/null
+++ b/src/com/android/car/settings/network/MobileNetworkUpdateManager.java
@@ -0,0 +1,200 @@
+/*
+ * Copyright (C) 2019 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.car.settings.network;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+
+import androidx.annotation.NonNull;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
+
+import com.android.car.settings.common.Logger;
+import com.android.internal.telephony.TelephonyIntents;
+import com.android.internal.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * Listens to potential changes in subscription id and updates registered {@link
+ * MobileNetworkUpdateManager.MobileNetworkUpdateListener} with the new subscription id.
+ */
+public class MobileNetworkUpdateManager implements DefaultLifecycleObserver {
+
+    /** Value to represent that the subscription id hasn't been computed yet. */
+    static final int SUB_ID_NULL = Integer.MIN_VALUE;
+    private static final Logger LOG = new Logger(MobileNetworkUpdateManager.class);
+
+    private final List<MobileNetworkUpdateListener> mListeners = new ArrayList<>();
+    private final PhoneChangeReceiver mPhoneChangeReceiver;
+    private final SubscriptionManager mSubscriptionManager;
+    private List<SubscriptionInfo> mSubscriptionInfos;
+    private int mCurSubscriptionId;
+
+    private final SubscriptionManager.OnSubscriptionsChangedListener
+            mOnSubscriptionsChangeListener =
+            new SubscriptionManager.OnSubscriptionsChangedListener() {
+                @Override
+                public void onSubscriptionsChanged() {
+                    if (!Objects.equals(mSubscriptionInfos,
+                            mSubscriptionManager.getActiveSubscriptionInfoList(
+                                    /* userVisibleOnly= */ true))) {
+                        updateSubscriptions(/* forceRefresh= */ false);
+                    }
+                }
+            };
+
+    public MobileNetworkUpdateManager(Context context, int subId) {
+        mCurSubscriptionId = subId;
+        mSubscriptionManager = context.getSystemService(SubscriptionManager.class);
+        mSubscriptionInfos = mSubscriptionManager.getActiveSubscriptionInfoList();
+
+        mPhoneChangeReceiver = new PhoneChangeReceiver(context, () -> {
+            if (mCurSubscriptionId != SUB_ID_NULL) {
+                // When the radio changes (ex: CDMA->GSM), refresh the fragment.
+                // This is very rare.
+                LOG.d("Radio change (i.e. CDMA->GSM) received for valid subscription id: "
+                        + mCurSubscriptionId);
+                updateReceived(mCurSubscriptionId);
+            }
+        });
+    }
+
+    /**
+     * Registers a listener that will receive necessary updates to changes in the mobile network.
+     */
+    public void registerListener(MobileNetworkUpdateListener listener) {
+        mListeners.add(listener);
+    }
+
+    /**
+     * Unregisters a listener that was previously added via
+     * {@link MobileNetworkUpdateManager#registerListener(MobileNetworkUpdateListener)}. The
+     * provided argument must refer to the same object that was registered in order to securely be
+     * unregistered.
+     */
+    public void unregisterListener(MobileNetworkUpdateListener listener) {
+        mListeners.remove(listener);
+    }
+
+    @Override
+    public void onCreate(@NonNull LifecycleOwner owner) {
+        updateSubscriptions(/* forceRefresh= */ true);
+    }
+
+    @Override
+    public final void onStart(@NonNull LifecycleOwner owner) {
+        mPhoneChangeReceiver.register();
+        mSubscriptionManager.addOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
+    }
+
+    @Override
+    public final void onStop(@NonNull LifecycleOwner owner) {
+        mPhoneChangeReceiver.unregister();
+        mSubscriptionManager.removeOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
+    }
+
+    private void updateSubscriptions(boolean forceRefresh) {
+        LOG.d("updateSubscriptions called");
+        mSubscriptionInfos = mSubscriptionManager.getActiveSubscriptionInfoList();
+        int subId = getSubscriptionId();
+        if (forceRefresh || mCurSubscriptionId != subId) {
+            LOG.d("updateSubscriptions updated subscription id! prev: " + mCurSubscriptionId
+                    + " new: " + subId);
+            mCurSubscriptionId = subId;
+            updateReceived(mCurSubscriptionId);
+        }
+    }
+
+    private void updateReceived(int subId) {
+        for (MobileNetworkUpdateListener listener : mListeners) {
+            listener.onMobileNetworkUpdated(subId);
+        }
+    }
+
+    private int getSubscriptionId() {
+        SubscriptionInfo subscription = getSubscription();
+        return subscription != null ? subscription.getSubscriptionId()
+                : SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+    }
+
+    /**
+     * First, find a subscription with the id provided at construction if it exists. If not, just
+     * return the first one in the mSubscriptionInfos list since it is already sorted by sim slot.
+     */
+    private SubscriptionInfo getSubscription() {
+        if (mCurSubscriptionId != SUB_ID_NULL) {
+            for (SubscriptionInfo subscriptionInfo :
+                    mSubscriptionManager.getSelectableSubscriptionInfoList()) {
+                if (subscriptionInfo.getSubscriptionId() == mCurSubscriptionId) {
+                    return subscriptionInfo;
+                }
+            }
+        }
+
+        return CollectionUtils.isEmpty(mSubscriptionInfos) ? null : mSubscriptionInfos.get(0);
+    }
+
+    /**
+     * Interface used by components listening to subscription id updates from {@link
+     * MobileNetworkUpdateManager}.
+     */
+    public interface MobileNetworkUpdateListener {
+        /** Called when there is a new subscription id that other components should be aware of. */
+        void onMobileNetworkUpdated(int subId);
+    }
+
+    /** Broadcast receiver which observes changes in radio technology (i.e. CDMA vs GSM). */
+    private static class PhoneChangeReceiver extends BroadcastReceiver {
+        private static final IntentFilter RADIO_TECHNOLOGY_CHANGED_FILTER = new IntentFilter(
+                TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
+
+        private Context mContext;
+        private PhoneChangeReceiver.OnChangeAction mOnChangeAction;
+
+        /** Action to take when receiver receives a non sticky broadcast intent. */
+        private interface OnChangeAction {
+            void onReceive();
+        }
+
+        PhoneChangeReceiver(Context context, PhoneChangeReceiver.OnChangeAction onChangeAction) {
+            mContext = context;
+            mOnChangeAction = onChangeAction;
+        }
+
+        void register() {
+            mContext.registerReceiver(this, RADIO_TECHNOLOGY_CHANGED_FILTER);
+        }
+
+        void unregister() {
+            mContext.unregisterReceiver(this);
+        }
+
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (!isInitialStickyBroadcast()) {
+                mOnChangeAction.onReceive();
+            }
+        }
+    }
+}
diff --git a/src/com/android/car/settings/network/NetworkUtils.java b/src/com/android/car/settings/network/NetworkUtils.java
index fe3fc05..f8aa104 100644
--- a/src/com/android/car/settings/network/NetworkUtils.java
+++ b/src/com/android/car/settings/network/NetworkUtils.java
@@ -16,11 +16,16 @@
 
 package com.android.car.settings.network;
 
+import android.content.Context;
 import android.net.ConnectivityManager;
 import android.net.Network;
 import android.net.NetworkCapabilities;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 
+import java.util.List;
+
 /** Provides helpful utilities surrounding network related tasks. */
 public final class NetworkUtils {
 
@@ -47,4 +52,32 @@
         return simState != TelephonyManager.SIM_STATE_ABSENT
                 && simState != TelephonyManager.SIM_STATE_UNKNOWN;
     }
+
+    /**
+     * Sets the mobile data enabled state based on {@code enabled} for the subscription defined by
+     * {@code subId}. If {@code disableOtherSubscriptions} is set, other subscriptions will be
+     * disabled unless they are opportunistic.
+     */
+    public static void setMobileDataEnabled(Context context, int subId, boolean enabled,
+            boolean disableOtherSubscriptions) {
+        TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class)
+                .createForSubscriptionId(subId);
+        SubscriptionManager subscriptionManager = context.getSystemService(
+                SubscriptionManager.class);
+        telephonyManager.setDataEnabled(enabled);
+
+        if (disableOtherSubscriptions) {
+            List<SubscriptionInfo> subInfoList =
+                    subscriptionManager.getActiveSubscriptionInfoList();
+            if (subInfoList != null) {
+                for (SubscriptionInfo subInfo : subInfoList) {
+                    // We never disable mobile data for opportunistic subscriptions.
+                    if (subInfo.getSubscriptionId() != subId && !subInfo.isOpportunistic()) {
+                        context.getSystemService(TelephonyManager.class).createForSubscriptionId(
+                                subInfo.getSubscriptionId()).setDataEnabled(false);
+                    }
+                }
+            }
+        }
+    }
 }
diff --git a/src/com/android/car/settings/network/RoamingPreferenceController.java b/src/com/android/car/settings/network/RoamingPreferenceController.java
new file mode 100644
index 0000000..8fba750
--- /dev/null
+++ b/src/com/android/car/settings/network/RoamingPreferenceController.java
@@ -0,0 +1,170 @@
+/*
+ * Copyright (C) 2019 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.car.settings.network;
+
+import android.car.drivingstate.CarUxRestrictions;
+import android.content.Context;
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.PersistableBundle;
+import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+import androidx.preference.TwoStatePreference;
+
+import com.android.car.settings.R;
+import com.android.car.settings.common.ConfirmationDialogFragment;
+import com.android.car.settings.common.FragmentController;
+import com.android.car.settings.common.PreferenceController;
+
+/** Business logic for toggling the roaming state. */
+// TODO: This preference should be available but unsearchable if subscription id is invalid.
+public class RoamingPreferenceController extends PreferenceController<TwoStatePreference> implements
+        MobileNetworkUpdateManager.MobileNetworkUpdateListener {
+
+    private final CarrierConfigManager mCarrierConfigManager;
+    private final RoamingStateChangeObserver mRoamingStateChangeObserver;
+    private TelephonyManager mTelephonyManager;
+    private int mSubId;
+
+    private final ConfirmationDialogFragment.ConfirmListener mConfirmListener =
+            arguments -> setRoamingEnabled(true);
+
+    public RoamingPreferenceController(Context context, String preferenceKey,
+            FragmentController fragmentController, CarUxRestrictions uxRestrictions) {
+        super(context, preferenceKey, fragmentController, uxRestrictions);
+        mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class);
+        mRoamingStateChangeObserver = new RoamingStateChangeObserver(
+                new Handler(Looper.getMainLooper()), this::refreshUi);
+        mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+    }
+
+    @Override
+    protected Class<TwoStatePreference> getPreferenceType() {
+        return TwoStatePreference.class;
+    }
+
+    /** Set the subscription id for which the roaming toggle should take effect. */
+    public void setSubId(int subId) {
+        mSubId = subId;
+        mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(mSubId);
+    }
+
+    @Override
+    protected void onStartInternal() {
+        mRoamingStateChangeObserver.register(getContext(), mSubId);
+
+        ConfirmationDialogFragment.resetListeners(
+                (ConfirmationDialogFragment) getFragmentController().findDialogByTag(
+                        ConfirmationDialogFragment.TAG),
+                mConfirmListener,
+                /* rejectListener= */ null);
+    }
+
+    @Override
+    protected void onStopInternal() {
+        mRoamingStateChangeObserver.unregister(getContext());
+    }
+
+    @Override
+    protected void updateState(TwoStatePreference preference) {
+        preference.setEnabled(mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+        preference.setChecked(
+                mTelephonyManager != null ? mTelephonyManager.isDataRoamingEnabled() : false);
+    }
+
+    @Override
+    protected boolean handlePreferenceChanged(TwoStatePreference preference, Object newValue) {
+        boolean isEnabled = (boolean) newValue;
+        if (isEnabled && isDialogNeeded()) {
+            getFragmentController().showDialog(getRoamingAlertDialog(),
+                    ConfirmationDialogFragment.TAG);
+            return false;
+        }
+
+        setRoamingEnabled(isEnabled);
+        return true;
+    }
+
+    @Override
+    public void onMobileNetworkUpdated(int subId) {
+        setSubId(subId);
+        refreshUi();
+    }
+
+    private void setRoamingEnabled(boolean enabled) {
+        mTelephonyManager.setDataRoamingEnabled(enabled);
+        refreshUi();
+    }
+
+    private boolean isDialogNeeded() {
+        boolean isRoamingEnabled = mTelephonyManager.isDataRoamingEnabled();
+        PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
+
+        // Need dialog if we need to turn on roaming and the roaming charge indication is allowed.
+        if (!isRoamingEnabled && (carrierConfig == null || !carrierConfig.getBoolean(
+                CarrierConfigManager.KEY_DISABLE_CHARGE_INDICATION_BOOL))) {
+            return true;
+        }
+        return false;
+    }
+
+    private ConfirmationDialogFragment getRoamingAlertDialog() {
+        return new ConfirmationDialogFragment.Builder(getContext())
+                .setTitle(R.string.roaming_alert_title)
+                .setMessage(R.string.roaming_warning)
+                .setPositiveButton(android.R.string.yes, mConfirmListener)
+                .setNegativeButton(android.R.string.no, /* rejectListener= */ null)
+                .build();
+    }
+
+    /** Observer that listens to data roaming change. */
+    private static class RoamingStateChangeObserver extends ContentObserver {
+
+        private Runnable mChangeListener;
+
+        RoamingStateChangeObserver(Handler handler, Runnable changeListener) {
+            super(handler);
+            mChangeListener = changeListener;
+        }
+
+        @Override
+        public void onChange(boolean selfChange) {
+            super.onChange(selfChange);
+            mChangeListener.run();
+        }
+
+        /** Register this observer to listen for updates to {@link Settings.Global#DATA_ROAMING}. */
+        public void register(Context context, int subId) {
+            Uri uri = Settings.Global.getUriFor(Settings.Global.DATA_ROAMING);
+            if (TelephonyManager.from(context).getSimCount() != 1) {
+                uri = Settings.Global.getUriFor(Settings.Global.DATA_ROAMING + subId);
+            }
+            context.getContentResolver().registerContentObserver(uri,
+                    /* notifyForDescendants= */ false, /* observer= */ this);
+        }
+
+        /** Unregister this observer. */
+        public void unregister(Context context) {
+            context.getContentResolver().unregisterContentObserver(/* observer= */ this);
+        }
+    }
+}
diff --git a/src/com/android/car/settings/network/SubscriptionUtils.java b/src/com/android/car/settings/network/SubscriptionUtils.java
new file mode 100644
index 0000000..cf1eba9
--- /dev/null
+++ b/src/com/android/car/settings/network/SubscriptionUtils.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2019 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.car.settings.network;
+
+import static android.telephony.UiccSlotInfo.CARD_STATE_INFO_PRESENT;
+
+import static com.android.internal.util.CollectionUtils.emptyIfNull;
+
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.telephony.UiccSlotInfo;
+import android.text.TextUtils;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/** Shared logic related to dealing with multiple subscriptions. */
+public final class SubscriptionUtils {
+
+    private SubscriptionUtils() {
+    }
+
+    /**
+     * Returns the list of available subscriptions, accounting for duplicates possible through a
+     * virtual network provider.
+     */
+    public static List<SubscriptionInfo> getAvailableSubscriptions(
+            SubscriptionManager subscriptionManager, TelephonyManager telephonyManager) {
+        List<SubscriptionInfo> subscriptions = new ArrayList<>(
+                emptyIfNull(subscriptionManager.getSelectableSubscriptionInfoList()));
+
+        // Look for inactive but present physical SIMs that are missing from the selectable list.
+        List<UiccSlotInfo> missing = new ArrayList<>();
+        UiccSlotInfo[] slotsInfo = telephonyManager.getUiccSlotsInfo();
+        for (int i = 0; slotsInfo != null && i < slotsInfo.length; i++) {
+            UiccSlotInfo slotInfo = slotsInfo[i];
+            if (isInactiveInsertedPSim(slotInfo)) {
+                int index = slotInfo.getLogicalSlotIdx();
+                String cardId = slotInfo.getCardId();
+
+                boolean found = subscriptions.stream().anyMatch(
+                        info -> index == info.getSimSlotIndex() && cardId.equals(
+                                info.getCardString()));
+                if (!found) {
+                    missing.add(slotInfo);
+                }
+            }
+        }
+        if (!missing.isEmpty()) {
+            for (SubscriptionInfo info : subscriptionManager.getAllSubscriptionInfoList()) {
+                for (UiccSlotInfo slotInfo : missing) {
+                    if (info.getSimSlotIndex() == slotInfo.getLogicalSlotIdx()
+                            && info.getCardString().equals(slotInfo.getCardId())) {
+                        subscriptions.add(info);
+                        break;
+                    }
+                }
+            }
+        }
+
+        // With some carriers such as Google Fi which provide a sort of virtual service that spans
+        // across multiple underlying networks, we end up with subscription entries for the
+        // underlying networks that need to be hidden from the user in the UI.
+        for (Iterator<SubscriptionInfo> iter = subscriptions.iterator(); iter.hasNext(); ) {
+            SubscriptionInfo info = iter.next();
+            if (TextUtils.isEmpty(info.getMncString())) {
+                iter.remove();
+            }
+        }
+        return subscriptions;
+    }
+
+    private static boolean isInactiveInsertedPSim(UiccSlotInfo slotInfo) {
+        return !slotInfo.getIsEuicc() && !slotInfo.getIsActive()
+                && slotInfo.getCardStateInfo() == CARD_STATE_INFO_PRESENT;
+    }
+}
diff --git a/src/com/android/car/settings/network/SubscriptionsChangeListener.java b/src/com/android/car/settings/network/SubscriptionsChangeListener.java
new file mode 100644
index 0000000..dc77fe9
--- /dev/null
+++ b/src/com/android/car/settings/network/SubscriptionsChangeListener.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2019 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.car.settings.network;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.telephony.SubscriptionManager;
+
+import com.android.internal.telephony.TelephonyIntents;
+
+/** Listens to changes in availability of telephony subscriptions. */
+public class SubscriptionsChangeListener {
+
+    /** Client defined action to trigger when there are subscription changes. */
+    public interface SubscriptionsChangeAction {
+        /** Action taken when subscriptions changed. */
+        void onSubscriptionsChanged();
+    }
+
+    private static final IntentFilter RADIO_TECH_CHANGED_FILTER = new IntentFilter(
+            TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
+
+    private final Context mContext;
+    private final SubscriptionManager mSubscriptionManager;
+    private final SubscriptionsChangeAction mSubscriptionsChangeAction;
+
+    private final SubscriptionManager.OnSubscriptionsChangedListener mSubscriptionsChangedListener =
+            new SubscriptionManager.OnSubscriptionsChangedListener() {
+                @Override
+                public void onSubscriptionsChanged() {
+                    subscriptionsChangedCallback();
+                }
+            };
+
+    private final BroadcastReceiver mRadioTechChangeReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (!isInitialStickyBroadcast()) {
+                subscriptionsChangedCallback();
+            }
+        }
+    };
+
+    public SubscriptionsChangeListener(Context context, SubscriptionsChangeAction action) {
+        mContext = context;
+        mSubscriptionManager = context.getSystemService(SubscriptionManager.class);
+        mSubscriptionsChangeAction = action;
+    }
+
+    /** Starts the various listeners necessary to track changes in telephony subscriptions. */
+    public void start() {
+        mSubscriptionManager.addOnSubscriptionsChangedListener(mSubscriptionsChangedListener);
+        mContext.registerReceiver(mRadioTechChangeReceiver, RADIO_TECH_CHANGED_FILTER);
+    }
+
+    /** Stops the various listeners necessary to track changes in telephony subscriptions. */
+    public void stop() {
+        mSubscriptionManager.removeOnSubscriptionsChangedListener(mSubscriptionsChangedListener);
+        mContext.unregisterReceiver(mRadioTechChangeReceiver);
+    }
+
+    private void subscriptionsChangedCallback() {
+        if (mSubscriptionsChangeAction != null) {
+            mSubscriptionsChangeAction.onSubscriptionsChanged();
+        }
+    }
+}
diff --git a/src/com/android/car/settings/quicksettings/BluetoothTile.java b/src/com/android/car/settings/quicksettings/BluetoothTile.java
index 63caccf..889e525 100644
--- a/src/com/android/car/settings/quicksettings/BluetoothTile.java
+++ b/src/com/android/car/settings/quicksettings/BluetoothTile.java
@@ -16,6 +16,8 @@
 
 package com.android.car.settings.quicksettings;
 
+import android.annotation.DrawableRes;
+import android.annotation.Nullable;
 import android.bluetooth.BluetoothAdapter;
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -24,9 +26,6 @@
 import android.graphics.drawable.Drawable;
 import android.view.View;
 
-import androidx.annotation.DrawableRes;
-import androidx.annotation.Nullable;
-
 import com.android.car.settings.R;
 import com.android.car.settings.bluetooth.BluetoothSettingsFragment;
 import com.android.car.settings.common.FragmentController;
@@ -94,10 +93,6 @@
             FragmentController fragmentController) {
         mStateChangedListener = stateChangedListener;
         mContext = context;
-        IntentFilter mBtStateChangeFilter = new IntentFilter();
-        mBtStateChangeFilter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
-        mBtStateChangeFilter.addAction(BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED);
-        mContext.registerReceiver(mBtStateReceiver, mBtStateChangeFilter);
         mLocalManager = LocalBluetoothManager.getInstance(
                 mContext, /* onInitCallback= */ null);
         if (mLocalManager == null) {
@@ -147,6 +142,14 @@
     }
 
     @Override
+    public void start() {
+        IntentFilter mBtStateChangeFilter = new IntentFilter();
+        mBtStateChangeFilter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
+        mBtStateChangeFilter.addAction(BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED);
+        mContext.registerReceiver(mBtStateReceiver, mBtStateChangeFilter);
+    }
+
+    @Override
     public void stop() {
         mContext.unregisterReceiver(mBtStateReceiver);
     }
diff --git a/src/com/android/car/settings/quicksettings/BrightnessTile.java b/src/com/android/car/settings/quicksettings/BrightnessTile.java
index 592e138..2ffab9f 100644
--- a/src/com/android/car/settings/quicksettings/BrightnessTile.java
+++ b/src/com/android/car/settings/quicksettings/BrightnessTile.java
@@ -71,8 +71,11 @@
     }
 
     @Override
+    public void start() {
+    }
+
+    @Override
     public void stop() {
-        // nothing to do.
     }
 
     @Override
diff --git a/src/com/android/car/settings/quicksettings/CelluarTile.java b/src/com/android/car/settings/quicksettings/CelluarTile.java
index 8471e1e..907a5a3 100644
--- a/src/com/android/car/settings/quicksettings/CelluarTile.java
+++ b/src/com/android/car/settings/quicksettings/CelluarTile.java
@@ -16,13 +16,12 @@
 
 package com.android.car.settings.quicksettings;
 
+import android.annotation.Nullable;
 import android.content.Context;
 import android.graphics.drawable.Drawable;
 import android.telephony.TelephonyManager;
 import android.view.View;
 
-import androidx.annotation.Nullable;
-
 import com.android.car.settings.R;
 import com.android.settingslib.net.DataUsageController;
 
@@ -83,6 +82,10 @@
     }
 
     @Override
+    public void start() {
+    }
+
+    @Override
     public void stop() {
     }
 
diff --git a/src/com/android/car/settings/quicksettings/DayNightTile.java b/src/com/android/car/settings/quicksettings/DayNightTile.java
index 5f0df2c..4e05fd8 100644
--- a/src/com/android/car/settings/quicksettings/DayNightTile.java
+++ b/src/com/android/car/settings/quicksettings/DayNightTile.java
@@ -16,14 +16,13 @@
 
 package com.android.car.settings.quicksettings;
 
+import android.annotation.DrawableRes;
+import android.annotation.Nullable;
 import android.app.UiModeManager;
 import android.content.Context;
 import android.graphics.drawable.Drawable;
 import android.view.View;
 
-import androidx.annotation.DrawableRes;
-import androidx.annotation.Nullable;
-
 import com.android.car.settings.R;
 import com.android.car.settings.common.FragmentController;
 import com.android.car.settings.display.DisplaySettingsFragment;
@@ -90,6 +89,10 @@
     }
 
     @Override
+    public void start() {
+    }
+
+    @Override
     public void stop() {
     }
 
diff --git a/src/com/android/car/settings/quicksettings/QuickSettingFragment.java b/src/com/android/car/settings/quicksettings/QuickSettingFragment.java
index ec9dfbd..130984e 100644
--- a/src/com/android/car/settings/quicksettings/QuickSettingFragment.java
+++ b/src/com/android/car/settings/quicksettings/QuickSettingFragment.java
@@ -172,6 +172,7 @@
     @Override
     public void onStart() {
         super.onStart();
+        mGridAdapter.start();
 
         // In non-user builds (that is, user-debug, eng, etc), display some version information.
         if (!Build.IS_USER) {
diff --git a/src/com/android/car/settings/quicksettings/QuickSettingGridAdapter.java b/src/com/android/car/settings/quicksettings/QuickSettingGridAdapter.java
index 89b0232..412c3bd 100644
--- a/src/com/android/car/settings/quicksettings/QuickSettingGridAdapter.java
+++ b/src/com/android/car/settings/quicksettings/QuickSettingGridAdapter.java
@@ -16,6 +16,7 @@
 
 package com.android.car.settings.quicksettings;
 
+import android.annotation.Nullable;
 import android.content.Context;
 import android.graphics.drawable.Drawable;
 import android.text.TextUtils;
@@ -26,7 +27,6 @@
 import android.widget.SeekBar;
 import android.widget.TextView;
 
-import androidx.annotation.Nullable;
 import androidx.recyclerview.widget.GridLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
@@ -76,6 +76,11 @@
         }
 
         /**
+         * Called when activity owning this tile's onStart() gets called.
+         */
+        void start();
+
+        /**
          * Called when activity owning this tile's onStop() gets called.
          */
         void stop();
@@ -102,6 +107,11 @@
 
     interface SeekbarTile extends SeekBar.OnSeekBarChangeListener {
         /**
+         * Called when activity owning this tile's onStart() gets called.
+         */
+        void start();
+
+        /**
          * Called when activity owning this tile's onStop() gets called.
          */
         void stop();
@@ -123,6 +133,15 @@
         return this;
     }
 
+    void start() {
+        for (SeekbarTile tile : mSeekbarTiles) {
+            tile.start();
+        }
+        for (Tile tile : mTiles) {
+            tile.start();
+        }
+    }
+
     void stop() {
         for (SeekbarTile tile : mSeekbarTiles) {
             tile.stop();
diff --git a/src/com/android/car/settings/quicksettings/WifiTile.java b/src/com/android/car/settings/quicksettings/WifiTile.java
index a6272f4..304f6e9 100644
--- a/src/com/android/car/settings/quicksettings/WifiTile.java
+++ b/src/com/android/car/settings/quicksettings/WifiTile.java
@@ -16,13 +16,12 @@
 
 package com.android.car.settings.quicksettings;
 
+import android.annotation.DrawableRes;
+import android.annotation.Nullable;
 import android.content.Context;
 import android.graphics.drawable.Drawable;
 import android.view.View;
 
-import androidx.annotation.DrawableRes;
-import androidx.annotation.Nullable;
-
 import com.android.car.settings.R;
 import com.android.car.settings.common.FragmentController;
 import com.android.car.settings.wifi.CarWifiManager;
@@ -57,8 +56,6 @@
             return true;
         };
         mCarWifiManager = new CarWifiManager(context);
-        mCarWifiManager.addListener(this);
-        mCarWifiManager.start();
         mStateChangedListener = stateChangedListener;
         // init icon and text etc.
         updateAccessPointSsid();
@@ -92,6 +89,12 @@
     }
 
     @Override
+    public void start() {
+        mCarWifiManager.addListener(this);
+        mCarWifiManager.start();
+    }
+
+    @Override
     public void stop() {
         mCarWifiManager.removeListener(this);
         mCarWifiManager.stop();
diff --git a/src/com/android/car/settings/security/AddTrustedDeviceActivity.java b/src/com/android/car/settings/security/AddTrustedDeviceActivity.java
new file mode 100644
index 0000000..b00595e
--- /dev/null
+++ b/src/com/android/car/settings/security/AddTrustedDeviceActivity.java
@@ -0,0 +1,246 @@
+/*
+ * Copyright (C) 2019 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.car.settings.security;
+
+import android.bluetooth.BluetoothDevice;
+import android.car.Car;
+import android.car.trust.CarTrustAgentEnrollmentManager;
+import android.car.userlib.CarUserManagerHelper;
+import android.os.Bundle;
+import android.widget.Toast;
+
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+import androidx.fragment.app.Fragment;
+
+import com.android.car.settings.R;
+import com.android.car.settings.common.BaseCarSettingsActivity;
+import com.android.car.settings.common.Logger;
+
+/**
+ * Activity which manages the enrollment process and communicates between
+ * CarTrustAgentEnrollmentService and fragments.
+ *
+ * <p>The flow when user want to enroll a trusted device should be as follows:
+ * <ol>
+ * <li> {@link CarTrustAgentEnrollmentManager#setEnrollmentCallback(
+ *CarTrustAgentEnrollmentManager.CarTrustAgentEnrollmentCallback)}
+ * <li> {@link CarTrustAgentEnrollmentManager#setBleCallback(
+ *CarTrustAgentEnrollmentManager.CarTrustAgentBleCallback)}
+ * <li> {@link CarTrustAgentEnrollmentManager#startEnrollmentAdvertising()}
+ * <li> wait for {@link CarTrustAgentEnrollmentManager.CarTrustAgentBleCallback#
+ * onBleEnrollmentDeviceDisconnected(BluetoothDevice)}
+ * <li>  {@link CarTrustAgentEnrollmentManager#stopEnrollmentAdvertising()}
+ * <li> wait for
+ * {@link CarTrustAgentEnrollmentManager.CarTrustAgentEnrollmentCallback#onAuthStringAvailable(
+ *BluetoothDevice, String)} to show the pairing code dialog to user
+ * <li> {@link CarTrustAgentEnrollmentManager#enrollmentHandshakeAccepted(BluetoothDevice)} after
+ * user confirms the pairing code
+ * <li> wait for
+ * {@link CarTrustAgentEnrollmentManager.CarTrustAgentEnrollmentCallback#onEscrowTokenAdded(long)}
+ * <li> {@link #getCheckLockFragment()}, wait user to input the password
+ * <li> After user enter the correct password, wait for
+ * {@link CarTrustAgentEnrollmentManager.CarTrustAgentEnrollmentCallback#
+ * onEscrowTokenActiveStateChanged(long, boolean)}
+ * <li> After get the results, finish the activity
+ * </ol>
+ */
+public class AddTrustedDeviceActivity extends BaseCarSettingsActivity implements CheckLockListener {
+    private static final Logger LOG = new Logger(AddTrustedDeviceActivity.class);
+    private static final String BLUETOOTH_DEVICE_KEY = "bluetoothDevice";
+    private static final String CURRENT_HANDLE_KEY = "currentHandle";
+    private Car mCar;
+    private BluetoothDevice mBluetoothDevice;
+    private long mHandle;
+    private CarUserManagerHelper mCarUserManagerHelper;
+    @Nullable
+    private CarTrustAgentEnrollmentManager mCarTrustAgentEnrollmentManager;
+
+    private final CarTrustAgentEnrollmentManager.CarTrustAgentEnrollmentCallback
+            mCarTrustAgentEnrollmentCallback =
+            new CarTrustAgentEnrollmentManager.CarTrustAgentEnrollmentCallback() {
+
+                @Override
+                public void onEnrollmentHandshakeFailure(BluetoothDevice device, int errorCode) {
+                    LOG.e("Trust agent service time out");
+                }
+
+                @Override
+                public void onAuthStringAvailable(BluetoothDevice device, String authString) {
+                    ConfirmPairingCodeDialog dialog = ConfirmPairingCodeDialog.newInstance(
+                            authString);
+                    dialog.setConfirmPairingCodeListener(mConfirmParingCodeListener);
+                    showDialog(dialog, ConfirmPairingCodeDialog.TAG);
+                }
+
+                @Override
+                public void onEscrowTokenAdded(long handle) {
+                    // User need to enter the correct authentication of the car to activate the
+                    // added token.
+                    mHandle = handle;
+                    launchFragment(getCheckLockFragment());
+                }
+
+                @Override
+                public void onEscrowTokenRemoved(long handle) {
+                }
+
+                @Override
+                public void onEscrowTokenActiveStateChanged(long handle, boolean active) {
+                    if (active) {
+                        onDeviceAddedSuccessfully();
+                    } else {
+                        LOG.d(handle + " has not been activated");
+                    }
+                    finish();
+                }
+            };
+
+    private final CarTrustAgentEnrollmentManager.CarTrustAgentBleCallback
+            mCarTrustAgentBleCallback =
+            new CarTrustAgentEnrollmentManager.CarTrustAgentBleCallback() {
+                @Override
+                public void onBleEnrollmentDeviceConnected(BluetoothDevice device) {
+                    mBluetoothDevice = device;
+                    mCarTrustAgentEnrollmentManager.stopEnrollmentAdvertising();
+                }
+
+                @Override
+                public void onBleEnrollmentDeviceDisconnected(BluetoothDevice device) {
+                    Toast.makeText(AddTrustedDeviceActivity.this, getResources().getString(
+                            R.string.trusted_device_disconnected_toast),
+                            Toast.LENGTH_SHORT).show();
+                    mBluetoothDevice = null;
+                    finish();
+                }
+
+                @Override
+                public void onEnrollmentAdvertisingStarted() {
+                }
+
+                @Override
+                public void onEnrollmentAdvertisingFailed() {
+                    finish();
+                }
+            };
+
+    @VisibleForTesting
+    final ConfirmPairingCodeDialog.ConfirmPairingCodeListener mConfirmParingCodeListener =
+            new ConfirmPairingCodeDialog.ConfirmPairingCodeListener() {
+                public void onConfirmPairingCode() {
+                    mCarTrustAgentEnrollmentManager.enrollmentHandshakeAccepted(mBluetoothDevice);
+                }
+
+                public void onDialogCancelled() {
+                    finish();
+                }
+            };
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        mCar = Car.createCar(this);
+        mCarTrustAgentEnrollmentManager = (CarTrustAgentEnrollmentManager) mCar.getCarManager(
+                Car.CAR_TRUST_AGENT_ENROLLMENT_SERVICE);
+        if (mCarTrustAgentEnrollmentManager == null) {
+            LOG.e("CarTrustAgentEnrollmentManager is null");
+            finish();
+        }
+        mCarUserManagerHelper = new CarUserManagerHelper(this);
+        if (savedInstanceState != null) {
+            mBluetoothDevice = savedInstanceState.getParcelable(BLUETOOTH_DEVICE_KEY);
+            mHandle = savedInstanceState.getLong(CURRENT_HANDLE_KEY);
+        }
+        ConfirmPairingCodeDialog dialog =
+                (ConfirmPairingCodeDialog) findDialogByTag(ConfirmPairingCodeDialog.TAG);
+        if (dialog != null) {
+            dialog.setConfirmPairingCodeListener(mConfirmParingCodeListener);
+        }
+    }
+
+
+    @Override
+    protected void onStart() {
+        super.onStart();
+        if (mHandle != 0) {
+            if (mCarTrustAgentEnrollmentManager.isEscrowTokenActive(mHandle,
+                    mCarUserManagerHelper.getCurrentProcessUserId())) {
+                onDeviceAddedSuccessfully();
+                finish();
+            }
+        }
+        if (mBluetoothDevice == null) {
+            mCarTrustAgentEnrollmentManager.startEnrollmentAdvertising();
+        }
+        mCarTrustAgentEnrollmentManager.setEnrollmentCallback(mCarTrustAgentEnrollmentCallback);
+        mCarTrustAgentEnrollmentManager.setBleCallback(mCarTrustAgentBleCallback);
+
+    }
+
+    @Override
+    protected void onPause() {
+        super.onPause();
+        // When activity is pausing not because of a configuration change
+        if (getChangingConfigurations() == 0) {
+            mCarTrustAgentEnrollmentManager.terminateEnrollmentHandshake();
+        }
+    }
+
+    @Override
+    protected void onStop() {
+        super.onStop();
+        mCarTrustAgentEnrollmentManager.setBleCallback(null);
+        mCarTrustAgentEnrollmentManager.setEnrollmentCallback(null);
+        mCarTrustAgentEnrollmentManager.stopEnrollmentAdvertising();
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle savedInstanceState) {
+        super.onSaveInstanceState(savedInstanceState);
+        savedInstanceState.putParcelable(BLUETOOTH_DEVICE_KEY, mBluetoothDevice);
+        savedInstanceState.putLong(CURRENT_HANDLE_KEY, mHandle);
+    }
+
+
+    @Override
+    @Nullable
+    protected Fragment getInitialFragment() {
+        Fragment currentFragment = getSupportFragmentManager().findFragmentById(
+                R.id.fragment_container);
+        return currentFragment == null ? new AddTrustedDeviceProgressFragment() : currentFragment;
+    }
+
+    private Fragment getCheckLockFragment() {
+        return ConfirmPasswordFragmentFactory.getFragment(/* context= */ this);
+    }
+
+    @Override
+    public void onLockVerified(byte[] lock) {
+        getSupportFragmentManager().popBackStack();
+    }
+
+    @Override
+    public void onBackPressed() {
+        finish();
+    }
+
+    private void onDeviceAddedSuccessfully() {
+        Toast.makeText(this,
+                getResources().getString(R.string.trusted_device_success_enrollment_toast),
+                Toast.LENGTH_LONG).show();
+    }
+}
diff --git a/src/com/android/car/settings/security/AddTrustedDevicePreferenceController.java b/src/com/android/car/settings/security/AddTrustedDevicePreferenceController.java
new file mode 100644
index 0000000..b41764e
--- /dev/null
+++ b/src/com/android/car/settings/security/AddTrustedDevicePreferenceController.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2019 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.car.settings.security;
+
+import static android.os.UserManager.DISALLOW_BLUETOOTH;
+import static android.os.UserManager.DISALLOW_CONFIG_BLUETOOTH;
+
+import android.app.admin.DevicePolicyManager;
+import android.bluetooth.BluetoothAdapter;
+import android.car.drivingstate.CarUxRestrictions;
+import android.car.userlib.CarUserManagerHelper;
+import android.content.Context;
+import android.content.pm.PackageManager;
+
+import androidx.preference.Preference;
+
+import com.android.car.settings.R;
+import com.android.car.settings.common.FragmentController;
+import com.android.car.settings.common.PreferenceController;
+import com.android.internal.widget.LockPatternUtils;
+
+/**
+ * Business logic which controls whether the preference is clickeble according to the password
+ * quality of current user.
+ */
+public class AddTrustedDevicePreferenceController extends PreferenceController<Preference> {
+    private CarUserManagerHelper mCarUserManagerHelper;
+    private LockPatternUtils mLockPatternUtils;
+
+    public AddTrustedDevicePreferenceController(Context context, String preferenceKey,
+            FragmentController fragmentController, CarUxRestrictions uxRestrictions) {
+        super(context, preferenceKey, fragmentController, uxRestrictions);
+        mCarUserManagerHelper = new CarUserManagerHelper(context);
+        mLockPatternUtils = new LockPatternUtils(context);
+    }
+
+    @Override
+    protected int getAvailabilityStatus() {
+        if (!getContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)) {
+            return UNSUPPORTED_ON_DEVICE;
+        }
+        return isUserRestricted() ? DISABLED_FOR_USER : AVAILABLE;
+    }
+
+    private boolean isUserRestricted() {
+        return mCarUserManagerHelper.isCurrentProcessUserHasRestriction(DISALLOW_BLUETOOTH)
+                || mCarUserManagerHelper.isCurrentProcessUserHasRestriction(
+                DISALLOW_CONFIG_BLUETOOTH);
+    }
+
+    @Override
+    protected void updateState(Preference preference) {
+        preference.setSummary(
+                BluetoothAdapter.getDefaultAdapter().isEnabled() ? "" : getContext().getString(
+                        R.string.add_device_summary));
+        preference.setEnabled(hasPassword());
+    }
+
+    private boolean hasPassword() {
+        return mLockPatternUtils.getKeyguardStoredPasswordQuality(
+                mCarUserManagerHelper.getCurrentProcessUserId())
+                != DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
+    }
+
+    @Override
+    protected Class<Preference> getPreferenceType() {
+        return Preference.class;
+    }
+
+    @Override
+    public boolean handlePreferenceClicked(Preference preference) {
+        // Enable the adapter if it is not on (user is notified via summary message).
+        BluetoothAdapter.getDefaultAdapter().enable();
+        /** Need to start {@link AddTrustedDeviceActivity} after the click. */
+        return false;
+    }
+}
diff --git a/src/com/android/car/settings/security/AddTrustedDeviceProgressFragment.java b/src/com/android/car/settings/security/AddTrustedDeviceProgressFragment.java
new file mode 100644
index 0000000..7449d58
--- /dev/null
+++ b/src/com/android/car/settings/security/AddTrustedDeviceProgressFragment.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2019 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.car.settings.security;
+
+import android.os.Bundle;
+import android.view.View;
+import android.widget.ProgressBar;
+
+import com.android.car.settings.R;
+import com.android.car.settings.common.SettingsFragment;
+
+/**
+ * Add trusted device fragment which displays the progress and show the companion app information
+ * to user.
+ */
+public class AddTrustedDeviceProgressFragment extends SettingsFragment {
+    private ProgressBar mProgressBar;
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.add_trusted_device_progress_fragment;
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        mProgressBar = getToolbar().getProgressBar();
+        mProgressBar.setVisibility(View.VISIBLE);
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        mProgressBar.setVisibility(View.VISIBLE);
+    }
+
+    @Override
+    public void onStop() {
+        super.onStop();
+        mProgressBar.setVisibility(View.GONE);
+    }
+}
+
diff --git a/src/com/android/car/settings/security/CheckLockActivity.java b/src/com/android/car/settings/security/CheckLockActivity.java
index 85a58c3..66c3914 100644
--- a/src/com/android/car/settings/security/CheckLockActivity.java
+++ b/src/com/android/car/settings/security/CheckLockActivity.java
@@ -16,60 +16,26 @@
 
 package com.android.car.settings.security;
 
-import android.app.admin.DevicePolicyManager;
-import android.os.Bundle;
-import android.os.UserHandle;
-
 import androidx.annotation.Nullable;
 import androidx.fragment.app.Fragment;
 
 import com.android.car.settings.common.BaseCarSettingsActivity;
-import com.android.car.settings.common.Logger;
-import com.android.internal.widget.LockPatternUtils;
 
 /**
  * Prompts the user to enter their pin, password, or pattern lock (if set) and returns
  * {@link #RESULT_OK} on a successful entry or immediately if the user has no lock setup.
  */
 public class CheckLockActivity extends BaseCarSettingsActivity implements CheckLockListener {
-
-    private static final Logger LOG = new Logger(CheckLockActivity.class);
-
     @Override
     @Nullable
     protected Fragment getInitialFragment() {
-        Fragment fragment;
-        int passwordQuality = new LockPatternUtils(this).getKeyguardStoredPasswordQuality(
-                UserHandle.myUserId());
-        switch (passwordQuality) {
-            case DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED:
-                // User has not set a password.
-                setResult(RESULT_OK);
-                finish();
-                return null;
-            case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
-                fragment = new ConfirmLockPatternFragment();
-                break;
-            case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC:
-            case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX:
-                fragment = ConfirmLockPinPasswordFragment.newPinInstance();
-                break;
-            case DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC:
-            case DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC:
-                fragment = ConfirmLockPinPasswordFragment.newPasswordInstance();
-                break;
-            default:
-                LOG.e("Unexpected password quality: " + String.valueOf(passwordQuality));
-                fragment = ConfirmLockPinPasswordFragment.newPasswordInstance();
+        Fragment lockFragment = ConfirmPasswordFragmentFactory.getFragment(/* context= */ this);
+        if (lockFragment == null) {
+            // User has not set a password
+            setResult(RESULT_OK);
+            finish();
         }
-
-        Bundle bundle = fragment.getArguments();
-        if (bundle == null) {
-            bundle = new Bundle();
-        }
-        bundle.putInt(ChooseLockTypeFragment.EXTRA_CURRENT_PASSWORD_QUALITY, passwordQuality);
-        fragment.setArguments(bundle);
-        return fragment;
+        return lockFragment;
     }
 
     @Override
diff --git a/src/com/android/car/settings/security/ChooseDeviceInstructionPreferenceController.java b/src/com/android/car/settings/security/ChooseDeviceInstructionPreferenceController.java
new file mode 100644
index 0000000..62d5b66
--- /dev/null
+++ b/src/com/android/car/settings/security/ChooseDeviceInstructionPreferenceController.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2019 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.car.settings.security;
+
+import android.bluetooth.BluetoothAdapter;
+import android.car.drivingstate.CarUxRestrictions;
+import android.content.Context;
+
+import androidx.preference.Preference;
+
+import com.android.car.settings.R;
+import com.android.car.settings.common.FragmentController;
+import com.android.car.settings.common.PreferenceController;
+
+/**
+ * Displays the name of the local Bluetooth adapter.
+ */
+public class ChooseDeviceInstructionPreferenceController extends PreferenceController<Preference> {
+
+    public ChooseDeviceInstructionPreferenceController(Context context, String preferenceKey,
+            FragmentController fragmentController, CarUxRestrictions uxRestrictions) {
+        super(context, preferenceKey, fragmentController, uxRestrictions);
+    }
+
+    @Override
+    protected Class<Preference> getPreferenceType() {
+        return Preference.class;
+    }
+
+    @Override
+    protected void updateState(Preference preference) {
+        preference.setTitle(getContext().getString(R.string.trusted_device_select_device,
+                BluetoothAdapter.getDefaultAdapter().getName()));
+    }
+}
diff --git a/src/com/android/car/settings/applications/defaultapps/DefaultAssistantPickerFragment.java b/src/com/android/car/settings/security/ChooseTrustedDeviceFragment.java
similarity index 76%
rename from src/com/android/car/settings/applications/defaultapps/DefaultAssistantPickerFragment.java
rename to src/com/android/car/settings/security/ChooseTrustedDeviceFragment.java
index 78c1473..f5f976e 100644
--- a/src/com/android/car/settings/applications/defaultapps/DefaultAssistantPickerFragment.java
+++ b/src/com/android/car/settings/security/ChooseTrustedDeviceFragment.java
@@ -13,20 +13,20 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
-package com.android.car.settings.applications.defaultapps;
+package com.android.car.settings.security;
 
 import androidx.annotation.XmlRes;
 
 import com.android.car.settings.R;
 import com.android.car.settings.common.SettingsFragment;
 
-/** Shows the option to choose the default assistant. */
-public class DefaultAssistantPickerFragment extends SettingsFragment {
-
+/**
+ * Fragment which contains trusted device list and add trusted device button.
+ */
+public class ChooseTrustedDeviceFragment extends SettingsFragment {
     @Override
     @XmlRes
     protected int getPreferenceScreenResId() {
-        return R.xml.default_assistant_picker_fragment;
+        return R.xml.choose_trusted_device_fragment;
     }
 }
diff --git a/src/com/android/car/settings/security/ConfirmPairingCodeDialog.java b/src/com/android/car/settings/security/ConfirmPairingCodeDialog.java
new file mode 100644
index 0000000..902caf2
--- /dev/null
+++ b/src/com/android/car/settings/security/ConfirmPairingCodeDialog.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2019 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.car.settings.security;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.os.Bundle;
+
+import androidx.fragment.app.DialogFragment;
+
+import com.android.car.settings.R;
+
+/**
+ * Dialog to confirm pairing code.
+ */
+public class ConfirmPairingCodeDialog extends DialogFragment {
+    /** Identifier for the dialog which confirms the pairing code. */
+    public static final String TAG = "confirm_pairing_code_dialog";
+    private static final String PAIRING_CODE_KEY = "pairingCode";
+    private ConfirmPairingCodeListener mConfirmPairingCodeListener;
+
+    /**
+     * Factory method for creating a ConfirmPairingCodeFragment
+     *
+     * @param pairingCode the pairing code sent by the connected device
+     */
+    public static ConfirmPairingCodeDialog newInstance(String pairingCode) {
+        Bundle args = new Bundle();
+        args.putString(PAIRING_CODE_KEY, pairingCode);
+
+        ConfirmPairingCodeDialog dialog = new ConfirmPairingCodeDialog();
+        dialog.setArguments(args);
+        return dialog;
+    }
+
+    /** Sets a listener to act when a user confirms pairing code. */
+    public void setConfirmPairingCodeListener(ConfirmPairingCodeListener listener) {
+        mConfirmPairingCodeListener = listener;
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        Bundle args = getArguments();
+        String pairingCode = args.getString(PAIRING_CODE_KEY);
+        return new AlertDialog.Builder(getContext())
+                .setTitle(getContext().getString(R.string.trusted_device_pairing_code_dialog_title))
+                .setMessage(pairingCode)
+                .setPositiveButton(R.string.trusted_device_confirm_button, (dialog, which) -> {
+                    if (mConfirmPairingCodeListener != null) {
+                        mConfirmPairingCodeListener.onConfirmPairingCode();
+                    }
+                })
+                .setNegativeButton(android.R.string.cancel, (dialog, which) -> {
+                    if (mConfirmPairingCodeListener != null) {
+                        mConfirmPairingCodeListener.onDialogCancelled();
+                    }
+                })
+                .create();
+    }
+
+    /** A listener for when user interacts with this dialog. */
+    public interface ConfirmPairingCodeListener {
+        /** Defines the actions to take when a user confirms the pairing code. */
+        void onConfirmPairingCode();
+
+        /** Defines the actions to take when a user cancel confirming the pairing code. */
+        void onDialogCancelled();
+    }
+
+}
diff --git a/src/com/android/car/settings/security/ConfirmPasswordFragmentFactory.java b/src/com/android/car/settings/security/ConfirmPasswordFragmentFactory.java
new file mode 100644
index 0000000..7cba62e
--- /dev/null
+++ b/src/com/android/car/settings/security/ConfirmPasswordFragmentFactory.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2019 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.car.settings.security;
+
+import android.app.admin.DevicePolicyManager;
+import android.car.userlib.CarUserManagerHelper;
+import android.content.Context;
+import android.os.Bundle;
+
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+
+import com.android.car.settings.common.Logger;
+import com.android.internal.widget.LockPatternUtils;
+
+/**
+ * Factory class which generate password fragment for current user.
+ */
+public class ConfirmPasswordFragmentFactory {
+
+    private static final Logger LOG = new Logger(ConfirmPasswordFragmentFactory.class);
+
+    /**
+     * Gets the correct password fragment of current user, returns the corresponding password
+     * fragment of current user
+     *
+     * @return {@code null} if no password is set for the current user.
+     */
+    @Nullable
+    public static Fragment getFragment(Context context) {
+        Fragment fragment;
+        int passwordQuality = new LockPatternUtils(context).getKeyguardStoredPasswordQuality(
+                new CarUserManagerHelper(context).getCurrentProcessUserId());
+        switch (passwordQuality) {
+            case DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED:
+                // User has not set a password.
+                return null;
+            case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
+                fragment = new ConfirmLockPatternFragment();
+                break;
+            case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC:
+            case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX:
+                fragment = ConfirmLockPinPasswordFragment.newPinInstance();
+                break;
+            case DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC:
+            case DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC:
+                fragment = ConfirmLockPinPasswordFragment.newPasswordInstance();
+                break;
+            default:
+                LOG.e("Unexpected password quality: " + passwordQuality);
+                fragment = ConfirmLockPinPasswordFragment.newPasswordInstance();
+        }
+
+        Bundle bundle = fragment.getArguments();
+        if (bundle == null) {
+            bundle = new Bundle();
+        }
+        bundle.putInt(ChooseLockTypeFragment.EXTRA_CURRENT_PASSWORD_QUALITY, passwordQuality);
+        fragment.setArguments(bundle);
+        return fragment;
+    }
+}
diff --git a/src/com/android/car/settings/security/ConfirmRemoveDeviceDialog.java b/src/com/android/car/settings/security/ConfirmRemoveDeviceDialog.java
new file mode 100644
index 0000000..38e60bb
--- /dev/null
+++ b/src/com/android/car/settings/security/ConfirmRemoveDeviceDialog.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2019 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.car.settings.security;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.os.Bundle;
+
+import androidx.fragment.app.DialogFragment;
+
+import com.android.car.settings.R;
+
+/**
+ * Dialog to confirm removing a trusted device.
+ */
+public class ConfirmRemoveDeviceDialog extends DialogFragment {
+
+    /** Identifier for the dialog which confirms removing a trusted device. */
+    public static final String TAG = "confirm_remove_device_dialog";
+    private static final String DEVICE_NAME_KEY = "deviceName";
+    private static final String HANDLE_KEY = "handle";
+    private ConfirmRemoveDeviceListener mConfirmRemoveDeviceListener;
+
+    /**
+     * Factory method for creating a {@link ConfirmRemoveDeviceDialog}
+     *
+     * @param deviceName the name of current clicked device
+     * @param handle the handle of current clicked device and is used to identify the device
+     */
+    public static ConfirmRemoveDeviceDialog newInstance(String deviceName, long handle) {
+        Bundle args = new Bundle();
+        args.putString(DEVICE_NAME_KEY, deviceName);
+        args.putLong(HANDLE_KEY, handle);
+
+        ConfirmRemoveDeviceDialog dialog = new ConfirmRemoveDeviceDialog();
+        dialog.setArguments(args);
+        return dialog;
+    }
+
+    /** Sets a listener to act when a user confirms removing the trusted device. */
+    public void setConfirmRemoveDeviceListener(ConfirmRemoveDeviceListener listener) {
+        mConfirmRemoveDeviceListener = listener;
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        Bundle args = getArguments();
+        String name = args.getString(DEVICE_NAME_KEY);
+        long handle = args.getLong(HANDLE_KEY);
+        return new AlertDialog.Builder(getContext())
+                .setTitle(name)
+                .setMessage(getContext().getString(R.string.remove_device_message, name, name))
+                .setPositiveButton(R.string.trusted_device_remove_button, (dialog, which) -> {
+                    if (mConfirmRemoveDeviceListener != null) {
+                        mConfirmRemoveDeviceListener.onConfirmRemoveDevice(handle);
+                    }
+                })
+                .setNegativeButton(R.string.trusted_device_done_button, /* listener= */ null)
+                .create();
+    }
+
+    /** A listener for when user confirms removing a trusted device. */
+    public interface ConfirmRemoveDeviceListener {
+        /** Defines the actions to take when a user confirms removing the trusted device. */
+        void onConfirmRemoveDevice(long handle);
+    }
+
+}
diff --git a/src/com/android/car/settings/security/SaveLockWorkerBase.java b/src/com/android/car/settings/security/SaveLockWorkerBase.java
index 8fdcb64..da267ea 100644
--- a/src/com/android/car/settings/security/SaveLockWorkerBase.java
+++ b/src/com/android/car/settings/security/SaveLockWorkerBase.java
@@ -16,11 +16,11 @@
 
 package com.android.car.settings.security;
 
+import android.annotation.WorkerThread;
 import android.os.AsyncTask;
 import android.os.Bundle;
 
 import androidx.annotation.VisibleForTesting;
-import androidx.annotation.WorkerThread;
 import androidx.fragment.app.Fragment;
 
 import com.android.car.settings.common.Logger;
diff --git a/src/com/android/car/settings/applications/DefaultApplicationsSettingsFragment.java b/src/com/android/car/settings/security/SecuritySettingsFragment.java
similarity index 68%
rename from src/com/android/car/settings/applications/DefaultApplicationsSettingsFragment.java
rename to src/com/android/car/settings/security/SecuritySettingsFragment.java
index 3b7eb58..ddb314e 100644
--- a/src/com/android/car/settings/applications/DefaultApplicationsSettingsFragment.java
+++ b/src/com/android/car/settings/security/SecuritySettingsFragment.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2018 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.
@@ -14,19 +14,18 @@
  * limitations under the License.
  */
 
-package com.android.car.settings.applications;
-
-import androidx.annotation.XmlRes;
+package com.android.car.settings.security;
 
 import com.android.car.settings.R;
 import com.android.car.settings.common.SettingsFragment;
 
-/** Shows the default applications settings. */
-public class DefaultApplicationsSettingsFragment extends SettingsFragment {
+/**
+ * Security home page which includes "choose lock type" and "trusted device"
+ */
+public class SecuritySettingsFragment extends SettingsFragment {
 
     @Override
-    @XmlRes
     protected int getPreferenceScreenResId() {
-        return R.xml.default_applications_settings_fragment;
+        return R.xml.security_settings_fragment;
     }
 }
diff --git a/src/com/android/car/settings/security/TrustedDeviceEntryPreferenceController.java b/src/com/android/car/settings/security/TrustedDeviceEntryPreferenceController.java
new file mode 100644
index 0000000..7efd671
--- /dev/null
+++ b/src/com/android/car/settings/security/TrustedDeviceEntryPreferenceController.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2018 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.car.settings.security;
+
+
+import android.annotation.Nullable;
+import android.car.Car;
+import android.car.CarNotConnectedException;
+import android.car.drivingstate.CarUxRestrictions;
+import android.car.trust.CarTrustAgentEnrollmentManager;
+import android.car.userlib.CarUserManagerHelper;
+import android.content.Context;
+
+import androidx.preference.Preference;
+
+import com.android.car.settings.R;
+import com.android.car.settings.common.FragmentController;
+import com.android.car.settings.common.Logger;
+import com.android.car.settings.common.PreferenceController;
+
+/**
+ * Business logic for trusted device preference.
+ */
+public class TrustedDeviceEntryPreferenceController extends PreferenceController<Preference> {
+
+    private static final Logger LOG = new Logger(TrustedDeviceEntryPreferenceController.class);
+    private final Car mCar;
+    private final CarUserManagerHelper mCarUserManagerHelper;
+    @Nullable
+    private CarTrustAgentEnrollmentManager mCarTrustAgentEnrollmentManager;
+
+    public TrustedDeviceEntryPreferenceController(Context context, String preferenceKey,
+            FragmentController fragmentController, CarUxRestrictions uxRestrictions) {
+        super(context, preferenceKey, fragmentController, uxRestrictions);
+        mCar = Car.createCar(context);
+        mCarUserManagerHelper = new CarUserManagerHelper(context);
+        try {
+            mCarTrustAgentEnrollmentManager = (CarTrustAgentEnrollmentManager) mCar.getCarManager(
+                    Car.CAR_TRUST_AGENT_ENROLLMENT_SERVICE);
+        } catch (CarNotConnectedException e) {
+            LOG.e(e.getMessage(), e);
+        }
+    }
+
+    @Override
+    protected Class<Preference> getPreferenceType() {
+        return Preference.class;
+    }
+
+    @Override
+    protected void updateState(Preference preference) {
+        int listSize = 0;
+        try {
+            listSize = mCarTrustAgentEnrollmentManager.getEnrolledDeviceInfoForUser(
+                    mCarUserManagerHelper.getCurrentProcessUserId()).size();
+        } catch (CarNotConnectedException e) {
+            LOG.e(e.getMessage(), e);
+        }
+        preference.setSummary(
+                getContext().getResources().getQuantityString(R.plurals.trusted_device_subtitle,
+                        listSize, listSize));
+    }
+
+    @Override
+    protected boolean handlePreferenceClicked(Preference preference) {
+        getFragmentController().launchFragment(new ChooseTrustedDeviceFragment());
+        return true;
+    }
+}
diff --git a/src/com/android/car/settings/security/TrustedDeviceListPreferenceController.java b/src/com/android/car/settings/security/TrustedDeviceListPreferenceController.java
new file mode 100644
index 0000000..bab47ed
--- /dev/null
+++ b/src/com/android/car/settings/security/TrustedDeviceListPreferenceController.java
@@ -0,0 +1,199 @@
+/*
+ * Copyright (C) 2019 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.car.settings.security;
+
+import android.annotation.Nullable;
+import android.app.admin.DevicePolicyManager;
+import android.bluetooth.BluetoothDevice;
+import android.car.Car;
+import android.car.drivingstate.CarUxRestrictions;
+import android.car.trust.CarTrustAgentEnrollmentManager;
+import android.car.trust.TrustedDeviceInfo;
+import android.car.userlib.CarUserManagerHelper;
+import android.content.Context;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceGroup;
+
+import com.android.car.settings.R;
+import com.android.car.settings.common.FragmentController;
+import com.android.car.settings.common.Logger;
+import com.android.car.settings.common.PreferenceController;
+import com.android.internal.widget.LockPatternUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Business logic of trusted device list page
+ */
+public class TrustedDeviceListPreferenceController extends PreferenceController<PreferenceGroup> {
+    private static final Logger LOG = new Logger(TrustedDeviceListPreferenceController.class);
+    private final CarUserManagerHelper mCarUserManagerHelper;
+    private final LockPatternUtils mLockPatternUtils;
+    private final Car mCar;
+    @Nullable
+    private CarTrustAgentEnrollmentManager mCarTrustAgentEnrollmentManager;
+    private final CarTrustAgentEnrollmentManager.CarTrustAgentEnrollmentCallback
+            mCarTrustAgentEnrollmentCallback =
+            new CarTrustAgentEnrollmentManager.CarTrustAgentEnrollmentCallback() {
+
+                @Override
+                public void onEnrollmentHandshakeFailure(BluetoothDevice device, int errorCode) {
+                }
+
+                @Override
+                public void onAuthStringAvailable(BluetoothDevice device, String authString) {
+                }
+
+                @Override
+                public void onEscrowTokenAdded(long handle) {
+                }
+
+                @Override
+                public void onEscrowTokenRemoved(long handle) {
+                    refreshUi();
+                }
+
+                @Override
+                public void onEscrowTokenActiveStateChanged(long handle, boolean active) {
+                    if (active) {
+                        refreshUi();
+                    }
+                }
+            };
+
+    @VisibleForTesting
+    final ConfirmRemoveDeviceDialog.ConfirmRemoveDeviceListener mConfirmRemoveDeviceListener =
+            new ConfirmRemoveDeviceDialog.ConfirmRemoveDeviceListener() {
+                public void onConfirmRemoveDevice(long handle) {
+                    mCarTrustAgentEnrollmentManager.removeEscrowToken(handle,
+                            mCarUserManagerHelper.getCurrentProcessUserId());
+                }
+            };
+
+    public TrustedDeviceListPreferenceController(Context context, String preferenceKey,
+            FragmentController fragmentController, CarUxRestrictions uxRestrictions) {
+        super(context, preferenceKey, fragmentController, uxRestrictions);
+        mCarUserManagerHelper = new CarUserManagerHelper(context);
+        mLockPatternUtils = new LockPatternUtils(context);
+        mCar = Car.createCar(context);
+        mCarTrustAgentEnrollmentManager = (CarTrustAgentEnrollmentManager) mCar.getCarManager(
+                Car.CAR_TRUST_AGENT_ENROLLMENT_SERVICE);
+
+    }
+
+    @Override
+    protected void checkInitialized() {
+        if (mCarTrustAgentEnrollmentManager == null) {
+            throw new IllegalStateException("mCarTrustAgentEnrollmentManager is null.");
+        }
+    }
+
+    @Override
+    protected Class<PreferenceGroup> getPreferenceType() {
+        return PreferenceGroup.class;
+    }
+
+
+    @Override
+    protected void updateState(PreferenceGroup preferenceGroup) {
+        if (!hasPassword()) {
+            preferenceGroup.removeAll();
+            preferenceGroup.addPreference(createAuthenticationReminderPreference());
+            return;
+        }
+        List<Preference> updatedList = createTrustDevicePreferenceList();
+        if (!isEqual(preferenceGroup, updatedList)) {
+            preferenceGroup.removeAll();
+            for (Preference trustedDevice : updatedList) {
+                preferenceGroup.addPreference(trustedDevice);
+            }
+        }
+        preferenceGroup.setVisible(preferenceGroup.getPreferenceCount() > 0);
+    }
+
+    private boolean hasPassword() {
+        return mLockPatternUtils.getKeyguardStoredPasswordQuality(
+                mCarUserManagerHelper.getCurrentProcessUserId())
+                != DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
+    }
+
+    @Override
+    protected void onStartInternal() {
+        mCarTrustAgentEnrollmentManager.setEnrollmentCallback(mCarTrustAgentEnrollmentCallback);
+
+    }
+
+    @Override
+    protected void onStopInternal() {
+        mCarTrustAgentEnrollmentManager.setEnrollmentCallback(null);
+    }
+
+    /**
+     * Method to compare two lists of preferences, used only by updateState method.
+     *
+     * @param preferenceGroup   current preference group
+     * @param trustedDeviceList updated preference list
+     * @return {@code true} when two lists are the same
+     */
+    private boolean isEqual(PreferenceGroup preferenceGroup, List<Preference> trustedDeviceList) {
+        if (preferenceGroup.getPreferenceCount() != trustedDeviceList.size()) {
+            return false;
+        }
+        for (Preference p : trustedDeviceList) {
+            if (preferenceGroup.findPreference(p.getKey()) == null) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    private List<Preference> createTrustDevicePreferenceList() {
+        List<Preference> trustedDevicesList = new ArrayList<>();
+        List<TrustedDeviceInfo> devices =
+                mCarTrustAgentEnrollmentManager.getEnrolledDeviceInfoForUser(
+                        mCarUserManagerHelper.getCurrentProcessUserId());
+        for (TrustedDeviceInfo deviceInfo : devices) {
+            trustedDevicesList.add(
+                    createTrustedDevicePreference(deviceInfo.getName(), deviceInfo.getHandle()));
+        }
+        return trustedDevicesList;
+    }
+
+    private Preference createTrustedDevicePreference(String deviceName, long handle) {
+        Preference preference = new Preference(getContext());
+        preference.setIcon(R.drawable.ic_settings_bluetooth);
+        preference.setTitle(deviceName);
+        preference.setKey(String.valueOf(handle));
+        preference.setOnPreferenceClickListener((Preference pref) -> {
+            ConfirmRemoveDeviceDialog dialog = ConfirmRemoveDeviceDialog.newInstance(deviceName,
+                    handle);
+            dialog.setConfirmRemoveDeviceListener(mConfirmRemoveDeviceListener);
+            getFragmentController().showDialog(dialog, ConfirmRemoveDeviceDialog.TAG);
+            return true;
+        });
+        return preference;
+    }
+
+    private Preference createAuthenticationReminderPreference() {
+        Preference preference = new Preference(getContext());
+        preference.setSummary(R.string.trusted_device_set_authentication_reminder);
+        return preference;
+    }
+}
diff --git a/src/com/android/car/settings/setupservice/InitialLockSetupService.java b/src/com/android/car/settings/setupservice/InitialLockSetupService.java
index 7ea8bc8..292fbd3 100644
--- a/src/com/android/car/settings/setupservice/InitialLockSetupService.java
+++ b/src/com/android/car/settings/setupservice/InitialLockSetupService.java
@@ -178,7 +178,8 @@
                         // Need to remove the setup wizard lib pattern encoding and use the
                         // LockPatternUtils pattern format.
                         List<LockPatternView.Cell> pattern = toSettingsPattern(password);
-                        lockPatternUtils.saveLockPattern(pattern, userId);
+                        lockPatternUtils.saveLockPattern(pattern, /* savedPattern =*/ null,
+                                userId, /* allowUntrustedChange =*/ false);
                         pattern.clear();
                         success = true;
                         break;
diff --git a/src/com/android/car/settings/storage/AppStorageSettingsDetailsFragment.java b/src/com/android/car/settings/storage/AppStorageSettingsDetailsFragment.java
index be8d31b..436a4e9 100644
--- a/src/com/android/car/settings/storage/AppStorageSettingsDetailsFragment.java
+++ b/src/com/android/car/settings/storage/AppStorageSettingsDetailsFragment.java
@@ -39,6 +39,7 @@
 import com.android.car.settings.common.SettingsFragment;
 import com.android.car.ui.toolbar.MenuItem;
 import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedLockUtilsInternal;
 import com.android.settingslib.applications.ApplicationsState;
 import com.android.settingslib.applications.StorageStatsSource;
 
@@ -216,10 +217,10 @@
     @Override
     public void onResume() {
         super.onResume();
-        mAppsControlDisallowedAdmin = RestrictedLockUtils.checkIfRestrictionEnforced(getActivity(),
-                UserManager.DISALLOW_APPS_CONTROL, mUserId);
-        mAppsControlDisallowedBySystem = RestrictedLockUtils.hasBaseUserRestriction(getActivity(),
-                UserManager.DISALLOW_APPS_CONTROL, mUserId);
+        mAppsControlDisallowedAdmin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
+                getActivity(), UserManager.DISALLOW_APPS_CONTROL, mUserId);
+        mAppsControlDisallowedBySystem = RestrictedLockUtilsInternal.hasBaseUserRestriction(
+                getActivity(), UserManager.DISALLOW_APPS_CONTROL, mUserId);
         updateSize();
     }
 
diff --git a/src/com/android/car/settings/suggestions/SettingsSuggestionsLoader.java b/src/com/android/car/settings/suggestions/SettingsSuggestionsLoader.java
index 5bd014d..c34e00e 100644
--- a/src/com/android/car/settings/suggestions/SettingsSuggestionsLoader.java
+++ b/src/com/android/car/settings/suggestions/SettingsSuggestionsLoader.java
@@ -19,10 +19,8 @@
 import android.content.Context;
 import android.service.settings.suggestions.Suggestion;
 
-import androidx.annotation.Nullable;
-import androidx.loader.content.AsyncTaskLoader;
-
 import com.android.car.settings.common.Logger;
+import com.android.car.settingslib.loader.AsyncLoader;
 import com.android.settingslib.suggestions.SuggestionController;
 
 import java.util.List;
@@ -32,7 +30,7 @@
  * {@link com.android.settingslib.suggestions.SuggestionLoader}, only change is to extend from car
  * settings {@link AsyncLoader} which extends from support library {@link AsyncTaskLoader}.
  */
-public class SettingsSuggestionsLoader extends AsyncTaskLoader<List<Suggestion>> {
+public class SettingsSuggestionsLoader extends AsyncLoader<List<Suggestion>> {
     private static final Logger LOG = new Logger(SettingsSuggestionsLoader.class);
 
     /**
@@ -42,43 +40,6 @@
 
     private final SuggestionController mSuggestionController;
 
-    @Nullable
-    private List<Suggestion> mResult;
-
-    @Override
-    protected void onStartLoading() {
-        if (mResult != null) {
-            deliverResult(mResult);
-        }
-
-        if (takeContentChanged() || mResult == null) {
-            forceLoad();
-        }
-    }
-
-    @Override
-    protected void onStopLoading() {
-        cancelLoad();
-    }
-
-    @Override
-    public void deliverResult(List<Suggestion> data) {
-        if (isReset()) {
-            return;
-        }
-        mResult = data;
-        if (isStarted()) {
-            super.deliverResult(data);
-        }
-    }
-
-    @Override
-    protected void onReset() {
-        super.onReset();
-        onStopLoading();
-        mResult = null;
-    }
-
     public SettingsSuggestionsLoader(Context context, SuggestionController controller) {
         super(context);
         mSuggestionController = controller;
diff --git a/src/com/android/car/settings/system/ResetAppPrefFragment.java b/src/com/android/car/settings/system/ResetAppPrefFragment.java
index 252ddba..cbc0834 100644
--- a/src/com/android/car/settings/system/ResetAppPrefFragment.java
+++ b/src/com/android/car/settings/system/ResetAppPrefFragment.java
@@ -28,7 +28,6 @@
 import android.os.IBinder;
 import android.os.RemoteException;
 import android.os.ServiceManager;
-import android.webkit.IWebViewUpdateService;
 import android.widget.Toast;
 
 import androidx.annotation.XmlRes;
@@ -100,13 +99,6 @@
             }
             INotificationManager notificationManagerService =
                     INotificationManager.Stub.asInterface(notificationManagerServiceBinder);
-            IBinder webViewUpdateServiceBinder = ServiceManager.getService("webviewupdate");
-            if (webViewUpdateServiceBinder == null) {
-                LOG.w("Unable to reset app preferences. Null web view update service");
-                return null;
-            }
-            IWebViewUpdateService webViewUpdateService = IWebViewUpdateService.Stub.asInterface(
-                    webViewUpdateServiceBinder);
 
             // Reset app notifications.
             // Reset disabled apps.
@@ -122,9 +114,7 @@
                 }
                 if (!app.enabled) {
                     if (packageManager.getApplicationEnabledSetting(app.packageName)
-                            == PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER
-                            && !isNonEnableableFallback(webViewUpdateService,
-                            app.packageName)) {
+                            == PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER) {
                         packageManager.setApplicationEnabledSetting(app.packageName,
                                 PackageManager.COMPONENT_ENABLED_STATE_DEFAULT,
                                 PackageManager.DONT_KILL_APP);
@@ -154,14 +144,6 @@
             return null;
         }
 
-        private boolean isNonEnableableFallback(IWebViewUpdateService mWvus, String packageName) {
-            try {
-                return mWvus.isFallbackPackage(packageName);
-            } catch (RemoteException e) {
-                throw new RuntimeException(e);
-            }
-        }
-
         @Override
         protected void onPostExecute(Void unused) {
             super.onPostExecute(unused);
diff --git a/src/com/android/car/settings/system/WifiMacAddressPreferenceController.java b/src/com/android/car/settings/system/WifiMacAddressPreferenceController.java
deleted file mode 100644
index 0a0d063..0000000
--- a/src/com/android/car/settings/system/WifiMacAddressPreferenceController.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2019 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.car.settings.system;
-
-import android.car.drivingstate.CarUxRestrictions;
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.net.wifi.WifiInfo;
-import android.net.wifi.WifiManager;
-
-import androidx.preference.Preference;
-
-import com.android.car.settings.R;
-import com.android.car.settings.common.FragmentController;
-import com.android.car.settings.common.PreferenceController;
-
-/** Updates the vehicle Wi-Fi mac address summary. */
-public class WifiMacAddressPreferenceController extends PreferenceController<Preference> {
-
-    private WifiInfo mWifiInfo;
-
-    public WifiMacAddressPreferenceController(Context context, String preferenceKey,
-            FragmentController fragmentController, CarUxRestrictions uxRestrictions) {
-        super(context, preferenceKey, fragmentController, uxRestrictions);
-        init(context);
-    }
-
-    @Override
-    protected Class<Preference> getPreferenceType() {
-        return Preference.class;
-    }
-
-    @Override
-    protected int getAvailabilityStatus() {
-        if (!getContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_WIFI)
-                || !getContext().getResources().getBoolean(R.bool.config_show_wifi_mac_address)) {
-            return UNSUPPORTED_ON_DEVICE;
-        }
-        return AVAILABLE_FOR_VIEWING;
-    }
-
-    protected void init(Context context) {
-        WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
-        mWifiInfo = wifiManager.getConnectionInfo();
-    }
-
-    @Override
-    protected void updateState(Preference preference) {
-        String macAddress = mWifiInfo == null ? getContext().getString(R.string.status_unavailable)
-                : mWifiInfo.getMacAddress();
-        preference.setSummary(macAddress);
-    }
-}
diff --git a/src/com/android/car/settings/wifi/CarWifiManager.java b/src/com/android/car/settings/wifi/CarWifiManager.java
index 6f4a9f8..be14f4c 100644
--- a/src/com/android/car/settings/wifi/CarWifiManager.java
+++ b/src/com/android/car/settings/wifi/CarWifiManager.java
@@ -15,12 +15,12 @@
  */
 package com.android.car.settings.wifi;
 
+import android.annotation.Nullable;
 import android.content.Context;
 import android.net.NetworkInfo;
 import android.net.wifi.WifiConfiguration;
 import android.net.wifi.WifiManager;
 
-import androidx.annotation.Nullable;
 import androidx.annotation.UiThread;
 
 import com.android.settingslib.wifi.AccessPoint;
diff --git a/src/com/android/car/settings/wifi/WifiUtil.java b/src/com/android/car/settings/wifi/WifiUtil.java
index 6a33854..79db041 100644
--- a/src/com/android/car/settings/wifi/WifiUtil.java
+++ b/src/com/android/car/settings/wifi/WifiUtil.java
@@ -15,6 +15,7 @@
  */
 package com.android.car.settings.wifi;
 
+import android.annotation.DrawableRes;
 import android.app.admin.DevicePolicyManager;
 import android.content.ComponentName;
 import android.content.ContentResolver;
@@ -27,7 +28,6 @@
 import android.provider.Settings;
 import android.widget.Toast;
 
-import androidx.annotation.DrawableRes;
 import androidx.annotation.StringRes;
 
 import com.android.car.settings.R;
diff --git a/tests/robotests/Android.mk b/tests/robotests/Android.mk
index 17130f0..7992d51 100644
--- a/tests/robotests/Android.mk
+++ b/tests/robotests/Android.mk
@@ -1,28 +1,31 @@
-#############################################
-# Car Settings Robolectric test target.     #
-#############################################
-LOCAL_PATH:= $(call my-dir)
+#############################################################
+# Car Settings Robolectric test target.                     #
+#############################################################
+LOCAL_PATH := $(call my-dir)
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := CarSettingsRoboTests
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
 
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
 
 LOCAL_JAVA_RESOURCE_DIRS := config
 
-# Include the testing libraries
 LOCAL_JAVA_LIBRARIES := \
-    android.car \
-    robolectric_android-all-stub \
     Robolectric_all-target \
+    robolectric_android-all-stub \
     mockito-robolectric-prebuilt \
+    truth-prebuilt \
     testng \
-    truth-prebuilt
+    android.car
 
 LOCAL_INSTRUMENTATION_FOR := CarSettingsForTesting
 
 LOCAL_MODULE_TAGS := optional
 
+# Generate test_config.properties
+include external/robolectric-shadows/gen_test_config.mk
+
 include $(BUILD_STATIC_JAVA_LIBRARY)
 
 #############################################################
@@ -33,13 +36,13 @@
 LOCAL_MODULE := RunCarSettingsRoboTests
 
 LOCAL_JAVA_LIBRARIES := \
-    android.car \
-    CarSettingsRoboTests \
-    robolectric_android-all-stub \
     Robolectric_all-target \
+    robolectric_android-all-stub \
     mockito-robolectric-prebuilt \
+    truth-prebuilt \
     testng \
-    truth-prebuilt
+    CarSettingsRoboTests \
+    android.car
 
 LOCAL_TEST_PACKAGE := CarSettingsForTesting
 
diff --git a/tests/robotests/AndroidManifest.xml b/tests/robotests/AndroidManifest.xml
deleted file mode 100644
index efe1f69..0000000
--- a/tests/robotests/AndroidManifest.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  Copyright (C) 2016 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-  -->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-          coreApp="true"
-          package="com.android.car.settings.robotests">
-    <application/>
-</manifest>
diff --git a/tests/robotests/config/robolectric.properties b/tests/robotests/config/robolectric.properties
index b364d9d..6906a16 100644
--- a/tests/robotests/config/robolectric.properties
+++ b/tests/robotests/config/robolectric.properties
@@ -13,9 +13,5 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-manifest=packages/apps/Car/Settings/tests/robotests/AndroidManifest.xml
 sdk=NEWEST_SDK
-shadows=\
-  com.android.car.settings.testutils.CarSettingsShadowResources, \
-  com.android.car.settings.testutils.ShadowCar, \
-  com.android.car.settings.testutils.ShadowTypeface
+shadows=com.android.car.settings.testutils.ShadowCar, com.android.car.settings.testutils.ShadowTypeface
diff --git a/tests/robotests/src/com/android/car/settings/CarSettingsRobolectricTestRunner.java b/tests/robotests/src/com/android/car/settings/CarSettingsRobolectricTestRunner.java
index 3757f37..f3f2e31 100644
--- a/tests/robotests/src/com/android/car/settings/CarSettingsRobolectricTestRunner.java
+++ b/tests/robotests/src/com/android/car/settings/CarSettingsRobolectricTestRunner.java
@@ -16,126 +16,17 @@
 
 package com.android.car.settings;
 
-import androidx.annotation.NonNull;
-
 import org.junit.runners.model.InitializationError;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.annotation.Config;
-import org.robolectric.manifest.AndroidManifest;
-import org.robolectric.res.Fs;
-import org.robolectric.res.ResourcePath;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
 
 /**
- * Custom test runner for CarSettings. This is needed because the default behavior for
- * robolectric is just to grab the resource directory in the target package.
- * We want to override this to add several spanning different projects.
+ * TODO: Remove this and use RobolectricTestRunner in all tests.
  */
 public class CarSettingsRobolectricTestRunner extends RobolectricTestRunner {
-    private static final Map<String, String> AAR_VERSIONS;
-    private static final String SUPPORT_RESOURCE_PATH_TEMPLATE =
-            "jar:file:prebuilts/sdk/current/androidx/m2repository/androidx/"
-                    + "%1$s/%1$s/%2$s/%1$s-%2$s.aar!/res";
-    // contraint-layout aar lives in separate path.
-    // Note its path contains a hyphen.
-    private static final String CONSTRAINT_LAYOUT_RESOURCE_PATH_TEMPLATE =
-            "jar:file:prebuilts/sdk/current/extras/constraint-layout-x/"
-                    + "%1$s/%2$s/%1$s-%2$s.aar!/res";
-
-    static {
-        AAR_VERSIONS = new HashMap<>();
-        AAR_VERSIONS.put("car", "1.0.0-alpha7");
-        AAR_VERSIONS.put("appcompat", "1.1.0-alpha01");
-        AAR_VERSIONS.put("constraintlayout", "1.1.2");
-        AAR_VERSIONS.put("preference", "1.1.0-alpha02");
-    }
-
     /**
      * We don't actually want to change this behavior, so we just call super.
      */
     public CarSettingsRobolectricTestRunner(Class<?> testClass) throws InitializationError {
         super(testClass);
     }
-
-    private static ResourcePath createResourcePath(@NonNull String filePath) {
-        try {
-            return new ResourcePath(null, Fs.fromURL(new URL(filePath)), null);
-        } catch (MalformedURLException e) {
-            throw new RuntimeException("CarSettingsobolectricTestRunner failure", e);
-        }
-    }
-
-    /**
-     * Create the resource path for a support library component's JAR.
-     */
-    private static String createSupportResourcePathFromJar(@NonNull String componentId) {
-        if (!AAR_VERSIONS.containsKey(componentId)) {
-            throw new IllegalArgumentException("Unknown component " + componentId
-                    + ". Update test with appropriate component name and version.");
-        }
-        if (componentId.equals("constraintlayout")) {
-            return String.format(CONSTRAINT_LAYOUT_RESOURCE_PATH_TEMPLATE, componentId,
-                    AAR_VERSIONS.get(componentId));
-        }
-        return String.format(SUPPORT_RESOURCE_PATH_TEMPLATE, componentId,
-                AAR_VERSIONS.get(componentId));
-    }
-
-    /**
-     * We are going to create our own custom manifest so that we can add multiple resource
-     * paths to it. This lets us access resources in both Settings and SettingsLib in our tests.
-     */
-    @Override
-    protected AndroidManifest getAppManifest(Config config) {
-        try {
-            // Using the manifest file's relative path, we can figure out the application directory.
-            URL appRoot = new URL("file:packages/apps/Car/Settings/");
-            URL manifestPath = new URL(appRoot, "AndroidManifest.xml");
-            URL resDir = new URL(appRoot, "tests/robotests/res");
-            URL assetsDir = new URL(appRoot, config.assetDir());
-
-            // By adding any resources from libraries we need to the AndroidManifest, we can access
-            // them from within the parallel universe's resource loader.
-            AndroidManifest androidManifest = new AndroidManifest(Fs.fromURL(manifestPath),
-                    Fs.fromURL(resDir),
-                    Fs.fromURL(assetsDir)) {
-                @Override
-                public List<ResourcePath> getIncludedResourcePaths() {
-                    List<ResourcePath> paths = super.getIncludedResourcePaths();
-                    paths.add(createResourcePath("file:packages/apps/Car/Settings/res"));
-
-                    paths.add(createResourcePath("file:packages/apps/Car/libs/car-ui-lib/res"));
-
-                    // Has to come before the "car" library due to a conflicting resource name
-                    paths.add(
-                            createResourcePath("file:packages/apps/Car/libs/car-apps-common/res"));
-
-                    // Support library resources. These need to point to the prebuilts of support
-                    // library and not the source.
-                    paths.add(createResourcePath(createSupportResourcePathFromJar("appcompat")));
-                    paths.add(createResourcePath(createSupportResourcePathFromJar("car")));
-                    paths.add(createResourcePath(
-                            createSupportResourcePathFromJar("constraintlayout")));
-                    paths.add(createResourcePath(createSupportResourcePathFromJar("preference")));
-
-                    paths.add(
-                            createResourcePath("file:packages/apps/Car/libs/car-settings-lib/res"));
-                    paths.add(createResourcePath("file:frameworks/base/packages/SettingsLib/res"));
-
-                    return paths;
-                }
-            };
-            // Need to remove this permission since this version of robolectric does not support
-            // multiple protection levels.
-            androidManifest.getPermissions().remove("com.android.car.settings.SET_INITIAL_LOCK");
-            return androidManifest;
-        } catch (MalformedURLException e) {
-            throw new RuntimeException("CarSettingsobolectricTestRunner failure", e);
-        }
-    }
 }
diff --git a/tests/robotests/src/com/android/car/settings/TestConfig.java b/tests/robotests/src/com/android/car/settings/TestConfig.java
deleted file mode 100644
index 51570ea..0000000
--- a/tests/robotests/src/com/android/car/settings/TestConfig.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.car.settings;
-
-public class TestConfig {
-    public static final int SDK_VERSION = 23;
-    public static final String MANIFEST_PATH =
-            "packages/apps/Car/Settings/AndroidManifest.xml";
-}
diff --git a/tests/robotests/src/com/android/car/settings/accounts/AccountSyncDetailsPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/accounts/AccountSyncDetailsPreferenceControllerTest.java
index f7407ff..9e0fe78 100644
--- a/tests/robotests/src/com/android/car/settings/accounts/AccountSyncDetailsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/accounts/AccountSyncDetailsPreferenceControllerTest.java
@@ -29,7 +29,6 @@
 import android.content.SyncAdapterType;
 import android.content.SyncInfo;
 import android.content.SyncStatusInfo;
-import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageInfo;
 import android.content.pm.ProviderInfo;
 import android.os.Bundle;
@@ -180,8 +179,6 @@
         ProviderInfo info = new ProviderInfo();
         info.authority = AUTHORITY;
         info.name = "";
-        // Set an application info to avoid an NPE
-        info.applicationInfo = new ApplicationInfo();
 
         ProviderInfo[] providers = {info};
         PackageInfo packageInfo = new PackageInfo();
@@ -207,8 +204,6 @@
         ProviderInfo info = new ProviderInfo();
         info.authority = AUTHORITY;
         info.name = "label";
-        // Set an application info to avoid an NPE
-        info.applicationInfo = new ApplicationInfo();
 
         ProviderInfo[] providers = {info};
         PackageInfo packageInfo = new PackageInfo();
@@ -531,9 +526,7 @@
             // Sets provider info with a label for the sync adapter.
             ProviderInfo info = new ProviderInfo();
             info.authority = authority;
-            info.name = authority;
-            // Set an application info to avoid an NPE
-            info.applicationInfo = new ApplicationInfo();
+            info.name = "label";
             ProviderInfo[] providers = {info};
 
             PackageInfo packageInfo = new PackageInfo();
diff --git a/tests/robotests/src/com/android/car/settings/applications/ApplicationDetailsFragmentTest.java b/tests/robotests/src/com/android/car/settings/applications/ApplicationDetailsFragmentTest.java
index 614bdaa..2b7112a 100644
--- a/tests/robotests/src/com/android/car/settings/applications/ApplicationDetailsFragmentTest.java
+++ b/tests/robotests/src/com/android/car/settings/applications/ApplicationDetailsFragmentTest.java
@@ -45,11 +45,11 @@
 import com.android.car.settings.common.ConfirmationDialogFragment;
 import com.android.car.settings.testutils.BaseTestActivity;
 import com.android.car.settings.testutils.ShadowActivityManager;
-import com.android.car.settings.testutils.ShadowActivityThread;
 import com.android.car.settings.testutils.ShadowApplicationPackageManager;
 import com.android.car.settings.testutils.ShadowCarUserManagerHelper;
 import com.android.car.settings.testutils.ShadowDevicePolicyManager;
 import com.android.car.settings.testutils.ShadowIconDrawableFactory;
+import com.android.car.settings.testutils.ShadowPermissionControllerManager;
 import com.android.car.settings.testutils.ShadowSmsApplication;
 import com.android.car.settings.testutils.ShadowUserManager;
 import com.android.car.settings.testutils.ShadowUtils;
@@ -79,11 +79,11 @@
 @RunWith(CarSettingsRobolectricTestRunner.class)
 @Config(shadows = {
         ShadowActivityManager.class,
-        ShadowActivityThread.class,
         ShadowApplicationPackageManager.class,
         ShadowCarUserManagerHelper.class,
         ShadowDevicePolicyManager.class,
         ShadowIconDrawableFactory.class,
+        ShadowPermissionControllerManager.class,
         ShadowSmsApplication.class,
         ShadowUserManager.class,
         ShadowUtils.class})
@@ -129,6 +129,7 @@
         ReflectionHelpers.setStaticField(Utils.class, "sSystemSignature", null);
         ShadowApplicationPackageManager.reset();
         ShadowCarUserManagerHelper.reset();
+        ShadowDevicePolicyManager.reset();
         ShadowSmsApplication.reset();
         ShadowUserManager.reset();
         ShadowUtils.reset();
diff --git a/tests/robotests/src/com/android/car/settings/applications/PermissionsPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/applications/PermissionsPreferenceControllerTest.java
index 8741417..445383d 100644
--- a/tests/robotests/src/com/android/car/settings/applications/PermissionsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/applications/PermissionsPreferenceControllerTest.java
@@ -28,14 +28,17 @@
 
 import com.android.car.settings.CarSettingsRobolectricTestRunner;
 import com.android.car.settings.common.PreferenceControllerTestHelper;
+import com.android.car.settings.testutils.ShadowPermissionControllerManager;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
 @RunWith(CarSettingsRobolectricTestRunner.class)
+@Config(shadows = {ShadowPermissionControllerManager.class})
 public class PermissionsPreferenceControllerTest {
 
     private static final String PACKAGE_NAME = "Test Package Name";
@@ -43,7 +46,7 @@
     private Context mContext;
     private Preference mPreference;
     private PreferenceControllerTestHelper<PermissionsPreferenceController>
-            mPreferenceControllerHelper;
+        mPreferenceControllerHelper;
     private PermissionsPreferenceController mController;
 
     @Before
@@ -51,7 +54,7 @@
         mContext = RuntimeEnvironment.application;
 
         mPreferenceControllerHelper = new PreferenceControllerTestHelper<>(mContext,
-                PermissionsPreferenceController.class);
+            PermissionsPreferenceController.class);
         mController = mPreferenceControllerHelper.getController();
         mPreference = new Preference(mContext);
     }
@@ -59,7 +62,7 @@
     @Test
     public void testCheckInitialized_noResolveInfo_throwException() {
         assertThrows(IllegalStateException.class,
-                () -> mPreferenceControllerHelper.setPreference(mPreference));
+            () -> mPreferenceControllerHelper.setPreference(mPreference));
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/car/settings/applications/assist/DefaultVoiceInputPickerEntryPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/applications/assist/DefaultVoiceInputPickerEntryPreferenceControllerTest.java
index 2c22add..97c5264 100644
--- a/tests/robotests/src/com/android/car/settings/applications/assist/DefaultVoiceInputPickerEntryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/applications/assist/DefaultVoiceInputPickerEntryPreferenceControllerTest.java
@@ -43,7 +43,6 @@
 import com.android.car.settings.testutils.ShadowSecureSettings;
 import com.android.car.settings.testutils.ShadowVoiceInteractionServiceInfo;
 import com.android.settingslib.applications.DefaultAppInfo;
-import com.android.settingslib.wrapper.PackageManagerWrapper;
 
 import com.google.common.collect.Iterables;
 
@@ -223,7 +222,7 @@
                 new VoiceInputInfoProvider.VoiceInteractionInfo(mContext, interactionServiceInfo);
 
         DefaultVoiceInputServiceInfo serviceInfo = new DefaultVoiceInputServiceInfo(mContext,
-                new PackageManagerWrapper(mContext.getPackageManager()), TEST_USER_ID, info, true);
+                mContext.getPackageManager(), TEST_USER_ID, info, true);
         Intent settingIntent = mController.getSettingIntent(serviceInfo);
 
         assertThat(settingIntent.getAction()).isEqualTo(Intent.ACTION_MAIN);
diff --git a/tests/robotests/src/com/android/car/settings/applications/defaultapps/DefaultAssistantPickerEntryPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/applications/defaultapps/DefaultAssistantPickerEntryPreferenceControllerTest.java
index a452254..9ab0536 100644
--- a/tests/robotests/src/com/android/car/settings/applications/defaultapps/DefaultAssistantPickerEntryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/applications/defaultapps/DefaultAssistantPickerEntryPreferenceControllerTest.java
@@ -20,6 +20,7 @@
 
 import static org.mockito.Mockito.when;
 
+import android.app.role.RoleManager;
 import android.car.userlib.CarUserManagerHelper;
 import android.content.ComponentName;
 import android.content.Context;
@@ -31,11 +32,11 @@
 import com.android.car.settings.CarSettingsRobolectricTestRunner;
 import com.android.car.settings.common.ButtonPreference;
 import com.android.car.settings.common.PreferenceControllerTestHelper;
+import com.android.car.settings.testutils.ShadowApplicationPackageManager;
 import com.android.car.settings.testutils.ShadowCarUserManagerHelper;
 import com.android.car.settings.testutils.ShadowSecureSettings;
 import com.android.car.settings.testutils.ShadowVoiceInteractionServiceInfo;
 import com.android.settingslib.applications.DefaultAppInfo;
-import com.android.settingslib.wrapper.PackageManagerWrapper;
 
 import org.junit.After;
 import org.junit.Before;
@@ -44,13 +45,13 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowPackageManager;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowApplication;
 
 @RunWith(CarSettingsRobolectricTestRunner.class)
 @Config(shadows = {ShadowSecureSettings.class, ShadowVoiceInteractionServiceInfo.class,
-        ShadowCarUserManagerHelper.class})
+        ShadowCarUserManagerHelper.class, ShadowApplicationPackageManager.class})
 public class DefaultAssistantPickerEntryPreferenceControllerTest {
 
     private static final String TEST_PACKAGE = "com.android.car.settings.testutils";
@@ -86,7 +87,6 @@
     @After
     public void tearDown() {
         ShadowCarUserManagerHelper.reset();
-        ShadowSecureSettings.reset();
         ShadowVoiceInteractionServiceInfo.reset();
     }
 
@@ -106,9 +106,8 @@
 
     @Test
     public void getSettingIntent_noAssistant_returnsNull() {
-        DefaultAppInfo info = new DefaultAppInfo(mContext,
-                new PackageManagerWrapper(mContext.getPackageManager()), TEST_USER_ID,
-                ComponentName.unflattenFromString(TEST_COMPONENT));
+        DefaultAppInfo info = new DefaultAppInfo(mContext, mContext.getPackageManager(),
+                TEST_USER_ID, ComponentName.unflattenFromString(TEST_COMPONENT));
         assertThat(mController.getSettingIntent(info)).isNull();
     }
 
@@ -129,12 +128,10 @@
         Intent intent =
                 DefaultAssistantPickerEntryPreferenceController.ASSISTANT_SERVICE.setComponent(
                         ComponentName.unflattenFromString(TEST_COMPONENT));
-        ShadowPackageManager shadowPackageManager = Shadows.shadowOf(mContext.getPackageManager());
-        shadowPackageManager.addResolveInfoForIntent(intent, resolveInfo);
+        getShadowApplicationManager().addResolveInfoForIntent(intent, resolveInfo);
 
-        DefaultAppInfo info = new DefaultAppInfo(mContext,
-                new PackageManagerWrapper(mContext.getPackageManager()), TEST_USER_ID,
-                ComponentName.unflattenFromString(TEST_COMPONENT));
+        DefaultAppInfo info = new DefaultAppInfo(mContext, mContext.getPackageManager(),
+                TEST_USER_ID, ComponentName.unflattenFromString(TEST_COMPONENT));
 
         assertThat(mController.getSettingIntent(info)).isNull();
     }
@@ -155,12 +152,10 @@
         Intent intent =
                 DefaultAssistantPickerEntryPreferenceController.ASSISTANT_SERVICE.setComponent(
                         ComponentName.unflattenFromString(TEST_COMPONENT));
-        ShadowPackageManager shadowPackageManager = Shadows.shadowOf(mContext.getPackageManager());
-        shadowPackageManager.addResolveInfoForIntent(intent, resolveInfo);
+        getShadowApplicationManager().addResolveInfoForIntent(intent, resolveInfo);
 
-        DefaultAppInfo info = new DefaultAppInfo(mContext,
-                new PackageManagerWrapper(mContext.getPackageManager()), TEST_USER_ID,
-                ComponentName.unflattenFromString(TEST_COMPONENT));
+        DefaultAppInfo info = new DefaultAppInfo(mContext, mContext.getPackageManager(),
+                TEST_USER_ID, ComponentName.unflattenFromString(TEST_COMPONENT));
 
         assertThat(mController.getSettingIntent(info)).isNull();
     }
@@ -182,16 +177,57 @@
         Intent intent =
                 DefaultAssistantPickerEntryPreferenceController.ASSISTANT_SERVICE.setComponent(
                         ComponentName.unflattenFromString(TEST_COMPONENT));
-        ShadowPackageManager shadowPackageManager = Shadows.shadowOf(mContext.getPackageManager());
-        shadowPackageManager.addResolveInfoForIntent(intent, resolveInfo);
+        getShadowApplicationManager().addResolveInfoForIntent(intent, resolveInfo);
 
-        DefaultAppInfo info = new DefaultAppInfo(mContext,
-                new PackageManagerWrapper(mContext.getPackageManager()), TEST_USER_ID,
-                ComponentName.unflattenFromString(TEST_COMPONENT));
+        DefaultAppInfo info = new DefaultAppInfo(mContext, mContext.getPackageManager(),
+                TEST_USER_ID, ComponentName.unflattenFromString(TEST_COMPONENT));
 
         Intent result = mController.getSettingIntent(info);
         assertThat(result.getAction()).isEqualTo(Intent.ACTION_MAIN);
         assertThat(result.getComponent()).isEqualTo(
                 new ComponentName(TEST_PACKAGE, TEST_SETTINGS_CLASS));
     }
+
+    @Test
+    public void performClick_permissionControllerExists_startsPermissionController() {
+        String testPackage = "com.test.permissions";
+        getShadowApplicationManager().setPermissionControllerPackageName(testPackage);
+        mButtonPreference.performClick();
+
+        Intent actual = ShadowApplication.getInstance().getNextStartedActivity();
+        assertThat(actual.getAction()).isEqualTo(Intent.ACTION_MANAGE_DEFAULT_APP);
+    }
+
+    @Test
+    public void performClick_permissionControllerExists_intentHasPackageName() {
+        String testPackage = "com.test.permissions";
+        getShadowApplicationManager().setPermissionControllerPackageName(testPackage);
+        mButtonPreference.performClick();
+
+        Intent actual = ShadowApplication.getInstance().getNextStartedActivity();
+        assertThat(actual.getPackage()).isEqualTo(testPackage);
+    }
+
+    @Test
+    public void performClick_permissionControllerExists_intentHasRole() {
+        String testPackage = "com.test.permissions";
+        getShadowApplicationManager().setPermissionControllerPackageName(testPackage);
+        mButtonPreference.performClick();
+
+        Intent actual = ShadowApplication.getInstance().getNextStartedActivity();
+        assertThat(actual.getStringExtra(Intent.EXTRA_ROLE_NAME)).isEqualTo(
+                RoleManager.ROLE_ASSISTANT);
+    }
+
+    @Test
+    public void performClick_permissionControllerDoesntExist_doesNotStartPermissionController() {
+        mButtonPreference.performClick();
+
+        Intent actual = ShadowApplication.getInstance().getNextStartedActivity();
+        assertThat(actual).isNull();
+    }
+
+    private ShadowApplicationPackageManager getShadowApplicationManager() {
+        return Shadow.extract(mContext.getPackageManager());
+    }
 }
diff --git a/tests/robotests/src/com/android/car/settings/applications/defaultapps/DefaultAssistantPickerPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/applications/defaultapps/DefaultAssistantPickerPreferenceControllerTest.java
deleted file mode 100644
index 308f8d4..0000000
--- a/tests/robotests/src/com/android/car/settings/applications/defaultapps/DefaultAssistantPickerPreferenceControllerTest.java
+++ /dev/null
@@ -1,300 +0,0 @@
-/*
- * Copyright (C) 2019 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.car.settings.applications.defaultapps;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.when;
-
-import android.car.userlib.CarUserManagerHelper;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.pm.ActivityInfo;
-import android.content.pm.ResolveInfo;
-import android.content.pm.ServiceInfo;
-import android.provider.Settings;
-
-import androidx.preference.PreferenceGroup;
-
-import com.android.car.settings.CarSettingsRobolectricTestRunner;
-import com.android.car.settings.common.LogicalPreferenceGroup;
-import com.android.car.settings.common.PreferenceControllerTestHelper;
-import com.android.car.settings.testutils.ShadowCarUserManagerHelper;
-import com.android.car.settings.testutils.ShadowSecureSettings;
-import com.android.car.settings.testutils.ShadowVoiceInteractionServiceInfo;
-
-import com.google.android.collect.Lists;
-
-import org.junit.After;
-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.Shadows;
-import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowPackageManager;
-
-@RunWith(CarSettingsRobolectricTestRunner.class)
-@Config(shadows = {ShadowSecureSettings.class, ShadowVoiceInteractionServiceInfo.class,
-        ShadowCarUserManagerHelper.class})
-public class DefaultAssistantPickerPreferenceControllerTest {
-
-    private static final String TEST_PACKAGE_NAME = "com.test.package";
-    private static final String TEST_SERVICE = "TestService";
-    private static final String TEST_ACTIVITY = "TestActivity";
-    private static final int TEST_USER_ID = 10;
-
-    private Context mContext;
-    private PreferenceGroup mPreferenceGroup;
-    private PreferenceControllerTestHelper<DefaultAssistantPickerPreferenceController>
-            mControllerHelper;
-    private DefaultAssistantPickerPreferenceController mController;
-    @Mock
-    private CarUserManagerHelper mCarUserManagerHelper;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        ShadowCarUserManagerHelper.setMockInstance(mCarUserManagerHelper);
-
-        mContext = RuntimeEnvironment.application;
-        mPreferenceGroup = new LogicalPreferenceGroup(mContext);
-        mControllerHelper = new PreferenceControllerTestHelper<>(mContext,
-                DefaultAssistantPickerPreferenceController.class, mPreferenceGroup);
-        mController = mControllerHelper.getController();
-
-        // Set user.
-        when(mCarUserManagerHelper.getCurrentProcessUserId()).thenReturn(TEST_USER_ID);
-    }
-
-    @After
-    public void tearDown() {
-        ShadowSecureSettings.reset();
-        ShadowCarUserManagerHelper.reset();
-        ShadowVoiceInteractionServiceInfo.reset();
-    }
-
-    @Test
-    public void getCandidates_oneActivityOneService_returnsTwoElements() {
-        // Included. Supports assist.
-        ResolveInfo serviceResolveInfo = new ResolveInfo();
-        serviceResolveInfo.serviceInfo = new ServiceInfo();
-        serviceResolveInfo.serviceInfo.packageName = TEST_PACKAGE_NAME;
-        serviceResolveInfo.serviceInfo.name = TEST_SERVICE;
-        ShadowVoiceInteractionServiceInfo.setSupportsAssist(serviceResolveInfo.serviceInfo, true);
-
-        // Included. Different package.
-        ResolveInfo activityResolveInfoDifferentPackage = new ResolveInfo();
-        activityResolveInfoDifferentPackage.activityInfo = new ActivityInfo();
-        activityResolveInfoDifferentPackage.activityInfo.packageName = "com.other.package";
-        activityResolveInfoDifferentPackage.activityInfo.name = TEST_ACTIVITY;
-
-        getShadowApplicationManager().addResolveInfoForIntent(
-                DefaultAssistantPickerPreferenceController.ASSIST_SERVICE_PROBE,
-                Lists.newArrayList(serviceResolveInfo));
-        getShadowApplicationManager().addResolveInfoForIntent(
-                DefaultAssistantPickerPreferenceController.ASSIST_ACTIVITY_PROBE,
-                Lists.newArrayList(activityResolveInfoDifferentPackage));
-
-        // One service, one activity.
-        assertThat(mController.getCandidates()).hasSize(2);
-    }
-
-    @Test
-    public void getCandidates_filtersServicesWithoutAssist_returnsOneElement() {
-        // Included. Supports assist.
-        ResolveInfo serviceResolveInfo = new ResolveInfo();
-        serviceResolveInfo.serviceInfo = new ServiceInfo();
-        serviceResolveInfo.serviceInfo.packageName = TEST_PACKAGE_NAME;
-        serviceResolveInfo.serviceInfo.name = TEST_SERVICE;
-        ShadowVoiceInteractionServiceInfo.setSupportsAssist(serviceResolveInfo.serviceInfo, true);
-
-        // Not included. Doesn't support assist.
-        ResolveInfo serviceResolveInfoNoAssist = new ResolveInfo();
-        serviceResolveInfoNoAssist.serviceInfo = new ServiceInfo();
-        ShadowVoiceInteractionServiceInfo.setSupportsAssist(serviceResolveInfoNoAssist.serviceInfo,
-                false);
-
-        getShadowApplicationManager().addResolveInfoForIntent(
-                DefaultAssistantPickerPreferenceController.ASSIST_SERVICE_PROBE,
-                Lists.newArrayList(serviceResolveInfo, serviceResolveInfoNoAssist));
-
-        // Single service supporting assist.
-        assertThat(mController.getCandidates()).hasSize(1);
-    }
-
-    @Test
-    public void getCandidates_filtersSamePackageName_returnsOneElement() {
-        // Included. Supports assist.
-        ResolveInfo serviceResolveInfo = new ResolveInfo();
-        serviceResolveInfo.serviceInfo = new ServiceInfo();
-        serviceResolveInfo.serviceInfo.packageName = TEST_PACKAGE_NAME;
-        serviceResolveInfo.serviceInfo.name = TEST_SERVICE;
-        ShadowVoiceInteractionServiceInfo.setSupportsAssist(serviceResolveInfo.serviceInfo, true);
-
-        // Not included. Same package as service above.
-        ResolveInfo activityResolveInfo = new ResolveInfo();
-        activityResolveInfo.activityInfo = new ActivityInfo();
-        activityResolveInfo.activityInfo.packageName = TEST_PACKAGE_NAME;
-        activityResolveInfo.activityInfo.name = TEST_ACTIVITY;
-
-        getShadowApplicationManager().addResolveInfoForIntent(
-                DefaultAssistantPickerPreferenceController.ASSIST_SERVICE_PROBE,
-                Lists.newArrayList(serviceResolveInfo));
-        getShadowApplicationManager().addResolveInfoForIntent(
-                DefaultAssistantPickerPreferenceController.ASSIST_ACTIVITY_PROBE,
-                Lists.newArrayList(activityResolveInfo));
-
-        // Single service due to package name.
-        assertThat(mController.getCandidates()).hasSize(1);
-    }
-
-    @Test
-    public void getCurrentDefaultKey_noneSet_returnsNonePreferenceKey() {
-        // Since Settings.Secure.ASSISTANT is not yet set, it should be null in SecureSettings.
-        assertThat(mController.getCurrentDefaultKey()).isEqualTo(
-                DefaultAppsPickerBasePreferenceController.NONE_PREFERENCE_KEY);
-    }
-
-    @Test
-    public void getCurrentDefaultKey_testAssistantSet_returnsAssistantPreferenceKey() {
-        String key = new ComponentName(TEST_PACKAGE_NAME, TEST_ACTIVITY).flattenToString();
-
-        Settings.Secure.putStringForUser(mContext.getContentResolver(), Settings.Secure.ASSISTANT,
-                key, TEST_USER_ID);
-
-        assertThat(mController.getCurrentDefaultKey()).isEqualTo(key);
-    }
-
-    @Test
-    public void setCurrentDefault_nullKey_setsNonePreference() {
-        mController.setCurrentDefault(null);
-
-        assertThat(Settings.Secure.getString(mContext.getContentResolver(),
-                Settings.Secure.ASSISTANT)).isEmpty();
-        assertThat(Settings.Secure.getString(mContext.getContentResolver(),
-                Settings.Secure.VOICE_INTERACTION_SERVICE)).isEmpty();
-        assertThat(Settings.Secure.getString(mContext.getContentResolver(),
-                Settings.Secure.VOICE_RECOGNITION_SERVICE)).isEmpty();
-    }
-
-    @Test
-    public void setCurrentDefault_keyNotInCandidates_setsNonePreference() {
-        ResolveInfo serviceResolveInfo = new ResolveInfo();
-        serviceResolveInfo.serviceInfo = new ServiceInfo();
-        serviceResolveInfo.serviceInfo.packageName = TEST_PACKAGE_NAME;
-        serviceResolveInfo.serviceInfo.name = TEST_SERVICE;
-        ShadowVoiceInteractionServiceInfo.setSupportsAssist(serviceResolveInfo.serviceInfo, true);
-
-        ResolveInfo activityResolveInfoDifferentPackage = new ResolveInfo();
-        activityResolveInfoDifferentPackage.activityInfo = new ActivityInfo();
-        activityResolveInfoDifferentPackage.activityInfo.packageName = "com.other.package";
-        activityResolveInfoDifferentPackage.activityInfo.name = TEST_ACTIVITY;
-
-        getShadowApplicationManager().addResolveInfoForIntent(
-                DefaultAssistantPickerPreferenceController.ASSIST_SERVICE_PROBE,
-                Lists.newArrayList(serviceResolveInfo));
-        getShadowApplicationManager().addResolveInfoForIntent(
-                DefaultAssistantPickerPreferenceController.ASSIST_ACTIVITY_PROBE,
-                Lists.newArrayList(activityResolveInfoDifferentPackage));
-        mController.getCandidates();
-
-        String testKey = new ComponentName("com.not.existent.key", "TestApp").flattenToString();
-        mController.setCurrentDefault(testKey);
-
-        assertThat(Settings.Secure.getString(mContext.getContentResolver(),
-                Settings.Secure.ASSISTANT)).isEmpty();
-        assertThat(Settings.Secure.getString(mContext.getContentResolver(),
-                Settings.Secure.VOICE_INTERACTION_SERVICE)).isEmpty();
-        assertThat(Settings.Secure.getString(mContext.getContentResolver(),
-                Settings.Secure.VOICE_RECOGNITION_SERVICE)).isEmpty();
-    }
-
-    @Test
-    public void setCurrentDefaultKey_keySelectsService_setsService() {
-        ResolveInfo serviceResolveInfo = new ResolveInfo();
-        serviceResolveInfo.serviceInfo = new ServiceInfo();
-        serviceResolveInfo.serviceInfo.packageName = TEST_PACKAGE_NAME;
-        serviceResolveInfo.serviceInfo.name = TEST_SERVICE;
-        ShadowVoiceInteractionServiceInfo.setSupportsAssist(serviceResolveInfo.serviceInfo, true);
-        ShadowVoiceInteractionServiceInfo.setRecognitionService(serviceResolveInfo.serviceInfo,
-                "TestRecognitionService");
-
-        ResolveInfo activityResolveInfoDifferentPackage = new ResolveInfo();
-        activityResolveInfoDifferentPackage.activityInfo = new ActivityInfo();
-        activityResolveInfoDifferentPackage.activityInfo.packageName = "com.other.package";
-        activityResolveInfoDifferentPackage.activityInfo.name = TEST_ACTIVITY;
-
-        getShadowApplicationManager().addResolveInfoForIntent(
-                DefaultAssistantPickerPreferenceController.ASSIST_SERVICE_PROBE,
-                Lists.newArrayList(serviceResolveInfo));
-        getShadowApplicationManager().addResolveInfoForIntent(
-                DefaultAssistantPickerPreferenceController.ASSIST_ACTIVITY_PROBE,
-                Lists.newArrayList(activityResolveInfoDifferentPackage));
-        mController.getCandidates();
-
-        String testKey = new ComponentName(TEST_PACKAGE_NAME, TEST_SERVICE).flattenToString();
-        mController.setCurrentDefault(testKey);
-
-        assertThat(Settings.Secure.getString(mContext.getContentResolver(),
-                Settings.Secure.ASSISTANT)).isEqualTo(testKey);
-        assertThat(Settings.Secure.getString(mContext.getContentResolver(),
-                Settings.Secure.VOICE_INTERACTION_SERVICE)).isEqualTo(testKey);
-        assertThat(Settings.Secure.getString(mContext.getContentResolver(),
-                Settings.Secure.VOICE_RECOGNITION_SERVICE)).isEqualTo(
-                new ComponentName(TEST_PACKAGE_NAME, "TestRecognitionService").flattenToString());
-    }
-
-    @Test
-    public void setCurrentDefaultKey_keySelectsActivity_setsActivity() {
-        ResolveInfo serviceResolveInfo = new ResolveInfo();
-        serviceResolveInfo.serviceInfo = new ServiceInfo();
-        serviceResolveInfo.serviceInfo.packageName = TEST_PACKAGE_NAME;
-        serviceResolveInfo.serviceInfo.name = TEST_SERVICE;
-        ShadowVoiceInteractionServiceInfo.setSupportsAssist(serviceResolveInfo.serviceInfo, true);
-
-        ResolveInfo activityResolveInfoDifferentPackage = new ResolveInfo();
-        activityResolveInfoDifferentPackage.activityInfo = new ActivityInfo();
-        activityResolveInfoDifferentPackage.activityInfo.packageName = "com.other.package";
-        activityResolveInfoDifferentPackage.activityInfo.name = TEST_ACTIVITY;
-
-        getShadowApplicationManager().addResolveInfoForIntent(
-                DefaultAssistantPickerPreferenceController.ASSIST_SERVICE_PROBE,
-                Lists.newArrayList(serviceResolveInfo));
-        getShadowApplicationManager().addResolveInfoForIntent(
-                DefaultAssistantPickerPreferenceController.ASSIST_ACTIVITY_PROBE,
-                Lists.newArrayList(activityResolveInfoDifferentPackage));
-        mController.getCandidates();
-
-        String testKey = new ComponentName("com.other.package", TEST_ACTIVITY).flattenToString();
-
-        mController.setCurrentDefault(testKey);
-
-        assertThat(Settings.Secure.getString(mContext.getContentResolver(),
-                Settings.Secure.ASSISTANT)).isEqualTo(testKey);
-        assertThat(Settings.Secure.getString(mContext.getContentResolver(),
-                Settings.Secure.VOICE_INTERACTION_SERVICE)).isEmpty();
-        assertThat(Settings.Secure.getString(mContext.getContentResolver(),
-                Settings.Secure.VOICE_RECOGNITION_SERVICE)).isEmpty();
-    }
-
-    private ShadowPackageManager getShadowApplicationManager() {
-        return Shadows.shadowOf(mContext.getPackageManager());
-    }
-}
diff --git a/tests/robotests/src/com/android/car/settings/applications/defaultapps/DefaultAutofillPickerEntryPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/applications/defaultapps/DefaultAutofillPickerEntryPreferenceControllerTest.java
index 71f4362..cba714c 100644
--- a/tests/robotests/src/com/android/car/settings/applications/defaultapps/DefaultAutofillPickerEntryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/applications/defaultapps/DefaultAutofillPickerEntryPreferenceControllerTest.java
@@ -38,7 +38,6 @@
 import com.android.car.settings.testutils.ShadowAutofillServiceInfo;
 import com.android.car.settings.testutils.ShadowSecureSettings;
 import com.android.settingslib.applications.DefaultAppInfo;
-import com.android.settingslib.wrapper.PackageManagerWrapper;
 
 import com.google.android.collect.Lists;
 
@@ -91,8 +90,8 @@
 
     @After
     public void tearDown() {
-        ShadowSecureSettings.reset();
         ShadowAutofillServiceInfo.reset();
+        ShadowSecureSettings.reset();
     }
 
     @Test
@@ -152,9 +151,8 @@
         ShadowPackageManager shadowPackageManager = Shadows.shadowOf(mContext.getPackageManager());
         shadowPackageManager.addResolveInfoForIntent(intent, Collections.emptyList());
 
-        DefaultAppInfo info = new DefaultAppInfo(mContext,
-                new PackageManagerWrapper(mContext.getPackageManager()), TEST_USER_ID,
-                ComponentName.unflattenFromString(TEST_COMPONENT));
+        DefaultAppInfo info = new DefaultAppInfo(mContext, mContext.getPackageManager(),
+                TEST_USER_ID, ComponentName.unflattenFromString(TEST_COMPONENT));
 
         assertThat(mController.getSettingIntent(info)).isNull();
     }
@@ -172,9 +170,8 @@
         ShadowPackageManager shadowPackageManager = Shadows.shadowOf(mContext.getPackageManager());
         shadowPackageManager.addResolveInfoForIntent(intent, Lists.newArrayList(resolveInfo));
 
-        DefaultAppInfo info = new DefaultAppInfo(mContext,
-                new PackageManagerWrapper(mContext.getPackageManager()), TEST_USER_ID,
-                ComponentName.unflattenFromString(TEST_COMPONENT));
+        DefaultAppInfo info = new DefaultAppInfo(mContext, mContext.getPackageManager(),
+                TEST_USER_ID, ComponentName.unflattenFromString(TEST_COMPONENT));
 
         Intent result = mController.getSettingIntent(info);
         assertThat(result.getAction()).isEqualTo(Intent.ACTION_MAIN);
diff --git a/tests/robotests/src/com/android/car/settings/applications/managedomainurls/ClearDefaultsPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/applications/managedomainurls/ClearDefaultsPreferenceControllerTest.java
index b69ad96..453b938 100644
--- a/tests/robotests/src/com/android/car/settings/applications/managedomainurls/ClearDefaultsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/applications/managedomainurls/ClearDefaultsPreferenceControllerTest.java
@@ -118,7 +118,7 @@
 
     @Test
     public void refreshUi_isDefaultBrowser_hasSummary() {
-        getShadowPackageManager().setDefaultBrowserPackageNameAsUser(TEST_PACKAGE_NAME, USER_ID);
+        mContext.getPackageManager().setDefaultBrowserPackageNameAsUser(TEST_PACKAGE_NAME, USER_ID);
         mController.refreshUi();
 
         assertThat(mPreference.getSummary().toString()).isNotEmpty();
@@ -156,13 +156,14 @@
 
     @Test
     public void performClick_hasUsbManager_isDefaultBrowser_clearsDefaultBrowser() {
-        getShadowPackageManager().setDefaultBrowserPackageNameAsUser(TEST_PACKAGE_NAME, USER_ID);
-        assertThat(
-                getShadowPackageManager().getDefaultBrowserPackageNameAsUser(USER_ID)).isNotNull();
+        mContext.getPackageManager().setDefaultBrowserPackageNameAsUser(TEST_PACKAGE_NAME, USER_ID);
+        assertThat(mContext.getPackageManager().getDefaultBrowserPackageNameAsUser(
+                USER_ID)).isNotNull();
         mController.refreshUi();
         mPreference.performClick();
 
-        assertThat(getShadowPackageManager().getDefaultBrowserPackageNameAsUser(USER_ID)).isNull();
+        assertThat(
+                mContext.getPackageManager().getDefaultBrowserPackageNameAsUser(USER_ID)).isNull();
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/car/settings/applications/managedomainurls/DomainAppPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/applications/managedomainurls/DomainAppPreferenceControllerTest.java
index e567cb6..412f782 100644
--- a/tests/robotests/src/com/android/car/settings/applications/managedomainurls/DomainAppPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/applications/managedomainurls/DomainAppPreferenceControllerTest.java
@@ -20,6 +20,8 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 import static org.testng.Assert.assertThrows;
@@ -36,6 +38,7 @@
 import com.android.car.settings.CarSettingsRobolectricTestRunner;
 import com.android.car.settings.common.LogicalPreferenceGroup;
 import com.android.car.settings.common.PreferenceControllerTestHelper;
+import com.android.car.settings.testutils.ShadowApplicationsState;
 import com.android.car.settings.testutils.ShadowCarUserManagerHelper;
 import com.android.car.settings.testutils.ShadowIconDrawableFactory;
 import com.android.car.settings.testutils.ShadowUserManager;
@@ -57,7 +60,7 @@
 
 @RunWith(CarSettingsRobolectricTestRunner.class)
 @Config(shadows = {ShadowUserManager.class, ShadowCarUserManagerHelper.class,
-        ShadowIconDrawableFactory.class})
+        ShadowIconDrawableFactory.class, ShadowApplicationsState.class})
 public class DomainAppPreferenceControllerTest {
 
     private static final int USER_ID = 10;
@@ -73,10 +76,13 @@
     private Lifecycle mLifecycle;
     @Mock
     private CarUserManagerHelper mCarUserManagerHelper;
+    @Mock
+    private ApplicationsState mApplicationsState;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
+        ShadowApplicationsState.setInstance(mApplicationsState);
         ShadowCarUserManagerHelper.setMockInstance(mCarUserManagerHelper);
         when(mCarUserManagerHelper.getCurrentProcessUserId()).thenReturn(USER_ID);
 
@@ -84,6 +90,9 @@
         getShadowUserManager().addProfile(USER_ID, USER_ID, "Test Name", /* profileFlags= */
                 FLAG_ADMIN);
 
+        when(mApplicationsState.newSession(any(), any())).thenReturn(
+                mock(ApplicationsState.Session.class));
+
         mPreferenceGroup = new LogicalPreferenceGroup(mContext);
         mControllerHelper = new PreferenceControllerTestHelper<>(mContext,
                 DomainAppPreferenceController.class);
@@ -98,6 +107,7 @@
 
     @After
     public void tearDown() {
+        ShadowApplicationsState.reset();
         ShadowCarUserManagerHelper.reset();
         ShadowUserManager.reset();
     }
diff --git a/tests/robotests/src/com/android/car/settings/applications/specialaccess/DirectoryAccessDetailsPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/applications/specialaccess/DirectoryAccessDetailsPreferenceControllerTest.java
deleted file mode 100644
index 146c978..0000000
--- a/tests/robotests/src/com/android/car/settings/applications/specialaccess/DirectoryAccessDetailsPreferenceControllerTest.java
+++ /dev/null
@@ -1,358 +0,0 @@
-/*
- * Copyright 2019 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.car.settings.applications.specialaccess;
-
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.AUTHORITY;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.COL_GRANTED;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.TABLE_PERMISSIONS;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.TABLE_PERMISSIONS_COL_DIRECTORY;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.TABLE_PERMISSIONS_COL_GRANTED;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.TABLE_PERMISSIONS_COL_PACKAGE;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.TABLE_PERMISSIONS_COL_VOLUME_UUID;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-import static org.testng.Assert.assertThrows;
-
-import android.content.ContentResolver;
-import android.content.Context;
-import android.net.Uri;
-import android.os.Environment;
-import android.os.storage.StorageManager;
-import android.os.storage.VolumeInfo;
-
-import androidx.lifecycle.Lifecycle;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceGroup;
-import androidx.preference.TwoStatePreference;
-
-import com.android.car.settings.CarSettingsRobolectricTestRunner;
-import com.android.car.settings.common.LogicalPreferenceGroup;
-import com.android.car.settings.common.PreferenceControllerTestHelper;
-import com.android.car.settings.testutils.ShadowStorageManager;
-
-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.Shadows;
-import org.robolectric.annotation.Config;
-import org.robolectric.fakes.BaseCursor;
-import org.robolectric.shadow.api.Shadow;
-import org.robolectric.shadows.ShadowContentResolver;
-
-import java.util.Arrays;
-
-/** Unit test for {@link DirectoryAccessDetailsPreferenceController}. */
-@RunWith(CarSettingsRobolectricTestRunner.class)
-@Config(shadows = {ShadowStorageManager.class})
-public class DirectoryAccessDetailsPreferenceControllerTest {
-
-    private static final String PACKAGE = "test.package";
-
-    @Mock
-    private BaseCursor mCursor;
-    private Uri mProviderUri;
-
-    private Context mContext;
-    private PreferenceGroup mPreferenceGroup;
-    private PreferenceControllerTestHelper<DirectoryAccessDetailsPreferenceController>
-            mControllerHelper;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-
-        mContext = RuntimeEnvironment.application;
-        mPreferenceGroup = new LogicalPreferenceGroup(mContext);
-        mControllerHelper = new PreferenceControllerTestHelper<>(mContext,
-                DirectoryAccessDetailsPreferenceController.class);
-        mControllerHelper.getController().setPackage(PACKAGE);
-        mControllerHelper.setPreference(mPreferenceGroup);
-
-        mProviderUri = new Uri.Builder()
-                .scheme(ContentResolver.SCHEME_CONTENT)
-                .authority(AUTHORITY)
-                .appendPath(TABLE_PERMISSIONS)
-                .appendPath("*")
-                .build();
-        getShadowContentResolver().setCursor(mProviderUri, mCursor);
-    }
-
-    @Test
-    public void checkInitialized_noPackageSet_throwsIllegalStateException() {
-        mControllerHelper = new PreferenceControllerTestHelper<>(mContext,
-                DirectoryAccessDetailsPreferenceController.class);
-
-        assertThrows(IllegalStateException.class,
-                () -> mControllerHelper.setPreference(new LogicalPreferenceGroup(mContext)));
-    }
-
-    @Test
-    public void onCreate_primaryStoragePermission_addsPreference() {
-        when(mCursor.getCount()).thenReturn(1);
-        when(mCursor.moveToNext()).thenReturn(true).thenReturn(false);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_PACKAGE)).thenReturn(PACKAGE);
-        // Null uuid for primary storage.
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_VOLUME_UUID)).thenReturn(null);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_DIRECTORY)).thenReturn(
-                Environment.DIRECTORY_PICTURES);
-
-        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
-
-        assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(1);
-    }
-
-    @Test
-    public void onCreate_primaryStoragePermission_granted_setsChecked() {
-        when(mCursor.getCount()).thenReturn(1);
-        when(mCursor.moveToNext()).thenReturn(true).thenReturn(false);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_PACKAGE)).thenReturn(PACKAGE);
-        // Null uuid for primary storage.
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_VOLUME_UUID)).thenReturn(null);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_DIRECTORY)).thenReturn(
-                Environment.DIRECTORY_PICTURES);
-        when(mCursor.getInt(TABLE_PERMISSIONS_COL_GRANTED)).thenReturn(1);
-
-        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
-
-        TwoStatePreference pref = (TwoStatePreference) mPreferenceGroup.getPreference(0);
-        assertThat(pref.isChecked()).isTrue();
-    }
-
-    @Test
-    public void onCreate_primaryStoragePermission_setsPreferenceTitleToDirectory() {
-        String dirName = Environment.DIRECTORY_PICTURES;
-        when(mCursor.getCount()).thenReturn(1);
-        when(mCursor.moveToNext()).thenReturn(true).thenReturn(false);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_PACKAGE)).thenReturn(PACKAGE);
-        // Null uuid for primary storage.
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_VOLUME_UUID)).thenReturn(null);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_DIRECTORY)).thenReturn(dirName);
-
-        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
-
-        Preference pref = mPreferenceGroup.getPreference(0);
-        assertThat(pref.getTitle()).isEqualTo(dirName);
-    }
-
-    @Test
-    public void onCreate_externalVolumePermission_wholeVolume_addsPreference() {
-        String name = "external volume";
-        String uuid = "external uuid";
-        VolumeInfo primaryStorage = mock(VolumeInfo.class);
-        VolumeInfo external = mock(VolumeInfo.class);
-        when(external.getFsUuid()).thenReturn(uuid);
-        getShadowStorageManager().setVolumes(Arrays.asList(primaryStorage, external));
-        getShadowStorageManager().setBestVolumeDescription(external, name);
-
-        when(mCursor.getCount()).thenReturn(1);
-        when(mCursor.moveToNext()).thenReturn(true).thenReturn(false);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_PACKAGE)).thenReturn(PACKAGE);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_VOLUME_UUID)).thenReturn(uuid);
-        // Null directory indicates access for whole volume.
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_DIRECTORY)).thenReturn(null);
-
-        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
-
-        assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(1);
-        assertThat(mPreferenceGroup.getPreference(0).getTitle()).isEqualTo(name);
-    }
-
-    @Test
-    public void onCreate_externalVolumePermission_directory_addsWholeAndDirectoryPreferences() {
-        String name = "external volume";
-        String uuid = "external uuid";
-        String dirName = Environment.DIRECTORY_PICTURES;
-        VolumeInfo primaryStorage = mock(VolumeInfo.class);
-        VolumeInfo external = mock(VolumeInfo.class);
-        when(external.getFsUuid()).thenReturn(uuid);
-        getShadowStorageManager().setVolumes(Arrays.asList(primaryStorage, external));
-        getShadowStorageManager().setBestVolumeDescription(external, name);
-
-        when(mCursor.getCount()).thenReturn(2);
-        when(mCursor.moveToNext()).thenReturn(true).thenReturn(true).thenReturn(false);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_PACKAGE)).thenReturn(PACKAGE);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_VOLUME_UUID)).thenReturn(uuid);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_DIRECTORY)).thenReturn(null).thenReturn(
-                dirName);
-        // Root not granted.
-        when(mCursor.getInt(TABLE_PERMISSIONS_COL_GRANTED)).thenReturn(0);
-
-        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
-
-        assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(2);
-        assertThat(mPreferenceGroup.getPreference(0).getTitle()).isEqualTo(name);
-        // External volume directory preference should have name of volume and directory.
-        assertThat(mPreferenceGroup.getPreference(1).getTitle().toString()).contains(name);
-        assertThat(mPreferenceGroup.getPreference(1).getTitle().toString()).contains(dirName);
-    }
-
-    @Test
-    public void onCreate_externalVolumePermission_rootGranted_hidesDirectoryPreference() {
-        String name = "external volume";
-        String uuid = "external uuid";
-        String dirName = Environment.DIRECTORY_PICTURES;
-        VolumeInfo primaryStorage = mock(VolumeInfo.class);
-        VolumeInfo external = mock(VolumeInfo.class);
-        when(external.getFsUuid()).thenReturn(uuid);
-        getShadowStorageManager().setVolumes(Arrays.asList(primaryStorage, external));
-        getShadowStorageManager().setBestVolumeDescription(external, name);
-
-        when(mCursor.getCount()).thenReturn(2);
-        when(mCursor.moveToNext()).thenReturn(true).thenReturn(true).thenReturn(false);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_PACKAGE)).thenReturn(PACKAGE);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_VOLUME_UUID)).thenReturn(uuid);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_DIRECTORY)).thenReturn(null).thenReturn(
-                dirName);
-        // Root granted.
-        when(mCursor.getInt(TABLE_PERMISSIONS_COL_GRANTED)).thenReturn(1);
-
-        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
-
-        assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(1);
-        assertThat(mPreferenceGroup.getPreference(0).getTitle()).isEqualTo(name);
-    }
-
-    @Test
-    public void onPreferenceClicked_primaryStorage_updatesContentProvider() {
-        String dirName = Environment.DIRECTORY_PICTURES;
-        when(mCursor.getCount()).thenReturn(1);
-        when(mCursor.moveToNext()).thenReturn(true).thenReturn(false);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_PACKAGE)).thenReturn(PACKAGE);
-        // Null uuid for primary storage.
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_VOLUME_UUID)).thenReturn(null);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_DIRECTORY)).thenReturn(dirName);
-        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
-        Preference pref = mPreferenceGroup.getPreference(0);
-
-        pref.performClick();
-
-        assertThat(getShadowContentResolver().getUpdateStatements()).hasSize(1);
-        ShadowContentResolver.UpdateStatement updateStatement =
-                getShadowContentResolver().getUpdateStatements().get(0);
-        assertThat(updateStatement.getUri()).isEqualTo(mProviderUri);
-        assertThat(updateStatement.getContentValues().get(COL_GRANTED)).isEqualTo(true);
-        assertThat(updateStatement.getSelectionArgs()).isEqualTo(
-                new String[]{PACKAGE, null, dirName});
-    }
-
-    @Test
-    public void onPreferenceClicked_externalStorage_updatesContentProvider() {
-        String uuid = "external uuid";
-        VolumeInfo primaryStorage = mock(VolumeInfo.class);
-        VolumeInfo external = mock(VolumeInfo.class);
-        when(external.getFsUuid()).thenReturn(uuid);
-        getShadowStorageManager().setVolumes(Arrays.asList(primaryStorage, external));
-        getShadowStorageManager().setBestVolumeDescription(external, "external volume");
-
-        when(mCursor.getCount()).thenReturn(1);
-        when(mCursor.moveToNext()).thenReturn(true).thenReturn(false);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_PACKAGE)).thenReturn(PACKAGE);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_VOLUME_UUID)).thenReturn(uuid);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_DIRECTORY)).thenReturn(null);
-        // Root granted
-        when(mCursor.getInt(TABLE_PERMISSIONS_COL_GRANTED)).thenReturn(1);
-        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
-        Preference pref = mPreferenceGroup.getPreference(0);
-
-        pref.performClick();
-
-        assertThat(getShadowContentResolver().getUpdateStatements()).hasSize(1);
-        ShadowContentResolver.UpdateStatement updateStatement =
-                getShadowContentResolver().getUpdateStatements().get(0);
-        assertThat(updateStatement.getUri()).isEqualTo(mProviderUri);
-        assertThat(updateStatement.getContentValues().get(COL_GRANTED)).isEqualTo(false);
-        assertThat(updateStatement.getSelectionArgs()).isEqualTo(
-                new String[]{PACKAGE, uuid, null});
-    }
-
-    @Test
-    public void onPreferenceClicked_externalStorage_directory_updatesContentProvider() {
-        String uuid = "external uuid";
-        String dirName = Environment.DIRECTORY_PICTURES;
-        VolumeInfo primaryStorage = mock(VolumeInfo.class);
-        VolumeInfo external = mock(VolumeInfo.class);
-        when(external.getFsUuid()).thenReturn(uuid);
-        getShadowStorageManager().setVolumes(Arrays.asList(primaryStorage, external));
-        getShadowStorageManager().setBestVolumeDescription(external, "external volume");
-
-        when(mCursor.getCount()).thenReturn(2);
-        when(mCursor.moveToNext()).thenReturn(true).thenReturn(true).thenReturn(false);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_PACKAGE)).thenReturn(PACKAGE);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_VOLUME_UUID)).thenReturn(uuid);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_DIRECTORY)).thenReturn(null).thenReturn(
-                dirName);
-        // Root not granted.
-        when(mCursor.getInt(TABLE_PERMISSIONS_COL_GRANTED)).thenReturn(0);
-        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
-        Preference pref = mPreferenceGroup.getPreference(1);
-
-        pref.performClick();
-
-        assertThat(getShadowContentResolver().getUpdateStatements()).hasSize(1);
-        ShadowContentResolver.UpdateStatement updateStatement =
-                getShadowContentResolver().getUpdateStatements().get(0);
-        assertThat(updateStatement.getUri()).isEqualTo(mProviderUri);
-        assertThat(updateStatement.getContentValues().get(COL_GRANTED)).isEqualTo(true);
-        assertThat(updateStatement.getSelectionArgs()).isEqualTo(
-                new String[]{PACKAGE, uuid, dirName});
-    }
-
-    @Test
-    public void onPreferenceClicked_refreshesUi() {
-        String uuid = "external uuid";
-        String dirName = Environment.DIRECTORY_PICTURES;
-        VolumeInfo primaryStorage = mock(VolumeInfo.class);
-        VolumeInfo external = mock(VolumeInfo.class);
-        when(external.getFsUuid()).thenReturn(uuid);
-        getShadowStorageManager().setVolumes(Arrays.asList(primaryStorage, external));
-        getShadowStorageManager().setBestVolumeDescription(external, "external volume");
-
-        when(mCursor.getCount()).thenReturn(2);
-        // Setup for two iterations over cursor with two rows.
-        when(mCursor.moveToNext()).thenReturn(true).thenReturn(true).thenReturn(false).thenReturn(
-                true).thenReturn(true).thenReturn(false);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_PACKAGE)).thenReturn(PACKAGE);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_VOLUME_UUID)).thenReturn(uuid);
-        when(mCursor.getString(TABLE_PERMISSIONS_COL_DIRECTORY)).thenReturn(null).thenReturn(
-                dirName).thenReturn(null).thenReturn(dirName);
-        // Root not granted, dir not granted -> root granted, dir not explicitly granted.
-        when(mCursor.getInt(TABLE_PERMISSIONS_COL_GRANTED)).thenReturn(0).thenReturn(0).thenReturn(
-                1).thenReturn(0);
-        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
-        assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(2);
-        Preference pref = mPreferenceGroup.getPreference(0);
-
-        pref.performClick();
-
-        // Granting access to root should hide the directory preference on refresh.
-        assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(1);
-    }
-
-    private ShadowContentResolver getShadowContentResolver() {
-        return Shadows.shadowOf(mContext.getContentResolver());
-    }
-
-    private ShadowStorageManager getShadowStorageManager() {
-        return Shadow.extract(mContext.getSystemService(StorageManager.class));
-    }
-}
diff --git a/tests/robotests/src/com/android/car/settings/applications/specialaccess/DirectoryAccessPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/applications/specialaccess/DirectoryAccessPreferenceControllerTest.java
deleted file mode 100644
index 3da0a44..0000000
--- a/tests/robotests/src/com/android/car/settings/applications/specialaccess/DirectoryAccessPreferenceControllerTest.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Copyright 2019 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.car.settings.applications.specialaccess;
-
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.AUTHORITY;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.TABLE_PACKAGES;
-import static android.os.storage.StorageVolume.ScopedAccessProviderContract.TABLE_PACKAGES_COL_PACKAGE;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.isNull;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.pm.ApplicationInfo;
-import android.net.Uri;
-import android.os.Looper;
-
-import androidx.fragment.app.Fragment;
-import androidx.lifecycle.Lifecycle;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceGroup;
-
-import com.android.car.settings.CarSettingsRobolectricTestRunner;
-import com.android.car.settings.common.LogicalPreferenceGroup;
-import com.android.car.settings.common.PreferenceControllerTestHelper;
-import com.android.car.settings.testutils.ShadowApplicationsState;
-import com.android.car.settings.testutils.ShadowContentResolver;
-import com.android.settingslib.applications.ApplicationsState;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Captor;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-import org.robolectric.fakes.BaseCursor;
-import org.robolectric.shadow.api.Shadow;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-/** Unit test for {@link DirectoryAccessPreferenceController}. */
-@RunWith(CarSettingsRobolectricTestRunner.class)
-@Config(shadows = {ShadowApplicationsState.class, ShadowContentResolver.class})
-public class DirectoryAccessPreferenceControllerTest {
-
-    @Mock
-    private AppEntryListManager mAppEntryListManager;
-    @Mock
-    private ApplicationsState mApplicationsState;
-    @Captor
-    private ArgumentCaptor<AppEntryListManager.AppFilterProvider> mFilterCaptor;
-    @Captor
-    private ArgumentCaptor<AppEntryListManager.Callback> mCallbackCaptor;
-
-    private Context mContext;
-    private PreferenceGroup mPreferenceGroup;
-    private PreferenceControllerTestHelper<DirectoryAccessPreferenceController> mControllerHelper;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        ShadowApplicationsState.setInstance(mApplicationsState);
-        when(mApplicationsState.getBackgroundLooper()).thenReturn(Looper.getMainLooper());
-
-        mContext = RuntimeEnvironment.application;
-        mPreferenceGroup = new LogicalPreferenceGroup(mContext);
-        mControllerHelper = new PreferenceControllerTestHelper<>(mContext,
-                DirectoryAccessPreferenceController.class, mPreferenceGroup);
-        mControllerHelper.getController().mAppEntryListManager = mAppEntryListManager;
-        mControllerHelper.markState(Lifecycle.State.CREATED);
-        verify(mAppEntryListManager).init(isNull(), mFilterCaptor.capture(),
-                mCallbackCaptor.capture());
-    }
-
-    @After
-    public void tearDown() {
-        ShadowApplicationsState.reset();
-        ShadowContentResolver.reset();
-    }
-
-    @Test
-    public void onStart_startsListManager() {
-        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_START);
-
-        verify(mAppEntryListManager).start();
-    }
-
-    @Test
-    public void onStop_stopsListManager() {
-        mControllerHelper.markState(Lifecycle.State.STARTED);
-        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_STOP);
-
-        verify(mAppEntryListManager).stop();
-    }
-
-    @Test
-    public void onDestroy_destroysListManager() {
-        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_DESTROY);
-
-        verify(mAppEntryListManager).destroy();
-    }
-
-    @Test
-    public void onAppEntryListChanged_addsPreferencesForEntries() {
-        mControllerHelper.markState(Lifecycle.State.STARTED);
-        List<ApplicationsState.AppEntry> entries = Arrays.asList(
-                createAppEntry("test.package", /* uid= */ 1),
-                createAppEntry("another.test.package", /* uid= */ 2));
-
-        mCallbackCaptor.getValue().onAppEntryListChanged(entries);
-
-        assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(2);
-    }
-
-    @Test
-    public void onPreferenceClicked_launchesDetailsFragmentForPackage() {
-        mControllerHelper.markState(Lifecycle.State.STARTED);
-        String packageName = "test.package";
-        List<ApplicationsState.AppEntry> entries = Collections.singletonList(
-                createAppEntry(packageName, /* uid= */ 1));
-        mCallbackCaptor.getValue().onAppEntryListChanged(entries);
-        Preference appPref = mPreferenceGroup.getPreference(0);
-
-        appPref.performClick();
-
-        ArgumentCaptor<Fragment> fragmentCaptor = ArgumentCaptor.forClass(Fragment.class);
-        verify(mControllerHelper.getMockFragmentController()).launchFragment(
-                fragmentCaptor.capture());
-        assertThat(fragmentCaptor.getValue()).isInstanceOf(DirectoryAccessDetailsFragment.class);
-        assertThat(fragmentCaptor.getValue().getArguments().getString(
-                DirectoryAccessDetailsFragment.ARG_PACKAGE_NAME)).isEqualTo(packageName);
-    }
-
-    @Test
-    public void appFilter_removesPackagesNotInScopedAccessProvider() {
-        mControllerHelper.markState(Lifecycle.State.STARTED);
-        String includedPackage = "test.package";
-        String excludedPackage = "test.package2";
-
-        BaseCursor cursor = mock(BaseCursor.class);
-        when(cursor.getCount()).thenReturn(1);
-        when(cursor.moveToNext()).thenReturn(true).thenReturn(false);
-        when(cursor.getString(TABLE_PACKAGES_COL_PACKAGE)).thenReturn(includedPackage);
-
-        Uri providerUri = new Uri.Builder()
-                .scheme(ContentResolver.SCHEME_CONTENT)
-                .authority(AUTHORITY)
-                .appendPath(TABLE_PACKAGES)
-                .appendPath("*")
-                .build();
-        getShadowContentResolver().setCursor(providerUri, cursor);
-
-        ApplicationsState.AppFilter filter = mFilterCaptor.getValue().getAppFilter();
-        filter.init(mContext);
-
-        assertThat(filter.filterApp(createAppEntry(includedPackage, /* uid= */ 1))).isTrue();
-        assertThat(filter.filterApp(createAppEntry(excludedPackage, /* uid= */ 2))).isFalse();
-    }
-
-    private ApplicationsState.AppEntry createAppEntry(String packageName, int uid) {
-        ApplicationInfo info = new ApplicationInfo();
-        info.packageName = packageName;
-        info.uid = uid;
-
-        ApplicationsState.AppEntry appEntry = mock(ApplicationsState.AppEntry.class);
-        appEntry.info = info;
-        appEntry.label = packageName;
-
-        return appEntry;
-    }
-
-    private ShadowContentResolver getShadowContentResolver() {
-        return Shadow.extract(mContext.getContentResolver());
-    }
-}
diff --git a/tests/robotests/src/com/android/car/settings/applications/specialaccess/MoreSpecialAccessPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/applications/specialaccess/MoreSpecialAccessPreferenceControllerTest.java
new file mode 100644
index 0000000..de6cd2e
--- /dev/null
+++ b/tests/robotests/src/com/android/car/settings/applications/specialaccess/MoreSpecialAccessPreferenceControllerTest.java
@@ -0,0 +1,139 @@
+/*
+ * Copyright 2019 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.car.settings.applications.specialaccess;
+
+import static com.android.car.settings.common.PreferenceController.AVAILABLE;
+import static com.android.car.settings.common.PreferenceController.UNSUPPORTED_ON_DEVICE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ActivityInfo;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.ResolveInfo;
+
+import androidx.lifecycle.Lifecycle;
+import androidx.preference.Preference;
+
+import com.android.car.settings.CarSettingsRobolectricTestRunner;
+import com.android.car.settings.common.PreferenceControllerTestHelper;
+import com.android.car.settings.testutils.ShadowApplicationPackageManager;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowApplication;
+
+import java.util.Collections;
+
+/** Unit test for {@link MoreSpecialAccessPreferenceController}. */
+@RunWith(CarSettingsRobolectricTestRunner.class)
+@Config(shadows = {ShadowApplicationPackageManager.class})
+public class MoreSpecialAccessPreferenceControllerTest {
+
+    private static final String PACKAGE = "test.package";
+
+    private Context mContext;
+    private Preference mPreference;
+    private Intent mIntent;
+    private ResolveInfo mResolveInfo;
+
+    @Before
+    public void setUp() {
+        mContext = RuntimeEnvironment.application;
+        mPreference = new Preference(mContext);
+        mIntent = new Intent(Intent.ACTION_MANAGE_SPECIAL_APP_ACCESSES);
+        mIntent.setPackage(PACKAGE);
+
+        ApplicationInfo applicationInfo = new ApplicationInfo();
+        applicationInfo.packageName = PACKAGE;
+        applicationInfo.name = "TestClass";
+        ActivityInfo activityInfo = new ActivityInfo();
+        activityInfo.applicationInfo = applicationInfo;
+
+        mResolveInfo = new ResolveInfo();
+        mResolveInfo.activityInfo = activityInfo;
+    }
+
+    @After
+    public void tearDown() {
+        ShadowApplicationPackageManager.reset();
+    }
+
+    @Test
+    public void getAvailabilityStatus_noPermissionController_returnsUnsupportedOnDevice() {
+        PreferenceControllerTestHelper<MoreSpecialAccessPreferenceController> controllerHelper =
+                new PreferenceControllerTestHelper<>(mContext,
+                        MoreSpecialAccessPreferenceController.class, mPreference);
+
+        assertThat(controllerHelper.getController().getAvailabilityStatus()).isEqualTo(
+                UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_noResolvedActivity_returnsUnsupportedOnDevice() {
+        getShadowApplicationPackageManager().setPermissionControllerPackageName(PACKAGE);
+
+        PreferenceControllerTestHelper<MoreSpecialAccessPreferenceController> controllerHelper =
+                new PreferenceControllerTestHelper<>(mContext,
+                        MoreSpecialAccessPreferenceController.class, mPreference);
+
+        assertThat(controllerHelper.getController().getAvailabilityStatus()).isEqualTo(
+                UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_resolvedActivity_returnsAvailable() {
+        getShadowApplicationPackageManager().setPermissionControllerPackageName(PACKAGE);
+        getShadowApplicationPackageManager().setResolveInfosForIntent(mIntent,
+                Collections.singletonList(mResolveInfo));
+
+        PreferenceControllerTestHelper<MoreSpecialAccessPreferenceController> controllerHelper =
+                new PreferenceControllerTestHelper<>(mContext,
+                        MoreSpecialAccessPreferenceController.class, mPreference);
+
+        assertThat(controllerHelper.getController().getAvailabilityStatus()).isEqualTo(
+                AVAILABLE);
+    }
+
+    @Test
+    public void preferenceClicked_startsResolvedActivity() {
+        getShadowApplicationPackageManager().setPermissionControllerPackageName(PACKAGE);
+        getShadowApplicationPackageManager().setResolveInfosForIntent(mIntent,
+                Collections.singletonList(mResolveInfo));
+
+        PreferenceControllerTestHelper<MoreSpecialAccessPreferenceController> controllerHelper =
+                new PreferenceControllerTestHelper<>(mContext,
+                        MoreSpecialAccessPreferenceController.class, mPreference);
+        controllerHelper.markState(Lifecycle.State.STARTED);
+
+        mPreference.performClick();
+
+        Intent started = ShadowApplication.getInstance().getNextStartedActivity();
+        assertThat(started.getAction()).isEqualTo(Intent.ACTION_MANAGE_SPECIAL_APP_ACCESSES);
+        assertThat(started.getPackage()).isEqualTo(PACKAGE);
+    }
+
+    private ShadowApplicationPackageManager getShadowApplicationPackageManager() {
+        return Shadow.extract(mContext.getPackageManager());
+    }
+}
diff --git a/tests/robotests/src/com/android/car/settings/bluetooth/BluetoothDeviceNamePreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/bluetooth/BluetoothDeviceNamePreferenceControllerTest.java
index 5c4b164..09790b0 100644
--- a/tests/robotests/src/com/android/car/settings/bluetooth/BluetoothDeviceNamePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/bluetooth/BluetoothDeviceNamePreferenceControllerTest.java
@@ -137,8 +137,7 @@
         String summary = "summary";
         when(mDevice.getCarConnectionSummary()).thenReturn(summary);
         String otherSummary = "other summary";
-        when(mCachedDeviceManager.getHearingAidPairDeviceSummary(mDevice)).thenReturn(
-                "other summary");
+        when(mCachedDeviceManager.getSubDeviceSummary(mDevice)).thenReturn("other summary");
 
         mController.refreshUi();
 
diff --git a/tests/robotests/src/com/android/car/settings/bluetooth/BluetoothUnbondedDevicesPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/bluetooth/BluetoothUnbondedDevicesPreferenceControllerTest.java
index 6dba9bb..730186d 100644
--- a/tests/robotests/src/com/android/car/settings/bluetooth/BluetoothUnbondedDevicesPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/bluetooth/BluetoothUnbondedDevicesPreferenceControllerTest.java
@@ -187,8 +187,7 @@
 
         devicePreference.performClick();
 
-        verify(mUnbondedCachedDevice).setPhonebookPermissionChoice(
-                CachedBluetoothDevice.ACCESS_ALLOWED);
+        verify(mUnbondedDevice).setPhonebookAccessPermission(BluetoothDevice.ACCESS_ALLOWED);
     }
 
     @Test
@@ -200,8 +199,7 @@
 
         devicePreference.performClick();
 
-        verify(mUnbondedCachedDevice).setMessagePermissionChoice(
-                CachedBluetoothDevice.ACCESS_ALLOWED);
+        verify(mUnbondedDevice).setMessageAccessPermission(BluetoothDevice.ACCESS_ALLOWED);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/car/settings/common/ButtonPreferenceTest.java b/tests/robotests/src/com/android/car/settings/common/ButtonPreferenceTest.java
index 156fe33..f12036d 100644
--- a/tests/robotests/src/com/android/car/settings/common/ButtonPreferenceTest.java
+++ b/tests/robotests/src/com/android/car/settings/common/ButtonPreferenceTest.java
@@ -20,6 +20,8 @@
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
 
+import android.content.Context;
+import android.view.ContextThemeWrapper;
 import android.view.View;
 
 import androidx.preference.PreferenceViewHolder;
@@ -41,10 +43,12 @@
 
     @Before
     public void setUp() {
-        View rootView = View.inflate(RuntimeEnvironment.application, R.layout.two_action_preference,
-                null);
+        Context context = RuntimeEnvironment.application;
+        Context themedContext = new ContextThemeWrapper(context, R.style.CarSettingTheme);
+
+        View rootView = View.inflate(themedContext, R.layout.two_action_preference, null);
         mViewHolder = PreferenceViewHolder.createInstanceForTests(rootView);
-        mButtonPreference = new ButtonPreference(RuntimeEnvironment.application);
+        mButtonPreference = new ButtonPreference(context);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/car/settings/common/MasterSwitchPreferenceTest.java b/tests/robotests/src/com/android/car/settings/common/MasterSwitchPreferenceTest.java
index 7550967..c39281c 100644
--- a/tests/robotests/src/com/android/car/settings/common/MasterSwitchPreferenceTest.java
+++ b/tests/robotests/src/com/android/car/settings/common/MasterSwitchPreferenceTest.java
@@ -25,8 +25,8 @@
 
 import android.content.Context;
 import android.view.View;
-import android.widget.FrameLayout;
 
+import androidx.appcompat.view.ContextThemeWrapper;
 import androidx.preference.PreferenceViewHolder;
 
 import com.android.car.settings.CarSettingsRobolectricTestRunner;
@@ -51,9 +51,10 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         Context context = RuntimeEnvironment.application;
-        View rootView = View.inflate(context, R.layout.two_action_preference, null);
-        View.inflate(context, R.layout.master_switch_widget,
-                (FrameLayout) rootView.findViewById(android.R.id.widget_frame));
+        Context themedContext = new ContextThemeWrapper(context, R.style.CarSettingTheme);
+        View rootView = View.inflate(themedContext, R.layout.two_action_preference, null);
+        View.inflate(themedContext, R.layout.master_switch_widget,
+                rootView.findViewById(android.R.id.widget_frame));
         mViewHolder = PreferenceViewHolder.createInstanceForTests(rootView);
         mMasterSwitchPreference = new MasterSwitchPreference(context);
 
diff --git a/tests/robotests/src/com/android/car/settings/common/PreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/common/PreferenceControllerTest.java
index 29d0622..237d863 100644
--- a/tests/robotests/src/com/android/car/settings/common/PreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/common/PreferenceControllerTest.java
@@ -256,6 +256,7 @@
         verify(mPreference).setVisible(true);
         verify(mPreference).setEnabled(true);
     }
+
     @Test
     public void refreshUi_created_availableForViewing_preferenceShownAndDisabled() {
         mController.setAvailabilityStatus(AVAILABLE_FOR_VIEWING);
@@ -267,6 +268,7 @@
         verify(mPreference).setVisible(true);
         verify(mPreference).setEnabled(false);
     }
+
     @Test
     public void refreshUi_created_notAvailable_preferenceHidden() {
         mController.setAvailabilityStatus(CONDITIONALLY_UNAVAILABLE);
diff --git a/tests/robotests/src/com/android/car/settings/common/TwoActionPreferenceTest.java b/tests/robotests/src/com/android/car/settings/common/TwoActionPreferenceTest.java
index e6f9513..5cce802 100644
--- a/tests/robotests/src/com/android/car/settings/common/TwoActionPreferenceTest.java
+++ b/tests/robotests/src/com/android/car/settings/common/TwoActionPreferenceTest.java
@@ -20,6 +20,7 @@
 
 import android.content.Context;
 import android.os.Bundle;
+import android.view.ContextThemeWrapper;
 import android.view.View;
 
 import androidx.annotation.XmlRes;
@@ -56,7 +57,8 @@
     @Before
     public void setUp() {
         mContext = RuntimeEnvironment.application;
-        View rootView = View.inflate(mContext, R.layout.two_action_preference,
+        Context themedContext = new ContextThemeWrapper(mContext, R.style.CarSettingTheme);
+        View rootView = View.inflate(themedContext, R.layout.two_action_preference,
                 null);
         mViewHolder = PreferenceViewHolder.createInstanceForTests(rootView);
         mTestTwoActionPreference = new TestTwoActionPreference(mContext);
diff --git a/tests/robotests/src/com/android/car/settings/datausage/DataUsageSummaryPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
index 1fb0c60..d0c5abc 100644
--- a/tests/robotests/src/com/android/car/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
@@ -360,8 +360,9 @@
         SubscriptionInfo subInfo = new SubscriptionInfo(/* id= */ 0, /* iccId= */ "",
                 /* simSlotIndex= */ 0, /* displayName= */ "", name,
                 /* nameSource= */ 0, /* iconTint= */ 0, /* number= */ "",
-                /* roaming= */ 0, /* icon= */ null, /* mcc= */ 0, /* mnc= */ 0,
-                /* countryIso= */ "");
+                /* roaming= */ 0, /* icon= */ null, /* mcc= */ "", /* mnc= */ "",
+                /* countryIso= */ "", /* isEmbedded= */ false,
+                /* accessRules= */ null, /* cardString= */ "");
         ShadowSubscriptionManager.setDefaultDataSubscriptionInfo(subInfo);
     }
 
diff --git a/tests/robotests/src/com/android/car/settings/display/BrightnessLevelPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/display/BrightnessLevelPreferenceControllerTest.java
index 237333d..d501e79 100644
--- a/tests/robotests/src/com/android/car/settings/display/BrightnessLevelPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/display/BrightnessLevelPreferenceControllerTest.java
@@ -25,7 +25,6 @@
 
 import android.car.userlib.CarUserManagerHelper;
 import android.content.Context;
-import android.os.PowerManager;
 import android.provider.Settings;
 
 import androidx.lifecycle.Lifecycle;
@@ -34,7 +33,6 @@
 import com.android.car.settings.common.PreferenceControllerTestHelper;
 import com.android.car.settings.common.SeekBarPreference;
 import com.android.car.settings.testutils.ShadowCarUserManagerHelper;
-import com.android.car.settings.testutils.ShadowPowerManager;
 
 import org.junit.After;
 import org.junit.Before;
@@ -43,10 +41,8 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
 
 @RunWith(CarSettingsRobolectricTestRunner.class)
-@Config(shadows = {ShadowPowerManager.class})
 public class BrightnessLevelPreferenceControllerTest {
 
     private static final int CURRENT_USER = 10;
@@ -58,8 +54,6 @@
     private int mMid;
     @Mock
     private CarUserManagerHelper mCarUserManagerHelper;
-    @Mock
-    private PowerManager mPowerManager;
 
     @Before
     public void setUp() {
@@ -74,9 +68,6 @@
 
         ShadowCarUserManagerHelper.setMockInstance(mCarUserManagerHelper);
         when(mCarUserManagerHelper.getCurrentProcessUserId()).thenReturn(CURRENT_USER);
-        ShadowPowerManager.setInstance(mPowerManager);
-        when(mPowerManager.getMinimumScreenBrightnessSetting()).thenReturn(mMin);
-        when(mPowerManager.getMaximumScreenBrightnessSetting()).thenReturn(mMax);
 
         mSeekBarPreference = new SeekBarPreference(mContext);
         PreferenceControllerTestHelper<BrightnessLevelPreferenceController>
@@ -89,7 +80,6 @@
     @After
     public void tearDown() {
         ShadowCarUserManagerHelper.reset();
-        ShadowPowerManager.reset();
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/car/settings/inputmethod/EnabledKeyboardPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/inputmethod/EnabledKeyboardPreferenceControllerTest.java
index 35ec3e2..79f7691 100644
--- a/tests/robotests/src/com/android/car/settings/inputmethod/EnabledKeyboardPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/inputmethod/EnabledKeyboardPreferenceControllerTest.java
@@ -40,6 +40,7 @@
 import com.android.car.settings.testutils.ShadowDevicePolicyManager;
 import com.android.car.settings.testutils.ShadowInputMethodManager;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -52,7 +53,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-
 @RunWith(CarSettingsRobolectricTestRunner.class)
 @Config(shadows = {ShadowInputMethodManager.class, ShadowDevicePolicyManager.class})
 public class EnabledKeyboardPreferenceControllerTest {
@@ -82,6 +82,12 @@
         mControllerHelper.markState(Lifecycle.State.CREATED);
     }
 
+    @After
+    public void tearDown() {
+        getShadowInputMethodManager(mContext).reset();
+        getShadowDevicePolicyManager(mContext).reset();
+    }
+
     @Test
     public void refreshUi_permitAllInputMethods() {
         getShadowDevicePolicyManager(mContext).setPermittedInputMethodsForCurrentUser(null);
diff --git a/tests/robotests/src/com/android/car/settings/inputmethod/KeyboardManagementPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/inputmethod/KeyboardManagementPreferenceControllerTest.java
index 48ea47d..ef165fc 100644
--- a/tests/robotests/src/com/android/car/settings/inputmethod/KeyboardManagementPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/inputmethod/KeyboardManagementPreferenceControllerTest.java
@@ -92,6 +92,9 @@
         mPermittedList = new ArrayList<>();
         mPermittedList.add(DUMMY_PACKAGE_NAME);
         mPermittedList.add(ALLOWED_PACKAGE_NAME);
+
+        getShadowInputMethodManager(mContext).setInputMethodList(new ArrayList<>());
+
         mControllerHelper.markState(Lifecycle.State.CREATED);
     }
 
diff --git a/tests/robotests/src/com/android/car/settings/inputmethod/KeyboardPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/inputmethod/KeyboardPreferenceControllerTest.java
index 52a39ff..d51e9b1 100644
--- a/tests/robotests/src/com/android/car/settings/inputmethod/KeyboardPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/inputmethod/KeyboardPreferenceControllerTest.java
@@ -36,6 +36,7 @@
 import com.android.car.settings.testutils.ShadowDevicePolicyManager;
 import com.android.car.settings.testutils.ShadowInputMethodManager;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -77,6 +78,12 @@
         mControllerHelper.markState(Lifecycle.State.CREATED);
     }
 
+    @After
+    public void tearDown() {
+        ShadowInputMethodManager.reset();
+        ShadowDevicePolicyManager.reset();
+    }
+
     @Test
     public void refreshUi_noInputMethodInfo() {
         getShadowDevicePolicyManager(mContext).setPermittedInputMethodsForCurrentUser(null);
diff --git a/tests/robotests/src/com/android/car/settings/location/LocationServicesPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/location/LocationServicesPreferenceControllerTest.java
index 500919c..65e8527 100644
--- a/tests/robotests/src/com/android/car/settings/location/LocationServicesPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/location/LocationServicesPreferenceControllerTest.java
@@ -23,11 +23,12 @@
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
 
 import android.content.Context;
 import android.content.Intent;
 import android.location.SettingInjectorService;
+import android.os.UserHandle;
+import android.util.ArrayMap;
 
 import androidx.lifecycle.Lifecycle;
 import androidx.preference.Preference;
@@ -45,12 +46,15 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
 
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 
 @RunWith(CarSettingsRobolectricTestRunner.class)
 public class LocationServicesPreferenceControllerTest {
+
+    private static final int PROFILE_ID = UserHandle.USER_CURRENT;
+
     @Mock
     private SettingsInjector mSettingsInjector;
     private Context mContext;
@@ -71,13 +75,12 @@
 
     @Test
     public void onCreate_addsInjectedSettingsToPreferenceCategory() {
-        List<Preference> samplePrefs = getSamplePreferences();
-        when(mSettingsInjector.hasInjectedSettings(anyInt())).thenReturn(true);
+        Map<Integer, List<Preference>> samplePrefs = getSamplePreferences();
         doReturn(samplePrefs).when(mSettingsInjector)
                 .getInjectedSettings(any(Context.class), anyInt());
         mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
 
-        assertThat(mCategory.getPreferenceCount()).isEqualTo(samplePrefs.size());
+        assertThat(mCategory.getPreferenceCount()).isEqualTo(samplePrefs.get(PROFILE_ID).size());
     }
 
     @Test
@@ -101,7 +104,6 @@
 
     @Test
     public void preferenceCategory_isVisibleIfThereAreInjectedSettings() {
-        doReturn(true).when(mSettingsInjector).hasInjectedSettings(anyInt());
         doReturn(getSamplePreferences()).when(mSettingsInjector)
                 .getInjectedSettings(any(Context.class), anyInt());
         mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
@@ -112,15 +114,17 @@
 
     @Test
     public void preferenceCategory_isHiddenIfThereAreNoInjectedSettings() {
-        doReturn(false).when(mSettingsInjector).hasInjectedSettings(anyInt());
         mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
         mController.refreshUi();
 
         assertThat(mCategory.isVisible()).isFalse();
     }
 
-    private List<Preference> getSamplePreferences() {
-        return new ArrayList<>(Arrays.asList(
-                new Preference(mContext), new Preference(mContext), new Preference(mContext)));
+    private Map<Integer, List<Preference>> getSamplePreferences() {
+        Map<Integer, List<Preference>> preferences = new ArrayMap<>();
+        preferences.put(PROFILE_ID,
+                Arrays.asList(new Preference(mContext), new Preference(mContext),
+                        new Preference(mContext)));
+        return preferences;
     }
 }
diff --git a/tests/robotests/src/com/android/car/settings/location/RecentLocationRequestsPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/location/RecentLocationRequestsPreferenceControllerTest.java
index aa638cc..de03da8 100644
--- a/tests/robotests/src/com/android/car/settings/location/RecentLocationRequestsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/location/RecentLocationRequestsPreferenceControllerTest.java
@@ -68,7 +68,7 @@
 
     @Test
     public void refreshUi_noRecentRequests_messageDisplayed() {
-        when(mRecentLocationApps.getAppListSorted()).thenReturn(Collections.emptyList());
+        when(mRecentLocationApps.getAppListSorted(true)).thenReturn(Collections.emptyList());
         mController.refreshUi();
 
         assertThat(mScreen.getPreference(0).getTitle()).isEqualTo(
@@ -81,7 +81,7 @@
                 mock(RecentLocationApps.Request.class),
                 mock(RecentLocationApps.Request.class),
                 mock(RecentLocationApps.Request.class));
-        when(mRecentLocationApps.getAppListSorted()).thenReturn(list);
+        when(mRecentLocationApps.getAppListSorted(true)).thenReturn(list);
         mController.refreshUi();
 
         assertThat(mScreen.getPreferenceCount()).isEqualTo(list.size());
@@ -93,7 +93,7 @@
                 mock(RecentLocationApps.Request.class),
                 mock(RecentLocationApps.Request.class),
                 mock(RecentLocationApps.Request.class));
-        when(mRecentLocationApps.getAppListSorted()).thenReturn(list1);
+        when(mRecentLocationApps.getAppListSorted(true)).thenReturn(list1);
 
         List<RecentLocationApps.Request> list2 = new ArrayList<>(list1);
         list2.add(mock(RecentLocationApps.Request.class));
@@ -101,7 +101,7 @@
         mController.refreshUi();
         assertThat(mScreen.getPreferenceCount()).isEqualTo(list1.size());
 
-        when(mRecentLocationApps.getAppListSorted()).thenReturn(list2);
+        when(mRecentLocationApps.getAppListSorted(true)).thenReturn(list2);
         mController.refreshUi();
 
         assertThat(mScreen.getPreferenceCount()).isEqualTo(list2.size());
diff --git a/tests/robotests/src/com/android/car/settings/network/AddMobileNetworkPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/network/AddMobileNetworkPreferenceControllerTest.java
new file mode 100644
index 0000000..14e32d0
--- /dev/null
+++ b/tests/robotests/src/com/android/car/settings/network/AddMobileNetworkPreferenceControllerTest.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2019 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.car.settings.network;
+
+import static com.android.car.settings.common.PreferenceController.AVAILABLE;
+import static com.android.car.settings.common.PreferenceController.UNSUPPORTED_ON_DEVICE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.content.pm.ResolveInfo;
+
+import androidx.lifecycle.Lifecycle;
+import androidx.preference.Preference;
+
+import com.android.car.settings.CarSettingsRobolectricTestRunner;
+import com.android.car.settings.common.PreferenceControllerTestHelper;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowEuiccManager;
+import org.robolectric.shadows.ShadowPackageManager;
+
+@RunWith(CarSettingsRobolectricTestRunner.class)
+public class AddMobileNetworkPreferenceControllerTest {
+
+    private Context mContext;
+    private AddMobileNetworkPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        mContext = RuntimeEnvironment.application;
+        PreferenceControllerTestHelper<AddMobileNetworkPreferenceController> controllerHelper =
+                new PreferenceControllerTestHelper<>(mContext,
+                        AddMobileNetworkPreferenceController.class, new Preference(mContext));
+        mController = controllerHelper.getController();
+        controllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
+    }
+
+    @After
+    public void tearDown() {
+        ShadowPackageManager.reset();
+    }
+
+    @Test
+    public void getAvailabilityStatus_euiccDisabled_isUnsupported() {
+        getShadowEuiccManager().setIsEnabled(false);
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_euiccEnabled_intentResolves_isAvailable() {
+        getShadowEuiccManager().setIsEnabled(true);
+        getShadowPackageManager().addResolveInfoForIntent(
+                AddMobileNetworkPreferenceController.ADD_NETWORK_INTENT, new ResolveInfo());
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_euiccEnabled_intentFailsToResolve_isUnsupported() {
+        getShadowEuiccManager().setIsEnabled(true);
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
+    }
+
+    private ShadowPackageManager getShadowPackageManager() {
+        return Shadow.extract(mContext.getPackageManager());
+    }
+
+    private ShadowEuiccManager getShadowEuiccManager() {
+        return Shadow.extract(mContext.getSystemService(Context.EUICC_SERVICE));
+    }
+}
diff --git a/tests/robotests/src/com/android/car/settings/network/ConfirmMobileDataDisableDialogTest.java b/tests/robotests/src/com/android/car/settings/network/ConfirmMobileDataDisableDialogTest.java
deleted file mode 100644
index 8cd7370..0000000
--- a/tests/robotests/src/com/android/car/settings/network/ConfirmMobileDataDisableDialogTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2019 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.car.settings.network;
-
-import static org.mockito.Mockito.verify;
-
-import android.app.AlertDialog;
-import android.content.DialogInterface;
-
-import com.android.car.settings.CarSettingsRobolectricTestRunner;
-import com.android.car.settings.testutils.BaseTestActivity;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.Robolectric;
-import org.robolectric.shadows.ShadowDialog;
-
-@RunWith(CarSettingsRobolectricTestRunner.class)
-public class ConfirmMobileDataDisableDialogTest {
-
-    private ConfirmMobileDataDisableDialog mDialog;
-    @Mock
-    private ConfirmMobileDataDisableDialog.ConfirmMobileDataDisableListener mListener;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mDialog = new ConfirmMobileDataDisableDialog();
-        mDialog.setListener(mListener);
-    }
-
-    @Test
-    public void confirmDisable_disableCallbackCalled() {
-        AlertDialog dialog = showDialog(mDialog);
-        dialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick();
-
-        verify(mListener).onMobileDataDisableConfirmed();
-    }
-
-    @Test
-    public void rejectDisable_rejectCallbackCalled() {
-        AlertDialog dialog = showDialog(mDialog);
-        dialog.getButton(DialogInterface.BUTTON_NEGATIVE).performClick();
-
-        verify(mListener).onMobileDataDisableRejected();
-    }
-
-    private AlertDialog showDialog(ConfirmMobileDataDisableDialog fragment) {
-        BaseTestActivity activity = Robolectric.setupActivity(BaseTestActivity.class);
-        activity.showDialog(fragment, /* tag= */ null);
-        return (AlertDialog) ShadowDialog.getLatestDialog();
-    }
-}
diff --git a/tests/robotests/src/com/android/car/settings/network/MobileDataTogglePreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/network/MobileDataTogglePreferenceControllerTest.java
index 7329d79..676e2db 100644
--- a/tests/robotests/src/com/android/car/settings/network/MobileDataTogglePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/network/MobileDataTogglePreferenceControllerTest.java
@@ -22,7 +22,12 @@
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.verify;
 
+import android.app.AlertDialog;
 import android.content.Context;
+import android.content.DialogInterface;
+import android.provider.Settings;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 
 import androidx.lifecycle.Lifecycle;
@@ -30,20 +35,31 @@
 import androidx.preference.TwoStatePreference;
 
 import com.android.car.settings.CarSettingsRobolectricTestRunner;
+import com.android.car.settings.common.ConfirmationDialogFragment;
 import com.android.car.settings.common.PreferenceControllerTestHelper;
+import com.android.car.settings.testutils.BaseTestActivity;
+import com.android.car.settings.testutils.ShadowSubscriptionManager;
 import com.android.car.settings.testutils.ShadowTelephonyManager;
 
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.robolectric.Robolectric;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowContentResolver;
+import org.robolectric.shadows.ShadowDialog;
 
 @RunWith(CarSettingsRobolectricTestRunner.class)
-@Config(shadows = {ShadowTelephonyManager.class})
+@Config(shadows = {ShadowTelephonyManager.class, ShadowSubscriptionManager.class})
 public class MobileDataTogglePreferenceControllerTest {
 
+    private static final int SUB_ID = 1;
+
     private Context mContext;
     private TwoStatePreference mPreference;
     private PreferenceControllerTestHelper<MobileDataTogglePreferenceController>
@@ -54,19 +70,71 @@
     @Before
     public void setUp() {
         mContext = RuntimeEnvironment.application;
-        mPreference = new SwitchPreference(mContext);
         mControllerHelper = new PreferenceControllerTestHelper<>(mContext,
-                MobileDataTogglePreferenceController.class, mPreference);
+                MobileDataTogglePreferenceController.class);
         mController = mControllerHelper.getController();
-        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
         mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
-
         mTelephonyManager.setDataEnabled(false);
+
+        getShadowTelephonyManager().setTelephonyManagerForSubscriptionId(SUB_ID, mTelephonyManager);
+        mController.setSubId(SUB_ID);
+
+        mPreference = new SwitchPreference(mContext);
+        mControllerHelper.setPreference(mPreference);
+
+        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
     }
 
     @After
     public void tearDown() {
         ShadowTelephonyManager.reset();
+        ShadowSubscriptionManager.reset();
+    }
+
+    @Test
+    public void onStart_singleSim_registersObserver() {
+        ShadowTelephonyManager.setSimCount(1);
+        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_START);
+
+        assertThat(getShadowContentResolver().getContentObservers(
+                Settings.Global.getUriFor(Settings.Global.MOBILE_DATA))).isNotEmpty();
+    }
+
+    @Test
+    public void onStart_multiSim_registersObserver() {
+        ShadowTelephonyManager.setSimCount(2);
+        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_START);
+
+        assertThat(getShadowContentResolver().getContentObservers(
+                Settings.Global.getUriFor(Settings.Global.MOBILE_DATA + SUB_ID))).isNotEmpty();
+    }
+
+    @Test
+    public void onStop_singleSim_unregistersObserver() {
+        ShadowTelephonyManager.setSimCount(1);
+        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_START);
+        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_STOP);
+
+        assertThat(getShadowContentResolver().getContentObservers(
+                Settings.Global.getUriFor(Settings.Global.MOBILE_DATA))).isEmpty();
+    }
+
+    @Test
+    public void refreshUi_isOpportunistic_isDisabled() {
+        getShadowSubscriptionManager().setActiveSubscriptionInfos(
+                createSubscriptionInfo(SUB_ID, /* isOpportunistic= */ true));
+        mController.refreshUi();
+
+        assertThat(mPreference.isEnabled()).isFalse();
+    }
+
+    @Test
+    public void refreshUi_isNotOpportunistic_isEnabled() {
+        getShadowSubscriptionManager().setActiveSubscriptionInfos(
+                createSubscriptionInfo(SUB_ID, /* isOpportunistic= */ false));
+        mController.refreshUi();
+
+        assertThat(mPreference.isEnabled()).isTrue();
     }
 
     @Test
@@ -86,54 +154,210 @@
     }
 
     @Test
-    public void handlePreferenceChanged_setFalse_opensDialog() {
+    public void handlePreferenceChanged_setFalse_isSingleSim_opensDialog() {
+        ShadowTelephonyManager.setSimCount(1);
         mPreference.callChangeListener(false);
 
         verify(mControllerHelper.getMockFragmentController()).showDialog(
-                any(ConfirmMobileDataDisableDialog.class), eq(ConfirmMobileDataDisableDialog.TAG));
+                any(ConfirmationDialogFragment.class),
+                eq(MobileDataTogglePreferenceController.DISABLE_DIALOG_TAG));
     }
 
     @Test
-    public void handlePreferenceChanged_setTrue_enablesData() {
+    public void handlePreferenceChanged_setFalse_isMultiSim_disablesData() {
+        mPreference.setChecked(true);
+        mTelephonyManager.setDataEnabled(true);
+        ShadowTelephonyManager.setSimCount(2);
+        mPreference.callChangeListener(false);
+
+        assertThat(mTelephonyManager.isDataEnabled()).isFalse();
+    }
+
+    @Test
+    public void handlePreferenceChanged_setFalse_isMultiSim_setsUnchecked() {
+        mPreference.setChecked(true);
+        mTelephonyManager.setDataEnabled(true);
+        ShadowTelephonyManager.setSimCount(2);
+        mPreference.callChangeListener(false);
+
+        assertThat(mPreference.isChecked()).isFalse();
+    }
+
+    @Test
+    public void handlePreferenceChanged_setTrue_isSingleSim_enablesData() {
+        mPreference.setChecked(false);
+        mTelephonyManager.setDataEnabled(false);
+        ShadowTelephonyManager.setSimCount(1);
         mPreference.callChangeListener(true);
 
         assertThat(mTelephonyManager.isDataEnabled()).isTrue();
     }
 
     @Test
-    public void handlePreferenceChanged_setTrue_checksSwitch() {
+    public void handlePreferenceChanged_setTrue_isSingleSim_setsChecked() {
         mPreference.setChecked(false);
+        mTelephonyManager.setDataEnabled(false);
+        ShadowTelephonyManager.setSimCount(1);
         mPreference.callChangeListener(true);
 
         assertThat(mPreference.isChecked()).isTrue();
     }
 
     @Test
-    public void onMobileDataDisableConfirmed_unchecksSwitch() {
-        mTelephonyManager.setDataEnabled(true);
-        mPreference.setChecked(true);
+    public void handlePreferenceChanged_setTrue_isMultiSim_noOtherSimActive_enablesData() {
+        mPreference.setChecked(false);
+        mTelephonyManager.setDataEnabled(false);
+        ShadowTelephonyManager.setSimCount(2);
+        ShadowSubscriptionManager.setDefaultDataSubscriptionId(SUB_ID);
+        getShadowSubscriptionManager().setCurrentActiveSubscriptionId(SUB_ID);
+        mPreference.callChangeListener(true);
 
-        mController.onMobileDataDisableConfirmed();
-
-        assertThat(mPreference.isChecked()).isFalse();
+        assertThat(mTelephonyManager.isDataEnabled()).isTrue();
     }
 
     @Test
-    public void onMobileDataDisableConfirmed_disablesMobileData() {
-        mTelephonyManager.setDataEnabled(true);
+    public void handlePreferenceChanged_setTrue_isMultiSim_noOtherSimActive_setsChecked() {
+        mPreference.setChecked(false);
+        mTelephonyManager.setDataEnabled(false);
+        ShadowTelephonyManager.setSimCount(2);
+        ShadowSubscriptionManager.setDefaultDataSubscriptionId(SUB_ID);
+        getShadowSubscriptionManager().setCurrentActiveSubscriptionId(SUB_ID);
+        mPreference.callChangeListener(true);
 
-        mController.onMobileDataDisableConfirmed();
+        assertThat(mPreference.isChecked()).isTrue();
+    }
+
+    @Test
+    public void handlePreferenceChanged_setTrue_isMultiSim_otherSimActive_opensDialog() {
+        int otherSubId = SUB_ID + 1;
+        mPreference.setChecked(false);
+        mTelephonyManager.setDataEnabled(false);
+        ShadowTelephonyManager.setSimCount(2);
+        ShadowSubscriptionManager.setDefaultDataSubscriptionId(otherSubId);
+        getShadowSubscriptionManager().setCurrentActiveSubscriptionId(otherSubId);
+        mPreference.callChangeListener(true);
+
+        verify(mControllerHelper.getMockFragmentController()).showDialog(
+                any(ConfirmationDialogFragment.class),
+                eq(MobileDataTogglePreferenceController.ENABLE_MULTISIM_DIALOG_TAG));
+    }
+
+    @Test
+    public void disableSingleSimDialog_onConfirm_disablesData() {
+        mPreference.setChecked(true);
+        mTelephonyManager.setDataEnabled(true);
+        ShadowTelephonyManager.setSimCount(1);
+        mPreference.callChangeListener(false);
+
+        ArgumentCaptor<ConfirmationDialogFragment> dialogCaptor = ArgumentCaptor.forClass(
+                ConfirmationDialogFragment.class);
+        verify(mControllerHelper.getMockFragmentController()).showDialog(
+                dialogCaptor.capture(),
+                eq(MobileDataTogglePreferenceController.DISABLE_DIALOG_TAG));
+
+        ConfirmationDialogFragment dialog = dialogCaptor.getValue();
+        assertThat(dialogCaptor).isNotNull();
+        AlertDialog alertDialog = showDialog(dialog);
+        alertDialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick();
 
         assertThat(mTelephonyManager.isDataEnabled()).isFalse();
     }
 
     @Test
-    public void onMobileDataDisableRejected_checksSwitch() {
+    public void disableSingleSimDialog_onConfirm_setsUnchecked() {
+        mPreference.setChecked(true);
         mTelephonyManager.setDataEnabled(true);
-        mPreference.setChecked(false);
+        ShadowTelephonyManager.setSimCount(1);
+        mPreference.callChangeListener(false);
 
-        mController.onMobileDataDisableRejected();
+        ArgumentCaptor<ConfirmationDialogFragment> dialogCaptor = ArgumentCaptor.forClass(
+                ConfirmationDialogFragment.class);
+        verify(mControllerHelper.getMockFragmentController()).showDialog(
+                dialogCaptor.capture(),
+                eq(MobileDataTogglePreferenceController.DISABLE_DIALOG_TAG));
+
+        ConfirmationDialogFragment dialog = dialogCaptor.getValue();
+        assertThat(dialogCaptor).isNotNull();
+        AlertDialog alertDialog = showDialog(dialog);
+        alertDialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick();
+
+        assertThat(mPreference.isChecked()).isFalse();
+    }
+
+    @Test
+    public void enableMutliSimDialog_onConfirm_enablesData() {
+        int otherSubId = SUB_ID + 1;
+        mPreference.setChecked(false);
+        mTelephonyManager.setDataEnabled(false);
+        ShadowTelephonyManager.setSimCount(2);
+        ShadowSubscriptionManager.setDefaultDataSubscriptionId(otherSubId);
+        getShadowSubscriptionManager().setCurrentActiveSubscriptionId(otherSubId);
+        mPreference.callChangeListener(true);
+
+        ArgumentCaptor<ConfirmationDialogFragment> dialogCaptor = ArgumentCaptor.forClass(
+                ConfirmationDialogFragment.class);
+        verify(mControllerHelper.getMockFragmentController()).showDialog(
+                dialogCaptor.capture(),
+                eq(MobileDataTogglePreferenceController.ENABLE_MULTISIM_DIALOG_TAG));
+
+        ConfirmationDialogFragment dialog = dialogCaptor.getValue();
+        assertThat(dialogCaptor).isNotNull();
+        AlertDialog alertDialog = showDialog(dialog);
+        alertDialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick();
+
+        assertThat(mTelephonyManager.isDataEnabled()).isTrue();
+    }
+
+    @Test
+    public void enableMutliSimDialog_onConfirm_setsChecked() {
+        int otherSubId = SUB_ID + 1;
+        mPreference.setChecked(false);
+        mTelephonyManager.setDataEnabled(false);
+        ShadowTelephonyManager.setSimCount(2);
+        ShadowSubscriptionManager.setDefaultDataSubscriptionId(otherSubId);
+        getShadowSubscriptionManager().setCurrentActiveSubscriptionId(otherSubId);
+        mPreference.callChangeListener(true);
+
+        ArgumentCaptor<ConfirmationDialogFragment> dialogCaptor = ArgumentCaptor.forClass(
+                ConfirmationDialogFragment.class);
+        verify(mControllerHelper.getMockFragmentController()).showDialog(
+                dialogCaptor.capture(),
+                eq(MobileDataTogglePreferenceController.ENABLE_MULTISIM_DIALOG_TAG));
+
+        ConfirmationDialogFragment dialog = dialogCaptor.getValue();
+        assertThat(dialogCaptor).isNotNull();
+        AlertDialog alertDialog = showDialog(dialog);
+        alertDialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick();
 
         assertThat(mPreference.isChecked()).isTrue();
     }
+
+    private ShadowTelephonyManager getShadowTelephonyManager() {
+        return (ShadowTelephonyManager) Shadows.shadowOf(mTelephonyManager);
+    }
+
+    private ShadowContentResolver getShadowContentResolver() {
+        return (ShadowContentResolver) Shadows.shadowOf(mContext.getContentResolver());
+    }
+
+    private ShadowSubscriptionManager getShadowSubscriptionManager() {
+        return Shadow.extract(mContext.getSystemService(SubscriptionManager.class));
+    }
+
+    private SubscriptionInfo createSubscriptionInfo(int subId, boolean isOpportunistic) {
+        SubscriptionInfo subInfo = new SubscriptionInfo(subId, /* iccId= */ "",
+                /* simSlotIndex= */ 0, /* displayName= */ "", /* carrierName= */ "",
+                /* nameSource= */ 0, /* iconTint= */ 0, /* number= */ "",
+                /* roaming= */ 0, /* icon= */ null, /* mcc= */ "", /* mnc= */ "",
+                /* countryIso= */ "", /* isEmbedded= */ false,
+                /* accessRules= */ null, /* cardString= */ "", isOpportunistic,
+                /* groupUUID= */ null, /* carrierId= */ 0, /* profileClass= */ 0);
+        return subInfo;
+    }
+
+    private AlertDialog showDialog(ConfirmationDialogFragment dialog) {
+        BaseTestActivity activity = Robolectric.setupActivity(BaseTestActivity.class);
+        activity.showDialog(dialog, /* tag= */ null);
+        return (AlertDialog) ShadowDialog.getLatestDialog();
+    }
 }
diff --git a/tests/robotests/src/com/android/car/settings/network/MobileNetworkEntryPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/network/MobileNetworkEntryPreferenceControllerTest.java
index ba06e29..917a41f 100644
--- a/tests/robotests/src/com/android/car/settings/network/MobileNetworkEntryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/network/MobileNetworkEntryPreferenceControllerTest.java
@@ -22,43 +22,53 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 import static org.robolectric.shadow.api.Shadow.extract;
 
 import android.car.userlib.CarUserManagerHelper;
 import android.content.Context;
-import android.content.Intent;
 import android.content.pm.UserInfo;
 import android.net.ConnectivityManager;
 import android.net.NetworkCapabilities;
 import android.os.UserManager;
-import android.provider.Settings;
-import android.telephony.PhoneStateListener;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 
+import androidx.fragment.app.Fragment;
 import androidx.lifecycle.Lifecycle;
 import androidx.preference.Preference;
 
 import com.android.car.settings.CarSettingsRobolectricTestRunner;
+import com.android.car.settings.R;
 import com.android.car.settings.common.PreferenceControllerTestHelper;
 import com.android.car.settings.testutils.ShadowCarUserManagerHelper;
 import com.android.car.settings.testutils.ShadowConnectivityManager;
+import com.android.car.settings.testutils.ShadowSubscriptionManager;
 import com.android.car.settings.testutils.ShadowTelephonyManager;
 
+import com.google.android.collect.Lists;
+
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowApplication;
+import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowNetwork;
 
+import java.util.List;
+
 @RunWith(CarSettingsRobolectricTestRunner.class)
 @Config(shadows = {ShadowCarUserManagerHelper.class, ShadowConnectivityManager.class,
-        ShadowTelephonyManager.class})
+        ShadowTelephonyManager.class, ShadowSubscriptionManager.class})
 public class MobileNetworkEntryPreferenceControllerTest {
 
     private static final String TEST_NETWORK_NAME = "test network name";
@@ -106,60 +116,6 @@
     }
 
     @Test
-    public void onStart_phoneStateListenerSet() {
-        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_START);
-        assertThat(getShadowTelephonyManager().getListenersForFlags(
-                PhoneStateListener.LISTEN_SERVICE_STATE).size()).isEqualTo(1);
-    }
-
-    @Test
-    public void onStop_phoneStateListenerUnset() {
-        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_START);
-        assertThat(getShadowTelephonyManager().getListenersForFlags(
-                PhoneStateListener.LISTEN_SERVICE_STATE).size()).isEqualTo(1);
-
-        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_STOP);
-        assertThat(getShadowTelephonyManager().getListenersForFlags(
-                PhoneStateListener.LISTEN_SERVICE_STATE).size()).isEqualTo(0);
-    }
-
-    @Test
-    public void onStart_airplaneModeChangedListenerSet() {
-        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_START);
-        // One receiver (bluetooth pairing request) is always registered through the manifest.
-        assertThat(ShadowApplication.getInstance().getRegisteredReceivers().size()).isGreaterThan(
-                0);
-
-        boolean hasMatch = false;
-        for (ShadowApplication.Wrapper wrapper :
-                ShadowApplication.getInstance().getRegisteredReceivers()) {
-            if (wrapper.getIntentFilter().hasAction(Intent.ACTION_AIRPLANE_MODE_CHANGED)) {
-                hasMatch = true;
-            }
-        }
-        assertThat(hasMatch).isTrue();
-    }
-
-    @Test
-    public void onStop_airplaneModeChangedListenerUnset() {
-        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_START);
-        int prevSize = ShadowApplication.getInstance().getRegisteredReceivers().size();
-        assertThat(prevSize).isGreaterThan(0);
-        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_STOP);
-        assertThat(ShadowApplication.getInstance().getRegisteredReceivers().size()).isLessThan(
-                prevSize);
-
-        boolean hasMatch = false;
-        for (ShadowApplication.Wrapper wrapper :
-                ShadowApplication.getInstance().getRegisteredReceivers()) {
-            if (wrapper.getIntentFilter().hasAction(Intent.ACTION_AIRPLANE_MODE_CHANGED)) {
-                hasMatch = true;
-            }
-        }
-        assertThat(hasMatch).isFalse();
-    }
-
-    @Test
     public void getAvailabilityStatus_noMobileNetwork_unsupported() {
         when(mNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)).thenReturn(
                 false);
@@ -199,8 +155,7 @@
     }
 
     @Test
-    public void refreshUi_airplaneModeOn_preferenceDisabled() {
-        Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 1);
+    public void refreshUi_noSims_disabled() {
         mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
         mController.refreshUi();
 
@@ -208,8 +163,12 @@
     }
 
     @Test
-    public void refreshUi_airplaneModeOff_preferenceEnabled() {
-        Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0);
+    public void refreshUi_oneSim_enabled() {
+        SubscriptionInfo info = createSubscriptionInfo(/* subId= */ 1,
+                /* simSlotIndex= */ 1, TEST_NETWORK_NAME);
+        List<SubscriptionInfo> selectable = Lists.newArrayList(info);
+        getShadowSubscriptionManager().setSelectableSubscriptionInfoList(selectable);
+
         mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
         mController.refreshUi();
 
@@ -217,8 +176,12 @@
     }
 
     @Test
-    public void refreshUi_summarySet() {
-        getShadowTelephonyManager().setNetworkOperatorName(TEST_NETWORK_NAME);
+    public void refreshUi_oneSim_summaryIsDisplayName() {
+        SubscriptionInfo info = createSubscriptionInfo(/* subId= */ 1,
+                /* simSlotIndex= */ 1, TEST_NETWORK_NAME);
+        List<SubscriptionInfo> selectable = Lists.newArrayList(info);
+        getShadowSubscriptionManager().setSelectableSubscriptionInfoList(selectable);
+
         mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
         mController.refreshUi();
 
@@ -226,23 +189,78 @@
     }
 
     @Test
-    public void sendBroadcast_airplaneModeOn_disablePreference() {
-        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_START);
-        mPreference.setEnabled(true);
-        Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 1);
-        mContext.sendBroadcast(new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED));
+    public void refreshUi_multiSim_enabled() {
+        SubscriptionInfo info1 = createSubscriptionInfo(/* subId= */ 1,
+                /* simSlotIndex= */ 1, TEST_NETWORK_NAME);
+        SubscriptionInfo info2 = createSubscriptionInfo(/* subId= */ 2,
+                /* simSlotIndex= */ 2, TEST_NETWORK_NAME);
+        List<SubscriptionInfo> selectable = Lists.newArrayList(info1, info2);
+        getShadowSubscriptionManager().setSelectableSubscriptionInfoList(selectable);
 
-        assertThat(mPreference.isEnabled()).isFalse();
+        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
+        mController.refreshUi();
+
+        assertThat(mPreference.isEnabled()).isTrue();
     }
 
     @Test
-    public void sendBroadcast_airplaneModeOff_enablePreference() {
-        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_START);
-        mPreference.setEnabled(false);
-        Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0);
-        mContext.sendBroadcast(new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED));
+    public void refreshUi_multiSim_summaryShowsCount() {
+        SubscriptionInfo info1 = createSubscriptionInfo(/* subId= */ 1,
+                /* simSlotIndex= */ 1, TEST_NETWORK_NAME);
+        SubscriptionInfo info2 = createSubscriptionInfo(/* subId= */ 2,
+                /* simSlotIndex= */ 2, TEST_NETWORK_NAME);
+        List<SubscriptionInfo> selectable = Lists.newArrayList(info1, info2);
+        getShadowSubscriptionManager().setSelectableSubscriptionInfoList(selectable);
 
-        assertThat(mPreference.isEnabled()).isTrue();
+        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
+        mController.refreshUi();
+
+        assertThat(mPreference.getSummary()).isEqualTo(mContext.getResources().getQuantityString(
+                R.plurals.mobile_network_summary_count, 2, 2));
+    }
+
+    @Test
+    public void performClick_noSim_noFragmentStarted() {
+        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
+        mPreference.performClick();
+
+        verify(mControllerHelper.getMockFragmentController(), never()).launchFragment(
+                any(Fragment.class));
+    }
+
+    @Test
+    public void performClick_oneSim_startsMobileNetworkFragment() {
+        int subId = 1;
+        SubscriptionInfo info = createSubscriptionInfo(subId, /* simSlotIndex= */ 1,
+                TEST_NETWORK_NAME);
+        List<SubscriptionInfo> selectable = Lists.newArrayList(info);
+        getShadowSubscriptionManager().setSelectableSubscriptionInfoList(selectable);
+
+        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
+        mPreference.performClick();
+
+        ArgumentCaptor<MobileNetworkFragment> captor = ArgumentCaptor.forClass(
+                MobileNetworkFragment.class);
+        verify(mControllerHelper.getMockFragmentController()).launchFragment(captor.capture());
+
+        assertThat(captor.getValue().getArguments().getInt(MobileNetworkFragment.ARG_NETWORK_SUB_ID,
+                -1)).isEqualTo(subId);
+    }
+
+    @Test
+    public void performClick_multiSim_startsMobileNetworkListFragment() {
+        SubscriptionInfo info1 = createSubscriptionInfo(/* subId= */ 1,
+                /* simSlotIndex= */ 1, TEST_NETWORK_NAME);
+        SubscriptionInfo info2 = createSubscriptionInfo(/* subId= */ 2,
+                /* simSlotIndex= */ 2, TEST_NETWORK_NAME);
+        List<SubscriptionInfo> selectable = Lists.newArrayList(info1, info2);
+        getShadowSubscriptionManager().setSelectableSubscriptionInfoList(selectable);
+
+        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
+        mPreference.performClick();
+
+        verify(mControllerHelper.getMockFragmentController()).launchFragment(
+                any(MobileNetworkListFragment.class));
     }
 
     private ShadowTelephonyManager getShadowTelephonyManager() {
@@ -253,4 +271,19 @@
         return (ShadowConnectivityManager) extract(
                 mContext.getSystemService(ConnectivityManager.class));
     }
+
+    private ShadowSubscriptionManager getShadowSubscriptionManager() {
+        return Shadow.extract(mContext.getSystemService(SubscriptionManager.class));
+    }
+
+    private SubscriptionInfo createSubscriptionInfo(int subId, int simSlotIndex,
+            String displayName) {
+        SubscriptionInfo subInfo = new SubscriptionInfo(subId, /* iccId= */ "",
+                simSlotIndex, displayName, /* carrierName= */ "",
+                /* nameSource= */ 0, /* iconTint= */ 0, /* number= */ "",
+                /* roaming= */ 0, /* icon= */ null, /* mcc= */ "", "mncString",
+                /* countryIso= */ "", /* isEmbedded= */ false,
+                /* accessRules= */ null, /* cardString= */ "");
+        return subInfo;
+    }
 }
diff --git a/tests/robotests/src/com/android/car/settings/network/MobileNetworkFragmentTest.java b/tests/robotests/src/com/android/car/settings/network/MobileNetworkFragmentTest.java
new file mode 100644
index 0000000..01aea69
--- /dev/null
+++ b/tests/robotests/src/com/android/car/settings/network/MobileNetworkFragmentTest.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2019 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.car.settings.network;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+
+import com.android.car.settings.CarSettingsRobolectricTestRunner;
+import com.android.car.settings.R;
+import com.android.car.settings.testutils.FragmentController;
+import com.android.car.settings.testutils.ShadowSubscriptionManager;
+import com.android.car.ui.toolbar.Toolbar;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
+
+import java.util.Collections;
+
+@RunWith(CarSettingsRobolectricTestRunner.class)
+@Config(shadows = {ShadowSubscriptionManager.class})
+public class MobileNetworkFragmentTest {
+
+    private static final int SUB_ID = 1;
+    private static final String TEST_NAME = "Test Name";
+
+    private Context mContext;
+    private FragmentController<MobileNetworkFragment> mFragmentController;
+    private MobileNetworkFragment mFragment;
+
+    @Before
+    public void setUp() {
+        mContext = RuntimeEnvironment.application;
+    }
+
+    @After
+    public void tearDown() {
+        ShadowSubscriptionManager.reset();
+    }
+
+    @Test
+    public void onMobileNetworkUpdated_startWithArgument_updateTitle() {
+        setUpFragmentWithSubId(SUB_ID, TEST_NAME);
+        getShadowSubscriptionManager().setSelectableSubscriptionInfoList(
+                Collections.singletonList(createSubscriptionInfo(SUB_ID, TEST_NAME)));
+        getShadowSubscriptionManager().setActiveSubscriptionInfos(
+                createSubscriptionInfo(SUB_ID + 1, TEST_NAME + "_1"),
+                createSubscriptionInfo(SUB_ID + 2, TEST_NAME + "_2"));
+        mFragmentController.setup();
+
+        Toolbar toolbar = mFragment.requireActivity().findViewById(R.id.toolbar);
+        assertThat(toolbar.getTitle()).isEqualTo(TEST_NAME);
+    }
+
+    @Test
+    public void onMobileNetworkUpdated_noArgumentProvided_updateTitle() {
+        mFragment = new MobileNetworkFragment();
+        mFragmentController = FragmentController.of(mFragment);
+        getShadowSubscriptionManager().setSelectableSubscriptionInfoList(
+                Collections.singletonList(createSubscriptionInfo(SUB_ID, TEST_NAME)));
+        getShadowSubscriptionManager().setActiveSubscriptionInfos(
+                createSubscriptionInfo(SUB_ID + 1, TEST_NAME + "_1"),
+                createSubscriptionInfo(SUB_ID + 2, TEST_NAME + "_2"));
+        mFragmentController.setup();
+
+        Toolbar toolbar = mFragment.requireActivity().findViewById(R.id.toolbar);
+        assertThat(toolbar.getTitle()).isEqualTo(TEST_NAME + "_1");
+    }
+
+    private void setUpFragmentWithSubId(int subId, String name) {
+        SubscriptionInfo info = createSubscriptionInfo(subId, name);
+        getShadowSubscriptionManager().setSelectableSubscriptionInfoList(
+                Collections.singletonList(info));
+
+        mFragment = MobileNetworkFragment.newInstance(subId);
+        mFragmentController = FragmentController.of(mFragment);
+    }
+
+    private SubscriptionInfo createSubscriptionInfo(int subId, String name) {
+        SubscriptionInfo subInfo = new SubscriptionInfo(subId, /* iccId= */ "",
+                /* simSlotIndex= */ 0, /* displayName= */ name, /* carrierName= */ "",
+                /* nameSource= */ 0, /* iconTint= */ 0, /* number= */ "",
+                /* roaming= */ 0, /* icon= */ null, /* mcc= */ "", /* mnc= */ "",
+                /* countryIso= */ "", /* isEmbedded= */ false,
+                /* accessRules= */ null, /* cardString= */ "");
+        return subInfo;
+    }
+
+    private ShadowSubscriptionManager getShadowSubscriptionManager() {
+        return Shadow.extract(mContext.getSystemService(SubscriptionManager.class));
+    }
+}
diff --git a/tests/robotests/src/com/android/car/settings/network/MobileNetworkListPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/network/MobileNetworkListPreferenceControllerTest.java
new file mode 100644
index 0000000..34b8d5c
--- /dev/null
+++ b/tests/robotests/src/com/android/car/settings/network/MobileNetworkListPreferenceControllerTest.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright (C) 2019 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.car.settings.network;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.verify;
+
+import android.content.Context;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+
+import androidx.lifecycle.Lifecycle;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceGroup;
+
+import com.android.car.settings.CarSettingsRobolectricTestRunner;
+import com.android.car.settings.common.LogicalPreferenceGroup;
+import com.android.car.settings.common.PreferenceControllerTestHelper;
+import com.android.car.settings.testutils.ShadowSubscriptionManager;
+
+import com.google.android.collect.Lists;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
+
+import java.util.List;
+
+@RunWith(CarSettingsRobolectricTestRunner.class)
+@Config(shadows = {ShadowSubscriptionManager.class})
+public class MobileNetworkListPreferenceControllerTest {
+
+    private static final int SUB_ID = 1;
+    private Context mContext;
+    private PreferenceGroup mPreferenceGroup;
+    private PreferenceControllerTestHelper<MobileNetworkListPreferenceController> mControllerHelper;
+
+    @Before
+    public void setUp() {
+        mContext = RuntimeEnvironment.application;
+        mPreferenceGroup = new LogicalPreferenceGroup(mContext);
+        mControllerHelper = new PreferenceControllerTestHelper<>(mContext,
+                MobileNetworkListPreferenceController.class, mPreferenceGroup);
+
+        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
+    }
+
+    @After
+    public void tearDown() {
+        ShadowSubscriptionManager.reset();
+    }
+
+    @Test
+    public void refreshUi_containsElements() {
+        SubscriptionInfo info = createSubscriptionInfo(/* subId= */ 1,
+                /* simSlotIndex= */ 1, /* cardString= */"", "mncString");
+        List<SubscriptionInfo> selectable = Lists.newArrayList(info);
+        getShadowSubscriptionManager().setSelectableSubscriptionInfoList(selectable);
+
+        mControllerHelper.getController().refreshUi();
+
+        assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(1);
+    }
+
+    @Test
+    public void onPreferenceClicked_launchesFragment() {
+        SubscriptionInfo info = createSubscriptionInfo(SUB_ID, /* simSlotIndex= */ 1,
+                /* cardString= */"", "mncString");
+        List<SubscriptionInfo> selectable = Lists.newArrayList(info);
+        getShadowSubscriptionManager().setSelectableSubscriptionInfoList(selectable);
+
+        mControllerHelper.getController().refreshUi();
+        Preference preference = mPreferenceGroup.getPreference(0);
+        preference.performClick();
+
+        ArgumentCaptor<MobileNetworkFragment> captor = ArgumentCaptor.forClass(
+                MobileNetworkFragment.class);
+        verify(mControllerHelper.getMockFragmentController()).launchFragment(captor.capture());
+
+        assertThat(captor.getValue().getArguments().getInt(MobileNetworkFragment.ARG_NETWORK_SUB_ID,
+                -1)).isEqualTo(SUB_ID);
+    }
+
+    private ShadowSubscriptionManager getShadowSubscriptionManager() {
+        return Shadow.extract(mContext.getSystemService(SubscriptionManager.class));
+    }
+
+    private SubscriptionInfo createSubscriptionInfo(int subId, int simSlotIndex,
+            String cardString, String mncString) {
+        SubscriptionInfo subInfo = new SubscriptionInfo(subId, /* iccId= */ "",
+                simSlotIndex, /* displayName= */ "", /* carrierName= */ "",
+                /* nameSource= */ 0, /* iconTint= */ 0, /* number= */ "",
+                /* roaming= */ 0, /* icon= */ null, /* mcc= */ "", mncString,
+                /* countryIso= */ "", /* isEmbedded= */ false,
+                /* accessRules= */ null, cardString);
+        return subInfo;
+    }
+}
diff --git a/tests/robotests/src/com/android/car/settings/network/MobileNetworkUpdateManagerTest.java b/tests/robotests/src/com/android/car/settings/network/MobileNetworkUpdateManagerTest.java
new file mode 100644
index 0000000..0070999
--- /dev/null
+++ b/tests/robotests/src/com/android/car/settings/network/MobileNetworkUpdateManagerTest.java
@@ -0,0 +1,169 @@
+/*
+ * Copyright (C) 2019 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.car.settings.network;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.verify;
+
+import android.content.Context;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+
+import com.android.car.settings.CarSettingsRobolectricTestRunner;
+import com.android.car.settings.testutils.BaseTestActivity;
+import com.android.car.settings.testutils.ShadowSubscriptionManager;
+import com.android.internal.telephony.TelephonyIntents;
+
+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.android.controller.ActivityController;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowApplication;
+
+import java.util.Collections;
+
+@RunWith(CarSettingsRobolectricTestRunner.class)
+@Config(shadows = {ShadowSubscriptionManager.class})
+public class MobileNetworkUpdateManagerTest {
+
+    private static final int SUB_ID = 1;
+
+    private Context mContext;
+    private ActivityController<BaseTestActivity> mActivityController;
+    private BaseTestActivity mActivity;
+    private MobileNetworkUpdateManager mMobileNetworkUpdateManager;
+
+    @Mock
+    private MobileNetworkUpdateManager.MobileNetworkUpdateListener mMobileNetworkUpdateListener;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        mActivity = new BaseTestActivity();
+        mActivityController = ActivityController.of(mActivity);
+    }
+
+    @Test
+    public void onStart_receiverRegistered() {
+        setupMobileNetworkUpdateManager(SUB_ID);
+        mActivityController.create().start().visible();
+
+        assertThat(ShadowApplication.getInstance().getRegisteredReceivers().size()).isGreaterThan(
+                0);
+
+        boolean hasMatch = false;
+        for (ShadowApplication.Wrapper wrapper :
+                ShadowApplication.getInstance().getRegisteredReceivers()) {
+            if (wrapper.getIntentFilter().matchAction(
+                    TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED)) {
+                hasMatch = true;
+            }
+        }
+        assertThat(hasMatch).isTrue();
+    }
+
+    @Test
+    public void onStop_receiverUnregistered() {
+        setupMobileNetworkUpdateManager(SUB_ID);
+        mActivityController.create().start().visible();
+        int prevSize = ShadowApplication.getInstance().getRegisteredReceivers().size();
+
+        mActivityController.stop();
+        assertThat(ShadowApplication.getInstance().getRegisteredReceivers().size()).isLessThan(
+                prevSize);
+
+        boolean hasMatch = false;
+        for (ShadowApplication.Wrapper wrapper :
+                ShadowApplication.getInstance().getRegisteredReceivers()) {
+            if (wrapper.getIntentFilter().matchAction(
+                    TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED)) {
+                hasMatch = true;
+            }
+        }
+        assertThat(hasMatch).isFalse();
+    }
+
+    @Test
+    public void onStart_subscriptionListenerRegistered() {
+        setupMobileNetworkUpdateManager(SUB_ID);
+        assertThat(getShadowSubscriptionManager().getOnSubscriptionChangedListeners()).isEmpty();
+        mActivityController.create().start().visible();
+
+        assertThat(getShadowSubscriptionManager().getOnSubscriptionChangedListeners()).isNotEmpty();
+    }
+
+    @Test
+    public void onStop_subscriptionListenerUnregistered() {
+        setupMobileNetworkUpdateManager(SUB_ID);
+        assertThat(getShadowSubscriptionManager().getOnSubscriptionChangedListeners()).isEmpty();
+        mActivityController.create().start().visible();
+        assertThat(getShadowSubscriptionManager().getOnSubscriptionChangedListeners()).isNotEmpty();
+        mActivityController.stop();
+
+        assertThat(getShadowSubscriptionManager().getOnSubscriptionChangedListeners()).isEmpty();
+    }
+
+    @Test
+    public void onMobileNetworkUpdated_withInitialSubId_pickSubId() {
+        setupMobileNetworkUpdateManager(SUB_ID);
+        getShadowSubscriptionManager().setActiveSubscriptionInfos(
+                createSubscriptionInfo(SUB_ID + 1), createSubscriptionInfo(SUB_ID + 2));
+        mActivityController.setup();
+
+        verify(mMobileNetworkUpdateListener).onMobileNetworkUpdated(SUB_ID);
+    }
+
+    @Test
+    public void onMobileNetworkUpdated_withoutInitialSubId_pickDefaultSubId() {
+        setupMobileNetworkUpdateManager(MobileNetworkUpdateManager.SUB_ID_NULL);
+        getShadowSubscriptionManager().setActiveSubscriptionInfos(
+                createSubscriptionInfo(SUB_ID + 1), createSubscriptionInfo(SUB_ID + 2));
+        mActivityController.setup();
+
+        verify(mMobileNetworkUpdateListener).onMobileNetworkUpdated(SUB_ID + 1);
+    }
+
+    private void setupMobileNetworkUpdateManager(int subId) {
+        mMobileNetworkUpdateManager = new MobileNetworkUpdateManager(mContext, subId);
+        mActivity.getLifecycle().addObserver(mMobileNetworkUpdateManager);
+        mMobileNetworkUpdateManager.registerListener(mMobileNetworkUpdateListener);
+
+        getShadowSubscriptionManager().setSelectableSubscriptionInfoList(
+                Collections.singletonList(createSubscriptionInfo(subId)));
+    }
+
+    private ShadowSubscriptionManager getShadowSubscriptionManager() {
+        return Shadow.extract(mContext.getSystemService(SubscriptionManager.class));
+    }
+
+    private SubscriptionInfo createSubscriptionInfo(int subId) {
+        SubscriptionInfo subInfo = new SubscriptionInfo(/* id= */ subId, /* iccId= */ "",
+                /* simSlotIndex= */ 0, /* displayName= */ "", /* carrierName= */ "",
+                /* nameSource= */ 0, /* iconTint= */ 0, /* number= */ "",
+                /* roaming= */ 0, /* icon= */ null, /* mcc= */ "", /* mnc= */ "",
+                /* countryIso= */ "", /* isEmbedded= */ false,
+                /* accessRules= */ null, /* cardString= */ "");
+        return subInfo;
+    }
+}
diff --git a/tests/robotests/src/com/android/car/settings/network/RoamingPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/network/RoamingPreferenceControllerTest.java
new file mode 100644
index 0000000..414c93e
--- /dev/null
+++ b/tests/robotests/src/com/android/car/settings/network/RoamingPreferenceControllerTest.java
@@ -0,0 +1,233 @@
+/*
+ * Copyright (C) 2019 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.car.settings.network;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.verify;
+
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.os.PersistableBundle;
+import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+import androidx.lifecycle.Lifecycle;
+import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
+
+import com.android.car.settings.CarSettingsRobolectricTestRunner;
+import com.android.car.settings.common.ConfirmationDialogFragment;
+import com.android.car.settings.common.PreferenceControllerTestHelper;
+import com.android.car.settings.testutils.BaseTestActivity;
+import com.android.car.settings.testutils.ShadowCarrierConfigManager;
+import com.android.car.settings.testutils.ShadowTelephonyManager;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.robolectric.Robolectric;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowContentResolver;
+import org.robolectric.shadows.ShadowDialog;
+
+@RunWith(CarSettingsRobolectricTestRunner.class)
+@Config(shadows = {ShadowTelephonyManager.class, ShadowCarrierConfigManager.class})
+public class RoamingPreferenceControllerTest {
+
+    private static final int SUB_ID = 1;
+
+    private Context mContext;
+    private TwoStatePreference mPreference;
+    private PreferenceControllerTestHelper<RoamingPreferenceController> mControllerHelper;
+    private RoamingPreferenceController mController;
+    private TelephonyManager mTelephonyManager;
+    private CarrierConfigManager mCarrierConfigManager;
+
+    @Before
+    public void setUp() {
+        mContext = RuntimeEnvironment.application;
+        mControllerHelper = new PreferenceControllerTestHelper<>(mContext,
+                RoamingPreferenceController.class);
+        mController = mControllerHelper.getController();
+        mCarrierConfigManager = mContext.getSystemService(CarrierConfigManager.class);
+        mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
+        getShadowTelephonyManager().setTelephonyManagerForSubscriptionId(SUB_ID, mTelephonyManager);
+        mController.setSubId(SUB_ID);
+
+        mPreference = new SwitchPreference(mContext);
+        mControllerHelper.setPreference(mPreference);
+    }
+
+    @After
+    public void tearDown() {
+        ShadowTelephonyManager.reset();
+    }
+
+    @Test
+    public void onStart_registerObserver() {
+        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_START);
+
+        assertThat(getShadowContentResolver().getContentObservers(
+                Settings.Global.getUriFor(Settings.Global.DATA_ROAMING))).isNotEmpty();
+    }
+
+    @Test
+    public void onStart_registerObserver_additionalSubId() {
+        ShadowTelephonyManager.setSimCount(2);
+        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_START);
+
+        assertThat(getShadowContentResolver().getContentObservers(
+                Settings.Global.getUriFor(Settings.Global.DATA_ROAMING + SUB_ID))).isNotEmpty();
+    }
+
+    @Test
+    public void onStop_unregisterObserver() {
+        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_START);
+        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_STOP);
+
+        assertThat(getShadowContentResolver().getContentObservers(
+                Settings.Global.getUriFor(Settings.Global.DATA_ROAMING))).isEmpty();
+    }
+
+    @Test
+    public void refreshUi_invalidSubId_isDisabled() {
+        getShadowTelephonyManager().setTelephonyManagerForSubscriptionId(
+                SubscriptionManager.INVALID_SUBSCRIPTION_ID, mTelephonyManager);
+        mController.setSubId(SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_START);
+        mController.refreshUi();
+
+        assertThat(mPreference.isEnabled()).isFalse();
+    }
+
+    @Test
+    public void refreshUi_validSubId_isEnabled() {
+        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_START);
+        mController.refreshUi();
+
+        assertThat(mPreference.isEnabled()).isTrue();
+    }
+
+    @Test
+    public void refreshUi_roamingEnabled_setChecked() {
+        mTelephonyManager.setDataRoamingEnabled(true);
+        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_START);
+        mController.refreshUi();
+
+        assertThat(mPreference.isChecked()).isTrue();
+    }
+
+    @Test
+    public void refreshUi_roamingDisabled_setUnchecked() {
+        mTelephonyManager.setDataRoamingEnabled(false);
+        mControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_START);
+        mController.refreshUi();
+
+        assertThat(mPreference.isChecked()).isFalse();
+    }
+
+    @Test
+    public void callChangeListener_toggleFalse_turnOffRoaming() {
+        mPreference.setChecked(true);
+        mTelephonyManager.setDataRoamingEnabled(true);
+
+        mPreference.callChangeListener(false);
+
+        assertThat(mTelephonyManager.isDataRoamingEnabled()).isFalse();
+    }
+
+    @Test
+    public void callChangeListener_toggleTrue_needsDialog_showDialog() {
+        mPreference.setChecked(false);
+        mTelephonyManager.setDataRoamingEnabled(false);
+        PersistableBundle bundle = new PersistableBundle();
+        bundle.putBoolean(CarrierConfigManager.KEY_DISABLE_CHARGE_INDICATION_BOOL, false);
+        getShadowCarrierConfigManager().setConfigForSubId(SUB_ID, bundle);
+
+        mPreference.callChangeListener(true);
+
+        verify(mControllerHelper.getMockFragmentController()).showDialog(
+                any(ConfirmationDialogFragment.class), eq(ConfirmationDialogFragment.TAG));
+    }
+
+    @Test
+    public void confirmDialog_turnOnRoaming() {
+        mPreference.setChecked(false);
+        mTelephonyManager.setDataRoamingEnabled(false);
+        PersistableBundle bundle = new PersistableBundle();
+        bundle.putBoolean(CarrierConfigManager.KEY_DISABLE_CHARGE_INDICATION_BOOL, false);
+        getShadowCarrierConfigManager().setConfigForSubId(SUB_ID, bundle);
+
+        mPreference.callChangeListener(true);
+
+        // Capture the dialog that is shown on toggle.
+        ArgumentCaptor<ConfirmationDialogFragment> dialogCaptor = ArgumentCaptor.forClass(
+                ConfirmationDialogFragment.class);
+        verify(mControllerHelper.getMockFragmentController()).showDialog(
+                dialogCaptor.capture(), eq(ConfirmationDialogFragment.TAG));
+
+        // Show the captured dialog on press the confirmation button.
+        ConfirmationDialogFragment dialog = dialogCaptor.getValue();
+        assertThat(dialogCaptor).isNotNull();
+        AlertDialog alertDialog = showDialog(dialog);
+        alertDialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick();
+
+        assertThat(mTelephonyManager.isDataRoamingEnabled()).isTrue();
+    }
+
+    @Test
+    public void callChangeListener_toggleTrue_doesntNeedDialog_turnOnRoaming() {
+        mPreference.setChecked(false);
+        mTelephonyManager.setDataRoamingEnabled(false);
+        PersistableBundle bundle = new PersistableBundle();
+        bundle.putBoolean(CarrierConfigManager.KEY_DISABLE_CHARGE_INDICATION_BOOL, true);
+        getShadowCarrierConfigManager().setConfigForSubId(SUB_ID, bundle);
+
+        mPreference.callChangeListener(true);
+
+        assertThat(mTelephonyManager.isDataRoamingEnabled()).isTrue();
+    }
+
+    private ShadowContentResolver getShadowContentResolver() {
+        return (ShadowContentResolver) Shadows.shadowOf(mContext.getContentResolver());
+    }
+
+    private ShadowTelephonyManager getShadowTelephonyManager() {
+        return (ShadowTelephonyManager) Shadows.shadowOf(mTelephonyManager);
+    }
+
+    private ShadowCarrierConfigManager getShadowCarrierConfigManager() {
+        return (ShadowCarrierConfigManager) Shadow.extract(mCarrierConfigManager);
+    }
+
+    private AlertDialog showDialog(ConfirmationDialogFragment dialog) {
+        BaseTestActivity activity = Robolectric.setupActivity(BaseTestActivity.class);
+        activity.showDialog(dialog, /* tag= */ null);
+        return (AlertDialog) ShadowDialog.getLatestDialog();
+    }
+}
diff --git a/tests/robotests/src/com/android/car/settings/network/SubscriptionUtilsTest.java b/tests/robotests/src/com/android/car/settings/network/SubscriptionUtilsTest.java
new file mode 100644
index 0000000..73eff14
--- /dev/null
+++ b/tests/robotests/src/com/android/car/settings/network/SubscriptionUtilsTest.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright (C) 2019 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.car.settings.network;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.telephony.UiccSlotInfo;
+
+import com.android.car.settings.CarSettingsRobolectricTestRunner;
+
+import com.google.android.collect.Lists;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.List;
+
+@RunWith(CarSettingsRobolectricTestRunner.class)
+public class SubscriptionUtilsTest {
+
+    @Test
+    public void getAvailableSubscriptions_hasSubscriptionsFromSubscriptionManager_valueReturned() {
+        SubscriptionManager subscriptionManager = mock(SubscriptionManager.class);
+        TelephonyManager telephonyManager = mock(TelephonyManager.class);
+
+        SubscriptionInfo info = createSubscriptionInfo(/* subId= */ 1,
+                /* simSlotIndex= */ 1, /* cardString= */"", "mncString");
+        List<SubscriptionInfo> selectable = Lists.newArrayList(info);
+        when(subscriptionManager.getSelectableSubscriptionInfoList()).thenReturn(selectable);
+        when(telephonyManager.getUiccSlotsInfo()).thenReturn(new UiccSlotInfo[0]);
+
+        List<SubscriptionInfo> infos = SubscriptionUtils.getAvailableSubscriptions(
+                subscriptionManager, telephonyManager);
+
+        assertThat(infos).contains(info);
+    }
+
+    @Test
+    public void getAvailableSubscriptions_hasSimSlotNotInSubscriptionManager_valueReturned() {
+        SubscriptionManager subscriptionManager = mock(SubscriptionManager.class);
+        TelephonyManager telephonyManager = mock(TelephonyManager.class);
+
+        int simSlotIdx = 1;
+        String cardString = "testString";
+        SubscriptionInfo info = createSubscriptionInfo(/* subId= */ 1, simSlotIdx, cardString,
+                "mncString");
+        UiccSlotInfo slotInfo = createUuicSlotInfo(/* isActive= */ false, /* isEsim= */ false,
+                simSlotIdx, cardString, UiccSlotInfo.CARD_STATE_INFO_PRESENT);
+        List<SubscriptionInfo> allSims = Lists.newArrayList(info);
+        when(subscriptionManager.getAllSubscriptionInfoList()).thenReturn(allSims);
+        when(telephonyManager.getUiccSlotsInfo()).thenReturn(new UiccSlotInfo[]{slotInfo});
+
+        List<SubscriptionInfo> infos = SubscriptionUtils.getAvailableSubscriptions(
+                subscriptionManager, telephonyManager);
+
+        assertThat(infos).contains(info);
+    }
+
+    @Test
+    public void getAvailableSubscriptions_hasInactiveInsertedPSim_valueRemoved() {
+        SubscriptionManager subscriptionManager = mock(SubscriptionManager.class);
+        TelephonyManager telephonyManager = mock(TelephonyManager.class);
+
+        SubscriptionInfo info = createSubscriptionInfo(/* subId= */ 1,
+                /* simSlotIndex= */ 1, /* cardString= */"", "");
+        List<SubscriptionInfo> selectable = Lists.newArrayList(info);
+        when(subscriptionManager.getSelectableSubscriptionInfoList()).thenReturn(selectable);
+        when(telephonyManager.getUiccSlotsInfo()).thenReturn(new UiccSlotInfo[0]);
+
+        List<SubscriptionInfo> infos = SubscriptionUtils.getAvailableSubscriptions(
+                subscriptionManager, telephonyManager);
+
+        assertThat(infos).doesNotContain(info);
+    }
+
+    private SubscriptionInfo createSubscriptionInfo(int subId, int simSlotIndex,
+            String cardString, String mncString) {
+        SubscriptionInfo subInfo = new SubscriptionInfo(subId, /* iccId= */ "",
+                simSlotIndex, /* displayName= */ "", /* carrierName= */ "",
+                /* nameSource= */ 0, /* iconTint= */ 0, /* number= */ "",
+                /* roaming= */ 0, /* icon= */ null, /* mcc= */ "", mncString,
+                /* countryIso= */ "", /* isEmbedded= */ false,
+                /* accessRules= */ null, cardString);
+        return subInfo;
+    }
+
+    private UiccSlotInfo createUuicSlotInfo(boolean isActive, boolean isEsim, int simSlotIndex,
+            String cardId, int cardStateInfo) {
+        return new UiccSlotInfo(isActive, isEsim, cardId, cardStateInfo, simSlotIndex,
+                /* isExtendedApduSupported= */ false, /* isRemoveable= */ true);
+    }
+}
diff --git a/tests/robotests/src/com/android/car/settings/network/SubscriptionsChangeListenerTest.java b/tests/robotests/src/com/android/car/settings/network/SubscriptionsChangeListenerTest.java
new file mode 100644
index 0000000..85d374c
--- /dev/null
+++ b/tests/robotests/src/com/android/car/settings/network/SubscriptionsChangeListenerTest.java
@@ -0,0 +1,130 @@
+/*
+ * Copyright (C) 2019 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.car.settings.network;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.verify;
+
+import android.content.Context;
+import android.content.Intent;
+import android.telephony.SubscriptionManager;
+
+import com.android.car.settings.CarSettingsRobolectricTestRunner;
+import com.android.car.settings.testutils.ShadowSubscriptionManager;
+import com.android.internal.telephony.TelephonyIntents;
+
+import org.junit.After;
+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 org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowApplication;
+
+@RunWith(CarSettingsRobolectricTestRunner.class)
+@Config(shadows = {ShadowSubscriptionManager.class})
+public class SubscriptionsChangeListenerTest {
+
+    private Context mContext;
+    private SubscriptionsChangeListener mSubscriptionsChangeListener;
+    @Mock
+    private SubscriptionsChangeListener.SubscriptionsChangeAction mSubscriptionsChangeAction;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        mContext = RuntimeEnvironment.application;
+        mSubscriptionsChangeListener = new SubscriptionsChangeListener(mContext,
+                mSubscriptionsChangeAction);
+    }
+
+    @After
+    public void tearDown() {
+        ShadowSubscriptionManager.reset();
+    }
+
+    @Test
+    public void start_registersListener() {
+        assertThat(getShadowSubscriptionManager().getOnSubscriptionChangedListeners()).isEmpty();
+        mSubscriptionsChangeListener.start();
+        assertThat(getShadowSubscriptionManager().getOnSubscriptionChangedListeners()).isNotEmpty();
+    }
+
+    @Test
+    public void onSubscriptionChange_triggersAction() {
+        mSubscriptionsChangeListener.start();
+        // This is a way to trigger subscription change on the shadows.
+        getShadowSubscriptionManager().setActiveSubscriptionInfoList(null);
+
+        verify(mSubscriptionsChangeAction).onSubscriptionsChanged();
+    }
+
+    @Test
+    public void stop_unregistersListener() {
+        mSubscriptionsChangeListener.start();
+        mSubscriptionsChangeListener.stop();
+        assertThat(getShadowSubscriptionManager().getOnSubscriptionChangedListeners()).isEmpty();
+    }
+
+    @Test
+    public void start_registersReceiver() {
+        mSubscriptionsChangeListener.start();
+
+        boolean hasMatch = false;
+        for (ShadowApplication.Wrapper wrapper :
+                ShadowApplication.getInstance().getRegisteredReceivers()) {
+            if (wrapper.getIntentFilter().matchAction(
+                    TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED)) {
+                hasMatch = true;
+            }
+        }
+        assertThat(hasMatch).isTrue();
+    }
+
+    @Test
+    public void onReceive_triggersAction() {
+        mSubscriptionsChangeListener.start();
+        mContext.sendBroadcast(new Intent(TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED));
+
+        verify(mSubscriptionsChangeAction).onSubscriptionsChanged();
+    }
+
+    @Test
+    public void stop_unregistersReceiver() {
+        mSubscriptionsChangeListener.start();
+        mSubscriptionsChangeListener.stop();
+
+        boolean hasMatch = false;
+        for (ShadowApplication.Wrapper wrapper :
+                ShadowApplication.getInstance().getRegisteredReceivers()) {
+            if (wrapper.getIntentFilter().matchAction(
+                    TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED)) {
+                hasMatch = true;
+            }
+        }
+        assertThat(hasMatch).isFalse();
+    }
+
+    private ShadowSubscriptionManager getShadowSubscriptionManager() {
+        return Shadow.extract(mContext.getSystemService(SubscriptionManager.class));
+    }
+}
diff --git a/tests/robotests/src/com/android/car/settings/security/AddTrustedDeviceActivityTest.java b/tests/robotests/src/com/android/car/settings/security/AddTrustedDeviceActivityTest.java
new file mode 100644
index 0000000..bf3c9af
--- /dev/null
+++ b/tests/robotests/src/com/android/car/settings/security/AddTrustedDeviceActivityTest.java
@@ -0,0 +1,237 @@
+/*
+ * Copyright (C) 2019 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.car.settings.security;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.admin.DevicePolicyManager;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.car.Car;
+import android.car.drivingstate.CarUxRestrictions;
+import android.car.drivingstate.CarUxRestrictionsManager;
+import android.car.trust.CarTrustAgentEnrollmentManager;
+import android.car.userlib.CarUserManagerHelper;
+import android.content.Context;
+import android.os.Bundle;
+
+import com.android.car.settings.CarSettingsRobolectricTestRunner;
+import com.android.car.settings.R;
+import com.android.car.settings.testutils.ShadowCar;
+import com.android.car.settings.testutils.ShadowLockPatternUtils;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.android.controller.ActivityController;
+import org.robolectric.annotation.Config;
+
+/**
+ * Unit tests for {@link AddTrustedDeviceActivity}.
+ */
+@RunWith(CarSettingsRobolectricTestRunner.class)
+@Config(shadows = {ShadowCar.class, ShadowLockPatternUtils.class})
+public class AddTrustedDeviceActivityTest {
+    private static final String ADDRESS = "00:11:22:33:AA:BB";
+    private static final String BLUETOOTH_DEVICE_KEY = "bluetoothDevice";
+    private static final String CURRENT_HANDLE_KEY = "currentHandle";
+    private Context mContext;
+    private ActivityController<AddTrustedDeviceActivity> mActivityController;
+    private AddTrustedDeviceActivity mActivity;
+    @Mock
+    private CarTrustAgentEnrollmentManager mMockCarTrustAgentEnrollmentManager;
+    @Mock
+    private CarUxRestrictionsManager mMockCarUxRestrictionsManager;
+    private CarUserManagerHelper mCarUserManagerHelper;
+    private BluetoothDevice mBluetoothDevice;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        CarUxRestrictions noSetupRestrictions = new CarUxRestrictions.Builder(/* reqOpt= */ true,
+                CarUxRestrictions.UX_RESTRICTIONS_BASELINE, /* time= */ 0).build();
+        when(mMockCarUxRestrictionsManager.getCurrentCarUxRestrictions())
+                .thenReturn(noSetupRestrictions);
+        ShadowCar.setCarManager(Car.CAR_UX_RESTRICTION_SERVICE, mMockCarUxRestrictionsManager);
+        mContext = RuntimeEnvironment.application;
+        ShadowCar.setCarManager(Car.CAR_TRUST_AGENT_ENROLLMENT_SERVICE,
+                mMockCarTrustAgentEnrollmentManager);
+        mCarUserManagerHelper = new CarUserManagerHelper(mContext);
+        mBluetoothDevice = BluetoothAdapter.getDefaultAdapter().getRemoteDevice(ADDRESS);
+        mActivityController = ActivityController.of(new AddTrustedDeviceActivity());
+        mActivity = mActivityController.get();
+        ShadowLockPatternUtils.setPasswordQuality(DevicePolicyManager.PASSWORD_QUALITY_NUMERIC);
+        mActivityController.create();
+    }
+
+    @After
+    public void tearDown() {
+        ShadowCar.reset();
+        ShadowLockPatternUtils.reset();
+    }
+
+    @Test
+    public void onStart_no_saveInstanceState_startAdvertising() {
+        mActivityController.start();
+        verify(mMockCarTrustAgentEnrollmentManager).startEnrollmentAdvertising();
+    }
+
+    @Test
+    public void onStart_saveInstanceState_deviceConnected_doNotStartAdvertising() {
+        // Recreate with saved state (e.g. during config change).
+        Bundle outState = new Bundle();
+        outState.putParcelable(BLUETOOTH_DEVICE_KEY, mBluetoothDevice);
+        mActivityController = ActivityController.of(new AddTrustedDeviceActivity());
+        mActivityController.setup(outState);
+        verify(mMockCarTrustAgentEnrollmentManager, never()).startEnrollmentAdvertising();
+    }
+
+    @Test
+    public void onStart_saveInstanceState_deviceNotConnected_startAdvertising() {
+        // Recreate with saved state (e.g. during config change).
+        Bundle outState = new Bundle();
+        outState.putParcelable(BLUETOOTH_DEVICE_KEY, null);
+        mActivityController = ActivityController.of(new AddTrustedDeviceActivity());
+        mActivityController.setup(outState);
+        verify(mMockCarTrustAgentEnrollmentManager).startEnrollmentAdvertising();
+    }
+
+    @Test
+    public void onStart_has_activated_handle_finish() {
+        mActivityController.start().postCreate(null).resume();
+        ArgumentCaptor<CarTrustAgentEnrollmentManager.CarTrustAgentEnrollmentCallback> callBack =
+                ArgumentCaptor.forClass(
+                        CarTrustAgentEnrollmentManager.CarTrustAgentEnrollmentCallback.class);
+        verify(mMockCarTrustAgentEnrollmentManager).setEnrollmentCallback(callBack.capture());
+
+        callBack.getValue().onEscrowTokenAdded(1);
+        mActivityController.stop();
+
+        when(mMockCarTrustAgentEnrollmentManager.isEscrowTokenActive(1,
+                mCarUserManagerHelper.getCurrentProcessUserId())).thenReturn(true);
+        Bundle outState = new Bundle();
+        outState.putLong(CURRENT_HANDLE_KEY, 1);
+        outState.putParcelable(BLUETOOTH_DEVICE_KEY, mBluetoothDevice);
+        mActivityController = ActivityController.of(new AddTrustedDeviceActivity());
+        mActivityController.setup(outState).start();
+
+        assertThat(mActivityController.get().isFinishing()).isTrue();
+    }
+
+    @Test
+    public void onAuthStringAvailable_createDialog() {
+        mActivityController.start().postCreate(null).resume();
+        ArgumentCaptor<CarTrustAgentEnrollmentManager.CarTrustAgentEnrollmentCallback>
+                enrollmentCallBack =
+                ArgumentCaptor.forClass(
+                        CarTrustAgentEnrollmentManager.CarTrustAgentEnrollmentCallback.class);
+        verify(mMockCarTrustAgentEnrollmentManager).setEnrollmentCallback(
+                enrollmentCallBack.capture());
+        enrollmentCallBack.getValue().onAuthStringAvailable(mBluetoothDevice, "123");
+
+        assertThat(mActivity.findDialogByTag(ConfirmPairingCodeDialog.TAG)).isNotNull();
+    }
+
+    @Test
+    public void onLockVerified_showAddTrustedDeviceProgressFragment() {
+        mActivityController.start().postCreate(null).resume();
+
+        mActivity.launchFragment(ConfirmLockPinPasswordFragment.newPinInstance());
+        mActivity.onLockVerified("lock".getBytes());
+
+        assertThat(mActivity.getSupportFragmentManager().findFragmentById(R.id.fragment_container))
+                .isInstanceOf(AddTrustedDeviceProgressFragment.class);
+    }
+
+    @Test
+    public void onEscrowTokenAdded_showCheckLockFragment() {
+        mActivityController.start().postCreate(null).resume();
+        ArgumentCaptor<CarTrustAgentEnrollmentManager.CarTrustAgentEnrollmentCallback> callBack =
+                ArgumentCaptor.forClass(
+                        CarTrustAgentEnrollmentManager.CarTrustAgentEnrollmentCallback.class);
+        verify(mMockCarTrustAgentEnrollmentManager).setEnrollmentCallback(callBack.capture());
+
+        callBack.getValue().onEscrowTokenAdded(1);
+
+        assertThat(mActivityController.get().getInitialFragment()).isInstanceOf(
+                ConfirmLockPinPasswordFragment.class);
+    }
+
+    @Test
+    public void onBluetoothDeviceDisconnected_finish() {
+        mActivityController.start().postCreate(null).resume();
+        ArgumentCaptor<CarTrustAgentEnrollmentManager.CarTrustAgentBleCallback>
+                bleCallBack = ArgumentCaptor.forClass(
+                CarTrustAgentEnrollmentManager.CarTrustAgentBleCallback.class);
+        verify(mMockCarTrustAgentEnrollmentManager).setBleCallback(bleCallBack.capture());
+
+        bleCallBack.getValue().onBleEnrollmentDeviceDisconnected(mBluetoothDevice);
+
+        assertThat(mActivity.isFinishing()).isTrue();
+    }
+
+    @Test
+    public void onPairingCodeDialogConfirmed_handshakeAccepted() {
+        mActivityController.start().postCreate(null).resume();
+        ArgumentCaptor<CarTrustAgentEnrollmentManager.CarTrustAgentBleCallback> bleCallBack =
+                ArgumentCaptor.forClass(
+                        CarTrustAgentEnrollmentManager.CarTrustAgentBleCallback.class);
+        verify(mMockCarTrustAgentEnrollmentManager).setBleCallback(bleCallBack.capture());
+
+        bleCallBack.getValue().onBleEnrollmentDeviceConnected(mBluetoothDevice);
+        mActivity.mConfirmParingCodeListener.onConfirmPairingCode();
+        verify(mMockCarTrustAgentEnrollmentManager).enrollmentHandshakeAccepted(mBluetoothDevice);
+
+    }
+
+    @Test
+    public void onStart_onEscrowTokenActiveStateChanged_activated_finish() {
+        mActivityController.start().postCreate(null).resume();
+        ArgumentCaptor<CarTrustAgentEnrollmentManager.CarTrustAgentEnrollmentCallback> callBack =
+                ArgumentCaptor.forClass(
+                        CarTrustAgentEnrollmentManager.CarTrustAgentEnrollmentCallback.class);
+        verify(mMockCarTrustAgentEnrollmentManager).setEnrollmentCallback(callBack.capture());
+
+        ArgumentCaptor<CarTrustAgentEnrollmentManager.CarTrustAgentBleCallback> bleCallBack =
+                ArgumentCaptor.forClass(
+                        CarTrustAgentEnrollmentManager.CarTrustAgentBleCallback.class);
+        verify(mMockCarTrustAgentEnrollmentManager).setBleCallback(bleCallBack.capture());
+
+        bleCallBack.getValue().onBleEnrollmentDeviceConnected(mBluetoothDevice);
+        callBack.getValue().onEscrowTokenActiveStateChanged(1, true);
+
+        assertThat(mActivity.isFinishing()).isTrue();
+    }
+
+    @Test
+    public void configurationNotChanged_terminateEnrollmentHandshake() {
+        mActivityController.start();
+
+        mActivityController.pause();
+
+        verify(mMockCarTrustAgentEnrollmentManager).terminateEnrollmentHandshake();
+    }
+}
diff --git a/tests/robotests/src/com/android/car/settings/security/AddTrustedDevicePreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/security/AddTrustedDevicePreferenceControllerTest.java
new file mode 100644
index 0000000..4373d13
--- /dev/null
+++ b/tests/robotests/src/com/android/car/settings/security/AddTrustedDevicePreferenceControllerTest.java
@@ -0,0 +1,185 @@
+/*
+ * Copyright (C) 2019 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.car.settings.security;
+
+import static android.content.pm.PackageManager.FEATURE_BLUETOOTH;
+import static android.os.UserManager.DISALLOW_BLUETOOTH;
+import static android.os.UserManager.DISALLOW_CONFIG_BLUETOOTH;
+
+import static com.android.car.settings.common.PreferenceController.AVAILABLE;
+import static com.android.car.settings.common.PreferenceController.DISABLED_FOR_USER;
+import static com.android.car.settings.common.PreferenceController.UNSUPPORTED_ON_DEVICE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.when;
+
+import android.app.admin.DevicePolicyManager;
+import android.bluetooth.BluetoothAdapter;
+import android.car.userlib.CarUserManagerHelper;
+import android.content.Context;
+
+import androidx.lifecycle.Lifecycle;
+import androidx.preference.Preference;
+
+import com.android.car.settings.CarSettingsRobolectricTestRunner;
+import com.android.car.settings.R;
+import com.android.car.settings.common.PreferenceControllerTestHelper;
+import com.android.car.settings.testutils.ShadowBluetoothAdapter;
+import com.android.car.settings.testutils.ShadowCarUserManagerHelper;
+import com.android.car.settings.testutils.ShadowLockPatternUtils;
+
+import org.junit.After;
+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.Shadows;
+import org.robolectric.annotation.Config;
+
+
+/**
+ * Unit tests for {@link AddTrustedDevicePreferenceController}.
+ */
+@RunWith(CarSettingsRobolectricTestRunner.class)
+@Config(shadows = {ShadowLockPatternUtils.class, ShadowBluetoothAdapter.class,
+        ShadowCarUserManagerHelper.class})
+public class AddTrustedDevicePreferenceControllerTest {
+
+    private Context mContext;
+    private PreferenceControllerTestHelper<AddTrustedDevicePreferenceController>
+            mPreferenceControllerHelper;
+    @Mock
+    private CarUserManagerHelper mCarUserManagerHelper;
+    private Preference mPreference;
+    private AddTrustedDevicePreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        ShadowCarUserManagerHelper.setMockInstance(mCarUserManagerHelper);
+        mPreference = new Preference(mContext);
+        mPreferenceControllerHelper = new PreferenceControllerTestHelper<>(mContext,
+                AddTrustedDevicePreferenceController.class, mPreference);
+        mController = mPreferenceControllerHelper.getController();
+        Shadows.shadowOf(RuntimeEnvironment.application.getPackageManager()).setSystemFeature(
+                FEATURE_BLUETOOTH, /* supported= */ true);
+        mPreferenceControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_START);
+    }
+
+    @After
+    public void tearDown() {
+        ShadowLockPatternUtils.reset();
+        ShadowBluetoothAdapter.reset();
+        ShadowCarUserManagerHelper.reset();
+    }
+
+    @Test
+    public void refreshUi_hasPassword_preferenceEnabled() {
+        ShadowLockPatternUtils.setPasswordQuality(DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
+        when(mCarUserManagerHelper.isCurrentProcessUserHasRestriction(
+                DISALLOW_BLUETOOTH)).thenReturn(false);
+
+        mController.refreshUi();
+
+        assertThat(mPreference.isEnabled()).isTrue();
+    }
+
+    @Test
+    public void refreshUi_noPassword_preferenceDisabled() {
+        ShadowLockPatternUtils.setPasswordQuality(DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED);
+        when(mCarUserManagerHelper.isCurrentProcessUserHasRestriction(
+                DISALLOW_BLUETOOTH)).thenReturn(false);
+
+        mController.refreshUi();
+
+        assertThat(mPreference.isEnabled()).isFalse();
+    }
+
+    @Test
+    public void refreshUi_bluetoothAdapterEnabled_setsEmptySummary() {
+        ShadowLockPatternUtils.setPasswordQuality(DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
+        when(mCarUserManagerHelper.isCurrentProcessUserHasRestriction(
+                DISALLOW_BLUETOOTH)).thenReturn(false);
+        BluetoothAdapter.getDefaultAdapter().enable();
+
+        mController.refreshUi();
+
+        assertThat(mPreference.getSummary().toString()).isEmpty();
+    }
+
+    @Test
+    public void refreshUi_bluetoothAdapterDisabled_setsTurnOnToAddSummary() {
+        BluetoothAdapter.getDefaultAdapter().disable();
+
+        mController.refreshUi();
+
+        assertThat(mPreference.getSummary()).isEqualTo(
+                mContext.getString(R.string.add_device_summary));
+    }
+
+    @Test
+    public void onPreferenceClicked_hasPassword_enableBluetooth() {
+        BluetoothAdapter.getDefaultAdapter().disable();
+        ShadowLockPatternUtils.setPasswordQuality(DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
+        mController.refreshUi();
+
+        mPreference.performClick();
+
+        assertThat(BluetoothAdapter.getDefaultAdapter().isEnabled()).isTrue();
+    }
+
+    @Test
+    public void getAvailabilityStatus_bluetoothNotAvailable_unsupportedOnDevice() {
+        Shadows.shadowOf(RuntimeEnvironment.application.getPackageManager()).setSystemFeature(
+                FEATURE_BLUETOOTH, /* supported= */ false);
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_disallowBluetoothUserRestriction_disabledForUser() {
+        Shadows.shadowOf(RuntimeEnvironment.application.getPackageManager()).setSystemFeature(
+                FEATURE_BLUETOOTH, /* supported= */ true);
+        when(mCarUserManagerHelper.isCurrentProcessUserHasRestriction(
+                DISALLOW_BLUETOOTH)).thenReturn(true);
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_FOR_USER);
+    }
+
+    @Test
+    public void getAvailabilityStatus_disallowConfigBluetoothUserRestriction_disabledForUser() {
+        Shadows.shadowOf(RuntimeEnvironment.application.getPackageManager()).setSystemFeature(
+                FEATURE_BLUETOOTH, /* supported= */ true);
+        when(mCarUserManagerHelper.isCurrentProcessUserHasRestriction(
+                DISALLOW_CONFIG_BLUETOOTH)).thenReturn(true);
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_FOR_USER);
+    }
+
+    @Test
+    public void getAvailabilityStatus_available() {
+        Shadows.shadowOf(RuntimeEnvironment.application.getPackageManager()).setSystemFeature(
+                FEATURE_BLUETOOTH, /* supported= */ true);
+        // No user restrictions.
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+}
diff --git a/tests/robotests/src/com/android/car/settings/security/ConfirmLockPinPasswordFragmentTest.java b/tests/robotests/src/com/android/car/settings/security/ConfirmLockPinPasswordFragmentTest.java
index ad07dad..e8ac043 100644
--- a/tests/robotests/src/com/android/car/settings/security/ConfirmLockPinPasswordFragmentTest.java
+++ b/tests/robotests/src/com/android/car/settings/security/ConfirmLockPinPasswordFragmentTest.java
@@ -42,7 +42,6 @@
     @Before
     public void initFragment() {
         mTestActivity = Robolectric.setupActivity(TestSettingsScreenLockActivity.class);
-
         mPinFragment = ConfirmLockPinPasswordFragment.newPinInstance();
         mTestActivity.launchFragment(mPinFragment);
     }
diff --git a/tests/robotests/src/com/android/car/settings/security/InitialLockSetupServiceTest.java b/tests/robotests/src/com/android/car/settings/security/InitialLockSetupServiceTest.java
index d05a33d..73ab223 100644
--- a/tests/robotests/src/com/android/car/settings/security/InitialLockSetupServiceTest.java
+++ b/tests/robotests/src/com/android/car/settings/security/InitialLockSetupServiceTest.java
@@ -213,7 +213,6 @@
         assertThat(result).isEqualTo(SetLockCodes.SUCCESS);
         List<LockPatternView.Cell> savedPattern = ShadowLockPatternUtils.getSavedPattern();
         assertThat(savedPattern).containsExactlyElementsIn(pattern);
-
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/car/settings/security/NoLockPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/security/NoLockPreferenceControllerTest.java
index ed6e3a7..a27607d 100644
--- a/tests/robotests/src/com/android/car/settings/security/NoLockPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/security/NoLockPreferenceControllerTest.java
@@ -34,7 +34,6 @@
 import com.android.car.settings.common.PreferenceControllerTestHelper;
 import com.android.car.settings.testutils.ShadowCarUserManagerHelper;
 import com.android.car.settings.testutils.ShadowLockPatternUtils;
-import com.android.internal.widget.LockPatternUtils;
 
 import org.junit.After;
 import org.junit.Before;
@@ -58,14 +57,11 @@
     private Preference mPreference;
     @Mock
     private CarUserManagerHelper mCarUserManagerHelper;
-    @Mock
-    private LockPatternUtils mLockPatternUtils;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         ShadowCarUserManagerHelper.setMockInstance(mCarUserManagerHelper);
-        ShadowLockPatternUtils.setInstance(mLockPatternUtils);
         mContext = RuntimeEnvironment.application;
         mPreference = new Preference(mContext);
         mPreferenceControllerHelper = new PreferenceControllerTestHelper<>(mContext,
@@ -111,7 +107,9 @@
 
         mController.mRemoveLockListener.onConfirmRemoveScreenLock();
 
-        verify(mLockPatternUtils).clearLock(TEST_CURRENT_PASSWORD, TEST_USER);
+        assertThat(ShadowLockPatternUtils.getClearLockCredential()).isEqualTo(
+                TEST_CURRENT_PASSWORD);
+        assertThat(ShadowLockPatternUtils.getClearLockUser()).isEqualTo(TEST_USER);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/car/settings/security/TrustedDeviceEntryPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/security/TrustedDeviceEntryPreferenceControllerTest.java
new file mode 100644
index 0000000..a91bb5d
--- /dev/null
+++ b/tests/robotests/src/com/android/car/settings/security/TrustedDeviceEntryPreferenceControllerTest.java
@@ -0,0 +1,95 @@
+/*
+ * Copyright (C) 2018 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.car.settings.security;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.car.Car;
+import android.car.CarNotConnectedException;
+import android.car.trust.CarTrustAgentEnrollmentManager;
+import android.car.trust.TrustedDeviceInfo;
+import android.car.userlib.CarUserManagerHelper;
+import android.content.Context;
+
+import androidx.lifecycle.Lifecycle;
+import androidx.preference.Preference;
+
+import com.android.car.settings.CarSettingsRobolectricTestRunner;
+import com.android.car.settings.common.PreferenceControllerTestHelper;
+import com.android.car.settings.testutils.ShadowCar;
+
+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 java.util.ArrayList;
+import java.util.List;
+
+@RunWith(CarSettingsRobolectricTestRunner.class)
+@Config(shadows = {ShadowCar.class})
+public class TrustedDeviceEntryPreferenceControllerTest {
+
+    private Context mContext;
+    private PreferenceControllerTestHelper<TrustedDeviceEntryPreferenceController>
+            mPreferenceControllerHelper;
+    private Preference mTrustedDevicePreference;
+    @Mock
+    private CarTrustAgentEnrollmentManager mMockCarTrustAgentEnrollmentManager;
+    private TrustedDeviceEntryPreferenceController mController;
+    private CarUserManagerHelper mCarUserManagerHelper;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        mTrustedDevicePreference = new Preference(mContext);
+        ShadowCar.setCarManager(Car.CAR_TRUST_AGENT_ENROLLMENT_SERVICE,
+                mMockCarTrustAgentEnrollmentManager);
+        mPreferenceControllerHelper = new PreferenceControllerTestHelper<>(mContext,
+                TrustedDeviceEntryPreferenceController.class, mTrustedDevicePreference);
+        mController = mPreferenceControllerHelper.getController();
+        mCarUserManagerHelper = new CarUserManagerHelper(mContext);
+        mPreferenceControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_START);
+    }
+
+    @Test
+    public void testHandlePreferenceClicked_listenerTriggered() {
+        mTrustedDevicePreference.performClick();
+        verify(mPreferenceControllerHelper.getMockFragmentController()).launchFragment(
+                any(ChooseTrustedDeviceFragment.class));
+    }
+
+    @Test
+    public void testUpdateState() throws CarNotConnectedException {
+        List<TrustedDeviceInfo> devices = new ArrayList<>();
+        devices.add(new TrustedDeviceInfo(1, "", ""));
+        devices.add(new TrustedDeviceInfo(2, "", ""));
+        when(mMockCarTrustAgentEnrollmentManager.getEnrolledDeviceInfoForUser(
+                mCarUserManagerHelper.getCurrentProcessUserId()))
+                .thenReturn(devices);
+        mController.refreshUi();
+        assertThat(mTrustedDevicePreference.getSummary()).isEqualTo("2 devices");
+    }
+}
diff --git a/tests/robotests/src/com/android/car/settings/security/TrustedDeviceListPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/security/TrustedDeviceListPreferenceControllerTest.java
new file mode 100644
index 0000000..be4d6cb
--- /dev/null
+++ b/tests/robotests/src/com/android/car/settings/security/TrustedDeviceListPreferenceControllerTest.java
@@ -0,0 +1,206 @@
+/*
+ * Copyright (C) 2019 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.car.settings.security;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.admin.DevicePolicyManager;
+import android.car.Car;
+import android.car.trust.CarTrustAgentEnrollmentManager;
+import android.car.trust.TrustedDeviceInfo;
+import android.car.userlib.CarUserManagerHelper;
+import android.content.Context;
+
+import androidx.lifecycle.Lifecycle;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceGroup;
+
+import com.android.car.settings.CarSettingsRobolectricTestRunner;
+import com.android.car.settings.R;
+import com.android.car.settings.common.LogicalPreferenceGroup;
+import com.android.car.settings.common.PreferenceControllerTestHelper;
+import com.android.car.settings.testutils.ShadowCar;
+import com.android.car.settings.testutils.ShadowLockPatternUtils;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Unit tests for {@link TrustedDeviceListPreferenceController}.
+ */
+@RunWith(CarSettingsRobolectricTestRunner.class)
+@Config(shadows = {ShadowCar.class, ShadowLockPatternUtils.class})
+public class TrustedDeviceListPreferenceControllerTest {
+
+    List<TrustedDeviceInfo> mUpdatedDevices = new ArrayList<>();
+    List<TrustedDeviceInfo> mDevices = new ArrayList<>();
+    private Context mContext;
+    private PreferenceControllerTestHelper<TrustedDeviceListPreferenceController>
+            mPreferenceControllerHelper;
+    @Mock
+    private CarTrustAgentEnrollmentManager mMockCarTrustAgentEnrollmentManager;
+    private CarUserManagerHelper mCarUserManagerHelper;
+    private PreferenceGroup mPreferenceGroup;
+    private TrustedDeviceListPreferenceController mController;
+    private TrustedDeviceInfo mTestDevice1 = new TrustedDeviceInfo(1, "", "");
+    private TrustedDeviceInfo mTestDevice2 = new TrustedDeviceInfo(2, "", "");
+    private TrustedDeviceInfo mTestDevice3 = new TrustedDeviceInfo(3, "", "");
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        ShadowCar.setCarManager(Car.CAR_TRUST_AGENT_ENROLLMENT_SERVICE,
+                mMockCarTrustAgentEnrollmentManager);
+        mPreferenceGroup = new LogicalPreferenceGroup(mContext);
+        mPreferenceControllerHelper = new PreferenceControllerTestHelper<>(mContext,
+                TrustedDeviceListPreferenceController.class, mPreferenceGroup);
+        mController = mPreferenceControllerHelper.getController();
+        mCarUserManagerHelper = new CarUserManagerHelper(mContext);
+        mDevices.add(mTestDevice1);
+        mDevices.add(mTestDevice2);
+        mUpdatedDevices.add(mTestDevice1);
+        mUpdatedDevices.add(mTestDevice2);
+        mUpdatedDevices.add(mTestDevice3);
+        mPreferenceControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_START);
+    }
+
+    @After
+    public void tearDown() {
+        ShadowCar.reset();
+        ShadowLockPatternUtils.reset();
+    }
+
+    @Test
+    public void onDeviceRemoved_refreshUi() {
+        ShadowLockPatternUtils.setPasswordQuality(DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
+        when(mMockCarTrustAgentEnrollmentManager.getEnrolledDeviceInfoForUser(
+                mCarUserManagerHelper.getCurrentProcessUserId())).thenReturn(mUpdatedDevices);
+
+        mController.refreshUi();
+
+        assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(3);
+
+        ArgumentCaptor<CarTrustAgentEnrollmentManager.CarTrustAgentEnrollmentCallback> callBack =
+                ArgumentCaptor.forClass(
+                        CarTrustAgentEnrollmentManager.CarTrustAgentEnrollmentCallback.class);
+        verify(mMockCarTrustAgentEnrollmentManager).setEnrollmentCallback(callBack.capture());
+        mUpdatedDevices.remove(0);
+        when(mMockCarTrustAgentEnrollmentManager.getEnrolledDeviceInfoForUser(
+                mCarUserManagerHelper.getCurrentProcessUserId())).thenReturn(mUpdatedDevices);
+        callBack.getValue().onEscrowTokenRemoved(mUpdatedDevices.get(0).getHandle());
+
+        assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(2);
+    }
+
+    @Test
+    public void onDeviceAdded_refreshUi() {
+        when(mMockCarTrustAgentEnrollmentManager.getEnrolledDeviceInfoForUser(
+                mCarUserManagerHelper.getCurrentProcessUserId())).thenReturn(mDevices);
+        ShadowLockPatternUtils.setPasswordQuality(DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
+        mController.refreshUi();
+
+        assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(2);
+
+        ArgumentCaptor<CarTrustAgentEnrollmentManager.CarTrustAgentEnrollmentCallback> callBack =
+                ArgumentCaptor.forClass(
+                        CarTrustAgentEnrollmentManager.CarTrustAgentEnrollmentCallback.class);
+        when(mMockCarTrustAgentEnrollmentManager.getEnrolledDeviceInfoForUser(
+                mCarUserManagerHelper.getCurrentProcessUserId())).thenReturn(mUpdatedDevices);
+        verify(mMockCarTrustAgentEnrollmentManager).setEnrollmentCallback(callBack.capture());
+
+        callBack.getValue().onEscrowTokenActiveStateChanged(mUpdatedDevices.get(0).getHandle(),
+                true);
+
+        assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(3);
+    }
+
+    @Test
+    public void refreshUi_noDevices_hasPassword_hidesGroup() {
+        ShadowLockPatternUtils.setPasswordQuality(DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
+        when(mMockCarTrustAgentEnrollmentManager.getEnrolledDeviceInfoForUser(
+                mCarUserManagerHelper.getCurrentProcessUserId())).thenReturn(
+                Collections.emptyList());
+
+        mController.refreshUi();
+
+        assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(0);
+        assertThat(mPreferenceGroup.isVisible()).isFalse();
+    }
+
+    @Test
+    public void refreshUi_devices_hasPassword_showsGroup() {
+        ShadowLockPatternUtils.setPasswordQuality(DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
+        when(mMockCarTrustAgentEnrollmentManager.getEnrolledDeviceInfoForUser(
+                mCarUserManagerHelper.getCurrentProcessUserId())).thenReturn(mUpdatedDevices);
+
+        mController.refreshUi();
+
+        assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(3);
+        assertThat(mPreferenceGroup.isVisible()).isTrue();
+    }
+
+    @Test
+    public void refreshUi_noPassword_showAuthenticationReminderPreference() {
+        ShadowLockPatternUtils.setPasswordQuality(DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED);
+
+
+        mController.refreshUi();
+
+        assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(1);
+        assertThat(mPreferenceGroup.getPreference(0).getSummary()).isEqualTo(
+                mContext.getString(R.string.trusted_device_set_authentication_reminder));
+    }
+
+    @Test
+    public void onPreferenceClicked_hasPassword_showDialog() {
+        ShadowLockPatternUtils.setPasswordQuality(DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
+        when(mMockCarTrustAgentEnrollmentManager.getEnrolledDeviceInfoForUser(
+                mCarUserManagerHelper.getCurrentProcessUserId())).thenReturn(mDevices);
+        mController.refreshUi();
+        Preference p = mPreferenceGroup.getPreference(0);
+
+        p.performClick();
+
+        verify(mPreferenceControllerHelper.getMockFragmentController()).showDialog(
+                any(ConfirmRemoveDeviceDialog.class), anyString());
+    }
+
+    @Test
+    public void onRemoveDeviceDialogConfirmed_remoeEscrwoToken() {
+        mController.mConfirmRemoveDeviceListener.onConfirmRemoveDevice(1);
+
+        verify(mMockCarTrustAgentEnrollmentManager).removeEscrowToken(1,
+                mCarUserManagerHelper.getCurrentProcessUserId());
+    }
+}
diff --git a/tests/robotests/src/com/android/car/settings/storage/AppStorageSettingsDetailsFragmentTest.java b/tests/robotests/src/com/android/car/settings/storage/AppStorageSettingsDetailsFragmentTest.java
index 573de90..01e6a2c 100644
--- a/tests/robotests/src/com/android/car/settings/storage/AppStorageSettingsDetailsFragmentTest.java
+++ b/tests/robotests/src/com/android/car/settings/storage/AppStorageSettingsDetailsFragmentTest.java
@@ -44,7 +44,7 @@
 import com.android.car.settings.testutils.ShadowApplicationPackageManager;
 import com.android.car.settings.testutils.ShadowApplicationsState;
 import com.android.car.settings.testutils.ShadowCarUserManagerHelper;
-import com.android.car.settings.testutils.ShadowRestrictedLockUtils;
+import com.android.car.settings.testutils.ShadowRestrictedLockUtilsInternal;
 import com.android.car.ui.toolbar.MenuItem;
 import com.android.car.ui.toolbar.Toolbar;
 import com.android.settingslib.RestrictedLockUtils;
@@ -63,7 +63,7 @@
 /** Unit test for {@link AppStorageSettingsDetailsFragment}. */
 @RunWith(CarSettingsRobolectricTestRunner.class)
 @Config(shadows = {ShadowApplicationsState.class, ShadowCarUserManagerHelper.class,
-        ShadowRestrictedLockUtils.class, ShadowApplicationPackageManager.class,
+        ShadowRestrictedLockUtilsInternal.class, ShadowApplicationPackageManager.class,
         ShadowActivityManager.class})
 public class AppStorageSettingsDetailsFragmentTest {
 
@@ -122,7 +122,7 @@
     public void tearDown() {
         ShadowApplicationsState.reset();
         ShadowCarUserManagerHelper.reset();
-        ShadowRestrictedLockUtils.reset();
+        ShadowRestrictedLockUtilsInternal.reset();
         ShadowApplicationPackageManager.reset();
         ShadowActivityManager.reset();
     }
@@ -151,7 +151,7 @@
 
     @Test
     public void handleClearCacheClick_disallowedBySystem_shouldNotDeleteApplicationCache() {
-        ShadowRestrictedLockUtils.setEnforcedAdmin(mEnforcedAdmin);
+        ShadowRestrictedLockUtilsInternal.setEnforcedAdmin(mEnforcedAdmin);
         ShadowApplicationPackageManager.setPackageManager(mPackageManager);
 
         doNothing().when(mPackageManager).deleteApplicationCacheFiles(anyString(), any());
@@ -173,8 +173,8 @@
 
     @Test
     public void handleClearCacheClick_allowedBySystem_shouldNotDeleteApplicationCache() {
-        ShadowRestrictedLockUtils.setEnforcedAdmin(mEnforcedAdmin);
-        ShadowRestrictedLockUtils.setHasBaseUserRestriction(true);
+        ShadowRestrictedLockUtilsInternal.setEnforcedAdmin(mEnforcedAdmin);
+        ShadowRestrictedLockUtilsInternal.setHasBaseUserRestriction(true);
         ShadowApplicationPackageManager.setPackageManager(mPackageManager);
 
         doNothing().when(mPackageManager).deleteApplicationCacheFiles(anyString(), any());
@@ -196,7 +196,7 @@
 
     @Test
     public void handleClearDataClick_disallowedBySystem_shouldNotShowDialogToClear() {
-        ShadowRestrictedLockUtils.setEnforcedAdmin(mEnforcedAdmin);
+        ShadowRestrictedLockUtilsInternal.setEnforcedAdmin(mEnforcedAdmin);
         ShadowApplicationPackageManager.setPackageManager(mPackageManager);
 
         StorageStats stats = new StorageStats();
@@ -214,8 +214,8 @@
 
     @Test
     public void handleClearDataClick_allowedBySystem_shouldShowDialogToClear() {
-        ShadowRestrictedLockUtils.setEnforcedAdmin(mEnforcedAdmin);
-        ShadowRestrictedLockUtils.setHasBaseUserRestriction(true);
+        ShadowRestrictedLockUtilsInternal.setEnforcedAdmin(mEnforcedAdmin);
+        ShadowRestrictedLockUtilsInternal.setHasBaseUserRestriction(true);
         ShadowApplicationPackageManager.setPackageManager(mPackageManager);
 
         mFragmentController.resume();
diff --git a/tests/robotests/src/com/android/car/settings/storage/StorageMediaCategoryDetailPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/storage/StorageMediaCategoryDetailPreferenceControllerTest.java
index 5b55242..1bd79b0 100644
--- a/tests/robotests/src/com/android/car/settings/storage/StorageMediaCategoryDetailPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/storage/StorageMediaCategoryDetailPreferenceControllerTest.java
@@ -91,13 +91,9 @@
 
         assertThat(mLogicalPreferenceGroup.getPreferenceCount()).isEqualTo(2);
 
-        assertThat(mLogicalPreferenceGroup.getPreference(0).getIcon()).isEqualTo(
-                mContext.getDrawable(R.drawable.test_icon));
         assertThat(mLogicalPreferenceGroup.getPreference(0).getTitle()).isEqualTo(LABEL);
         assertThat(mLogicalPreferenceGroup.getPreference(0).getSummary()).isEqualTo(SIZE_STR);
 
-        assertThat(mLogicalPreferenceGroup.getPreference(1).getIcon()).isEqualTo(
-                mContext.getDrawable(R.drawable.ic_headset));
         assertThat(mLogicalPreferenceGroup.getPreference(1).getTitle()).isEqualTo(
                 mContext.getString(R.string.storage_audio_files_title));
         assertThat(mLogicalPreferenceGroup.getPreference(1).getSummary()).isEqualTo(
diff --git a/tests/robotests/src/com/android/car/settings/system/MasterClearConfirmFragmentTest.java b/tests/robotests/src/com/android/car/settings/system/MasterClearConfirmFragmentTest.java
index af55da1..ddc5c2e 100644
--- a/tests/robotests/src/com/android/car/settings/system/MasterClearConfirmFragmentTest.java
+++ b/tests/robotests/src/com/android/car/settings/system/MasterClearConfirmFragmentTest.java
@@ -18,6 +18,10 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
 import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
@@ -30,8 +34,6 @@
 import com.android.car.settings.CarSettingsRobolectricTestRunner;
 import com.android.car.settings.R;
 import com.android.car.settings.testutils.FragmentController;
-import com.android.car.settings.testutils.ShadowOemLockManager;
-import com.android.car.settings.testutils.ShadowPersistentDataBlockManager;
 import com.android.car.ui.toolbar.MenuItem;
 import com.android.car.ui.toolbar.Toolbar;
 
@@ -39,32 +41,36 @@
 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 org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowApplication;
-import org.robolectric.shadows.ShadowContextImpl;
-import org.robolectric.util.ReflectionHelpers;
-
-import java.util.Map;
 
 /** Unit test for {@link MasterClearConfirmFragment}. */
 @RunWith(CarSettingsRobolectricTestRunner.class)
-@Config(shadows = {ShadowPersistentDataBlockManager.class, ShadowOemLockManager.class})
 public class MasterClearConfirmFragmentTest {
 
+    @Mock
+    private PersistentDataBlockManager mPersistentDataBlockManager;
+    @Mock
+    private OemLockManager mOemLockManager;
+
     private Context mContext;
     private MasterClearConfirmFragment mFragment;
 
     @Before
     public void setUp() {
-        // Robolectric doesn't know about the pdb manager, so we must add it ourselves.
-        getSystemServiceMap().put(Context.PERSISTENT_DATA_BLOCK_SERVICE,
-                PersistentDataBlockManager.class.getName());
-        // Robolectric doesn't know about the oem lock manager, so we must add it ourselves.
-        getSystemServiceMap().put(Context.OEM_LOCK_SERVICE, OemLockManager.class.getName());
-
+        MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
+        // Note: this is not a general pattern to follow for other use cases! Most system
+        // services can be mocked using Shadows!
+        // Because these services are conditionally included in Android's SystemServiceRegistry
+        // and are not created in ShadowServiceManager, there is no way to conventionally shadow
+        // them in Robolectric.
+        ShadowApplication.getInstance().setSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE,
+                mPersistentDataBlockManager);
+        ShadowApplication.getInstance().setSystemService(Context.OEM_LOCK_SERVICE, mOemLockManager);
+
         mFragment = FragmentController.of(new MasterClearConfirmFragment()).setup();
 
         // Default to not provisioned.
@@ -74,7 +80,6 @@
 
     @After
     public void tearDown() {
-        getSystemServiceMap().remove(Context.PERSISTENT_DATA_BLOCK_SERVICE);
         Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.DEVICE_PROVISIONED,
                 0);
     }
@@ -105,7 +110,7 @@
 
     @Test
     public void confirmClicked_pdbManagerNull_sendsResetIntent() {
-        getSystemServiceMap().remove(Context.PERSISTENT_DATA_BLOCK_SERVICE);
+        ShadowApplication.getInstance().removeSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE);
 
         findMasterClearConfirmButton(mFragment.requireActivity()).performClick();
 
@@ -115,16 +120,16 @@
 
     @Test
     public void confirmClicked_oemUnlockAllowed_doesNotWipePdb() {
-        getShadowOemLockManager().setIsOemUnlockAllowed(true);
+        when(mOemLockManager.isOemUnlockAllowed()).thenReturn(true);
 
         findMasterClearConfirmButton(mFragment.requireActivity()).performClick();
 
-        assertThat(getShadowPdbManager().getWipeCalledCount()).isEqualTo(0);
+        verify(mPersistentDataBlockManager, never()).wipe();
     }
 
     @Test
     public void confirmClicked_oemUnlockAllowed_sendsResetIntent() {
-        getShadowOemLockManager().setIsOemUnlockAllowed(true);
+        when(mOemLockManager.isOemUnlockAllowed()).thenReturn(true);
 
         findMasterClearConfirmButton(mFragment.requireActivity()).performClick();
 
@@ -134,16 +139,16 @@
 
     @Test
     public void confirmClicked_noOemUnlockAllowed_notProvisioned_doesNotWipePdb() {
-        getShadowOemLockManager().setIsOemUnlockAllowed(false);
+        when(mOemLockManager.isOemUnlockAllowed()).thenReturn(false);
 
         findMasterClearConfirmButton(mFragment.requireActivity()).performClick();
 
-        assertThat(getShadowPdbManager().getWipeCalledCount()).isEqualTo(0);
+        verify(mPersistentDataBlockManager, never()).wipe();
     }
 
     @Test
     public void confirmClicked_noOemUnlockAllowed_notProvisioned_sendsResetIntent() {
-        getShadowOemLockManager().setIsOemUnlockAllowed(false);
+        when(mOemLockManager.isOemUnlockAllowed()).thenReturn(false);
 
         findMasterClearConfirmButton(mFragment.requireActivity()).performClick();
 
@@ -153,18 +158,18 @@
 
     @Test
     public void confirmClicked_noOemUnlockAllowed_provisioned_wipesPdb() {
-        getShadowOemLockManager().setIsOemUnlockAllowed(false);
+        when(mOemLockManager.isOemUnlockAllowed()).thenReturn(false);
         Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.DEVICE_PROVISIONED,
                 1);
 
         findMasterClearConfirmButton(mFragment.requireActivity()).performClick();
 
-        assertThat(getShadowPdbManager().getWipeCalledCount()).isEqualTo(1);
+        verify(mPersistentDataBlockManager).wipe();
     }
 
     @Test
     public void confirmClicked_noOemUnlockAllowed_provisioned_sendsResetIntent() {
-        getShadowOemLockManager().setIsOemUnlockAllowed(false);
+        when(mOemLockManager.isOemUnlockAllowed()).thenReturn(false);
         Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.DEVICE_PROVISIONED,
                 1);
 
@@ -178,16 +183,4 @@
         Toolbar toolbar = activity.requireViewById(R.id.toolbar);
         return toolbar.getMenuItems().get(0);
     }
-
-    private ShadowPersistentDataBlockManager getShadowPdbManager() {
-        return Shadow.extract(mContext.getSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE));
-    }
-
-    private ShadowOemLockManager getShadowOemLockManager() {
-        return Shadow.extract(mContext.getSystemService(Context.OEM_LOCK_SERVICE));
-    }
-
-    private Map<String, String> getSystemServiceMap() {
-        return ReflectionHelpers.getStaticField(ShadowContextImpl.class, "SYSTEM_SERVICE_MAP");
-    }
 }
diff --git a/tests/robotests/src/com/android/car/settings/system/MasterClearFragmentTest.java b/tests/robotests/src/com/android/car/settings/system/MasterClearFragmentTest.java
index f59dfb8..d5b701e 100644
--- a/tests/robotests/src/com/android/car/settings/system/MasterClearFragmentTest.java
+++ b/tests/robotests/src/com/android/car/settings/system/MasterClearFragmentTest.java
@@ -30,7 +30,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
-import android.telephony.euicc.EuiccManager;
 
 import androidx.fragment.app.Fragment;
 
@@ -39,7 +38,7 @@
 import com.android.car.settings.security.CheckLockActivity;
 import com.android.car.settings.testutils.FragmentController;
 import com.android.car.settings.testutils.ShadowCarUserManagerHelper;
-import com.android.car.settings.testutils.ShadowEuiccManager;
+import com.android.car.settings.testutils.ShadowUserManager;
 import com.android.car.ui.toolbar.MenuItem;
 import com.android.car.ui.toolbar.Toolbar;
 
@@ -53,15 +52,12 @@
 import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
-import org.robolectric.shadows.ShadowContextImpl;
-import org.robolectric.util.ReflectionHelpers;
 
 import java.util.Collections;
-import java.util.Map;
 
 /** Unit test for {@link MasterClearFragment}. */
 @RunWith(CarSettingsRobolectricTestRunner.class)
-@Config(shadows = {ShadowCarUserManagerHelper.class, ShadowEuiccManager.class})
+@Config(shadows = {ShadowCarUserManagerHelper.class, ShadowUserManager.class})
 public class MasterClearFragmentTest {
 
     @Mock
@@ -78,16 +74,14 @@
         Shadows.shadowOf(context.getPackageManager())
                 .setSystemFeature(PackageManager.FEATURE_AUTOMOTIVE, true);
         when(mCarUserManagerHelper.getAllSwitchableUsers()).thenReturn(Collections.emptyList());
-        // Robolectric doesn't know about the euicc manager, so we must add it ourselves.
-        getSystemServiceMap().put(Context.EUICC_SERVICE, EuiccManager.class.getName());
 
         mFragment = FragmentController.of(new MasterClearFragment()).setup();
     }
 
     @After
     public void tearDown() {
-        getSystemServiceMap().remove(Context.CARRIER_CONFIG_SERVICE);
         ShadowCarUserManagerHelper.reset();
+        ShadowUserManager.reset();
     }
 
     @Test
@@ -125,8 +119,4 @@
         Toolbar toolbar = activity.requireViewById(R.id.toolbar);
         return toolbar.getMenuItems().get(0);
     }
-
-    private Map<String, String> getSystemServiceMap() {
-        return ReflectionHelpers.getStaticField(ShadowContextImpl.class, "SYSTEM_SERVICE_MAP");
-    }
 }
diff --git a/tests/robotests/src/com/android/car/settings/system/MasterClearResetEsimPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/system/MasterClearResetEsimPreferenceControllerTest.java
index 85826ce..cd16313 100644
--- a/tests/robotests/src/com/android/car/settings/system/MasterClearResetEsimPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/system/MasterClearResetEsimPreferenceControllerTest.java
@@ -24,29 +24,22 @@
 import android.content.Context;
 import android.os.SystemProperties;
 import android.provider.Settings;
-import android.telephony.euicc.EuiccManager;
 
 import androidx.preference.SwitchPreference;
 
 import com.android.car.settings.CarSettingsRobolectricTestRunner;
 import com.android.car.settings.common.PreferenceControllerTestHelper;
-import com.android.car.settings.testutils.ShadowEuiccManager;
 
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
-import org.robolectric.shadows.ShadowContextImpl;
-import org.robolectric.util.ReflectionHelpers;
-
-import java.util.Map;
+import org.robolectric.shadows.ShadowEuiccManager;
 
 /** Unit test for {@link MasterClearResetEsimPreferenceController}. */
 @RunWith(CarSettingsRobolectricTestRunner.class)
-@Config(shadows = {ShadowEuiccManager.class})
 public class MasterClearResetEsimPreferenceControllerTest {
 
     private Context mContext;
@@ -54,8 +47,6 @@
 
     @Before
     public void setUp() {
-        // Robolectric doesn't know about the euicc manager, so we must add it ourselves.
-        getSystemServiceMap().put(Context.EUICC_SERVICE, EuiccManager.class.getName());
         mContext = RuntimeEnvironment.application;
         ((ShadowEuiccManager) Shadow.extract(
                 mContext.getSystemService(Context.EUICC_SERVICE))).setIsEnabled(true);
@@ -68,7 +59,6 @@
 
     @After
     public void tearDown() {
-        getSystemServiceMap().remove(Context.CARRIER_CONFIG_SERVICE);
         Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.EUICC_PROVISIONED, 0);
     }
 
@@ -87,8 +77,4 @@
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
     }
-
-    private Map<String, String> getSystemServiceMap() {
-        return ReflectionHelpers.getStaticField(ShadowContextImpl.class, "SYSTEM_SERVICE_MAP");
-    }
 }
diff --git a/tests/robotests/src/com/android/car/settings/system/ResetEsimPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/system/ResetEsimPreferenceControllerTest.java
index 71bc7fe..249eb09 100644
--- a/tests/robotests/src/com/android/car/settings/system/ResetEsimPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/system/ResetEsimPreferenceControllerTest.java
@@ -16,7 +16,6 @@
 
 package com.android.car.settings.system;
 
-
 import static com.android.car.settings.common.PreferenceController.AVAILABLE;
 import static com.android.car.settings.common.PreferenceController.UNSUPPORTED_ON_DEVICE;
 
@@ -24,29 +23,22 @@
 
 import android.content.Context;
 import android.provider.Settings;
-import android.telephony.euicc.EuiccManager;
 
 import androidx.preference.SwitchPreference;
 
 import com.android.car.settings.CarSettingsRobolectricTestRunner;
 import com.android.car.settings.common.PreferenceControllerTestHelper;
-import com.android.car.settings.testutils.ShadowEuiccManager;
 
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
-import org.robolectric.shadows.ShadowContextImpl;
-import org.robolectric.util.ReflectionHelpers;
-
-import java.util.Map;
+import org.robolectric.shadows.ShadowEuiccManager;
 
 /** Unit test for {@link ResetEsimPreferenceController}. */
 @RunWith(CarSettingsRobolectricTestRunner.class)
-@Config(shadows = {ShadowEuiccManager.class})
 public class ResetEsimPreferenceControllerTest {
 
     private Context mContext;
@@ -54,9 +46,6 @@
 
     @Before
     public void setUp() {
-        // Robolectric doesn't know about the euicc manager, so we must add it ourselves.
-        getSystemServiceMap().put(Context.EUICC_SERVICE, EuiccManager.class.getName());
-
         mContext = RuntimeEnvironment.application;
         mController = new PreferenceControllerTestHelper<>(mContext,
                 ResetEsimPreferenceController.class,
@@ -65,7 +54,6 @@
 
     @After
     public void tearDown() {
-        getSystemServiceMap().remove(Context.CARRIER_CONFIG_SERVICE);
         Settings.Global.putInt(mContext.getContentResolver(),
                 Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0);
         Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.EUICC_PROVISIONED, 0);
@@ -105,8 +93,4 @@
     private ShadowEuiccManager getShadowEuiccManager() {
         return Shadow.extract(mContext.getSystemService(Context.EUICC_SERVICE));
     }
-
-    private Map<String, String> getSystemServiceMap() {
-        return ReflectionHelpers.getStaticField(ShadowContextImpl.class, "SYSTEM_SERVICE_MAP");
-    }
 }
diff --git a/tests/robotests/src/com/android/car/settings/system/ResetNetworkConfirmFragmentTest.java b/tests/robotests/src/com/android/car/settings/system/ResetNetworkConfirmFragmentTest.java
index 8968808..f8a24cd 100644
--- a/tests/robotests/src/com/android/car/settings/system/ResetNetworkConfirmFragmentTest.java
+++ b/tests/robotests/src/com/android/car/settings/system/ResetNetworkConfirmFragmentTest.java
@@ -23,6 +23,7 @@
 
 import android.content.ContentResolver;
 import android.content.Context;
+import android.net.INetworkPolicyManager.Default;
 import android.net.NetworkPolicyManager;
 import android.net.Uri;
 import android.provider.Telephony;
@@ -50,12 +51,11 @@
 import org.robolectric.Robolectric;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowContentResolver;
 import org.robolectric.shadows.ShadowContextImpl;
-import org.robolectric.util.ReflectionHelpers;
 
 import java.util.List;
-import java.util.Map;
 
 @RunWith(CarSettingsRobolectricTestRunner.class)
 @Config(shadows = {
@@ -77,10 +77,13 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        getSystemServiceMap().put(Context.NETWORK_POLICY_SERVICE,
-                NetworkPolicyManager.class.getName());
-
         mContext = RuntimeEnvironment.application;
+
+        final NetworkPolicyManager npm = new NetworkPolicyManager(mContext, new Default());
+        ShadowContextImpl shadowContext =
+                Shadow.extract(RuntimeEnvironment.application.getBaseContext());
+        shadowContext.setSystemService(Context.NETWORK_POLICY_SERVICE, npm);
+
         mContentResolver = mContext.getContentResolver();
 
         setEuiccResetCheckbox(false);
@@ -99,7 +102,6 @@
 
     @After
     public void tearDown() {
-        getSystemServiceMap().remove(Context.NETWORK_POLICY_SERVICE);
         ShadowConnectivityManager.reset();
         ShadowWifiManager.reset();
         ShadowBluetoothAdapter.reset();
@@ -228,8 +230,4 @@
         PreferenceManager.getDefaultSharedPreferences(mContext).edit().putString(
                 mContext.getString(R.string.pk_reset_network_subscription), id).commit();
     }
-
-    private Map<String, String> getSystemServiceMap() {
-        return ReflectionHelpers.getStaticField(ShadowContextImpl.class, "SYSTEM_SERVICE_MAP");
-    }
 }
diff --git a/tests/robotests/src/com/android/car/settings/system/ResetNetworkSubscriptionPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/system/ResetNetworkSubscriptionPreferenceControllerTest.java
index 0572237..3e3a999 100644
--- a/tests/robotests/src/com/android/car/settings/system/ResetNetworkSubscriptionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/system/ResetNetworkSubscriptionPreferenceControllerTest.java
@@ -36,27 +36,21 @@
 
 import com.android.car.settings.CarSettingsRobolectricTestRunner;
 import com.android.car.settings.common.PreferenceControllerTestHelper;
-import com.android.car.settings.testutils.ShadowSubscriptionManager;
 
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.Shadows;
-import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
-import org.robolectric.shadows.ShadowContextImpl;
 import org.robolectric.shadows.ShadowPackageManager;
-import org.robolectric.util.ReflectionHelpers;
+import org.robolectric.shadows.ShadowSubscriptionManager;
 
 import java.util.Arrays;
 import java.util.Collections;
-import java.util.Map;
 
 /** Unit test for {@link ResetNetworkSubscriptionPreferenceController}. */
 @RunWith(CarSettingsRobolectricTestRunner.class)
-@Config(shadows = {ShadowSubscriptionManager.class})
 public class ResetNetworkSubscriptionPreferenceControllerTest {
 
     private static final int SUBID_1 = MIN_SUBSCRIPTION_ID_VALUE;
@@ -73,10 +67,6 @@
 
     @Before
     public void setUp() {
-        // Robolectric doesn't know about the euicc manager, so we must add it ourselves.
-        getSystemServiceMap().put(Context.TELEPHONY_SUBSCRIPTION_SERVICE,
-                SubscriptionManager.class.getName());
-
         mContext = RuntimeEnvironment.application;
         mShadowSubscriptionManager = Shadow.extract(
                 mContext.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE));
@@ -93,12 +83,6 @@
         mPreferenceControllerHelper.sendLifecycleEvent(Lifecycle.Event.ON_CREATE);
     }
 
-    @After
-    public void tearDown() {
-        getSystemServiceMap().remove(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
-        ShadowSubscriptionManager.reset();
-    }
-
     @Test
     public void getAvailabilityStatus_telephonyAvailable_available() {
         ShadowPackageManager shadowPackageManager = Shadows.shadowOf(mContext.getPackageManager());
@@ -217,7 +201,7 @@
                         createSubInfo(SUBID_3, "sub3"), createSubInfo(SUBID_4, "sub4")));
 
         ShadowSubscriptionManager.setDefaultSubscriptionId(SUBID_4);
-        ShadowSubscriptionManager.setDefaultSmsSubId(SUBID_3);
+        ShadowSubscriptionManager.setDefaultSmsSubscriptionId(SUBID_3);
         mController.refreshUi();
 
         assertThat(mListPreference.getValue()).isEqualTo(String.valueOf(SUBID_3));
@@ -230,8 +214,8 @@
                         createSubInfo(SUBID_3, "sub3"), createSubInfo(SUBID_4, "sub4")));
 
         ShadowSubscriptionManager.setDefaultSubscriptionId(SUBID_4);
-        ShadowSubscriptionManager.setDefaultSmsSubId(SUBID_3);
-        ShadowSubscriptionManager.setDefaultVoiceSubId(SUBID_2);
+        ShadowSubscriptionManager.setDefaultSmsSubscriptionId(SUBID_3);
+        ShadowSubscriptionManager.setDefaultVoiceSubscriptionId(SUBID_2);
         mController.refreshUi();
 
         assertThat(mListPreference.getValue()).isEqualTo(String.valueOf(SUBID_2));
@@ -244,9 +228,9 @@
                         createSubInfo(SUBID_3, "sub3"), createSubInfo(SUBID_4, "sub4")));
 
         ShadowSubscriptionManager.setDefaultSubscriptionId(SUBID_4);
-        ShadowSubscriptionManager.setDefaultSmsSubId(SUBID_3);
-        ShadowSubscriptionManager.setDefaultVoiceSubId(SUBID_2);
-        ShadowSubscriptionManager.setDefaultDataSubId(SUBID_1);
+        ShadowSubscriptionManager.setDefaultSmsSubscriptionId(SUBID_3);
+        ShadowSubscriptionManager.setDefaultVoiceSubscriptionId(SUBID_2);
+        ShadowSubscriptionManager.setDefaultDataSubscriptionId(SUBID_1);
         mController.refreshUi();
 
         assertThat(mListPreference.getValue()).isEqualTo(String.valueOf(SUBID_1));
@@ -262,7 +246,7 @@
         // Multiple subscriptions so that preference is shown / title is set.
         mShadowSubscriptionManager.setActiveSubscriptionInfoList(
                 Arrays.asList(subInfo, createSubInfo(SUBID_2, "sub2")));
-        ShadowSubscriptionManager.setDefaultDataSubId(SUBID_1);
+        ShadowSubscriptionManager.setDefaultDataSubscriptionId(SUBID_1);
 
         mController.refreshUi();
 
@@ -283,7 +267,7 @@
         // Multiple subscriptions so that preference is shown / title is set.
         mShadowSubscriptionManager.setActiveSubscriptionInfoList(
                 Arrays.asList(subInfo, createSubInfo(SUBID_2, "sub2")));
-        ShadowSubscriptionManager.setDefaultDataSubId(SUBID_1);
+        ShadowSubscriptionManager.setDefaultDataSubscriptionId(SUBID_1);
 
         mController.refreshUi();
 
@@ -300,7 +284,7 @@
         // Multiple subscriptions so that preference is shown / title is set.
         mShadowSubscriptionManager.setActiveSubscriptionInfoList(
                 Arrays.asList(subInfo, createSubInfo(SUBID_2, "sub2")));
-        ShadowSubscriptionManager.setDefaultDataSubId(SUBID_1);
+        ShadowSubscriptionManager.setDefaultDataSubscriptionId(SUBID_1);
 
         mController.refreshUi();
 
@@ -317,7 +301,7 @@
         // Multiple subscriptions so that preference is shown / title is set.
         mShadowSubscriptionManager.setActiveSubscriptionInfoList(
                 Arrays.asList(subInfo, createSubInfo(SUBID_2, "sub2")));
-        ShadowSubscriptionManager.setDefaultDataSubId(SUBID_1);
+        ShadowSubscriptionManager.setDefaultDataSubscriptionId(SUBID_1);
 
         mController.refreshUi();
 
@@ -328,7 +312,7 @@
     public void handlePreferenceChanged_updatesTitle() {
         mShadowSubscriptionManager.setActiveSubscriptionInfoList(
                 Arrays.asList(createSubInfo(SUBID_1, "sub1"), createSubInfo(SUBID_2, "sub2")));
-        ShadowSubscriptionManager.setDefaultDataSubId(SUBID_1);
+        ShadowSubscriptionManager.setDefaultDataSubscriptionId(SUBID_1);
         mController.refreshUi();
 
         mListPreference.callChangeListener(String.valueOf(SUBID_2));
@@ -340,7 +324,7 @@
     public void handlePreferenceChanged_returnsTrue() {
         mShadowSubscriptionManager.setActiveSubscriptionInfoList(
                 Arrays.asList(createSubInfo(SUBID_1, "sub1"), createSubInfo(SUBID_2, "sub2")));
-        ShadowSubscriptionManager.setDefaultDataSubId(SUBID_1);
+        ShadowSubscriptionManager.setDefaultDataSubscriptionId(SUBID_1);
         mController.refreshUi();
 
         assertThat(mController.handlePreferenceChanged(mListPreference,
@@ -366,8 +350,4 @@
         when(subscriptionInfo.getMnc()).thenReturn(333);
         return subscriptionInfo;
     }
-
-    private Map<String, String> getSystemServiceMap() {
-        return ReflectionHelpers.getStaticField(ShadowContextImpl.class, "SYSTEM_SERVICE_MAP");
-    }
 }
diff --git a/tests/robotests/src/com/android/car/settings/system/SystemUpdatePreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/system/SystemUpdatePreferenceControllerTest.java
index 3ed6bfd..004bb01 100644
--- a/tests/robotests/src/com/android/car/settings/system/SystemUpdatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/system/SystemUpdatePreferenceControllerTest.java
@@ -28,7 +28,6 @@
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
 import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.os.PersistableBundle;
 import android.telephony.CarrierConfigManager;
@@ -53,12 +52,9 @@
 import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowApplication;
-import org.robolectric.shadows.ShadowContextImpl;
 import org.robolectric.shadows.ShadowPackageManager;
-import org.robolectric.util.ReflectionHelpers;
 
 import java.util.List;
-import java.util.Map;
 
 /** Unit test for {@link SystemUpdatePreferenceController}. */
 @RunWith(CarSettingsRobolectricTestRunner.class)
@@ -74,9 +70,6 @@
 
     @Before
     public void setUp() {
-        // Robolectric doesn't know about the carrier service, so we must add it ourselves.
-        getSystemServiceMap().put(Context.CARRIER_CONFIG_SERVICE,
-                CarrierConfigManager.class.getName());
         MockitoAnnotations.initMocks(this);
         ShadowCarUserManagerHelper.setMockInstance(mCarUserManagerHelper);
         when(mCarUserManagerHelper.isCurrentProcessAdminUser()).thenReturn(true);
@@ -90,7 +83,6 @@
 
     @After
     public void tearDown() {
-        getSystemServiceMap().remove(Context.CARRIER_CONFIG_SERVICE);
         ShadowCarUserManagerHelper.reset();
     }
 
@@ -119,12 +111,8 @@
         activityInfo.name = "SomeActivity";
 
         String label = "Activity Label";
-        ResolveInfo resolveInfo = new ResolveInfo() {
-            @Override
-            public CharSequence loadLabel(PackageManager pm) {
-                return label;
-            }
-        };
+        ResolveInfo resolveInfo = new ResolveInfo();
+        resolveInfo.nonLocalizedLabel = label;
         resolveInfo.activityInfo = activityInfo;
 
         Intent intent = new Intent();
@@ -186,8 +174,4 @@
     private ShadowCarrierConfigManager getShadowCarrierConfigManager() {
         return Shadow.extract(mContext.getSystemService(Context.CARRIER_CONFIG_SERVICE));
     }
-
-    private Map<String, String> getSystemServiceMap() {
-        return ReflectionHelpers.getStaticField(ShadowContextImpl.class, "SYSTEM_SERVICE_MAP");
-    }
 }
diff --git a/tests/robotests/src/com/android/car/settings/system/WifiMacAddressPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/system/WifiMacAddressPreferenceControllerTest.java
deleted file mode 100644
index f475dcb..0000000
--- a/tests/robotests/src/com/android/car/settings/system/WifiMacAddressPreferenceControllerTest.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (C) 2019 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.car.settings.system;
-
-import static com.android.car.settings.common.PreferenceController.AVAILABLE_FOR_VIEWING;
-import static com.android.car.settings.common.PreferenceController.UNSUPPORTED_ON_DEVICE;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.net.wifi.WifiInfo;
-import android.net.wifi.WifiManager;
-
-import androidx.lifecycle.Lifecycle;
-import androidx.preference.Preference;
-
-import com.android.car.settings.CarSettingsRobolectricTestRunner;
-import com.android.car.settings.common.PreferenceControllerTestHelper;
-
-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.Shadows;
-
-/** Unit test for {@link WifiMacAddressPreferenceController}. */
-@RunWith(CarSettingsRobolectricTestRunner.class)
-public class WifiMacAddressPreferenceControllerTest {
-
-    private static final String MAC_ADDRESS = "mac address";
-
-    private Preference mPreference;
-    private Context mContext;
-
-    @Mock
-    private WifiManager mMockWifiManager;
-    @Mock
-    private WifiInfo mMockWifiInfo;
-    @Mock
-    private Context mMockContext;
-    private PreferenceControllerTestHelper<WifiMacAddressPreferenceController>
-            mControllerHelper;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
-
-        // Construct controller.
-        mPreference = new Preference(mContext);
-        mControllerHelper = new PreferenceControllerTestHelper<>(mContext,
-            WifiMacAddressPreferenceController.class, mPreference);
-
-        when(mMockContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mMockWifiManager);
-        when(mMockWifiManager.getConnectionInfo()).thenReturn(mMockWifiInfo);
-        mControllerHelper.getController().init(mMockContext);
-    }
-
-    @Test
-    public void getAvailabilityStatus_wifiAvailable_availableForViewing() {
-        Shadows.shadowOf(mContext.getPackageManager()).setSystemFeature(
-                PackageManager.FEATURE_WIFI, /* supported= */ true);
-
-        assertThat(mControllerHelper.getController().getAvailabilityStatus())
-                .isEqualTo(AVAILABLE_FOR_VIEWING);
-    }
-
-    @Test
-    public void getAvailabilityStatus_wifiNotAvailable_unsupportedOnDevice() {
-        Shadows.shadowOf(mContext.getPackageManager()).setSystemFeature(
-                PackageManager.FEATURE_WIFI, /* supported= */ false);
-
-        assertThat(mControllerHelper.getController().getAvailabilityStatus())
-                .isEqualTo(UNSUPPORTED_ON_DEVICE);
-    }
-
-    @Test
-    public void getSummary_shouldHaveMacAddress() {
-        Shadows.shadowOf(mContext.getPackageManager()).setSystemFeature(
-                PackageManager.FEATURE_WIFI, true);
-
-        when(mMockWifiInfo.getMacAddress()).thenReturn(MAC_ADDRESS);
-
-        mControllerHelper.markState(Lifecycle.State.CREATED);
-        mControllerHelper.getController().refreshUi();
-
-        assertThat(mPreference.getSummary()).isEqualTo(MAC_ADDRESS);
-    }
-}
diff --git a/tests/robotests/src/com/android/car/settings/system/legal/LegalPreferenceControllerTest.java b/tests/robotests/src/com/android/car/settings/system/legal/LegalPreferenceControllerTest.java
index a01e6ef..be62245 100644
--- a/tests/robotests/src/com/android/car/settings/system/legal/LegalPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/car/settings/system/legal/LegalPreferenceControllerTest.java
@@ -116,14 +116,11 @@
         activityInfo.name = "SomeActivity";
         activityInfo.applicationInfo = new ApplicationInfo();
         activityInfo.applicationInfo.flags = ApplicationInfo.FLAG_SYSTEM;
+        activityInfo.applicationInfo.nonLocalizedLabel = TEST_LABEL;
 
-        ResolveInfo resolveInfo = new ResolveInfo() {
-            @Override
-            public CharSequence loadLabel(PackageManager pm) {
-                return TEST_LABEL;
-            }
-        };
+        ResolveInfo resolveInfo = new ResolveInfo();
         resolveInfo.activityInfo = activityInfo;
+
         List<ResolveInfo> list = new LinkedList();
         list.add(resolveInfo);
 
diff --git a/tests/robotests/src/com/android/car/settings/testutils/CarSettingsShadowResources.java b/tests/robotests/src/com/android/car/settings/testutils/CarSettingsShadowResources.java
deleted file mode 100644
index 036eb6d..0000000
--- a/tests/robotests/src/com/android/car/settings/testutils/CarSettingsShadowResources.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2018 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.car.settings.testutils;
-
-import static org.robolectric.shadow.api.Shadow.directlyOn;
-
-import android.annotation.ColorRes;
-import android.annotation.DimenRes;
-import android.annotation.Nullable;
-import android.content.res.Resources;
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-import org.robolectric.annotation.RealObject;
-import org.robolectric.shadows.ShadowResources;
-
-/**
- * Overrides ShadowResources to return a dummy value if resources are not found.
- *
- * Reason for this is the Design Support Library has moved to prebuilts but robolectric is unable
- * to pull resources from binaries at this time.
- * TODO: Delete this shadow when robolectric supports binary resource loading
- */
-@Implements(value = Resources.class, inheritImplementationMethods = true)
-public class CarSettingsShadowResources extends ShadowResources {
-    @RealObject
-    public Resources realResources;
-
-    @Implementation
-    public int getDimensionPixelSize(@DimenRes int id) {
-        try {
-            return directlyOn(realResources, Resources.class).getDimensionPixelSize(id);
-        } catch (Resources.NotFoundException e1) {
-            return 0;
-        }
-    }
-
-    @Implementation
-    public int getDimensionPixelOffset(@DimenRes int id) {
-        try {
-            return directlyOn(realResources, Resources.class).getDimensionPixelOffset(id);
-        } catch (Resources.NotFoundException e1) {
-            return 0;
-        }
-    }
-
-    @Implementation
-    public int getColor(@ColorRes int id, @Nullable Resources.Theme theme) {
-        try {
-            return directlyOn(realResources, Resources.class).getColor(id, theme);
-        } catch (Resources.NotFoundException e1) {
-            return 0;
-        }
-    }
-}
-
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowActivityManager.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowActivityManager.java
index e4f2ca9..b6a75aa 100644
--- a/tests/robotests/src/com/android/car/settings/testutils/ShadowActivityManager.java
+++ b/tests/robotests/src/com/android/car/settings/testutils/ShadowActivityManager.java
@@ -23,7 +23,7 @@
 import org.robolectric.annotation.Implements;
 import org.robolectric.annotation.Resetter;
 
-@Implements(value = ActivityManager.class, inheritImplementationMethods = true)
+@Implements(value = ActivityManager.class)
 public class ShadowActivityManager extends org.robolectric.shadows.ShadowActivityManager {
 
     private static boolean sIsApplicationUserDataCleared;
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowActivityThread.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowActivityThread.java
deleted file mode 100644
index 5cd1ac6..0000000
--- a/tests/robotests/src/com/android/car/settings/testutils/ShadowActivityThread.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright 2019 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.car.settings.testutils;
-
-import android.app.ActivityThread;
-import android.content.pm.IPackageManager;
-import android.content.pm.PackageManager;
-import android.content.pm.ParceledListSlice;
-import android.os.RemoteException;
-
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-
-import java.lang.reflect.Proxy;
-
-@Implements(ActivityThread.class)
-public class ShadowActivityThread {
-
-    @Implementation
-    protected static IPackageManager getPackageManager() {
-        ClassLoader classLoader = ShadowActivityThread.class.getClassLoader();
-        Class<?> iPackageManagerClass;
-        try {
-            iPackageManagerClass = classLoader.loadClass("android.content.pm.IPackageManager");
-        } catch (ClassNotFoundException e) {
-            throw new RuntimeException(e);
-        }
-        return (IPackageManager) Proxy.newProxyInstance(
-                classLoader, new Class[]{iPackageManagerClass}, (proxy, method, args) -> {
-                    if (method.getName().equals("getApplicationInfo")) {
-                        String packageName = (String) args[0];
-                        int flags = (Integer) args[1];
-                        try {
-                            return RuntimeEnvironment.application
-                                    .getPackageManager()
-                                    .getApplicationInfo(packageName, flags);
-                        } catch (PackageManager.NameNotFoundException e) {
-                            throw new RemoteException(e.getMessage());
-                        }
-                    } else if (method.getName().equals("getInstalledApplications")) {
-                        int flags = (Integer) args[0];
-                        return new ParceledListSlice<>(RuntimeEnvironment.application
-                                .getPackageManager()
-                                .getInstalledApplications(flags));
-                    }
-                    throw new UnsupportedOperationException("sorry, not supporting " + method
-                            + " yet!");
-                }
-        );
-    }
-}
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowAppOpsManager.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowAppOpsManager.java
index 841af36..bfc582f 100644
--- a/tests/robotests/src/com/android/car/settings/testutils/ShadowAppOpsManager.java
+++ b/tests/robotests/src/com/android/car/settings/testutils/ShadowAppOpsManager.java
@@ -35,12 +35,6 @@
 @Implements(value = AppOpsManager.class)
 public class ShadowAppOpsManager {
 
-    private static final long OP_TIME = 1400000000L;
-    private static final long REJECT_TIME = 0L;
-    private static final int DURATION = 10;
-    private static final int PROXY_UID = 0;
-    private static final String PROXY_PACKAGE = "";
-
     private Table<Integer, InternalKey, Integer> mOpToKeyToMode = HashBasedTable.create();
 
     @Implementation
@@ -72,8 +66,7 @@
                 if (mode == null) {
                     mode = AppOpsManager.opToDefaultMode(op);
                 }
-                OpEntry opEntry = new OpEntry(op, mode, OP_TIME, REJECT_TIME, DURATION, PROXY_UID,
-                        PROXY_PACKAGE);
+                OpEntry opEntry = new OpEntry(op, mode);
                 PackageOps packageOp = new PackageOps(key.mPackageName, key.mUid,
                         Collections.singletonList(opEntry));
                 result.add(packageOp);
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowApplicationPackageManager.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowApplicationPackageManager.java
index 8200852..ac738fc 100644
--- a/tests/robotests/src/com/android/car/settings/testutils/ShadowApplicationPackageManager.java
+++ b/tests/robotests/src/com/android/car/settings/testutils/ShadowApplicationPackageManager.java
@@ -17,12 +17,14 @@
 
 import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_UNDEFINED;
 
+import android.annotation.NonNull;
 import android.annotation.UserIdInt;
 import android.app.ApplicationPackageManager;
 import android.content.ComponentName;
 import android.content.IntentFilter;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.IPackageDataObserver;
+import android.content.pm.ModuleInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ProviderInfo;
 import android.content.pm.ResolveInfo;
@@ -42,7 +44,7 @@
 import java.util.Map;
 
 /** Shadow of ApplicationPackageManager that allows the getting of content providers per user. */
-@Implements(value = ApplicationPackageManager.class, inheritImplementationMethods = true)
+@Implements(value = ApplicationPackageManager.class)
 public class ShadowApplicationPackageManager extends
         org.robolectric.shadows.ShadowApplicationPackageManager {
 
@@ -57,6 +59,7 @@
             new HashMap<>();
     private List<ResolveInfo> mHomeActivities = Collections.emptyList();
     private ComponentName mDefaultHomeActivity;
+    private String mPermissionControllerPackageName;
 
     @Resetter
     public static void reset() {
@@ -65,54 +68,61 @@
     }
 
     @Implementation
-    public Drawable getUserBadgedIcon(Drawable icon, UserHandle user) {
+    @NonNull
+    protected List<ModuleInfo> getInstalledModules(@PackageManager.ModuleInfoFlags int flags) {
+        return Collections.emptyList();
+    }
+
+    @Implementation
+    protected Drawable getUserBadgedIcon(Drawable icon, UserHandle user) {
         return icon;
     }
 
     @Override
     @Implementation
-    public ProviderInfo resolveContentProviderAsUser(String name, int flags,
+    protected ProviderInfo resolveContentProviderAsUser(String name, int flags,
             @UserIdInt int userId) {
         return resolveContentProvider(name, flags);
     }
 
     @Implementation
-    public int getPackageUidAsUser(String packageName, int flags, int userId)
+    protected int getPackageUidAsUser(String packageName, int flags, int userId)
             throws PackageManager.NameNotFoundException {
         return 0;
     }
 
     @Implementation
-    public void deleteApplicationCacheFiles(String packageName, IPackageDataObserver observer) {
+    protected void deleteApplicationCacheFiles(String packageName, IPackageDataObserver observer) {
         sPackageManager.deleteApplicationCacheFiles(packageName, observer);
     }
 
     @Implementation
-    public Resources getResourcesForApplication(String appPackageName)
+    protected Resources getResourcesForApplication(String appPackageName)
             throws PackageManager.NameNotFoundException {
         return sResources;
     }
 
     @Implementation
-    public List<ApplicationInfo> getInstalledApplicationsAsUser(int flags, int userId) {
+    protected List<ApplicationInfo> getInstalledApplicationsAsUser(int flags, int userId) {
         return getInstalledApplications(flags);
     }
 
     @Implementation
-    public ApplicationInfo getApplicationInfoAsUser(String packageName, int flags, int userId)
+    protected ApplicationInfo getApplicationInfoAsUser(String packageName, int flags, int userId)
             throws PackageManager.NameNotFoundException {
         return getApplicationInfo(packageName, flags);
     }
 
     @Implementation
-    public ComponentName getHomeActivities(List<ResolveInfo> outActivities) {
+    @Override
+    protected ComponentName getHomeActivities(List<ResolveInfo> outActivities) {
         outActivities.addAll(mHomeActivities);
         return mDefaultHomeActivity;
     }
 
     @Implementation
     @Override
-    public void clearPackagePreferredActivities(String packageName) {
+    protected void clearPackagePreferredActivities(String packageName) {
         mPreferredActivities.clear();
     }
 
@@ -143,20 +153,20 @@
 
     @Implementation
     @Override
-    public String getDefaultBrowserPackageNameAsUser(int userId) {
+    protected String getDefaultBrowserPackageNameAsUser(int userId) {
         return mUserIdToDefaultBrowserMap.getOrDefault(userId, null);
     }
 
     @Implementation
     @Override
-    public boolean setDefaultBrowserPackageNameAsUser(String packageName, int userId) {
+    protected boolean setDefaultBrowserPackageNameAsUser(String packageName, int userId) {
         mUserIdToDefaultBrowserMap.put(userId, packageName);
         return true;
     }
 
     @Implementation
     @Override
-    public int getIntentVerificationStatusAsUser(String packageName, int userId) {
+    protected int getIntentVerificationStatusAsUser(String packageName, int userId) {
         Pair<String, Integer> key = new Pair<>(packageName, userId);
         return mPkgAndUserIdToIntentVerificationStatusMap.getOrDefault(key,
                 INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_UNDEFINED);
@@ -164,13 +174,22 @@
 
     @Implementation
     @Override
-    public boolean updateIntentVerificationStatusAsUser(String packageName, int status,
+    protected boolean updateIntentVerificationStatusAsUser(String packageName, int status,
             int userId) {
         Pair<String, Integer> key = new Pair<>(packageName, userId);
         mPkgAndUserIdToIntentVerificationStatusMap.put(key, status);
         return true;
     }
 
+    @Implementation
+    protected String getPermissionControllerPackageName() {
+        return mPermissionControllerPackageName;
+    }
+
+    public void setPermissionControllerPackageName(String packageName) {
+        mPermissionControllerPackageName = packageName;
+    }
+
     public void setHomeActivities(List<ResolveInfo> homeActivities) {
         mHomeActivities = homeActivities;
     }
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowBluetoothAdapter.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowBluetoothAdapter.java
index 5b98aa7..9de2084 100644
--- a/tests/robotests/src/com/android/car/settings/testutils/ShadowBluetoothAdapter.java
+++ b/tests/robotests/src/com/android/car/settings/testutils/ShadowBluetoothAdapter.java
@@ -30,7 +30,7 @@
 import java.util.Collections;
 import java.util.List;
 
-@Implements(value = BluetoothAdapter.class, inheritImplementationMethods = true)
+@Implements(BluetoothAdapter.class)
 public class ShadowBluetoothAdapter extends org.robolectric.shadows.ShadowBluetoothAdapter {
 
     private static int sResetCalledCount = 0;
@@ -48,22 +48,22 @@
     }
 
     @Implementation
-    public static synchronized BluetoothAdapter getDefaultAdapter() {
+    protected static synchronized BluetoothAdapter getDefaultAdapter() {
         return (BluetoothAdapter) ShadowApplication.getInstance().getBluetoothAdapter();
     }
 
     @Implementation
-    public ParcelUuid[] getUuids() {
+    protected ParcelUuid[] getUuids() {
         return null;
     }
 
     @Implementation
-    public String getName() {
+    protected String getName() {
         return mName;
     }
 
     @Implementation
-    public boolean setName(String name) {
+    protected boolean setName(String name) {
         if (getState() != STATE_ON) {
             return false;
         }
@@ -72,7 +72,7 @@
     }
 
     @Implementation
-    public int getScanMode() {
+    protected int getScanMode() {
         if (getState() != STATE_ON) {
             return SCAN_MODE_NONE;
         }
@@ -80,7 +80,7 @@
     }
 
     @Implementation
-    public boolean setScanMode(int scanMode) {
+    protected boolean setScanMode(int scanMode) {
         if (getState() != STATE_ON) {
             return false;
         }
@@ -89,7 +89,7 @@
     }
 
     @Implementation
-    public List<Integer> getSupportedProfiles() {
+    protected List<Integer> getSupportedProfiles() {
         return Collections.emptyList();
     }
 
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowCar.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowCar.java
index 2aaa1f0..ed0f78b 100644
--- a/tests/robotests/src/com/android/car/settings/testutils/ShadowCar.java
+++ b/tests/robotests/src/com/android/car/settings/testutils/ShadowCar.java
@@ -70,6 +70,23 @@
     }
 
     /**
+     * Returns a mocked version of a {@link Car} object.
+     */
+    @Implementation
+    protected static Car createCar(Context context) {
+        doReturn(sIsConnected).when(sMockCar).isConnected();
+        if (sServiceName != null) {
+            try {
+                doReturn(sCarManager).when(sMockCar).getCarManager(sServiceName);
+            } catch (CarNotConnectedException e) {
+                // do nothing, have to do this because compiler doesn't understand mock can't throw
+                // exception.
+            }
+        }
+        return sMockCar;
+    }
+
+    /**
      * Sets the manager returned by {@link Car#getCarManager(String)}.
      *
      * @param serviceName the name for the service request that should return this car manager.
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowCarUserManagerHelper.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowCarUserManagerHelper.java
index e0791cb..b900a55 100644
--- a/tests/robotests/src/com/android/car/settings/testutils/ShadowCarUserManagerHelper.java
+++ b/tests/robotests/src/com/android/car/settings/testutils/ShadowCarUserManagerHelper.java
@@ -84,12 +84,12 @@
     }
 
     @Implementation
-    public List<UserInfo> getAllPersistentUsers() {
+    protected List<UserInfo> getAllPersistentUsers() {
         return sMockInstance.getAllPersistentUsers();
     }
 
     @Implementation
-    public UserInfo createNewNonAdminUser(String userName) {
+    protected UserInfo createNewNonAdminUser(String userName) {
         return sMockInstance.createNewNonAdminUser(userName);
     }
 
@@ -164,7 +164,7 @@
     }
 
     @Implementation
-    public void setUserRestriction(UserInfo userInfo, String restriction, boolean enable) {
+    protected void setUserRestriction(UserInfo userInfo, String restriction, boolean enable) {
         Map<String, Boolean> permissionsMap = sUserRestrictionMap.getOrDefault(userInfo.id,
                 new HashMap<>());
         permissionsMap.put(restriction, enable);
@@ -172,7 +172,7 @@
     }
 
     @Implementation
-    public boolean hasUserRestriction(String restriction, UserInfo userInfo) {
+    protected boolean hasUserRestriction(String restriction, UserInfo userInfo) {
         // False by default, if nothing was added to our map,
         if (!sUserRestrictionMap.containsKey(userInfo.id)) {
             return false;
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowConnectivityManager.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowConnectivityManager.java
index a6d1102..5c41365 100644
--- a/tests/robotests/src/com/android/car/settings/testutils/ShadowConnectivityManager.java
+++ b/tests/robotests/src/com/android/car/settings/testutils/ShadowConnectivityManager.java
@@ -31,7 +31,7 @@
 import java.util.HashMap;
 import java.util.Map;
 
-@Implements(value = ConnectivityManager.class, inheritImplementationMethods = true)
+@Implements(ConnectivityManager.class)
 public class ShadowConnectivityManager extends org.robolectric.shadows.ShadowConnectivityManager {
 
     private static int sResetCalledCount = 0;
@@ -64,7 +64,7 @@
     }
 
     @Implementation
-    public NetworkCapabilities getNetworkCapabilities(Network network) {
+    protected NetworkCapabilities getNetworkCapabilities(Network network) {
         return mCapabilitiesMap.get(network);
     }
 
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowContentResolver.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowContentResolver.java
index cd34f22..e899705 100644
--- a/tests/robotests/src/com/android/car/settings/testutils/ShadowContentResolver.java
+++ b/tests/robotests/src/com/android/car/settings/testutils/ShadowContentResolver.java
@@ -23,10 +23,7 @@
 import android.content.SyncInfo;
 import android.content.SyncStatusInfo;
 import android.content.SyncStatusObserver;
-import android.database.Cursor;
-import android.net.Uri;
 import android.os.Bundle;
-import android.os.CancellationSignal;
 
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
@@ -44,7 +41,7 @@
  * include an implementation of getSyncAdapterTypesAsUser, which is used by {@link
  * com.android.settingslib.accounts.AuthenticatorHelper#buildAccountTypeToAuthoritiesMap}.
  */
-@Implements(value = ContentResolver.class, inheritImplementationMethods = true)
+@Implements(ContentResolver.class)
 public class ShadowContentResolver extends org.robolectric.shadows.ShadowContentResolver {
     private static final int SYNCABLE = 1;
 
@@ -58,13 +55,6 @@
     private static SyncStatusObserver sStatusObserver;
 
     @Implementation
-    public final Cursor query(Uri uri, String[] projection, Bundle queryArgs,
-            CancellationSignal cancellationSignal) {
-        return query(uri, projection, /* selection= */ null, /* selectionArgs= */
-                null, /* sortOrder= */ null, cancellationSignal);
-    }
-
-    @Implementation
     protected static SyncAdapterType[] getSyncAdapterTypesAsUser(int userId) {
         return sSyncAdapterTypes;
     }
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowDevicePolicyManager.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowDevicePolicyManager.java
index 0e4f28c..5a6e713 100644
--- a/tests/robotests/src/com/android/car/settings/testutils/ShadowDevicePolicyManager.java
+++ b/tests/robotests/src/com/android/car/settings/testutils/ShadowDevicePolicyManager.java
@@ -22,25 +22,32 @@
 
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
+import org.robolectric.annotation.Resetter;
 
 import java.util.List;
 import java.util.Set;
 
-@Implements(value = DevicePolicyManager.class, inheritImplementationMethods = true)
+@Implements(value = DevicePolicyManager.class)
 public class ShadowDevicePolicyManager extends org.robolectric.shadows.ShadowDevicePolicyManager {
     @Nullable
-    private List<String> mPermittedInputMethods;
+    private static List<String> sPermittedInputMethods;
+
     private Set<String> mActiveAdminsPackages = new ArraySet<>();
     private boolean mIsInstallInQueue;
 
-    @Implementation
-    @Nullable
-    public List<String> getPermittedInputMethodsForCurrentUser() {
-        return mPermittedInputMethods;
+    @Resetter
+    public static void reset() {
+        sPermittedInputMethods = null;
     }
 
-    public void setPermittedInputMethodsForCurrentUser(@Nullable List<String> inputMethods) {
-        mPermittedInputMethods = inputMethods;
+    @Implementation
+    @Nullable
+    protected List<String> getPermittedInputMethodsForCurrentUser() {
+        return sPermittedInputMethods;
+    }
+
+    public static void setPermittedInputMethodsForCurrentUser(@Nullable List<String> inputMethods) {
+        sPermittedInputMethods = inputMethods;
     }
 
     @Implementation
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowEuiccManager.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowEuiccManager.java
deleted file mode 100644
index f4f581f..0000000
--- a/tests/robotests/src/com/android/car/settings/testutils/ShadowEuiccManager.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2018 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.car.settings.testutils;
-
-import android.telephony.euicc.EuiccManager;
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-
-@Implements(EuiccManager.class)
-public class ShadowEuiccManager {
-
-    private boolean mIsEnabled;
-
-    @Implementation
-    public void __constructor__() {
-        // Robolectric instantiates unknown services using the no-arg constructor. Create a shadow
-        // so it doesn't complain about Stub!
-    }
-
-    @Implementation
-    protected boolean isEnabled() {
-        return mIsEnabled;
-    }
-
-    public void setIsEnabled(boolean isEnabled) {
-        mIsEnabled = isEnabled;
-    }
-}
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowInputMethodManager.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowInputMethodManager.java
index f6ccbc0..6edf719 100644
--- a/tests/robotests/src/com/android/car/settings/testutils/ShadowInputMethodManager.java
+++ b/tests/robotests/src/com/android/car/settings/testutils/ShadowInputMethodManager.java
@@ -28,25 +28,50 @@
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
+import org.robolectric.annotation.Resetter;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
 @Implements(value = InputMethodManager.class)
 public class ShadowInputMethodManager extends org.robolectric.shadows.ShadowInputMethodManager {
-    private List<InputMethodInfo> mInputMethodList;
-    private Map<String, InputMethodInfo> mInputMethodMap;
-    private List<InputMethodSubtype> mInputMethodSubtypes;
+    private static List<InputMethodSubtype> sInputMethodSubtypes = new ArrayList<>();
+    private static List<InputMethodInfo> sInputMethodList = new ArrayList<>();
+    private static Map<String, InputMethodInfo> sInputMethodMap = new HashMap<>();
 
-    public void setEnabledInputMethodList(@Nullable List<InputMethodInfo> inputMethodInfos) {
-        String concatenatedInputMethodIds = createInputMethodIdString(inputMethodInfos.stream().map(
-                imi -> imi.getId()).collect(Collectors.toList()).toArray(
-                new String[inputMethodInfos.size()]));
+    @Resetter
+    public static void reset() {
+        sInputMethodSubtypes.clear();
+        sInputMethodList.clear();
+        sInputMethodMap.clear();
+        org.robolectric.shadows.ShadowInputMethodManager.reset();
+    }
+
+    public static void setEnabledInputMethodSubtypeList(List<InputMethodSubtype> list) {
+        sInputMethodSubtypes = list;
+    }
+
+    @Implementation
+    protected List<InputMethodSubtype> getEnabledInputMethodSubtypeList(InputMethodInfo imi,
+            boolean allowsImplicitlySelectedSubtypes) {
+        return sInputMethodSubtypes;
+    }
+
+    public static void setEnabledInputMethodList(@Nullable List<InputMethodInfo> list) {
+        if (list == null || list.size() == 0) {
+            Settings.Secure.putString(RuntimeEnvironment.application.getContentResolver(),
+                    Settings.Secure.ENABLED_INPUT_METHODS, "");
+            return;
+        }
+
+        String concatenatedInputMethodIds = createInputMethodIdString(list.stream().map(
+                imi -> imi.getId()).collect(Collectors.toList()).toArray(new String[list.size()]));
         Settings.Secure.putString(RuntimeEnvironment.application.getContentResolver(),
                 Settings.Secure.ENABLED_INPUT_METHODS, concatenatedInputMethodIds);
-        addInputMethodInfosToMap(inputMethodInfos);
+        addInputMethodInfosToMap(list);
     }
 
     @Implementation
@@ -62,24 +87,14 @@
 
         InputMethodUtil.sInputMethodSplitter.setString(inputMethodIdString);
         while (InputMethodUtil.sInputMethodSplitter.hasNext()) {
-            enabledInputMethodList.add(mInputMethodMap.get(InputMethodUtil.sInputMethodSplitter
+            enabledInputMethodList.add(sInputMethodMap.get(InputMethodUtil.sInputMethodSplitter
                     .next()));
         }
         return enabledInputMethodList;
     }
 
-    public void setEnabledInputMethodSubtypeList(List<InputMethodSubtype> list) {
-        mInputMethodSubtypes = list;
-    }
-
-    @Implementation
-    protected List<InputMethodSubtype> getEnabledInputMethodSubtypeList(InputMethodInfo imi,
-            boolean allowsImplicitlySelectedSubtypes) {
-        return mInputMethodSubtypes;
-    }
-
     public void setInputMethodList(List<InputMethodInfo> inputMethodInfos) {
-        mInputMethodList = inputMethodInfos;
+        sInputMethodList = inputMethodInfos;
         if (inputMethodInfos == null) {
             return;
         }
@@ -89,7 +104,7 @@
 
     @Implementation
     protected List<InputMethodInfo> getInputMethodList() {
-        return mInputMethodList;
+        return sInputMethodList;
     }
 
     private static String createInputMethodIdString(String... ids) {
@@ -109,15 +124,15 @@
         return builder.toString();
     }
 
-    private void addInputMethodInfosToMap(List<InputMethodInfo> inputMethodInfos) {
-        if (mInputMethodMap == null || mInputMethodMap.size() == 0) {
-            mInputMethodMap = inputMethodInfos.stream().collect(Collectors.toMap(
+    private static void addInputMethodInfosToMap(List<InputMethodInfo> inputMethodInfos) {
+        if (sInputMethodMap == null || sInputMethodMap.size() == 0) {
+            sInputMethodMap = inputMethodInfos.stream().collect(Collectors.toMap(
                     InputMethodInfo::getId, imi -> imi));
             return;
         }
 
         inputMethodInfos.forEach(imi -> {
-            mInputMethodMap.put(imi.getId(), imi);
+            sInputMethodMap.put(imi.getId(), imi);
         });
     }
 }
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowLockPatternUtils.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowLockPatternUtils.java
index 8f819c3..68731ec 100644
--- a/tests/robotests/src/com/android/car/settings/testutils/ShadowLockPatternUtils.java
+++ b/tests/robotests/src/com/android/car/settings/testutils/ShadowLockPatternUtils.java
@@ -34,21 +34,22 @@
 @Implements(LockPatternUtils.class)
 public class ShadowLockPatternUtils {
 
-    private static LockPatternUtils sInstance;
+    public static final int NO_USER = -1;
+
     private static int sPasswordQuality = DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
     private static byte[] sSavedPassword;
     private static List<LockPatternView.Cell> sSavedPattern;
+    private static byte[] sClearLockCredential;
+    private static int sClearLockUser = NO_USER;
 
-    public static void setInstance(LockPatternUtils lockPatternUtils) {
-        sInstance = lockPatternUtils;
-    }
 
     @Resetter
     public static void reset() {
-        sInstance = null;
         sPasswordQuality = DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
         sSavedPassword = null;
         sSavedPattern = null;
+        sClearLockCredential = null;
+        sClearLockUser = NO_USER;
     }
 
     /**
@@ -67,6 +68,21 @@
     }
 
     /**
+     * Returns the saved credential passed in to clear the lock, null if it has not been cleared.
+     */
+    public static byte[] getClearLockCredential() {
+        return sClearLockCredential;
+    }
+
+    /**
+     * Returns the user passed in to clear the lock, {@link #NO_USER} if it has not been cleared.
+     */
+    public static int getClearLockUser() {
+        return sClearLockUser;
+    }
+
+
+    /**
      * Returns the pattern saved by a call to {@link LockPatternUtils#saveLockPattern}.
      */
     public static List<LockPatternView.Cell> getSavedPattern() {
@@ -75,11 +91,12 @@
 
     @Implementation
     protected void clearLock(byte[] savedCredential, int userHandle) {
-        sInstance.clearLock(savedCredential, userHandle);
+        sClearLockCredential = savedCredential;
+        sClearLockUser = userHandle;
     }
 
     @Implementation
-    public int getKeyguardStoredPasswordQuality(int userHandle) {
+    protected int getKeyguardStoredPasswordQuality(int userHandle) {
         return sPasswordQuality;
     }
 
@@ -90,7 +107,8 @@
     }
 
     @Implementation
-    public void saveLockPattern(List<LockPatternView.Cell> pattern, int userId) {
+    public void saveLockPattern(List<LockPatternView.Cell> pattern, byte[] savedPassword,
+            int userId, boolean allowUntrustedChanges) {
         sSavedPattern = new ArrayList<>(pattern);
     }
 }
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowOemLockManager.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowOemLockManager.java
deleted file mode 100644
index 44264d2..0000000
--- a/tests/robotests/src/com/android/car/settings/testutils/ShadowOemLockManager.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright 2019 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.car.settings.testutils;
-
-import android.service.oemlock.OemLockManager;
-
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-
-@Implements(OemLockManager.class)
-public class ShadowOemLockManager {
-
-    private boolean mIsOemUnlockAllowed;
-
-    @Implementation
-    protected boolean isOemUnlockAllowed() {
-        return mIsOemUnlockAllowed;
-    }
-
-    public void setIsOemUnlockAllowed(boolean isOemUnlockAllowed) {
-        mIsOemUnlockAllowed = isOemUnlockAllowed;
-    }
-}
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowPermissionControllerManager.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowPermissionControllerManager.java
new file mode 100644
index 0000000..e3f0a95
--- /dev/null
+++ b/tests/robotests/src/com/android/car/settings/testutils/ShadowPermissionControllerManager.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2018 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.car.settings.testutils;
+
+import android.annotation.NonNull;
+import android.content.Context;
+import android.os.Handler;
+import android.permission.PermissionControllerManager;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+
+import java.util.List;
+
+/**
+ * A RuntimePermissionPresenter that changes nothing and <u>never returns callbacks</u>.
+ */
+@Implements(PermissionControllerManager.class)
+public class ShadowPermissionControllerManager {
+    @Implementation
+    protected void __constructor__(Context context, @NonNull Handler handler) {
+        // no nothing, everything is shadowed
+    }
+
+    @Implementation
+    protected void getAppPermissions(String packageName,
+            PermissionControllerManager.OnGetAppPermissionResultCallback callback, Handler handler) {
+    }
+
+    @Implementation
+    protected void revokeRuntimePermission(String packageName, String permissionName) {
+    }
+
+    @Implementation
+    protected void countPermissionApps(List<String> permissionNames, boolean countOnlyGranted,
+            boolean countSystem,
+            PermissionControllerManager.OnCountPermissionAppsResultCallback callback,
+            Handler handler) {
+    }
+}
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowPersistentDataBlockManager.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowPersistentDataBlockManager.java
deleted file mode 100644
index ebe257b..0000000
--- a/tests/robotests/src/com/android/car/settings/testutils/ShadowPersistentDataBlockManager.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright 2019 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.car.settings.testutils;
-
-import android.service.persistentdata.PersistentDataBlockManager;
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-
-@Implements(PersistentDataBlockManager.class)
-public class ShadowPersistentDataBlockManager {
-
-    private int mWipeCalledCount;
-
-    @Implementation
-    protected void wipe() {
-        mWipeCalledCount++;
-    }
-
-    public int getWipeCalledCount() {
-        return mWipeCalledCount;
-    }
-}
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowPowerManager.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowPowerManager.java
deleted file mode 100644
index 9433b6e..0000000
--- a/tests/robotests/src/com/android/car/settings/testutils/ShadowPowerManager.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2018 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.car.settings.testutils;
-
-import android.os.PowerManager;
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-import org.robolectric.annotation.Resetter;
-
-@Implements(PowerManager.class)
-public class ShadowPowerManager {
-
-    private static PowerManager sInstance;
-
-    public static void setInstance(PowerManager powerManager) {
-        sInstance = powerManager;
-    }
-
-    @Resetter
-    public static void reset() {
-        sInstance = null;
-    }
-
-    @Implementation
-    protected int getMinimumScreenBrightnessSetting() {
-        return sInstance.getMinimumScreenBrightnessSetting();
-    }
-
-    @Implementation
-    protected int getMaximumScreenBrightnessSetting() {
-        return sInstance.getMaximumScreenBrightnessSetting();
-    }
-}
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowRestrictedLockUtils.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowRestrictedLockUtilsInternal.java
similarity index 92%
rename from tests/robotests/src/com/android/car/settings/testutils/ShadowRestrictedLockUtils.java
rename to tests/robotests/src/com/android/car/settings/testutils/ShadowRestrictedLockUtilsInternal.java
index 7dfe324..5bde1bf 100644
--- a/tests/robotests/src/com/android/car/settings/testutils/ShadowRestrictedLockUtils.java
+++ b/tests/robotests/src/com/android/car/settings/testutils/ShadowRestrictedLockUtilsInternal.java
@@ -19,13 +19,14 @@
 import android.content.Context;
 
 import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedLockUtilsInternal;
 
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
 import org.robolectric.annotation.Resetter;
 
-@Implements(RestrictedLockUtils.class)
-public class ShadowRestrictedLockUtils {
+@Implements(RestrictedLockUtilsInternal.class)
+public class ShadowRestrictedLockUtilsInternal {
 
     private static RestrictedLockUtils.EnforcedAdmin sEnforcedAdmin;
     private static boolean sHasBaseUserRestriction;
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowSecureSettings.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowSecureSettings.java
index cb2ea6c..56e07ee 100644
--- a/tests/robotests/src/com/android/car/settings/testutils/ShadowSecureSettings.java
+++ b/tests/robotests/src/com/android/car/settings/testutils/ShadowSecureSettings.java
@@ -19,95 +19,65 @@
 import android.content.ContentResolver;
 import android.provider.Settings;
 
-import com.google.common.collect.HashBasedTable;
-import com.google.common.collect.Table;
-
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
-import org.robolectric.annotation.Resetter;
-
-import java.util.Map;
-import java.util.WeakHashMap;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowSettings;
+import org.robolectric.util.ReflectionHelpers;
 
 @Implements(Settings.Secure.class)
-public class ShadowSecureSettings {
-
-    private static final Map<ContentResolver, Table<Integer, String, Object>> sUserDataMap =
-            new WeakHashMap<>();
+public class ShadowSecureSettings extends ShadowSettings.ShadowSecure {
 
     @Implementation
-    protected static int getInt(ContentResolver cr, String name, int def) {
-        return getIntForUser(cr, name, def, cr.getUserId());
+    protected static int getInt(ContentResolver resolver, String name) {
+        return Shadow.directlyOn(
+                Settings.Secure.class,
+                "getInt",
+                ReflectionHelpers.ClassParameter.from(ContentResolver.class, resolver),
+                ReflectionHelpers.ClassParameter.from(String.class, name));
+    }
+
+    @Implementation
+    protected static int getInt(ContentResolver resolver, String name, int def) {
+        return Shadow.directlyOn(
+                Settings.Secure.class,
+                "getInt",
+                ReflectionHelpers.ClassParameter.from(ContentResolver.class, resolver),
+                ReflectionHelpers.ClassParameter.from(String.class, name),
+                ReflectionHelpers.ClassParameter.from(int.class, def));
     }
 
     @Implementation
     protected static int getIntForUser(ContentResolver resolver, String name, int def,
             int userHandle) {
-        final Table<Integer, String, Object> userTable = getUserTable(resolver);
-        synchronized (userTable) {
-            final Object object = userTable.get(userHandle, name);
-            return object instanceof Integer ? (Integer) object : def;
-        }
+        return Shadow.directlyOn(
+                Settings.Secure.class,
+                "getIntForUser",
+                ReflectionHelpers.ClassParameter.from(ContentResolver.class, resolver),
+                ReflectionHelpers.ClassParameter.from(String.class, name),
+                ReflectionHelpers.ClassParameter.from(int.class, def),
+                ReflectionHelpers.ClassParameter.from(int.class, userHandle));
+    }
+
+    @Implementation
+    protected static boolean putInt(ContentResolver resolver, String name, int value) {
+        return Shadow.directlyOn(
+                Settings.Secure.class,
+                "putInt",
+                ReflectionHelpers.ClassParameter.from(ContentResolver.class, resolver),
+                ReflectionHelpers.ClassParameter.from(String.class, name),
+                ReflectionHelpers.ClassParameter.from(int.class, value));
     }
 
     @Implementation
     protected static boolean putIntForUser(ContentResolver resolver, String name, int value,
             int userHandle) {
-        final Table<Integer, String, Object> userTable = getUserTable(resolver);
-        synchronized (userTable) {
-            userTable.put(userHandle, name, value);
-            return true;
-        }
-    }
-
-    @Implementation
-    protected static String getString(ContentResolver resolver, String name) {
-        return getStringForUser(resolver, name, resolver.getUserId());
-    }
-
-    @Implementation
-    protected static String getStringForUser(ContentResolver resolver, String name,
-            int userHandle) {
-        final Table<Integer, String, Object> userTable = getUserTable(resolver);
-        synchronized (userTable) {
-            final Object object = userTable.get(userHandle, name);
-            return object instanceof String ? (String) object : null;
-        }
-    }
-
-    @Implementation
-    protected static boolean putString(ContentResolver resolver, String name, String value) {
-        return putStringForUser(resolver, name, value, resolver.getUserId());
-    }
-
-    @Implementation
-    protected static boolean putStringForUser(ContentResolver resolver, String name, String value,
-            int userHandle) {
-        final Table<Integer, String, Object> userTable = getUserTable(resolver);
-        synchronized (userTable) {
-            userTable.put(userHandle, name, value);
-            return true;
-        }
-    }
-
-    /**
-     * Clears the UserDataMap for Robotests.
-     */
-    @Resetter
-    public static void reset() {
-        synchronized (sUserDataMap) {
-            sUserDataMap.clear();
-        }
-    }
-
-    private static Table<Integer, String, Object> getUserTable(ContentResolver contentResolver) {
-        synchronized (sUserDataMap) {
-            Table<Integer, String, Object> table = sUserDataMap.get(contentResolver);
-            if (table == null) {
-                table = HashBasedTable.create();
-                sUserDataMap.put(contentResolver, table);
-            }
-            return table;
-        }
+        return Shadow.directlyOn(
+                Settings.Secure.class,
+                "putIntForUser",
+                ReflectionHelpers.ClassParameter.from(ContentResolver.class, resolver),
+                ReflectionHelpers.ClassParameter.from(String.class, name),
+                ReflectionHelpers.ClassParameter.from(int.class, value),
+                ReflectionHelpers.ClassParameter.from(int.class, userHandle));
     }
 }
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowStorageManager.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowStorageManager.java
deleted file mode 100644
index 0fc2bb4..0000000
--- a/tests/robotests/src/com/android/car/settings/testutils/ShadowStorageManager.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright 2019 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.car.settings.testutils;
-
-import android.os.storage.StorageManager;
-import android.os.storage.VolumeInfo;
-import android.util.ArrayMap;
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-
-import java.util.List;
-import java.util.Map;
-
-@Implements(StorageManager.class)
-public class ShadowStorageManager {
-
-    private List<VolumeInfo> mVolumes;
-    private Map<VolumeInfo, String> mBestVolumeDescriptions = new ArrayMap<>();
-
-    public void setVolumes(List<VolumeInfo> volumes) {
-        mVolumes = volumes;
-    }
-
-    @Implementation
-    protected List<VolumeInfo> getVolumes() {
-        return mVolumes;
-    }
-
-    public void setBestVolumeDescription(VolumeInfo volume, String description) {
-        mBestVolumeDescriptions.put(volume, description);
-    }
-
-    @Implementation
-    protected String getBestVolumeDescription(VolumeInfo volume) {
-        return mBestVolumeDescriptions.get(volume);
-    }
-}
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowSubscriptionManager.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowSubscriptionManager.java
index 98fd592..af06db3 100644
--- a/tests/robotests/src/com/android/car/settings/testutils/ShadowSubscriptionManager.java
+++ b/tests/robotests/src/com/android/car/settings/testutils/ShadowSubscriptionManager.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2019 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.
@@ -16,41 +16,31 @@
 
 package com.android.car.settings.testutils;
 
-import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID;
-
-import android.annotation.NonNull;
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
+import android.telephony.SubscriptionManager.OnSubscriptionsChangedListener;
 import android.telephony.SubscriptionPlan;
 
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
+import org.robolectric.annotation.Resetter;
 
+import java.util.ArrayList;
 import java.util.List;
 
 @Implements(SubscriptionManager.class)
-public class ShadowSubscriptionManager {
+public class ShadowSubscriptionManager extends org.robolectric.shadows.ShadowSubscriptionManager {
 
-    private static int sDefaultDataSubscriptionId = INVALID_SUBSCRIPTION_ID;
-    private static int sDefaultVoiceSubscriptionId = INVALID_SUBSCRIPTION_ID;
-    private static int sDefaultSmsSubscriptionId = INVALID_SUBSCRIPTION_ID;
-    private static int sDefaultSubscriptionId = INVALID_SUBSCRIPTION_ID;
     private static SubscriptionInfo sDefaultDataSubscriptionInfo = null;
 
-    private List<SubscriptionInfo> mSubscriptionInfoList;
     private List<SubscriptionPlan> mSubscriptionPlanList;
+    private List<SubscriptionInfo> mSelectableSubscriptionInfoList;
+    private List<OnSubscriptionsChangedListener> mOnSubscriptionsChangedListeners =
+            new ArrayList<>();
+    private int mCurrentActiveSubscriptionId;
 
     @Implementation
-    public List<SubscriptionInfo> getActiveSubscriptionInfoList() {
-        return mSubscriptionInfoList;
-    }
-
-    public void setActiveSubscriptionInfoList(List<SubscriptionInfo> subscriptionInfoList) {
-        mSubscriptionInfoList = subscriptionInfoList;
-    }
-
-    @Implementation
-    protected @NonNull List<SubscriptionPlan> getSubscriptionPlans(int subId) {
+    protected List<SubscriptionPlan> getSubscriptionPlans(int subId) {
         return mSubscriptionPlanList;
     }
 
@@ -59,46 +49,7 @@
     }
 
     @Implementation
-    public static int getDefaultDataSubscriptionId() {
-        return sDefaultDataSubscriptionId;
-    }
-
-    @Implementation
-    public static void setDefaultDataSubId(int subId) {
-        sDefaultDataSubscriptionId = subId;
-    }
-
-    @Implementation
-    public static int getDefaultVoiceSubscriptionId() {
-        return sDefaultVoiceSubscriptionId;
-    }
-
-    @Implementation
-    public static void setDefaultVoiceSubId(int subId) {
-        sDefaultVoiceSubscriptionId = subId;
-    }
-
-    @Implementation
-    public static int getDefaultSmsSubscriptionId() {
-        return sDefaultSmsSubscriptionId;
-    }
-
-    @Implementation
-    public static void setDefaultSmsSubId(int subId) {
-        sDefaultSmsSubscriptionId = subId;
-    }
-
-    @Implementation
-    public static int getDefaultSubscriptionId() {
-        return sDefaultSubscriptionId;
-    }
-
-    public static void setDefaultSubscriptionId(int subId) {
-        sDefaultSubscriptionId = subId;
-    }
-
-    @Implementation
-    public SubscriptionInfo getDefaultDataSubscriptionInfo() {
+    protected SubscriptionInfo getDefaultDataSubscriptionInfo() {
         return sDefaultDataSubscriptionInfo;
     }
 
@@ -106,12 +57,44 @@
         sDefaultDataSubscriptionInfo = subscriptionInfo;
     }
 
-    /** Resets this shadow to its initial state for static values. */
+    @Implementation
+    protected List<SubscriptionInfo> getSelectableSubscriptionInfoList() {
+        return mSelectableSubscriptionInfoList;
+    }
+
+    public void setSelectableSubscriptionInfoList(List<SubscriptionInfo> infos) {
+        mSelectableSubscriptionInfoList = infos;
+    }
+
+    @Implementation
+    protected void addOnSubscriptionsChangedListener(OnSubscriptionsChangedListener listener) {
+        super.addOnSubscriptionsChangedListener(listener);
+        mOnSubscriptionsChangedListeners.add(listener);
+    }
+
+    @Implementation
+    protected void removeOnSubscriptionsChangedListener(OnSubscriptionsChangedListener listener) {
+        super.removeOnSubscriptionsChangedListener(listener);
+        mOnSubscriptionsChangedListeners.remove(listener);
+    }
+
+    public List<OnSubscriptionsChangedListener> getOnSubscriptionChangedListeners() {
+        return mOnSubscriptionsChangedListeners;
+
+    }
+
+    @Implementation
+    protected boolean isActiveSubscriptionId(int subscriptionId) {
+        return mCurrentActiveSubscriptionId == subscriptionId;
+    }
+
+    public void setCurrentActiveSubscriptionId(int subscriptionId) {
+        mCurrentActiveSubscriptionId = subscriptionId;
+    }
+
+    @Resetter
     public static void reset() {
-        sDefaultDataSubscriptionId = INVALID_SUBSCRIPTION_ID;
-        sDefaultVoiceSubscriptionId = INVALID_SUBSCRIPTION_ID;
-        sDefaultSmsSubscriptionId = INVALID_SUBSCRIPTION_ID;
-        sDefaultSubscriptionId = INVALID_SUBSCRIPTION_ID;
+        org.robolectric.shadows.ShadowSubscriptionManager.reset();
         sDefaultDataSubscriptionInfo = null;
     }
 }
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowTelephonyManager.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowTelephonyManager.java
index 4c96d06..9c464f7 100644
--- a/tests/robotests/src/com/android/car/settings/testutils/ShadowTelephonyManager.java
+++ b/tests/robotests/src/com/android/car/settings/testutils/ShadowTelephonyManager.java
@@ -31,13 +31,15 @@
 import java.util.List;
 import java.util.Map;
 
-@Implements(value = TelephonyManager.class, inheritImplementationMethods = true)
+@Implements(TelephonyManager.class)
 public class ShadowTelephonyManager extends org.robolectric.shadows.ShadowTelephonyManager {
 
     public static final String SUBSCRIBER_ID = "test_id";
     private static Map<Integer, Integer> sSubIdsWithResetCalledCount = new HashMap<>();
+    private static int sSimCount = 1;
     private final Map<PhoneStateListener, Integer> mPhoneStateRegistrations = new HashMap<>();
     private boolean mIsDataEnabled = false;
+    private boolean mIsRoamingEnabled = false;
 
     public static boolean verifyFactoryResetCalled(int subId, int numTimes) {
         if (!sSubIdsWithResetCalledCount.containsKey(subId)) return false;
@@ -45,7 +47,7 @@
     }
 
     @Implementation
-    public void listen(PhoneStateListener listener, int flags) {
+    protected void listen(PhoneStateListener listener, int flags) {
         super.listen(listener, flags);
 
         if (flags == LISTEN_NONE) {
@@ -66,12 +68,12 @@
     }
 
     @Implementation
-    public void setDataEnabled(boolean enable) {
+    protected void setDataEnabled(boolean enable) {
         mIsDataEnabled = enable;
     }
 
     @Implementation
-    public boolean isDataEnabled() {
+    protected boolean isDataEnabled() {
         return mIsDataEnabled;
     }
 
@@ -86,8 +88,28 @@
         return subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID ? null : SUBSCRIBER_ID;
     }
 
+    @Implementation
+    protected int getSimCount() {
+        return sSimCount;
+    }
+
+    public static void setSimCount(int simCount) {
+        sSimCount = simCount;
+    }
+
+    @Implementation
+    protected void setDataRoamingEnabled(boolean isEnabled) {
+        mIsRoamingEnabled = isEnabled;
+    }
+
+    @Implementation
+    protected boolean isDataRoamingEnabled() {
+        return mIsRoamingEnabled;
+    }
+
     @Resetter
     public static void reset() {
         sSubIdsWithResetCalledCount.clear();
+        sSimCount = 1;
     }
 }
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowTypeface.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowTypeface.java
index 3af07ef..23fa992 100644
--- a/tests/robotests/src/com/android/car/settings/testutils/ShadowTypeface.java
+++ b/tests/robotests/src/com/android/car/settings/testutils/ShadowTypeface.java
@@ -23,7 +23,7 @@
 /**
  * This is to shadow an extra function that old versions of Robolectric don't cover.
  */
-@Implements(value = Typeface.class, inheritImplementationMethods = true)
+@Implements(value = Typeface.class)
 public class ShadowTypeface extends org.robolectric.shadows.ShadowTypeface {
 
     @Implementation
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowUserManager.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowUserManager.java
index eef412d..d08f2c9 100644
--- a/tests/robotests/src/com/android/car/settings/testutils/ShadowUserManager.java
+++ b/tests/robotests/src/com/android/car/settings/testutils/ShadowUserManager.java
@@ -54,7 +54,6 @@
     }
 
     @Implementation
-    @Override
     protected List<UserInfo> getProfiles(int userHandle) {
         if (mProfiles.containsKey(userHandle)) {
             return new ArrayList<>(mProfiles.get(userHandle));
diff --git a/tests/robotests/src/com/android/car/settings/testutils/ShadowWifiManager.java b/tests/robotests/src/com/android/car/settings/testutils/ShadowWifiManager.java
index 77a8703..2b5d46f 100644
--- a/tests/robotests/src/com/android/car/settings/testutils/ShadowWifiManager.java
+++ b/tests/robotests/src/com/android/car/settings/testutils/ShadowWifiManager.java
@@ -27,7 +27,7 @@
 import java.util.LinkedHashMap;
 import java.util.Map;
 
-@Implements(value = WifiManager.class, inheritImplementationMethods = true)
+@Implements(WifiManager.class)
 public class ShadowWifiManager extends org.robolectric.shadows.ShadowWifiManager {
 
     private static int sResetCalledCount = 0;
@@ -38,7 +38,7 @@
 
     @Implementation
     @Override
-    public int addNetwork(WifiConfiguration config) {
+    protected int addNetwork(WifiConfiguration config) {
         int networkId = mNetworkIdToConfiguredNetworks.size();
         config.networkId = -1;
         mNetworkIdToConfiguredNetworks.put(networkId, makeCopy(config, networkId));
diff --git a/tests/robotests/src/com/android/car/settings/tts/TtsPlaybackSettingsManagerTest.java b/tests/robotests/src/com/android/car/settings/tts/TtsPlaybackSettingsManagerTest.java
index 4f22600..3df09dd 100644
--- a/tests/robotests/src/com/android/car/settings/tts/TtsPlaybackSettingsManagerTest.java
+++ b/tests/robotests/src/com/android/car/settings/tts/TtsPlaybackSettingsManagerTest.java
@@ -80,8 +80,8 @@
     public void tearDown() {
         ShadowTextToSpeech.reset();
         ShadowTtsEngines.reset();
-        ShadowSecureSettings.reset();
         ShadowAlertDialog.reset();
+        ShadowSecureSettings.reset();
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/car/settings/wifi/ButtonPasswordEditTextPreferenceTest.java b/tests/robotests/src/com/android/car/settings/wifi/ButtonPasswordEditTextPreferenceTest.java
index 4ed3a57..198a4cb 100644
--- a/tests/robotests/src/com/android/car/settings/wifi/ButtonPasswordEditTextPreferenceTest.java
+++ b/tests/robotests/src/com/android/car/settings/wifi/ButtonPasswordEditTextPreferenceTest.java
@@ -20,6 +20,8 @@
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
 
+import android.content.Context;
+import android.view.ContextThemeWrapper;
 import android.view.View;
 
 import androidx.preference.PreferenceViewHolder;
@@ -40,7 +42,9 @@
 
     @Before
     public void setUp() {
-        View rootView = View.inflate(RuntimeEnvironment.application, R.layout.two_action_preference,
+        Context context = RuntimeEnvironment.application;
+        Context themedContext = new ContextThemeWrapper(context, R.style.CarSettingTheme);
+        View rootView = View.inflate(themedContext, R.layout.two_action_preference, /* root= */
                 null);
         mViewHolder = PreferenceViewHolder.createInstanceForTests(rootView);
         mButtonPreference = new ButtonPasswordEditTextPreference(RuntimeEnvironment.application);
