diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 29f69b8..4bb1a8c 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -100,6 +100,7 @@
     <uses-permission android:name="android.permission.USE_RESERVED_DISK" />
     <uses-permission android:name="android.permission.MANAGE_SCOPED_ACCESS_DIRECTORY_PERMISSIONS" />
     <uses-permission android:name="android.permission.CAMERA" />
+    <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />
 
     <application android:label="@string/settings_label"
             android:icon="@drawable/ic_launcher_settings"
@@ -1244,6 +1245,10 @@
                 <action android:name="android.settings.PRIVACY_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
+            <intent-filter android:priority="1">
+                <action android:name="android.settings.REQUEST_ENABLE_CONTENT_CAPTURE" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.privacy.PrivacyDashboardFragment" />
         </activity>
@@ -1574,19 +1579,12 @@
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="com.android.settings.suggested.category.FINGERPRINT_ENROLL" />
             </intent-filter>
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="com.android.settings.suggested.category.FIRST_IMPRESSION" />
-            </intent-filter>
-            <meta-data android:name="com.android.settings.dismiss"
-                android:value="5,9,30" />
             <meta-data android:name="com.android.settings.require_feature"
                 android:value="android.hardware.fingerprint" />
             <meta-data android:name="com.android.settings.title"
                 android:resource="@string/suggestion_additional_fingerprints" />
             <meta-data android:name="com.android.settings.summary"
                 android:resource="@string/suggestion_additional_fingerprints_summary" />
-            <meta-data android:name="com.android.settings.icon_tintable" android:value="true" />
         </activity>
 
         <!-- Note this must not be exported since it returns the password in the intent -->
@@ -1650,8 +1648,7 @@
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="com.android.settings.suggested.category.FIRST_IMPRESSION" />
             </intent-filter>
-            <meta-data android:name="com.android.settings.dismiss"
-                       android:value="2,6,30" />
+            <meta-data android:name="com.android.settings.dismiss" android:value="2," />
             <meta-data android:name="com.android.settings.require_feature"
                 android:value="android.hardware.fingerprint" />
             <meta-data android:name="com.android.settings.title"
@@ -3028,11 +3025,15 @@
                      <category android:name="android.intent.category.DEFAULT" />
                  </intent-filter>
                 <intent-filter>
-                    <action android:name="android.settings.panel.action.VOLUME" />
+                    <action android:name="android.settings.panel.action.NFC" />
                     <category android:name="android.intent.category.DEFAULT" />
                 </intent-filter>
                 <intent-filter>
-                    <action android:name="android.settings.panel.action.NFC" />
+                    <action android:name="android.settings.panel.action.WIFI" />
+                    <category android:name="android.intent.category.DEFAULT" />
+                </intent-filter>
+                <intent-filter>
+                    <action android:name="android.settings.panel.action.VOLUME" />
                     <category android:name="android.intent.category.DEFAULT" />
                 </intent-filter>
         </activity>
@@ -3123,6 +3124,18 @@
 
         <activity android:name=".homepage.contextualcards.ContextualCardFeedbackDialog"
                   android:theme="@android:style/Theme.DeviceDefault.Light.Dialog.Alert" />
+
+        <activity
+            android:name="Settings$WifiCallingDisclaimerActivity"
+            android:label="@string/wifi_calling_settings_title"
+            android:taskAffinity="com.android.settings">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+                android:value="com.android.settings.wifi.calling.WifiCallingDisclaimerFragment" />
+        </activity>
         <!-- This is the longest AndroidManifest.xml ever. -->
     </application>
 </manifest>
diff --git a/color-check-baseline.xml b/color-check-baseline.xml
index e9f8d58..7074481 100644
--- a/color-check-baseline.xml
+++ b/color-check-baseline.xml
@@ -37,54 +37,6 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="            android:textColor=&quot;@color/bluetooth_dialog_text_color&quot;  />"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/bluetooth_pin_confirm.xml"
-            line="44"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="            android:textColor=&quot;@color/bluetooth_dialog_text_color&quot;"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/bluetooth_pin_confirm.xml"
-            line="67"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="            android:textColor=&quot;@color/bluetooth_dialog_text_color&quot;  />"
-        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/layout/bluetooth_pin_confirm.xml"
-            line="77"
-            column="13"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
         errorLine1="                android:background=&quot;@color/lock_pattern_background&quot; />"
         errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -101,22 +53,6 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;black&quot;>#000&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="18"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
         errorLine1="  &lt;color name=&quot;switch_bar_background&quot;>#dadce0&lt;/color>"
         errorLine2="  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -133,8 +69,8 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;red&quot;>#F00&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="    &lt;color name=&quot;crypt_keeper_clock_background&quot;>#ff9a9a9a&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
             line="19"
@@ -165,8 +101,8 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;blue&quot;>#00F&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="    &lt;color name=&quot;crypt_keeper_clock_foreground&quot;>#ff666666&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
             line="20"
@@ -181,6 +117,22 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="    &lt;color name=&quot;crypt_keeper_clock_am_pm&quot;>#ff9a9a9a&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="21"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
         errorLine1="  &lt;color name=&quot;homepage_accessibility_background&quot;>#783BE5&lt;/color>"
         errorLine2="  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
@@ -197,8 +149,8 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;bluetooth_dialog_text_color&quot;>#8a000000&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="    &lt;color name=&quot;crypt_keeper_password_background&quot;>#70606060&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
             line="22"
@@ -229,8 +181,8 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;crypt_keeper_clock_background&quot;>#ff9a9a9a&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="    &lt;color name=&quot;divider_color&quot;>#20ffffff&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
             line="24"
@@ -261,75 +213,11 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;crypt_keeper_clock_foreground&quot;>#ff666666&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="25"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;crypt_keeper_clock_am_pm&quot;>#ff9a9a9a&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="26"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;crypt_keeper_password_background&quot;>#70606060&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="27"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;divider_color&quot;>#20ffffff&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/values/colors.xml"
-            line="29"
-            column="5"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
         errorLine1="    &lt;color name=&quot;setup_lock_pattern_view_success_color_dark&quot;>#ff84ffff&lt;/color>"
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="32"
+            line="27"
             column="5"/>
     </issue>
 
@@ -345,7 +233,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="34"
+            line="29"
             column="5"/>
     </issue>
 
@@ -361,7 +249,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="35"
+            line="30"
             column="5"/>
     </issue>
 
@@ -377,7 +265,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="36"
+            line="31"
             column="5"/>
     </issue>
 
@@ -393,7 +281,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="38"
+            line="33"
             column="5"/>
     </issue>
 
@@ -409,7 +297,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="39"
+            line="34"
             column="5"/>
     </issue>
 
@@ -425,7 +313,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="41"
+            line="36"
             column="5"/>
     </issue>
 
@@ -441,7 +329,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="46"
+            line="41"
             column="5"/>
     </issue>
 
@@ -457,7 +345,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="47"
+            line="42"
             column="5"/>
     </issue>
 
@@ -473,7 +361,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="49"
+            line="44"
             column="5"/>
     </issue>
 
@@ -489,7 +377,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="50"
+            line="45"
             column="5"/>
     </issue>
 
@@ -505,7 +393,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="54"
+            line="49"
             column="5"/>
     </issue>
 
@@ -521,7 +409,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="57"
+            line="52"
             column="5"/>
     </issue>
 
@@ -537,7 +425,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="60"
+            line="55"
             column="5"/>
     </issue>
 
@@ -553,7 +441,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="61"
+            line="56"
             column="5"/>
     </issue>
 
@@ -569,7 +457,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="62"
+            line="57"
             column="5"/>
     </issue>
 
@@ -585,7 +473,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="63"
+            line="58"
             column="5"/>
     </issue>
 
@@ -597,11 +485,11 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;color name=&quot;switch_bar_background&quot;>#ff80868B&lt;/color>"
-        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="    &lt;color name=&quot;switch_bar_background&quot;>#757575&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="64"
+            line="59"
             column="5"/>
     </issue>
 
@@ -617,7 +505,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="66"
+            line="61"
             column="5"/>
     </issue>
 
@@ -633,7 +521,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="67"
+            line="62"
             column="5"/>
     </issue>
 
@@ -649,7 +537,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="68"
+            line="63"
             column="5"/>
     </issue>
 
@@ -665,7 +553,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="69"
+            line="64"
             column="5"/>
     </issue>
 
@@ -681,7 +569,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="70"
+            line="65"
             column="5"/>
     </issue>
 
@@ -697,7 +585,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="71"
+            line="66"
             column="5"/>
     </issue>
 
@@ -713,7 +601,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="72"
+            line="67"
             column="5"/>
     </issue>
 
@@ -729,7 +617,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="73"
+            line="68"
             column="5"/>
     </issue>
 
@@ -745,7 +633,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="74"
+            line="69"
             column="5"/>
     </issue>
 
@@ -761,7 +649,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="75"
+            line="70"
             column="5"/>
     </issue>
 
@@ -777,7 +665,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="76"
+            line="71"
             column="5"/>
     </issue>
 
@@ -793,7 +681,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="78"
+            line="73"
             column="5"/>
     </issue>
 
@@ -809,7 +697,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="81"
+            line="76"
             column="5"/>
     </issue>
 
@@ -825,7 +713,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="84"
+            line="79"
             column="5"/>
     </issue>
 
@@ -841,7 +729,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="87"
+            line="82"
             column="5"/>
     </issue>
 
@@ -857,7 +745,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="90"
+            line="85"
             column="5"/>
     </issue>
 
@@ -873,7 +761,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="91"
+            line="86"
             column="5"/>
     </issue>
 
@@ -889,7 +777,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="92"
+            line="87"
             column="5"/>
     </issue>
 
@@ -905,7 +793,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="93"
+            line="88"
             column="5"/>
     </issue>
 
@@ -921,7 +809,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="94"
+            line="89"
             column="5"/>
     </issue>
 
@@ -937,7 +825,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="95"
+            line="90"
             column="5"/>
     </issue>
 
@@ -953,7 +841,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="96"
+            line="91"
             column="5"/>
     </issue>
 
@@ -969,7 +857,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="97"
+            line="92"
             column="5"/>
     </issue>
 
@@ -985,7 +873,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="98"
+            line="93"
             column="5"/>
     </issue>
 
@@ -1001,7 +889,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="99"
+            line="94"
             column="5"/>
     </issue>
 
@@ -1017,7 +905,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="100"
+            line="95"
             column="5"/>
     </issue>
 
@@ -1033,7 +921,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="101"
+            line="96"
             column="5"/>
     </issue>
 
@@ -1049,7 +937,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="102"
+            line="97"
             column="5"/>
     </issue>
 
@@ -1065,7 +953,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="103"
+            line="98"
             column="5"/>
     </issue>
 
@@ -1081,7 +969,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="104"
+            line="99"
             column="5"/>
     </issue>
 
@@ -1097,7 +985,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="105"
+            line="100"
             column="5"/>
     </issue>
 
@@ -1113,7 +1001,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="106"
+            line="102"
             column="5"/>
     </issue>
 
@@ -1129,7 +1017,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="110"
+            line="108"
             column="5"/>
     </issue>
 
@@ -1145,7 +1033,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="115"
+            line="113"
             column="5"/>
     </issue>
 
@@ -1161,7 +1049,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="116"
+            line="114"
             column="5"/>
     </issue>
 
@@ -1177,7 +1065,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="117"
+            line="115"
             column="5"/>
     </issue>
 
@@ -1193,7 +1081,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="118"
+            line="116"
             column="5"/>
     </issue>
 
@@ -1209,7 +1097,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="119"
+            line="117"
             column="5"/>
     </issue>
 
@@ -1225,7 +1113,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="120"
+            line="118"
             column="5"/>
     </issue>
 
@@ -1241,7 +1129,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="123"
+            line="121"
             column="5"/>
     </issue>
 
@@ -1257,7 +1145,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="124"
+            line="122"
             column="5"/>
     </issue>
 
@@ -1273,7 +1161,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="125"
+            line="123"
             column="5"/>
     </issue>
 
@@ -1289,7 +1177,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="126"
+            line="124"
             column="5"/>
     </issue>
 
@@ -1305,7 +1193,55 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="127"
+            line="125"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="    &lt;color name=&quot;notification_block_color&quot;>#ffff0000&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="128"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="    &lt;color name=&quot;notification_silence_color&quot;>#fbbc04&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="129"
+            column="5"/>
+    </issue>
+
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="    &lt;color name=&quot;notification_alert_color&quot;>#30a751&lt;/color>"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="130"
             column="5"/>
     </issue>
 
@@ -1321,7 +1257,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="133"
+            line="136"
             column="5"/>
     </issue>
 
@@ -1337,7 +1273,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="136"
+            line="139"
             column="5"/>
     </issue>
 
@@ -1353,7 +1289,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="137"
+            line="140"
             column="5"/>
     </issue>
 
@@ -1369,7 +1305,7 @@
         errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/colors.xml"
-            line="138"
+            line="141"
             column="5"/>
     </issue>
 
@@ -1653,12 +1589,12 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="                android:color=&quot;@color/homepage_about_background&quot; />"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="            android:color=&quot;@color/homepage_about_background&quot; />"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/drawable/ic_homepage_about.xml"
-            line="23"
-            column="17"/>
+            line="24"
+            column="13"/>
     </issue>
 
     <issue
@@ -1669,12 +1605,12 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="                android:color=&quot;@color/homepage_accessibility_background&quot; />"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="            android:color=&quot;@color/homepage_accessibility_background&quot; />"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/drawable/ic_homepage_accessibility.xml"
-            line="23"
-            column="17"/>
+            line="24"
+            column="13"/>
     </issue>
 
     <issue
@@ -1685,12 +1621,12 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="                android:color=&quot;@color/homepage_accessibility_background&quot; />"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="            android:color=&quot;@color/homepage_accessibility_background&quot; />"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/drawable/ic_homepage_accessibility.xml"
-            line="23"
-            column="17"/>
+            line="24"
+            column="13"/>
     </issue>
 
     <issue
@@ -1701,12 +1637,12 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="                android:color=&quot;@color/homepage_accounts_background&quot; />"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="            android:color=&quot;@color/homepage_accounts_background&quot; />"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/drawable/ic_homepage_accounts.xml"
-            line="23"
-            column="17"/>
+            line="24"
+            column="13"/>
     </issue>
 
     <issue
@@ -1717,12 +1653,12 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="                android:color=&quot;@color/homepage_app_and_notification_background&quot; />"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="            android:color=&quot;@color/homepage_app_and_notification_background&quot; />"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/drawable/ic_homepage_apps.xml"
-            line="23"
-            column="17"/>
+            line="24"
+            column="13"/>
     </issue>
 
     <issue
@@ -1733,12 +1669,12 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="                android:color=&quot;@color/homepage_battery_background&quot; />"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="            android:color=&quot;@color/homepage_battery_background&quot; />"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/drawable/ic_homepage_battery.xml"
-            line="23"
-            column="17"/>
+            line="24"
+            column="13"/>
     </issue>
 
     <issue
@@ -1749,12 +1685,12 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="                android:color=&quot;@color/homepage_connected_device_background&quot; />"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="            android:color=&quot;@color/homepage_connected_device_background&quot; />"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/drawable/ic_homepage_connected_device.xml"
-            line="23"
-            column="17"/>
+            line="24"
+            column="13"/>
     </issue>
 
     <issue
@@ -1765,12 +1701,12 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="                android:color=&quot;@color/homepage_display_background&quot; />"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="            android:color=&quot;@color/homepage_display_background&quot; />"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/drawable/ic_homepage_display.xml"
-            line="23"
-            column="17"/>
+            line="24"
+            column="13"/>
     </issue>
 
     <issue
@@ -1781,28 +1717,12 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="        android:color=&quot;@color/homepage_generic_icon_background&quot; />"
-        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-        <location
-            file="res/drawable/ic_homepage_generic_background.xml"
-            line="20"
-            column="9"/>
-    </issue>
-
-    <issue
-        id="HardCodedColor"
-        severity="Error"
-        message="Avoid using hardcoded color"
-        category="Correctness"
-        priority="4"
-        summary="Using hardcoded color"
-        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="                android:color=&quot;@color/homepage_location_background&quot;/>"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="            android:color=&quot;@color/homepage_location_background&quot; />"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/drawable/ic_homepage_location.xml"
-            line="23"
-            column="17"/>
+            line="24"
+            column="13"/>
     </issue>
 
     <issue
@@ -1813,12 +1733,12 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="                android:color=&quot;@color/homepage_network_background&quot; />"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="            android:color=&quot;@color/homepage_network_background&quot; />"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/drawable/ic_homepage_network.xml"
-            line="23"
-            column="17"/>
+            line="24"
+            column="13"/>
     </issue>
 
     <issue
@@ -1829,12 +1749,12 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="                android:color=&quot;@color/homepage_privacy_background&quot;/>"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="            android:color=&quot;@color/homepage_privacy_background&quot; />"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/drawable/ic_homepage_privacy.xml"
-            line="23"
-            column="17"/>
+            line="24"
+            column="13"/>
     </issue>
 
     <issue
@@ -1845,12 +1765,12 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="                android:color=&quot;@color/homepage_security_background&quot; />"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="            android:color=&quot;@color/homepage_security_background&quot; />"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/drawable/ic_homepage_security.xml"
-            line="23"
-            column="17"/>
+            line="24"
+            column="13"/>
     </issue>
 
     <issue
@@ -1861,12 +1781,12 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="                android:color=&quot;@color/homepage_sound_background&quot; />"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="            android:color=&quot;@color/homepage_sound_background&quot; />"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/drawable/ic_homepage_sound.xml"
-            line="23"
-            column="17"/>
+            line="24"
+            column="13"/>
     </issue>
 
     <issue
@@ -1877,12 +1797,12 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="                android:color=&quot;@color/homepage_storage_background&quot; />"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="            android:color=&quot;@color/homepage_storage_background&quot; />"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/drawable/ic_homepage_storage.xml"
-            line="23"
-            column="17"/>
+            line="24"
+            column="13"/>
     </issue>
 
     <issue
@@ -1893,12 +1813,12 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="                android:color=&quot;@color/homepage_support_background&quot; />"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="            android:color=&quot;@color/homepage_support_background&quot; />"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/drawable/ic_homepage_support.xml"
-            line="23"
-            column="17"/>
+            line="24"
+            column="13"/>
     </issue>
 
     <issue
@@ -1909,12 +1829,12 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="                android:color=&quot;@color/homepage_support_background&quot; />"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="            android:color=&quot;@color/homepage_support_background&quot; />"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/drawable/ic_homepage_support.xml"
-            line="23"
-            column="17"/>
+            line="24"
+            column="13"/>
     </issue>
 
     <issue
@@ -1925,11 +1845,107 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="                android:color=&quot;@color/homepage_system_background&quot; />"
-        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        errorLine1="            android:color=&quot;@color/homepage_system_background&quot; />"
+        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/drawable/ic_homepage_system_dashboard.xml"
-            line="23"
+            line="24"
+            column="13"/>
+    </issue>
+
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="                    android:color=&quot;@color/notification_alert_color&quot;/>"
+        errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/drawable/ic_notification_alert.xml"
+            line="27"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="                android:fillColor=&quot;@color/notification_alert_color&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/drawable/ic_notification_alert.xml"
+            line="39"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="                    android:color=&quot;@color/notification_block_color&quot;/>"
+        errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/drawable/ic_notification_block.xml"
+            line="27"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="                android:fillColor=&quot;@color/notification_block_color&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/drawable/ic_notification_block.xml"
+            line="39"
+            column="17"/>
+    </issue>
+
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="                    android:color=&quot;@color/notification_silence_color&quot;/>"
+        errorLine2="                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/drawable/ic_notification_silence.xml"
+            line="27"
+            column="21"/>
+    </issue>
+
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="                android:fillColor=&quot;@color/notification_silence_color&quot;"
+        errorLine2="                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/drawable/ic_notification_silence.xml"
+            line="39"
             column="17"/>
     </issue>
 
@@ -2437,12 +2453,12 @@
         priority="4"
         summary="Using hardcoded color"
         explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
-        errorLine1="    &lt;string name=&quot;sync_plug&quot; msgid=&quot;3905078969081888738&quot;>&quot;‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‎‎‏‏‎‎‎‏‏‎‏‎‎‎‎‎‏‎‏‎‎‎‎‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‎‎‏‏‎&quot;&lt;font fgcolor=&quot;#ffffffff&quot;>&quot;‎‏‎‎‏‏‏‎Welcome to Google sync!‎‏‎‎‏‏‎&quot;&lt;/font>&quot;‎‏‎‎‏‏‏‎ ‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎A Google approach to syncing data to allow access to your contacts, appointments, and more from wherever you are.‎‏‎‎‏‎&quot;&lt;/string>"
-        errorLine2="                                                                                                                                                                       ~~~~~~~~~~~~~~~~~~~">
+        errorLine1="    &lt;string name=&quot;sync_plug&quot; msgid=&quot;3905078969081888738&quot;>&quot;‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‎‎‏‏‎‎‎‏‏‎‏‎‎‎‎‎‏‎‏‎‎‎‎‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‎‎‏‏‎&quot;&lt;font fgcolor=&quot;#ffffffff&quot;>&quot;‎‏‎‎‏‏‏‎Welcome to Google sync!‎‏‎‎‏‏‎&quot;&lt;/font>&quot;‎‏‎‎‏‏‏‎ ‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎A Google approach to syncing data to allow access to your contacts, appointments, and more from wherever you are.‎‏‎‎‏‎&quot;&lt;/string>"
+        errorLine2="                                                                                                                                                                        ~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values-en-rXC/strings.xml"
-            line="2533"
-            column="168"/>
+            line="2580"
+            column="169"/>
     </issue>
 
     <issue
@@ -2457,7 +2473,7 @@
         errorLine2="                                                               ~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values-en-rAU/strings.xml"
-            line="2534"
+            line="2581"
             column="64"/>
     </issue>
 
@@ -2473,7 +2489,7 @@
         errorLine2="                                                               ~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values-en-rCA/strings.xml"
-            line="2534"
+            line="2581"
             column="64"/>
     </issue>
 
@@ -2489,7 +2505,7 @@
         errorLine2="                                                               ~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values-en-rGB/strings.xml"
-            line="2534"
+            line="2581"
             column="64"/>
     </issue>
 
@@ -2505,7 +2521,7 @@
         errorLine2="                                                               ~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values-en-rIN/strings.xml"
-            line="2534"
+            line="2581"
             column="64"/>
     </issue>
 
@@ -2521,7 +2537,7 @@
         errorLine2="                                   ~~~~~~~~~~~~~~~~~~~">
         <location
             file="res/values/strings.xml"
-            line="5885"
+            line="6026"
             column="36"/>
     </issue>
 
@@ -2537,7 +2553,7 @@
         errorLine2="                                        ^">
         <location
             file="res/values/styles.xml"
-            line="174"
+            line="163"
             column="41"/>
     </issue>
 
@@ -2553,7 +2569,7 @@
         errorLine2="                                           ^">
         <location
             file="res/values/styles.xml"
-            line="388"
+            line="380"
             column="44"/>
     </issue>
 
@@ -2569,7 +2585,7 @@
         errorLine2="                                           ^">
         <location
             file="res/values/styles.xml"
-            line="394"
+            line="386"
             column="44"/>
     </issue>
 
@@ -2585,7 +2601,7 @@
         errorLine2="                                           ^">
         <location
             file="res/values/styles.xml"
-            line="395"
+            line="387"
             column="44"/>
     </issue>
 
@@ -2601,7 +2617,7 @@
         errorLine2="                                 ^">
         <location
             file="res/values/styles.xml"
-            line="430"
+            line="423"
             column="34"/>
     </issue>
 
@@ -2729,7 +2745,7 @@
         errorLine2="                                            ^">
         <location
             file="res/values/themes.xml"
-            line="166"
+            line="169"
             column="45"/>
     </issue>
 
@@ -2745,7 +2761,7 @@
         errorLine2="                                                ^">
         <location
             file="res/values/themes.xml"
-            line="167"
+            line="170"
             column="49"/>
     </issue>
 
@@ -2761,7 +2777,7 @@
         errorLine2="                                            ^">
         <location
             file="res/values/themes.xml"
-            line="175"
+            line="178"
             column="45"/>
     </issue>
 
@@ -2777,7 +2793,7 @@
         errorLine2="                                                ^">
         <location
             file="res/values/themes.xml"
-            line="176"
+            line="179"
             column="49"/>
     </issue>
 
@@ -2793,7 +2809,7 @@
         errorLine2="                                      ^">
         <location
             file="res/values/themes.xml"
-            line="192"
+            line="195"
             column="39"/>
     </issue>
 
@@ -2809,7 +2825,7 @@
         errorLine2="                                       ^">
         <location
             file="res/values/themes.xml"
-            line="193"
+            line="196"
             column="40"/>
     </issue>
 
@@ -2825,7 +2841,7 @@
         errorLine2="                                     ^">
         <location
             file="res/values/themes.xml"
-            line="194"
+            line="197"
             column="38"/>
     </issue>
 
diff --git a/res/drawable/ic_face_header.xml b/res/drawable/ic_face_header.xml
index 4493d66..15ea7ae 100644
--- a/res/drawable/ic_face_header.xml
+++ b/res/drawable/ic_face_header.xml
@@ -1,4 +1,4 @@
-<!--
+<?xml version="1.0" encoding="utf-8"?><!--
   ~ Copyright (C) 2018 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
@@ -15,9 +15,17 @@
   -->
 
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:height="24dp"
-    android:width="24dp"
-    android:viewportWidth="24"
-    android:viewportHeight="24">
-    <path android:fillColor="#000" android:pathData="M9,11.75A1.25,1.25 0 0,0 7.75,13A1.25,1.25 0 0,0 9,14.25A1.25,1.25 0 0,0 10.25,13A1.25,1.25 0 0,0 9,11.75M15,11.75A1.25,1.25 0 0,0 13.75,13A1.25,1.25 0 0,0 15,14.25A1.25,1.25 0 0,0 16.25,13A1.25,1.25 0 0,0 15,11.75M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20C7.59,20 4,16.41 4,12C4,11.71 4,11.42 4.05,11.14C6.41,10.09 8.28,8.16 9.26,5.77C11.07,8.33 14.05,10 17.42,10C18.2,10 18.95,9.91 19.67,9.74C19.88,10.45 20,11.21 20,12C20,16.41 16.41,20 12,20Z" />
+    android:width="32dp"
+    android:height="32dp"
+    android:tint="?android:attr/colorPrimary"
+    android:viewportHeight="24"
+    android:viewportWidth="24">
+
+    <path
+        android:fillColor="#000000"
+        android:pathData="M 12 13 C 13.1045694997 13 14 13.8954305003 14 15 C 14 16.1045694997 13.1045694997 17 12 17 C 10.8954305003 17 10 16.1045694997 10 15 C 10 13.8954305003 10.8954305003 13 12 13 Z" />
+    <path
+        android:fillColor="#000000"
+        android:pathData="M18.5,1C16.01,1,14,3.01,14,5.5V8H6c-1.1,0-2,0.9-2,2v10c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2V10c0-1.1-0.9-2-2-2h-2V5.5 C16,4.12,17.12,3,18.5,3C19.88,3,21,4.12,21,5.5V6h2V5.5C23,3.01,20.99,1,18.5,1z M18,10v10H6V10H18z" />
+    <path android:pathData="M0,0h24v24H0V0z" />
 </vector>
\ No newline at end of file
diff --git a/res/drawable/ic_notification_alert.xml b/res/drawable/ic_notification_alert.xml
new file mode 100644
index 0000000..07e7b48
--- /dev/null
+++ b/res/drawable/ic_notification_alert.xml
@@ -0,0 +1,43 @@
+<?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.
+-->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item
+        android:id="@+id/back">
+        <shape android:shape="oval">
+            <solid
+                android:color="@android:color/transparent" />
+            <size
+                android:height="48dp"
+                android:width="48dp"/>
+            <stroke android:width="1dp"
+                    android:color="@color/notification_alert_color"/>
+        </shape>
+    </item>
+    <item
+        android:id="@+id/fore"
+        android:gravity="center">
+        <vector
+            android:height="24dp"
+            android:width="24dp"
+            android:viewportHeight="24"
+            android:viewportWidth="24">
+            <path
+                android:fillColor="@color/notification_alert_color"
+                android:pathData="M7.58 4.08L6.15 2.65C3.75 4.48 2.17 7.3 2.03 10.5h2c.15-2.65 1.51-4.97 3.55-6.42zm12.39 6.42h2c-.15-3.2-1.73-6.02-4.12-7.85l-1.42 1.43c2.02 1.45 3.39 3.77 3.54 6.42zM18 11c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2v-5zm-6 11c.14 0 .27-.01.4-.04.65-.14 1.18-.58 1.44-1.18.1-.24.15-.5.15-.78h-4c.01 1.1.9 2 2.01 2z"/>
+        </vector>
+    </item>
+</layer-list>
\ No newline at end of file
diff --git a/res/drawable/ic_notification_block.xml b/res/drawable/ic_notification_block.xml
new file mode 100644
index 0000000..d4f0a2a
--- /dev/null
+++ b/res/drawable/ic_notification_block.xml
@@ -0,0 +1,43 @@
+<?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.
+-->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item
+        android:id="@+id/back">
+        <shape android:shape="oval">
+            <solid
+                android:color="@android:color/transparent" />
+            <size
+                android:height="48dp"
+                android:width="48dp"/>
+            <stroke android:width="1dp"
+                    android:color="@color/notification_block_color"/>
+        </shape>
+    </item>
+    <item
+        android:id="@+id/fore"
+        android:gravity="center">
+        <vector
+            android:height="24dp"
+            android:width="24dp"
+            android:viewportHeight="24"
+            android:viewportWidth="24">
+            <path
+                android:fillColor="@color/notification_block_color"
+                android:pathData="M12.0,2.0C6.48,2.0 2.0,6.48 2.0,12.0s4.48,10.0 10.0,10.0 10.0,-4.48 10.0,-10.0S17.52,2.0 12.0,2.0zM4.0,12.0c0.0,-4.42 3.58,-8.0 8.0,-8.0 1.85,0.0 3.5,0.63 4.9,1.69L5.69,16.9C4.63,15.55 4.0,13.85 4.0,12.0zm8.0,8.0c-1.85,0.0 -3.55,-0.63 -4.9,-1.69L18.31,7.1C19.37,8.45 20.0,10.15 20.0,12.0c0.0,4.42 -3.58,8.0 -8.0,8.0z"/>
+        </vector>
+    </item>
+</layer-list>
\ No newline at end of file
diff --git a/res/drawable/ic_notification_silence.xml b/res/drawable/ic_notification_silence.xml
new file mode 100644
index 0000000..673340f
--- /dev/null
+++ b/res/drawable/ic_notification_silence.xml
@@ -0,0 +1,43 @@
+<?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.
+-->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item
+        android:id="@+id/back">
+        <shape android:shape="oval">
+            <solid
+                android:color="@android:color/transparent" />
+            <size
+                android:height="48dp"
+                android:width="48dp"/>
+            <stroke android:width="1dp"
+                    android:color="@color/notification_silence_color"/>
+        </shape>
+    </item>
+    <item
+        android:id="@+id/fore"
+        android:gravity="center">
+        <vector
+            android:height="24dp"
+            android:width="24dp"
+            android:viewportHeight="24"
+            android:viewportWidth="24">
+            <path
+                android:fillColor="@color/notification_silence_color"
+                android:pathData="M20 18.69L7.84 6.14 5.27 3.49 4 4.76l2.8 2.8v.01c-.52.99-.8 2.16-.8 3.42v5l-2 2v1h13.73l2 2L21 19.72l-1-1.03zM12 22c1.11 0 2-.89 2-2h-4c0 1.11.89 2 2 2zm6-7.32V11c0-3.08-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68c-.15.03-.29.08-.42.12-.1.03-.2.07-.3.11h-.01c-.01 0-.01 0-.02.01-.23.09-.46.2-.68.31 0 0-.01 0-.01.01L18 14.68z" />
+        </vector>
+    </item>
+</layer-list>
\ No newline at end of file
diff --git a/res/layout/homepage_condition_full_tile.xml b/res/layout/homepage_condition_full_tile.xml
index 3d261ca..e90a0cb 100644
--- a/res/layout/homepage_condition_full_tile.xml
+++ b/res/layout/homepage_condition_full_tile.xml
@@ -30,7 +30,7 @@
             android:id="@+id/content"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:paddingStart="@dimen/homepage_card_padding_start"
+            android:paddingStart="@dimen/homepage_card_icon_padding_start"
             android:paddingEnd="@dimen/homepage_full_card_padding_end"
             android:paddingTop="@dimen/homepage_condition_full_card_padding_top"
             android:paddingBottom="@dimen/homepage_condition_full_card_padding_bottom"
diff --git a/res/layout/homepage_condition_half_tile.xml b/res/layout/homepage_condition_half_tile.xml
index 308b3a6..1086f2d 100644
--- a/res/layout/homepage_condition_half_tile.xml
+++ b/res/layout/homepage_condition_half_tile.xml
@@ -31,7 +31,6 @@
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:paddingStart="@dimen/homepage_card_padding_start"
             android:paddingEnd="@dimen/homepage_card_padding_end"
             android:orientation="vertical">
 
@@ -39,6 +38,7 @@
                 android:id="@android:id/icon"
                 android:layout_width="@dimen/homepage_card_icon_size"
                 android:layout_height="@dimen/homepage_card_icon_size"
+                android:layout_marginStart="@dimen/homepage_card_icon_padding_start"
                 android:tint="?android:attr/colorAccent"/>
 
             <TextView
@@ -47,6 +47,7 @@
                 android:layout_height="wrap_content"
                 android:maxLines="1"
                 android:ellipsize="end"
+                android:layout_marginStart="@dimen/homepage_card_text_padding_start"
                 android:layout_marginTop="@dimen/homepage_condition_half_card_title_margin_top"
                 android:layout_marginBottom="@dimen/homepage_condition_card_title_margin_bottom"
                 android:textAppearance="@style/TextAppearance.ConditionCardTitle"/>
@@ -57,6 +58,7 @@
                 android:layout_height="wrap_content"
                 android:lines="2"
                 android:ellipsize="end"
+                android:layout_marginStart="@dimen/homepage_card_text_padding_start"
                 android:layout_marginBottom="@dimen/homepage_condition_half_card_summary_margin_bottom"
                 android:textAppearance="@style/TextAppearance.ConditionCardSummary"/>
 
diff --git a/res/layout/homepage_condition_header.xml b/res/layout/homepage_condition_header.xml
index a2796ec..5460be9 100644
--- a/res/layout/homepage_condition_header.xml
+++ b/res/layout/homepage_condition_header.xml
@@ -45,7 +45,8 @@
             android:paddingTop="@dimen/homepage_condition_header_indicator_padding_top"
             android:paddingStart="@dimen/homepage_condition_header_indicator_padding_start"
             android:paddingEnd="@dimen/homepage_condition_header_indicator_padding_end"
-            android:src="@*android:drawable/ic_expand_more"/>
+            android:src="@drawable/ic_expand_more_inverse"
+            android:tint="?android:attr/colorControlNormal"/>
 
     </LinearLayout>
 
diff --git a/res/layout/homepage_slice_deferred_setup_tile.xml b/res/layout/homepage_slice_deferred_setup_tile.xml
index 73199d4..ed096b0 100644
--- a/res/layout/homepage_slice_deferred_setup_tile.xml
+++ b/res/layout/homepage_slice_deferred_setup_tile.xml
@@ -21,59 +21,52 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content">
 
-    <ViewFlipper
-        android:id="@+id/view_flipper"
+    <LinearLayout
+        android:id="@+id/content"
         android:layout_width="match_parent"
-        android:layout_height="match_parent">
+        android:layout_height="match_parent"
+        android:gravity="left"
+        android:orientation="vertical"
+        android:paddingEnd="@dimen/homepage_card_padding_end"
+        android:paddingTop="@dimen/homepage_deferred_setup_card_padding_top"
+        android:paddingBottom="@dimen/homepage_deferred_setup_card_padding_bottom">
 
-        <LinearLayout
-            android:id="@+id/content"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:gravity="left"
-            android:orientation="vertical"
-            android:paddingStart="@dimen/homepage_card_padding_start"
-            android:paddingEnd="@dimen/homepage_card_padding_end"
-            android:paddingTop="@dimen/homepage_deferred_setup_card_padding_top"
-            android:paddingBottom="@dimen/homepage_deferred_setup_card_padding_bottom">
+        <ImageView
+            android:id="@android:id/icon"
+            android:layout_width="@dimen/homepage_card_icon_size"
+            android:layout_height="@dimen/homepage_card_icon_size"
+            android:layout_marginStart="@dimen/homepage_card_icon_padding_start"/>
 
-            <ImageView
-                android:id="@android:id/icon"
-                android:layout_width="@dimen/homepage_card_icon_size"
-                android:layout_height="@dimen/homepage_card_icon_size"/>
+        <TextView
+            android:id="@android:id/title"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/homepage_card_text_padding_start"
+            android:layout_marginTop="@dimen/homepage_deferred_setup_card_title_margin_top"
+            android:ellipsize="end"
+            android:maxLines="2"
+            android:minLines="1"
+            android:textAppearance="@style/TextAppearance.DeferredSetupCardTitle"/>
 
-            <TextView
-                android:id="@android:id/title"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="@dimen/homepage_deferred_setup_card_title_margin_top"
-                android:ellipsize="end"
-                android:maxLines="2"
-                android:minLines="1"
-                android:textAppearance="@style/TextAppearance.DeferredSetupCardTitle"/>
+        <TextView
+            android:id="@android:id/summary"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/homepage_card_text_padding_start"
+            android:layout_marginTop="@dimen/homepage_deferred_setup_card_summary_margin_top"
+            android:ellipsize="end"
+            android:maxLines="2"
+            android:minLines="1"
+            android:textAppearance="@style/TextAppearance.DeferredSetupCardSummary"/>
 
-            <TextView
-                android:id="@android:id/summary"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="@dimen/homepage_deferred_setup_card_summary_margin_top"
-                android:ellipsize="end"
-                android:maxLines="2"
-                android:minLines="1"
-                android:textAppearance="@style/TextAppearance.DeferredSetupCardSummary"/>
+        <Button
+            android:id="@+id/finish_setup"
+            style="@style/DeferredSetupCardButton"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/homepage_card_text_padding_start"
+            android:layout_marginTop="@dimen/homepage_deferred_setup_card_button_margin_top"
+            android:text="@string/suggestion_button_text"/>
 
-            <Button
-                android:id="@+id/finish_setup"
-                style="@style/DeferredSetupCardButton"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="@dimen/homepage_deferred_setup_card_button_margin_top"
-                android:text="@string/suggestion_button_text"/>
-
-        </LinearLayout>
-
-        <!--dismissal view-->
-        <include layout="@layout/homepage_dismissal_view"/>
-
-    </ViewFlipper>
+    </LinearLayout>
 </com.google.android.material.card.MaterialCardView>
\ No newline at end of file
diff --git a/res/layout/homepage_slice_half_tile.xml b/res/layout/homepage_slice_half_tile.xml
index fc99561..8b6d415 100644
--- a/res/layout/homepage_slice_half_tile.xml
+++ b/res/layout/homepage_slice_half_tile.xml
@@ -30,7 +30,6 @@
             android:id="@+id/content"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:paddingStart="@dimen/homepage_card_padding_start"
             android:paddingEnd="@dimen/homepage_card_padding_end"
             android:paddingTop="@dimen/homepage_half_card_padding_top"
             android:paddingBottom="@dimen/homepage_half_card_padding_bottom"
@@ -39,7 +38,8 @@
             <ImageView
                 android:id="@android:id/icon"
                 android:layout_width="@dimen/homepage_card_icon_size"
-                android:layout_height="@dimen/homepage_card_icon_size"/>
+                android:layout_height="@dimen/homepage_card_icon_size"
+                android:layout_marginStart="@dimen/homepage_card_icon_padding_start"/>
 
             <TextView
                 android:id="@android:id/title"
@@ -48,6 +48,7 @@
                 android:maxLines="2"
                 android:minLines="1"
                 android:ellipsize="end"
+                android:layout_marginStart="@dimen/homepage_card_text_padding_start"
                 android:layout_marginTop="@dimen/homepage_half_card_title_margin_top"
                 android:textAppearance="@style/TextAppearance.ConditionCardTitle"/>
 
diff --git a/res/layout/homepage_slice_tile.xml b/res/layout/homepage_slice_tile.xml
index 807c26b..b2badf5 100644
--- a/res/layout/homepage_slice_tile.xml
+++ b/res/layout/homepage_slice_tile.xml
@@ -31,6 +31,8 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_gravity="center_vertical"
+            android:animateLayoutChanges="true"
+            android:importantForAccessibility="no"
             style="@style/SliceViewStyle"/>
 
         <!--dismissal view-->
diff --git a/res/layout/master_clear.xml b/res/layout/master_clear.xml
index 9c1dd80..6368588 100644
--- a/res/layout/master_clear.xml
+++ b/res/layout/master_clear.xml
@@ -127,12 +127,9 @@
                         android:text="@string/erase_external_storage_description"/>
                 </LinearLayout>
             </LinearLayout>
-            <include
-                layout="@layout/reset_esim_checkbox"
-                android:layout_marginTop="40dp"
-                android:id="@+id/erase_esim_container"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"/>
+
+            <include layout="@layout/reset_esim_checkbox"/>
+
         </LinearLayout>
     </ScrollView>
 </com.google.android.setupdesign.GlifLayout>
diff --git a/res/layout/notif_importance_preference.xml b/res/layout/notif_importance_preference.xml
new file mode 100644
index 0000000..5d79ff3
--- /dev/null
+++ b/res/layout/notif_importance_preference.xml
@@ -0,0 +1,104 @@
+<?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.
+  -->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/app_entities_header"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:gravity="center"
+    android:orientation="horizontal">
+
+    <LinearLayout
+        android:id="@+id/block"
+        android:layout_width="0dp"
+        android:layout_weight="33.33"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="16dp"
+        android:layout_marginTop="16dp"
+        android:orientation="vertical"
+        android:gravity="center">
+
+        <ImageButton
+            android:id="@+id/block_icon"
+            android:layout_width="@dimen/notification_importance_toggle_size"
+            android:layout_height="@dimen/notification_importance_toggle_size"
+            android:background="?android:attr/selectableItemBackgroundBorderless"
+            android:src="@drawable/ic_notification_block"
+            android:contentDescription="@string/notification_block_title" />
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/notification_block_title"
+            android:layout_marginTop="@dimen/notification_importance_toggle_marginTop"
+            android:layout_marginBottom="@dimen/notification_importance_toggle_marginBottom"
+            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Subhead" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:id="@+id/silence"
+        android:layout_width="0dp"
+        android:layout_weight="33.33"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="16dp"
+        android:layout_marginTop="16dp"
+        android:orientation="vertical"
+        android:gravity="center">
+
+        <ImageButton
+            android:id="@+id/silence_icon"
+            android:layout_width="@dimen/notification_importance_toggle_size"
+            android:layout_height="@dimen/notification_importance_toggle_size"
+            android:background="?android:attr/selectableItemBackgroundBorderless"
+            android:src="@drawable/ic_notification_silence"
+            android:contentDescription="@string/notification_silence_title" />
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/notification_silence_title"
+            android:layout_marginTop="@dimen/notification_importance_toggle_marginTop"
+            android:layout_marginBottom="@dimen/notification_importance_toggle_marginBottom"
+            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Subhead" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:id="@+id/alert"
+        android:layout_width="0dp"
+        android:layout_weight="33.33"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="16dp"
+        android:layout_marginTop="16dp"
+        android:orientation="vertical"
+        android:gravity="center">
+
+        <ImageButton
+            android:id="@+id/alert_icon"
+            android:layout_width="@dimen/notification_importance_toggle_size"
+            android:layout_height="@dimen/notification_importance_toggle_size"
+            android:background="?android:attr/selectableItemBackgroundBorderless"
+            android:src="@drawable/ic_notification_alert"
+            android:contentDescription="@string/notification_alert_title" />
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/notification_alert_title"
+            android:layout_marginTop="@dimen/notification_importance_toggle_marginTop"
+            android:layout_marginBottom="@dimen/notification_importance_toggle_marginBottom"
+            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Subhead" />
+    </LinearLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/preference_single_target.xml b/res/layout/preference_single_target.xml
new file mode 100644
index 0000000..b4a9de0
--- /dev/null
+++ b/res/layout/preference_single_target.xml
@@ -0,0 +1,96 @@
+<?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.
+  -->
+
+<!-- Based off preference_two_target.xml with Material ripple moved to parent for full ripple. -->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="?android:attr/listPreferredItemHeightSmall"
+    android:gravity="center_vertical"
+    android:background="?android:attr/selectableItemBackground"
+    android:clipToPadding="false">
+
+    <LinearLayout
+        android:layout_width="0dp"
+        android:layout_height="match_parent"
+        android:layout_weight="1"
+        android:gravity="start|center_vertical"
+        android:clipToPadding="false"
+        android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+        android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
+
+        <LinearLayout
+            android:id="@+id/icon_frame"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="start|center_vertical"
+            android:minWidth="56dp"
+            android:orientation="horizontal"
+            android:clipToPadding="false"
+            android:paddingTop="4dp"
+            android:paddingBottom="4dp">
+            <androidx.preference.internal.PreferenceImageView
+                android:id="@android:id/icon"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                settings:maxWidth="48dp"
+                settings:maxHeight="48dp" />
+        </LinearLayout>
+
+        <RelativeLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:paddingTop="16dp"
+            android:paddingBottom="16dp">
+
+            <TextView
+                android:id="@android:id/title"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:singleLine="true"
+                android:textAppearance="?android:attr/textAppearanceListItem"
+                android:ellipsize="marquee" />
+
+            <TextView
+                android:id="@android:id/summary"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_below="@android:id/title"
+                android:layout_alignStart="@android:id/title"
+                android:textAppearance="?android:attr/textAppearanceListItemSecondary"
+                android:textColor="?android:attr/textColorSecondary"
+                android:maxLines="10" />
+
+        </RelativeLayout>
+
+    </LinearLayout>
+
+    <include layout="@layout/preference_two_target_divider" />
+
+    <!-- Preference should place its actual preference widget here. -->
+    <LinearLayout
+        android:id="@android:id/widget_frame"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:minWidth="64dp"
+        android:gravity="center"
+        android:orientation="vertical" />
+
+</LinearLayout>
diff --git a/res/layout/reset_esim_checkbox.xml b/res/layout/reset_esim_checkbox.xml
index 2195435..77b90a1 100644
--- a/res/layout/reset_esim_checkbox.xml
+++ b/res/layout/reset_esim_checkbox.xml
@@ -15,7 +15,9 @@
 -->
 <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/erase_esim_container"
     style="@style/SudDescription"
+    android:layout_marginTop="40dp"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:orientation="horizontal"
@@ -41,10 +43,10 @@
         android:orientation="vertical">
 
         <TextView
-            android:id="@+id/erase_esim_title"
             style="@style/TextAppearance.SudGlifItemTitle"
             android:layout_width="wrap_content"
-            android:layout_height="wrap_content"/>
+            android:layout_height="wrap_content"
+            android:text="@string/reset_esim_title"/>
 
         <TextView
             style="@style/TextAppearance.SudGlifItemSummary"
diff --git a/res/layout/reset_network.xml b/res/layout/reset_network.xml
index 7eb5d2a..2c31d1a 100644
--- a/res/layout/reset_network.xml
+++ b/res/layout/reset_network.xml
@@ -40,10 +40,7 @@
                 android:textDirection="locale"
                 android:text="@string/reset_network_desc" />
 
-            <include layout="@layout/reset_esim_checkbox"
-                android:id="@+id/erase_esim_container"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content" />
+            <include layout="@layout/reset_esim_checkbox"/>
 
         </LinearLayout>
 
diff --git a/res/layout/search_bar.xml b/res/layout/search_bar.xml
index 64ddb6d..dbd61df 100644
--- a/res/layout/search_bar.xml
+++ b/res/layout/search_bar.xml
@@ -27,6 +27,7 @@
         android:id="@+id/search_action_bar"
         android:layout_width="match_parent"
         android:layout_height="@dimen/search_bar_height"
+        android:layout_marginStart="-2dp"
         android:background="?android:attr/selectableItemBackground"
         android:contentInsetStartWithNavigation="@dimen/search_bar_content_inset"
         android:navigationIcon="@drawable/ic_homepage_search">
diff --git a/res/layout/settings_homepage_container.xml b/res/layout/settings_homepage_container.xml
index 78a0278..9332463 100644
--- a/res/layout/settings_homepage_container.xml
+++ b/res/layout/settings_homepage_container.xml
@@ -25,6 +25,7 @@
         android:id="@+id/main_content_scrollable_container"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
+        android:importantForAccessibility="no"
         app:layout_behavior="com.android.settings.widget.FloatingAppBarScrollingViewBehavior">
 
         <LinearLayout
diff --git a/res/layout/vpn_dialog.xml b/res/layout/vpn_dialog.xml
index 71ce0ad..a626205 100644
--- a/res/layout/vpn_dialog.xml
+++ b/res/layout/vpn_dialog.xml
@@ -140,6 +140,46 @@
                     android:labelFor="@+id/routes"/>
             <EditText style="@style/vpn_value" android:id="@+id/routes"
                     android:hint="@string/vpn_not_used"/>
+
+            <TextView android:id="@+id/vpn_proxy_settings_title"
+                      style="@style/vpn_label"
+                      android:text="@string/proxy_settings_title"
+                      android:labelFor="@+id/vpn_proxy_settings" />
+
+            <Spinner android:id="@+id/vpn_proxy_settings"
+                     style="@style/vpn_value"
+                     android:prompt="@string/proxy_settings_title"
+                     android:entries="@array/vpn_proxy_settings" />
+
+            <LinearLayout
+                android:id="@+id/vpn_proxy_fields"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:visibility="gone" >
+
+                <TextView
+                    style="@style/vpn_label"
+                    android:text="@string/proxy_hostname_label"
+                    android:labelFor="@+id/vpn_proxy_host" />
+
+                <EditText
+                    android:id="@+id/vpn_proxy_host"
+                    style="@style/vpn_value"
+                    android:hint="@string/proxy_hostname_hint"
+                    android:inputType="textNoSuggestions" />
+
+                <TextView
+                    style="@style/vpn_label"
+                    android:text="@string/proxy_port_label"
+                    android:labelFor="@+id/vpn_proxy_port" />
+
+                <EditText
+                    android:id="@+id/vpn_proxy_port"
+                    style="@style/vpn_value"
+                    android:hint="@string/proxy_port_hint"
+                    android:inputType="number" />
+            </LinearLayout>
         </LinearLayout>
 
         <LinearLayout android:id="@+id/login"
diff --git a/res/layout/wfc_disclaimer_fragment.xml b/res/layout/wfc_disclaimer_fragment.xml
new file mode 100644
index 0000000..00baae5
--- /dev/null
+++ b/res/layout/wfc_disclaimer_fragment.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <TextView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="16dp"
+        android:layout_marginStart="16dp"
+        android:layout_marginBottom="20dp"
+        android:textAppearance="?android:attr/textAppearanceLarge"
+        android:text="@string/wfc_disclaimer_title_text" />
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:background="?android:attr/listDivider" />
+
+    <androidx.recyclerview.widget.RecyclerView
+        android:id="@+id/disclaimer_item_list"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1" />
+
+    <LinearLayout
+        android:orientation="horizontal"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content" >
+
+        <Button
+            android:id="@+id/disagree_button"
+            style="@style/DisclaimerNegativeButton"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_vertical"
+            android:text="@string/wfc_disclaimer_disagree_text" />
+
+        <Space
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1" />
+
+        <Button
+            android:id="@+id/agree_button"
+            style="@style/DisclaimerPositiveButton"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_vertical"
+            android:text="@string/wfc_disclaimer_agree_button_text" />
+    </LinearLayout>
+</LinearLayout>
diff --git a/res/layout/wfc_simple_disclaimer_item.xml b/res/layout/wfc_simple_disclaimer_item.xml
new file mode 100644
index 0000000..ee43182
--- /dev/null
+++ b/res/layout/wfc_simple_disclaimer_item.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:paddingTop="16dp"
+    android:paddingBottom="20dp"
+    android:paddingStart="16dp"
+    android:paddingEnd="16dp"
+    android:gravity="center_vertical">
+    <TextView
+        android:id="@+id/disclaimer_title"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textAppearance="@android:style/TextAppearance.Material.Subhead" />
+    <TextView
+        android:id="@+id/disclaimer_desc"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textAppearance="@android:style/TextAppearance.Material.Body1"
+        android:textColor="?android:attr/textColorSecondary"
+        android:layout_below="@id/disclaimer_title" />
+</RelativeLayout>
\ No newline at end of file
diff --git a/res/layout/wifi_button_preference_widget.xml b/res/layout/wifi_button_preference_widget.xml
index 1ecb98c..0999d20 100644
--- a/res/layout/wifi_button_preference_widget.xml
+++ b/res/layout/wifi_button_preference_widget.xml
@@ -23,5 +23,4 @@
            android:minHeight="@dimen/min_tap_target_size"
            android:layout_gravity="center"
            android:background="@null"
-           android:visibility="gone"
-           android:contentDescription="@string/wifi_add_network" />
+           android:visibility="gone"/>
diff --git a/res/layout/wifi_dialog.xml b/res/layout/wifi_dialog.xml
index 1ae3bf5..333296c 100644
--- a/res/layout/wifi_dialog.xml
+++ b/res/layout/wifi_dialog.xml
@@ -71,7 +71,7 @@
                         android:layout_centerVertical="true"
                         android:background="@null"
                         android:src="@drawable/ic_scan_24dp"
-                        android:contentDescription="@string/wifi_add_network" />
+                        android:contentDescription="@string/wifi_dpp_scan_qr_code"/>
                 </RelativeLayout>
 
                 <LinearLayout android:id="@+id/ssid_too_long_warning"
@@ -307,7 +307,7 @@
                         android:layout_centerVertical="true"
                         android:background="@null"
                         android:src="@drawable/ic_scan_24dp"
-                        android:contentDescription="@string/wifi_add_network" />
+                        android:contentDescription="@string/wifi_dpp_scan_qr_code"/>
                 </RelativeLayout>
             </LinearLayout>
 
diff --git a/res/layout/wifi_dpp_fragment_header.xml b/res/layout/wifi_dpp_fragment_header.xml
index e8e71d1..364f360 100644
--- a/res/layout/wifi_dpp_fragment_header.xml
+++ b/res/layout/wifi_dpp_fragment_header.xml
@@ -40,27 +40,35 @@
         android:src="@drawable/ic_devices_check_circle_green"
         android:scaleType="fitCenter"/>
 
-    <TextView
-        android:id="@android:id/title"
-        style="@style/TextAppearance.EntityHeaderTitle"
-        android:layout_width="match_parent"
+    <!-- Add title_summary_container to group content for Talkback -->
+    <LinearLayout
+        android:id="@+id/title_summary_container"
+        android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:gravity="center_horizontal"
-        android:textAlignment="center"
-        android:layout_marginTop="8dp"
-        android:paddingStart="32dp"
-        android:paddingEnd="32dp"/>
+        android:orientation="vertical"
+        android:focusable="true">
 
-    <TextView
-        android:id="@android:id/summary"
-        style="@style/TextAppearance.EntityHeaderSummary"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:singleLine="false"
-        android:gravity="center_horizontal"
-        android:textAlignment="center"
-        android:layout_marginTop="2dp"
-        android:paddingStart="32dp"
-        android:paddingEnd="32dp"/>
+        <TextView
+            android:id="@android:id/title"
+            style="@style/TextAppearance.EntityHeaderTitle"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:gravity="center_horizontal"
+            android:textAlignment="center"
+            android:layout_marginTop="8dp"
+            android:paddingStart="32dp"
+            android:paddingEnd="32dp"/>
 
+        <TextView
+            android:id="@android:id/summary"
+            style="@style/TextAppearance.EntityHeaderSummary"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:singleLine="false"
+            android:gravity="center_horizontal"
+            android:textAlignment="center"
+            android:layout_marginTop="2dp"
+            android:paddingStart="32dp"
+            android:paddingEnd="32dp"/>
+    </LinearLayout>
 </LinearLayout>
diff --git a/res/values-af/arrays.xml b/res/values-af/arrays.xml
index 4fd4314..af3db8f 100644
--- a/res/values-af/arrays.xml
+++ b/res/values-af/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Globaal"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 220129b..08ebc03 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -1065,11 +1065,6 @@
     <item msgid="7715869266611010880">"Mobiel"</item>
     <item msgid="2838022395783120596">"Net Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Verkies Wi-Fi"</item>
     <item msgid="5074515506087318555">"Verkies mobiel"</item>
@@ -1078,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Mobiel"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"As Wi-Fi-oproepe aan is, kan jou foon oproepe deur Wi-Fi-netwerke of jou diensverskaffer se netwerk roeteer, afhangend van jou voorkeur en watter sein die sterkste is. Vind by jou diensverskaffer oor tariewe en ander besonderhede uit voordat jy hierdie kenmerk aanskakel.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Noodadres"</string>
@@ -2052,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minute"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tyd om te lees"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tyd om iets te doen"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Kies hoe lank om boodskappe te wys wat jy moet lees, maar wat net tydelik sigbaar is.\n\nNie alle programme ondersteun hierdie instelling nie."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Kies hoe lank om boodskappe te wys wat jou vra om iets te doen, maar wat net tydelik sigbaar is.\n\nNie alle programme ondersteun hierdie instelling nie."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Raak-en-hou-vertraging"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Kleur-omkering"</string>
@@ -3004,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps en kennisgewings"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Toestemmings, verstekprogramme"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Kennisgewingtoegang is nie vir programme in die werkprofiel beskikbaar nie."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Rekeninge"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Geen rekeninge is bygevoeg nie"</string>
@@ -3067,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Stemmingvertoning, sluitskermvertoning"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"sluitskermkennisgewing"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"gesig"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"vingerafdruk"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"verdof skerm, raakskerm, battery, slimhelderheid, dinamiese helderheid"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"verdonker skerm, slaap, battery, uitteltyd, aandag, skerm, onaktiwiteit"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"draai, keer om, rotasie, portret, landskap, oriëntasie, vertikaal, horisontaal"</string>
@@ -3100,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Luitoestel is op stil gestel"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Luivolume op 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Mediavolume"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Oproepvolume"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Wekkervolume"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Luivolume"</string>
@@ -4424,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> kennisgewingkanale. Tik om almal te bestuur."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Wissel uitvoer"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Speel tans op <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Jou intekening by hierdie verskaffer kan geskanselleer word. Herhalende intekeninge sal nie gekanselleer word nie. Kry meer inligting by jou verskaffer."</string>
 </resources>
diff --git a/res/values-am/arrays.xml b/res/values-am/arrays.xml
index 89af133..1abfff1 100644
--- a/res/values-am/arrays.xml
+++ b/res/values-am/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"ሁለንተናዊ"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 42c0fad..f586232 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"የተለየ አውታረ መረብ ይምረጡ"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"መሣሪያን ማከል አልተቻለም"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"መሣሪያ ተገኝቷል"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"ከዚህ መሣሪያ ጋር Wi‑Fi በማጋራት ላይ…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"በመገናኘት ላይ…"</string>
     <string name="retry" msgid="6472609612090877557">"እንደገና ይሞክሩ"</string>
     <string name="wifi_shared" msgid="844142443226926070">"ለሌሎች የመሣሪያ ተጠቃሚዎች አጋራ"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(ያልተለወጠ)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"ተንቀሳቃሽ ስልክ"</item>
     <item msgid="2838022395783120596">"Wi-Fi ብቻ"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi ተመራጭ"</item>
     <item msgid="5074515506087318555">"የተንቀሳቃሽ ስልክ ተመራጭ ነው"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"ተንቀሳቃሽ ስልክ"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"የWi-Fi ጥሪ ሲበራ የእርስዎ ስልክ በምርጫዎ እና በየትኛው ይበልጥ ጠንካራ እንደሆነ የሚወሰን ሆኖ ጥሪዎችን በWi-Fi አውታረ መረቦች ወይም በአገልግሎት አቅራቢዎ አውታረ መረብ በኩል ሊያዞር ይችላል። ይህን ባህሪ ከማብራትዎ በፊት ክፍያዎችን እና ሌሎች ዝርዝሮችን በተመለከተ አገልግሎት አቅራቢዎን ያነጋግሩ።<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"የአስቸኳይ አደጋ አድራሻ"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 ደቂቃዎች"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"ማንበቢያ ጊዜ"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"እርምጃ መውሰጃ ጊዜ"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"ማንበብ የሚፈልጉዋቸውን መልዕክቶች ምን ያክል ጊዜ መታየት እንዳለበት ይምረጡ፣ ሆኖም ግን በጊዜያዊነት ብቻ የሚታይ ይሆናል።.\n\nሁሉም መተግበሪያዎች ይህን ቅንብር አይደግፉም።"</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"እርስዎ እርምጃ እንዲወስዱ የሚጠይቁ ሆኖም ግን ለጊዜው ብቻ የሚታዩ መልዕክቶች ምን ያክል ጊዜ መታየት እንዳለባቸው ይምረጡ።\n\nይህን ቅንብር ሁሉም መተግበሪያዎች አይደሉም የሚደግፉት።"</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"የመንካት እና ይዞ ማቆየት"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"ተቃራኒ ቀለም"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"ብሉቱዝ፣ NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"ብሉቱዝ"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"መተግበሪያዎች እና ማሳወቂያዎች"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"ፈቃዶች፣ ነባሪ መተግበሪያዎች"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"የማሳወቂያ መዳረሻ በስራ መገለጫ ውስጥ ላሉ መተግበሪያዎች አይገኝም።"</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"መለያዎች"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"ምንም መለያዎች አልታከሉም"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"ድባባዊ ማሳያ፣ የማያ ገጽ ቁልፍ ማሳያ"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"የማያ ገጽ ቁልፍ ማሳወቂያ"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"መልክ"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"የጣት አሻራ"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"የደበዘዘ ማያ ገጽ፣ ማያንካ፣ ባትሪ፣ ዘመናዊ ብሩህነት፣ ተለዋዋጭ ብሩህነት"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"ማያ ገጽን ማደብዘዝ፣ እንቅልፍ፣ ባትሪ፣ እረፍት መውሰጃ ጊዜ፣ ትኩረት፣ ማሳያ፣ ማያ ገጽ፣ የቦዘነ ጊዜ"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"አሽከርክር፣ ገልብጥ፣ ሽክርክሪት፣ የቁም፣ የመሬት ገጽታ፣ አቀማመጥ፣ ቁልቁል፣ አግድም"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"ደዋዩ ወደ ጸጥታ ተቀናብሯል"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"የጥሪ ድምጽ መጠን 80% ላይ"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"የማህደረመረጃ ክፍልፍል"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"የስልክ ጥሪ ድምጽ መጠን"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"የማንቂያ ድምፅ መጠን"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"የጥሪ ድምጽ መጠን"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"አትረብሽን አዘምን"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"ትኩረት እንደሰጡ ለመቆየት ማሳወቂያዎችን ባሉበት አቁም"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"ይህ ባህሪ በዚህ መሣሪያ ላይ አይገኝም"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"ይህ ባህሪ አይገኝም"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"ይህን ስልክ ያዘገየዋል"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"ሙሉ የGNSS መለኪያዎች አስገድድ"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ሁሉንም የGNSS ህብረ ፎቶዎችን እና ድግምግሞሾችን ያለምንም የሥራ ብስክሌት ግልቢያ ዱካቸውን ይከታተሉ"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"የበስተጀርባ እንቅስቃሴ ጅምሮችን ፍቀድ"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"የ<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ማሳወቂያ ሰርጦች። ሁሉንም ለማቀናበር መታ ያድርጉ።"</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"ውጽዓትን ቀይር"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"በአሁኑ ጊዜ በ<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ላይ በመጫወት ያለ"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ከዚህ አገልግሎት አቅራቢ የእርስዎ የደንበኝነት ምዝገባ ሊሰረዝ ይችላል። ተደጋጋሚ የደንበኝነት ምዝገባዎች አይሰረዙም። ለተጨማሪ መረጃ፣ ከእርስዎ አገልግሎት አቅራቢ ጋር ይፈትሹ።"</string>
 </resources>
diff --git a/res/values-ar/arrays.xml b/res/values-ar/arrays.xml
index af2931d..2341b0e 100644
--- a/res/values-ar/arrays.xml
+++ b/res/values-ar/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"‏بطاقة RUIM/شريحة SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"عام"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 6d04cd1..784f7a3 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -1004,10 +1004,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"اختيار شبكة مختلفة"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"تعذّرت إضافة جهاز."</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"تم العثور على جهاز."</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"‏جارٍ مشاركة Wi‑Fi مع هذا الجهاز…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"جارٍ الاتصال…"</string>
     <string name="retry" msgid="6472609612090877557">"إعادة المحاولة"</string>
     <string name="wifi_shared" msgid="844142443226926070">"المشاركة مع مستخدمي الجهاز الآخرين"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(لم يتم التغيير)"</string>
@@ -1135,11 +1133,6 @@
     <item msgid="7715869266611010880">"الجوال"</item>
     <item msgid="2838022395783120596">"‏Wi-Fi فقط"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"٢"</item>
-    <item msgid="1171822231056612021">"١"</item>
-    <item msgid="3194458950573886239">"٠"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"‏شبكة Wi-Fi مُفضّلة"</item>
     <item msgid="5074515506087318555">"مفضَّل للجوّال"</item>
@@ -1148,10 +1141,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"الجوال"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"٢"</item>
-    <item msgid="6200207341126893791">"١"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"‏عند تشغيل الاتصال عبر Wi-Fi، يمكن للهاتف توجيه المكالمات عبر شبكة Wi-Fi أو عبر مشغّل شبكة الجوّال، حسب تفضيلك وحسب الإشارة الأقوى. وقبل تفعيل هذه الميزة، يُرجى مراجعة الرسوم  والتفاصيل الأخرى مع مشغّل شبكة الجوّال.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"عنوان الطوارئ"</string>
@@ -2134,8 +2123,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"دقيقتان"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"وقت القراءة"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"وقت اتخاذ الإجراء"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"اختَر مدة عرض الرسائل التي تحتاج إلى قراءتها، علمًا بأنّ عرضها يقتصر على فترة مؤقتة.\n\nلا تتوافق بعض التطبيقات مع هذا الإعداد."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"اختَر مدة عرض الرسائل التي تطلب منك اتخاذ إجراء، ولكن يقتصر عرضها على فترة مؤقتة.\n\nلا تتوافق بعض التطبيقات مع هذا الإعداد."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"مهلة اللمس مع الاستمرار"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"عكس اللون"</string>
@@ -3166,7 +3154,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"‏بلوتوث، NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"بلوتوث"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"التطبيقات والإشعارات"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"أذونات، تطبيقات تلقائية"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"لا تتوفر إمكانية الدخول إلى الإشعارات للتطبيقات في الملف الشخصي للعمل."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"الحسابات"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"لم تتم إضافة أي حسابات."</string>
@@ -3229,7 +3218,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"العرض على الشاشة، عرض شاشة التأمين"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"إشعار شاشة التأمين"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"وجه"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"بصمة الإصبع"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"تعتيم الشاشة، شاشة تعمل باللمس، بطارية، سطوع ذكي، سطوع ديناميكي"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"إضاءة خافتة للشاشة، سكون، بطارية، مهلة، تنبيه، عرض، شاشة، عدم نشاط"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"تدوير، قلب، دوران، عمودي، أفقي، اتجاه، رأسي، عرضي"</string>
@@ -3262,6 +3252,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"تم تعيين الرنين على صامت"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"مستوى صوت الرنين على ۸۰٪"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"مستوى صوت الوسائط"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"مستوى صوت المكالمة"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"مستوى صوت المنبّه"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"مستوى صوت الرنين"</string>
@@ -4523,10 +4515,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"تحديث إعداد \"الرجاء عدم الإزعاج\""</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"إيقاف الإشعارات مؤقتًا للحفاظ على التركيز"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"لا تتوفر هذه الميزة على هذا الجهاز"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"هذه الميزة ليست متوفرة."</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"ستؤدي إلى إبطاء هذا الهاتف."</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"‏فرض كامل لقياسات GNSS"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"‏تتبّع جميع مجموعات وفترات تكرار GNSS التي لا تحتوي على دورات عمل"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"السماح ببدء الأنشطة في الخلفية"</string>
@@ -4748,6 +4738,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> قناة للإشعارات. انقُر لإدارتها."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"تبديل جهاز إخراج الصوت"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"يتمّ تشعيل الوسائط الآن على <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"قدّ يتمّ إلغاء اشتراكك مع مزوّد الخدمة هذا. ولن يتمّ إلغاء الاشتراكات التي يلزم دفع رسومها بصورة متكررة. لمزيد من المعلومات، عليك التحقُّق من ذلك الأمر مع مزوّد الخدمة."</string>
 </resources>
diff --git a/res/values-as/arrays.xml b/res/values-as/arrays.xml
index b661f98..6256a49 100644
--- a/res/values-as/arrays.xml
+++ b/res/values-as/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"০"</item>
-    <item msgid="8113210705878681550">"১"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"গোলকীয়"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"১০"</item>
-    <item msgid="4187053702071521357">"৮"</item>
-    <item msgid="5461421967189969022">"৯"</item>
-  </string-array>
 </resources>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 3fa98f1..c96171b 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -393,7 +393,7 @@
     <string name="security_dashboard_summary_face" msgid="268234254306703218">"স্ক্ৰীণ লক, ফে’চ আনলক"</string>
     <string name="security_dashboard_summary" msgid="6757421634477554939">"স্ক্ৰীণ লক, ফিংগাৰপ্ৰিণ্ট"</string>
     <string name="security_dashboard_summary_no_fingerprint" msgid="8129641548372335540">"স্ক্ৰীণ লক"</string>
-    <string name="security_settings_face_preference_summary" msgid="1290187225482642821">"চেহেৰা যোগ কৰা হ’ল"</string>
+    <string name="security_settings_face_preference_summary" msgid="1290187225482642821">"চেহেৰা যোগ কৰা হ\'ল"</string>
     <string name="security_settings_face_preference_summary_none" msgid="5460349732790152186">"চেহেৰা প্ৰমাণীকৰণ ছেট আপ কৰিবলৈ টিপক"</string>
     <string name="security_settings_face_preference_title" msgid="7074548721778680481">"চেহেৰা প্ৰমাণীকৰণ"</string>
     <string name="security_settings_face_enroll_introduction_accessibility" msgid="7784083491315229721">"সাধ্য সুবিধা ছেট আপ ব্যৱহাৰ কৰক"</string>
@@ -408,7 +408,7 @@
     <string name="security_settings_face_enroll_repeat_title" msgid="4019853239039918762">"আপোনাৰ মুখমণ্ডলটো বৃত্তৰ ভিতৰলৈ আনক"</string>
     <string name="security_settings_face_enroll_enrolling_skip" msgid="1933553314312349529">"এইটো পিছত কৰিব"</string>
     <string name="face_add_max" msgid="4408683751143942949">"আপুনি <xliff:g id="COUNT">%d</xliff:g>লৈকে মুখমণ্ডল যোগ কৰিব পাৰে"</string>
-    <string name="face_intro_error_max" msgid="160022811747660581">"আপুনি অনুমোদিত সৰ্বাধিক সংখ্যক ফিংগাৰপ্ৰিণ্টবোৰ যোগ কৰিছে"</string>
+    <string name="face_intro_error_max" msgid="160022811747660581">"আপুনি অনুমোদিত সৰ্বাধিক সংখ্যক চেহেৰা যোগ কৰিছে"</string>
     <string name="face_intro_error_unknown" msgid="6367721696446677261">"আৰু বেছি চেহেৰা যোগ কৰিব নোৱাৰি"</string>
     <string name="security_settings_face_enroll_error_dialog_title" msgid="2869110702072655323">"অন্তৰ্ভুক্ত কৰা কাৰ্য সম্পূৰ্ণ নহ\'ল"</string>
     <string name="security_settings_face_enroll_dialog_ok" msgid="2980238861223265089">"ঠিক আছে"</string>
@@ -570,7 +570,7 @@
     <string name="face_unlock_set_unlock_pattern" msgid="8792301636367000123">"চেহেৰা প্ৰমাণীকৰণ + আৰ্হি"</string>
     <string name="face_unlock_set_unlock_pin" msgid="1196620299595657479">"চেহেৰা প্ৰমাণীকৰণ + পিন"</string>
     <string name="face_unlock_set_unlock_password" msgid="223117276773907474">"চেহেৰা প্ৰমাণীকৰণ + পাছৱৰ্ড"</string>
-    <string name="face_unlock_skip_face" msgid="6362883392838482791">"চেহেৰা প্ৰমাণীকৰণ অবিহনেই অব্যাহত ৰাখক"</string>
+    <string name="face_unlock_skip_face" msgid="6362883392838482791">"চেহেৰা প্ৰমাণীকৰণ অবিহনেই অব্য়াহত ৰাখক"</string>
     <string name="face_unlock_title" msgid="9042382084472444316">"আপুনি নিজৰ চেহেৰা ব্যৱহাৰ কৰি আপোনাৰ ফ\'নৰ লক খুলিব পাৰে। সুৰক্ষাৰ বাবে, এই বিকল্পটোক বেক আপ স্ক্ৰীণ লকৰ প্ৰয়োজন।"</string>
     <string name="unlock_set_unlock_disabled_summary" msgid="2051593894736282302">"প্ৰশাসক, এনক্ৰিপশ্বন নীতি বা ক্ৰেডেনশ্বিয়েল সঞ্চয়াগাৰৰ দ্বাৰা অক্ষম কৰা হৈছে"</string>
     <string name="unlock_set_unlock_mode_off" msgid="5881952274566013651">"নাই"</string>
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"বেলেগ এটা নেটৱৰ্ক বাছনি কৰক"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"ডিভাইচটো যোগ কৰিব পৰা নগ’ল"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"ডিভাইচ বিচাৰি পোৱা গৈছে"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"এই ডিভাইচটোৰ সৈতে ৱাই-ফাই শ্বেয়াৰ কৰি থকা হৈছে…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"সংযোগ কৰি থকা হৈছে…"</string>
     <string name="retry" msgid="6472609612090877557">"আকৌ চেষ্টা কৰক"</string>
     <string name="wifi_shared" msgid="844142443226926070">"ডিভাইচৰ অন্য ব্যৱহাৰকাৰীৰ সৈতে শ্বেয়াৰ কৰক"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(সালসলনি নাই)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"ম’বাইল"</item>
     <item msgid="2838022395783120596">"ৱাই-ফাই মাত্ৰ"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"২"</item>
-    <item msgid="1171822231056612021">"১"</item>
-    <item msgid="3194458950573886239">"০"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"ৱাই-ফাইৰ অগ্ৰাধিকাৰ"</item>
     <item msgid="5074515506087318555">"ম\'বাইলক অগ্ৰাধিকাৰ দিয়া হৈছে"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"ৱাই-ফাই"</item>
     <item msgid="1118703915148755405">"ম’বাইল"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"২"</item>
-    <item msgid="6200207341126893791">"১"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"ৱাই-ফাই কলিং অন হৈ থকাৰ সময়ত, আপোনাৰ অগ্ৰাধিকাৰ অনুসৰি আৰু ছিগনেলৰ ক্ষমতাক ভিত্তি কৰি, আপোনাৰ ফ’নটোৱে ৱাই-ফাই নেটৱৰ্ক বা আপোনাৰ বাহকৰ নেটৱৰ্কৰ যোগেদি কলবোৰ পঠিয়াব পাৰে৷ এই সুবিধাটো অন কৰাৰ পূৰ্বে, মাছুল আৰু অন্যান্য সবিশেষ জানিবলৈ আপোনাৰ বাহকৰ সৈতে সম্পৰ্ক কৰক৷<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"জৰূৰীকালীন ঠিকনা"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"২ মিনিট"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"বার্তা পঢ়িবলৈ প্ৰয়োজনীয় সময়"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"কার্যপন্থা লোৱাৰ সময়"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"আপুনি পঢ়িব খোজা বাৰ্তা যিবোৰ কেৱল সাময়িকভাৱেহে দৃশ্যমান হয়, সেইবোৰ কিমান সময় দেখুৱাব লাগিব বাছনি কৰক।\n\nসকলো এপে এই ছেটিংটো সমৰ্থন নকৰে।"</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"আপোনাক কোনো কার্যপন্থা গ্ৰহণ কৰিবলৈ কোৱা অস্থায়ীভাৱে দৃশ্যমান হোৱা বার্তাসমূহ কিমান সময় প্ৰদর্শন কৰিব খোজে সেয়া বাছনি কৰক।\n\nএই ছেটিংসমূহে প্ৰতিটো এপতে কাম নকৰে।"</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"স্পৰ্শ কৰি হেঁচি ধৰি থকাৰ সময়"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"ৰং বিপৰীতকৰণ"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"ব্লুটুথ, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"ব্লুটুথ"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"এপ্ আৰু জাননীসমূহ"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"অনুমতি, ডিফ\'ল্ট এপসমূহ"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"কৰ্মস্থলৰ প্ৰ’ফাইলত থকা এপৰ বাবে জাননী সম্পৰ্কীয় এক্সেছ নাথাকে।"</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"একাউণ্টসমূহ"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"কোনো একাউণ্ট যোগ কৰা হোৱা নাই"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"স্তিমিত ডিছপ্লে’, বন্ধ স্ক্ৰীণৰ ডিছপ্লে’"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"লক স্ক্ৰীণৰ জাননী"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"চেহেৰা"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"ফিংগাৰপ্ৰিণ্ট"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"অনুজ্জ্বল স্ক্ৰীণ, টাচ্চস্ক্ৰীণ, বেটাৰি, স্মার্ট উজ্জ্বলতা, গতিশীল উজ্জ্বলতা"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"অনুজ্জ্বল স্ক্ৰীণ, নিদ্ৰা, বেটাৰি, টাইমআউট, মনোযোগ, ডিছপ্লে’, স্ক্ৰীণ, নিষ্ক্ৰিয়তা"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"ঘূৰোৱা, লুটিওৱা, ঘূৰ্ণন, প\'ৰ্ট্ৰেইট, লেণ্ডস্কেইপ, দিশ, উলম্ব, অনুভূমিক"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"ৰিংগাৰ নীৰৱ হিচাপে ছেট কৰা হৈছে"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"ৰিঙৰ ভলিউম ৮০%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"মিডিয়াৰ ভলিউম"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"কলৰ ভলিউম"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"এলাৰ্মৰ ভলিউম"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"ৰিঙৰ ভলিউম"</string>
@@ -3521,7 +3513,7 @@
     <string name="encryption_interstitial_message_password_for_fingerprint" msgid="5560954719370251702">"আপোনাৰ ডিভাইচটো আনলক কৰিবলৈ ফিংগাৰপ্ৰিণ্ট ব্যৱহাৰ কৰাৰ উপৰি, আপুনি ডিভাইচটো আৰু অধিক সুৰক্ষিত কৰিবলৈ ইয়াক পাছৱৰ্ড দিলেহে ষ্টাৰ্ট আপ হোৱা কৰিব পাৰে। ডিভাইচটো ষ্টাৰ্ট হোৱাৰ আগতে ই এলাৰ্মৰ লগতে কল, বাৰ্তা বা জাননী আদি লাভ কৰিব নোৱাৰিব।\n\nইয়ে ডিভাইচ হেৰালে বা চুৰি হ\'লে ডেটা সুৰক্ষা দিয়াত সহায় কৰে। আপোনাৰ ডিভাইচ ষ্টাৰ্ট হোৱাৰ সময়ত পাছৱৰ্ড দিয়াটো দৰকাৰী কৰেনে?"</string>
     <string name="encryption_interstitial_message_pin_for_face" msgid="2017438765366716760">"আপোনাৰ ডিভাইচটো আনলক কৰিবলৈ আপোনাৰ চেহেৰা ব্যৱহাৰ কৰাৰ উপৰি, আপুনি ডিভাইচটো আৰু অধিক সুৰক্ষিত কৰিবলৈ ইয়াক পিন দিলেহে ষ্টাৰ্ট আপ হোৱা কৰিব পাৰে। ডিভাইচটো ষ্টাৰ্ট হোৱাৰ আগতে ই এলাৰ্মৰ লগতে কল, বাৰ্তা বা জাননী আদি লাভ কৰিব নোৱাৰিব।\n\nএই সুবিধায়ে ডিভাইচ হেৰালে বা চুৰি হ\'লে ডেটা সুৰক্ষিত কৰাত সহায় কৰে। আপোনাৰ ডিভাইচ ষ্টাৰ্ট হোৱাৰ সময়ত পিন দিয়াটো দৰকাৰী কৰেনে?"</string>
     <string name="encryption_interstitial_message_pattern_for_face" msgid="3551827507967661552">"আপোনাৰ ডিভাইচটো আনলক কৰিবলৈ আপোনাৰ চেহেৰা ব্যৱহাৰ কৰাৰ উপৰি, আপুনি ডিভাইচটো আৰু অধিক সুৰক্ষিত কৰিবলৈ ইয়াক আৰ্হি দিলেহে ষ্টাৰ্ট আপ হোৱা কৰিব পাৰে। ডিভাইচটো ষ্টাৰ্ট হোৱাৰ আগতে ই এলাৰ্মৰ লগতে কল, বাৰ্তা বা জাননী আদি লাভ কৰিব নোৱাৰিব।\n\nএই সুবিধায়ে ডিভাইচ হেৰালে বা চুৰি হ\'লে ডেটা সুৰক্ষিত কৰাত সহায় কৰে। আপোনাৰ ডিভাইচ ষ্টাৰ্ট হোৱাৰ সময়ত আৰ্হি দিয়াটো দৰকাৰী কৰেনে?"</string>
-    <string name="encryption_interstitial_message_password_for_face" msgid="3452793542112093614">"আপোনাৰ ডিভাইচটো আনলক কৰিবলৈ আপোনাৰ চেহেৰা ব্যৱহাৰ কৰাৰ উপৰি, আপুনি ডিভাইচটো আৰু অধিক সুৰক্ষিত কৰিবলৈ ইয়াক পাছৱৰ্ড দিলেহে ষ্টাৰ্ট আপ হোৱা কৰিব পাৰে। ডিভাইচটো ষ্টাৰ্ট হোৱাৰ আগতে ই এলাৰ্মৰ লগতে কল, বাৰ্তা বা জাননী আদি লাভ কৰিব নোৱাৰিব।\n\nএই সুবিধায়ে ডিভাইচ হেৰালে বা চুৰি হ\'লে ডেটা সুৰক্ষিত কৰাত সহায় কৰে। আপোনাৰ ডিভাইচ ষ্টাৰ্ট হোৱাৰ সময়ত চেহেৰা দিয়াটো দৰকাৰী কৰেনে?"</string>
+    <string name="encryption_interstitial_message_password_for_face" msgid="3452793542112093614">"আপোনাৰ ডিভাইচটো আনলক কৰিবলৈ আপোনাৰ চেহেৰা ব্যৱহাৰ কৰাৰ উপৰি, আপুনি ডিভাইচটো আৰু অধিক সুৰক্ষিত কৰিবলৈ ইয়াক পাছৱৰ্ড দিলেহে ষ্টাৰ্ট আপ হোৱা কৰিব পাৰে। ডিভাইচটো ষ্টাৰ্ট হোৱাৰ আগতে ই এলাৰ্মৰ লগতে কল, বাৰ্তা বা জাননী আদি লাভ কৰিব নোৱাৰিব।\n\nএই সুবিধায়ে ডিভাইচ হেৰালে বা চুৰি হ\'লে ডেটা সুৰক্ষিত কৰাত সহায় কৰে। আপোনাৰ ডিভাইচ ষ্টাৰ্ট হোৱাৰ সময়ত পাছৱৰ্ড দিয়াটো দৰকাৰী কৰেনে?"</string>
     <string name="encryption_interstitial_yes" msgid="4439509435889513411">"হয়"</string>
     <string name="encryption_interstitial_no" msgid="8935031349097025137">"নহয়"</string>
     <string name="restricted_true_label" msgid="4761453839409220473">"সীমিত"</string>
@@ -4222,10 +4214,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"অসুবিধা নিদিব-ক আপডে’ট কৰক"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"মনোযোগ বৰ্তাই ৰাখিবলৈ জাননী বন্ধ কৰক"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"এই ডিভাইচটোত এই সুবিধাটো উপলব্ধ নহয়"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"এই সুবিধাটো উপলব্ধ নহয়"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"ইয়ে এই ফ’নটো মন্থৰ কৰিব"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"সম্পূৰ্ণ জিএনএছএছ পৰিমাপ প্ৰয়োগ কৰক"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"কোনো উপযোগীতা অনুপাতৰ সহায় নোলোৱাকৈ GNSS কনষ্টেলেশ্বন আৰু ফ্ৰিকুৱেন্সী নিৰীক্ষণ কৰক"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"নেপথ্যৰ কাৰ্যকলাপ আৰম্ভ কৰাত অনুমতি দিয়ে"</string>
@@ -4432,6 +4422,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>টা জাননী চ্চেনেল। সকলো পৰিচালনা কৰিবলৈ টিপক।"</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"আউটপুট সলনি কৰক"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"বৰ্তমান <xliff:g id="DEVICE_NAME">%1$s</xliff:g>ত প্লে’ হৈ আছে"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"এই প্ৰদানকাৰীৰ সৈতে থকা আপোনাৰ গ্ৰাহকভুক্তি বাতিল কৰা হ’ব পাৰে। পুনৰাবৃত্তি হোৱা গ্ৰাহকভুক্তি বাতিল কৰা নহ’ব। অধিক তথ্যৰ বাবে আপোনাৰ প্ৰদানকাৰীৰ সৈতে যোগাযোগ কৰক।"</string>
 </resources>
diff --git a/res/values-az/arrays.xml b/res/values-az/arrays.xml
index 8355665..c594fc0 100644
--- a/res/values-az/arrays.xml
+++ b/res/values-az/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Qlobal"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index a658ecf..099ea10 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Fərqli şəbəkə seçin"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Cihaz əlavə etmək mümkün olmadı"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Cihaz tapıldı"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Wi‑Fi bu cihazla paylaşılır…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Qoşulur..."</string>
     <string name="retry" msgid="6472609612090877557">"Yenidən cəhd edin"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Digər cihaz istifadəçiləri ilə paylaşın"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(dəyişilməyən)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"Mobil"</item>
     <item msgid="2838022395783120596">"Yalnız Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi tərcih edilir"</item>
     <item msgid="5074515506087318555">"Mobil cihaz tərcih olunur"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Mobil"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi zəngi aktiv olan zaman tərcihinizdən və siqnalın gücündən asılı olaraq telefon zəngləri Wi-Fi və ya mobil şəbəkə ilə yönləndirə bilər. Bu funksiyanı aktiv etməzdən əvvəl operator tarifləri və digər məlumatları öyrənin. <xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Fövqəladə Ünvan"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 dəqiqə"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Oxumaq vaxtıdır"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Əməliyyatın icrası vaxtıdır"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Oxunması vacib, lakin müvəqqəti olaraq görünən mesajların görünmə müddətini seçin.\n\nBütün tətbiqlər bu ayarı dəstəkləmir."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Əməliyyatın icrasını tələb edən, lakin müvəqqəti görünən mesajların görünmə müddətini seçin.\n\nBu ayarı bütün tətbiqlər dəstəkləmir."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Toxunma və basılı saxlama müddəti"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Rəng inversiyası"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Tətbiq və bildirişlər"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"İcazələr, defolt tətbiqlər"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Bildiriş girişi iş profilindəki tətbiqlər üçün əlçatan deyil."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Hesablar"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Hesab əlavə edilməyib"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambient displey, Kilid ekranı"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"kilid ekranı bildirişi"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"üz"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"barmaq izi"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"qara ekran, sensor ekran, batareya, yeni parlaqlıq, dinamik parlaqlıq"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"qara ekran, yuxu rejimi, batareya, fasilə, diqqət, displey, ekran, fəaliyyətsizlik"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"fırladın, çevirin, fırlatma, portret, mənzərə, orientir, vertikal, horizontal"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Zəng səsi səssiz rejimdədir"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Zəng səsi 80% faizdir"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Media həcmi"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Zəng səsi"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Siqnal səsi həcmi"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Zəng həcmi"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"\"Narahat Etməyin\" rejimini yeniləyin"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Foksulanmağa davam etmək üçün bildirişləri dayandırın"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Bu funksiya artıq bu cihazda əlçatan deyil"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Bu funksiya əlçatan deyil"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Bu telefonun sürətini yavaşladacaq"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Tam GNSS ölçülərini icra edin"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"İş sistemi olmadan bütün GNSS qruplaşmaları və tezliklərini izləyin"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Arxa fon fəaliyyətinin başlamasına icazə verin"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> bildiriş kanalı. Hamısını idarə etmək üçün klikləyin."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Çıxış açarı"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Hazırda <xliff:g id="DEVICE_NAME">%1$s</xliff:g> cihazında oxudulur"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Bu provayderə abunəliyiniz ləğv edilə bilər. Təkrarlanan abunəliklər ləğv edilməyəcək. Ətraflı məlumat üçün provayder ilə əlaqə saxlayın."</string>
 </resources>
diff --git a/res/values-b+sr+Latn/arrays.xml b/res/values-b+sr+Latn/arrays.xml
index 2a092f7..cac5fa5 100644
--- a/res/values-b+sr+Latn/arrays.xml
+++ b/res/values-b+sr+Latn/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Globalna"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 6a253bd..364c6b6 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -956,10 +956,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Odaberi drugu mrežu"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Dodavanje uređaja nije uspelo"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Pronađen je uređaj"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Deli se Wi‑Fi sa ovim uređajem…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Povezuje se…"</string>
     <string name="retry" msgid="6472609612090877557">"Probaj ponovo"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Deli sa drugim korisnicima uređaja"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(nepromenjeno)"</string>
@@ -1084,11 +1082,6 @@
     <item msgid="7715869266611010880">"Mobilni podaci"</item>
     <item msgid="2838022395783120596">"Samo Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Prednost ima Wi-Fi"</item>
     <item msgid="5074515506087318555">"Želim mobilne podatke"</item>
@@ -1097,10 +1090,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Mobilni podaci"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2."</item>
-    <item msgid="6200207341126893791">"1."</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Kada je pozivanje preko Wi-Fi-ja uključeno, telefon može da preusmerava pozive preko Wi-Fi mreža ili mreže mobilnog operatera u zavisnosti od toga koje ste podešavanje izabrali i koji signal je jači. Pre nego što uključite ovu funkciju, informišite se kod mobilnog operatera o naknadama i drugim detaljima.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Adresa za hitne slučajeve"</string>
@@ -2074,8 +2063,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minuta"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Vreme za čitanje"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Vreme za reagovanje"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Odaberite koliko dugo će se prikazivati poruke koje treba da pročitate, ali su vidljive samo privremeno.\n\nOvo podešavanje ne podržavaju sve aplikacije."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Odaberite koliko dugo će se prikazivati poruke koje traže da reagujete, ali su vidljive samo privremeno.\n\nOvo podešavanje ne podržavaju sve aplikacije."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Odlaganje dodira i zadržavanja"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inverzija boja"</string>
@@ -3046,7 +3034,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplikacije i obaveštenja"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Dozvole, podrazumevane aplikacije"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Pristup obaveštenjima nije dostupan za aplikacije na radnom profilu."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Nalozi"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nijedan nalog nije dodat"</string>
@@ -3109,7 +3098,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambijentalni ekran, prikaz na zaključanom ekranu"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"obaveštenje na zaključanom ekranu"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"lice"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"digitalni otisak"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"zatamniti ekran, dodirni ekran, baterija, pametna svetlina, dinamička svetlina"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"zatamnjenje ekrana, spavanje, baterija, vremensko ograničenje, pažnja, prikaz, ekran, neaktivnost"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"rotiraj, obrni, rotacija, uspravno, vodoravno, položaj, vertikalno, horizontalno"</string>
@@ -3142,6 +3132,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Zvono je podešeno na nečujno"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Jačina zvona je 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Jačina zvuka medija"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Jačina zvuka poziva"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Jačina zvuka alarma"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Jačina zvuka zvona"</string>
@@ -4295,10 +4287,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Ažurirajte režim Ne uznemiravaj"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Pauzirajte obaveštenja radi bolje koncentracije"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Ova funkcija nije dostupna na ovom uređaju."</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Ova funkcija nije dostupna"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Usporiće ovaj telefon"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Prinudno pokreni puna GNSS merenja"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Prati sve GNSS konstalacije i frekvencije bez ciklusa rada"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Dozvoli pokretanje aplikacija u pozadini"</string>
@@ -4508,6 +4498,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> kanal za obaveštenja. Dodirnite da biste upravljali svim."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Promenite izlaz"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Trenutno se pušta na uređaju <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Pretplata kod ovog dobavljača usluge je možda otkazana. Aktivne pretplate neće biti otkazane. Više informacija potražite od dobavljača usluge."</string>
 </resources>
diff --git a/res/values-be/arrays.xml b/res/values-be/arrays.xml
index 8aadcd4..cce47d4 100644
--- a/res/values-be/arrays.xml
+++ b/res/values-be/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"R-UIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Глабальная"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 073d9dd..59ae447 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -972,10 +972,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Выбраць іншую сетку"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Не ўдалося дадаць прыладу"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Прылада знойдзена"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Wi‑Fi абагульваецца з гэтай прыладай…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Ідзе падключэнне…"</string>
     <string name="retry" msgid="6472609612090877557">"Паўтарыць"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Падзяліцца з іншымі карыстальнікамі прылады"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(не зменена)"</string>
@@ -1101,11 +1099,6 @@
     <item msgid="7715869266611010880">"Мабільная сетка"</item>
     <item msgid="2838022395783120596">"Толькі Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Прыярытэт Wi-Fi"</item>
     <item msgid="5074515506087318555">"Прыярытэт мабільнай сеткі"</item>
@@ -1114,10 +1107,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Мабільная сетка"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Калі ўключана Wi-Fi-тэлефанія, ваш тэлефон можа накіроўваць выклікі праз сеткі Wi-Fi або сетку вашага аператара, у залежнасці ад вашых налад і таго, які сігнал мацнейшы. Перад уключэннем гэтай функцыі спытайце ў вашага аператара наконт аплаты і запытайце іншую падрабязную інфармацыю.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Экстранны адрас"</string>
@@ -2095,8 +2084,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 хвіліны"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Час на чытанне"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Час на выкананне дзеяння"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Выберыце, колькі часу паказваць часова бачныя паведамленні, якія трэба прачытаць.\n\nНе ўсе праграмы падтрымліваюць такую наладу."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Выберыце, колькі часу паказваць часова бачныя паведамленні з заклікамі да дзеянняў.\n\nНе ўсе праграмы падтрымліваюць такую наладу."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Затрымка пры націсканні і ўтрыманні"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Інверсія колеру"</string>
@@ -3087,7 +3075,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Праграмы і апавяшчэнні"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Дазволы, стандартныя праграмы"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Праграмы ў працоўным профілі не маюць доступу да апавяшчэнняў."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Уліковыя запісы"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Няма ўліковых запісаў"</string>
@@ -3150,7 +3139,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Аўтаматычнае ўключэнне экрана, экран блакіроўкі"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"апавяшчэнне экрана блакіроўкі"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"твар"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"адбітак пальца"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"зацямненне экрана, сэнсарны экран, акумулятар, разумная яркасць, дынамічная яркасць"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"цёмны экран, рэжым сну, акумулятар, час чакання, увага, дысплэй, экран, бяздзейнасць"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"павярнуць, пераключыцца, паварот, кніжная, альбомная, арыентацыя, вертыкальная, гарызантальная"</string>
@@ -3183,6 +3173,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Для гуку выкліку заданы бязгучны рэжым"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Гучнасць званка – 80 %"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Гучнасць медыя"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Гучнасць выкліку"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Гучнасць будзільніка"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Гучнасць выкліку"</string>
@@ -4373,10 +4365,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Абнавіце рэжым \"Не турбаваць\""</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Прыпыніце апавяшчэнні, каб яны не адцягвалі ўвагу"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Гэта функцыя недаступная на гэтай прыладзе"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Гэта функцыя недаступная"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Праца гэтага тэлефона будзе запаволена"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Прымусова правесці поўныя вымярэнні GNSS"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Адсочваць усе групы і частоты GNSS з выключаным працоўным цыклам"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Дазволіць фонавую актыўнасць"</string>
@@ -4590,6 +4580,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"Каналаў апавяшчэння: <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Каб кіраваць усімі, націсніце тут."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Пераключыць вывад"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Зараз прайграецца на прыладзе <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Ваша падпіска ў гэтага аператара можа быць скасавана. Перыядычныя падпіскі не будуць скасаваны. Каб атрымаць дадатковую інфармацыю, звярніцеся да свайго аператара."</string>
 </resources>
diff --git a/res/values-bg/arrays.xml b/res/values-bg/arrays.xml
index 0bd7d6b..05c88cc 100644
--- a/res/values-bg/arrays.xml
+++ b/res/values-bg/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Глобална мрежа"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 8379211..bad6898 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Избиране на друга мрежа"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Устройството не можа да се добави"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Открито е устройство"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Wi-Fi мрежата се споделя с това устройство…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Свързва се…"</string>
     <string name="retry" msgid="6472609612090877557">"Нов опит"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Споделяне с другите потребители на устройството"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(непроменени)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"Мобилни данни"</item>
     <item msgid="2838022395783120596">"Само Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Предпочита се Wi-Fi"</item>
     <item msgid="5074515506087318555">"Предпочитат се мобилни данни"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Мобилни данни"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Когато функцията „Обаждания през Wi-Fi“ е включена, телефонът ви може да маршрутизира обажданията през Wi-Fi или мрежата за мобилни данни на оператора ви в зависимост от предпочитанието ви и това, кой сигнал е по-силен. Преди да я включите, обърнете се към оператора си относно таксите и други подробности. <xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Адрес за спешни случаи"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 минути"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Време за четене"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Време за предприемане на действие"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Изберете колко дълго да се показват съобщенията, които трябва да прочетете, но са видими само временно.\n\nНе всички приложения поддържат тази настройка."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Изберете колко дълго да се показват съобщенията, които изискват да предприемете действие, но са видими само временно.\n\nНе всички приложения поддържат тази настройка."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Забавяне при докосване/задържане"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Инвертиране на цветовете"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, КБП"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Приложения и известия"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Разрешения, приложения по подразбиране"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Достъпът до известията не е налице за приложенията в служебния потребителски профил."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Профили"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Няма добавени профили"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Дисплей, открояващ важни неща, дисплей на заключения екран"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"известие на заключения екран"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"лице"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"отпечатък"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"затъмняване на екрана, сензорен екран, батерия, интелигентна яркост, динамична яркост"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"затъмняване на екрана, спящ режим, батерия, време за изчакване, внимание, дисплей, екран, неактивност"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"завъртане, обръщане, завъртане, вертикален режим, хоризонтален режим, ориентация, вертикално, хоризонтално"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Зададен е тих режим при звънене"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Сила на звука при звънене: 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Сила на звука за мултимедия"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Сила на звука за обаждания"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Сила на звука на будилника"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Сила на звука при звънене"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Актуализиране на режима „Не безпокойте“"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Поставете известията на пауза, за да не ви разсейват"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Тази функция не е налице на устройството"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Тази функция не е налице"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Тя ще забави телефона ви"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Налагане на пълно проследяване на измерванията с GNSS"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Проследяване на всички констелации и честоти на GNSS без използване на коефициент на запълване"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Разрешаване на стартирания на активност на заден план"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> канала за известия. Докоснете, за да управлявате всички."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Превключване на изхода"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Понастоящем се възпроизвежда на <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Абонаментът ви към този доставчик може да е анулиран. Периодичните абонаменти няма да бъдат анулирани. За още информация се обърнете към доставчика си."</string>
 </resources>
diff --git a/res/values-bn/arrays.xml b/res/values-bn/arrays.xml
index 8b75a1a..79a542e 100644
--- a/res/values-bn/arrays.xml
+++ b/res/values-bn/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/সিম"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"০"</item>
-    <item msgid="8113210705878681550">"১"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"গ্লোবাল"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"১০"</item>
-    <item msgid="4187053702071521357">"৮"</item>
-    <item msgid="5461421967189969022">"৯"</item>
-  </string-array>
 </resources>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 387026a..740c40e 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -944,10 +944,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"অন্য নেটওয়ার্ক বেছে নিন"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"ডিভাইস যোগ করা যায়নি"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"ডিভাইস পাওয়া গেছে"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"এই ডিভাইসটি ওয়াই-ফাই-এর সাথে কানেক্ট করা আছে…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"কানেক্ট হচ্ছে…"</string>
     <string name="retry" msgid="6472609612090877557">"আবার করুন"</string>
     <string name="wifi_shared" msgid="844142443226926070">"অন্য ডিভাইস ব্যবহারকারীদের সাথে শেয়ার করুন"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(অপরিবর্তিত)"</string>
@@ -1071,11 +1069,6 @@
     <item msgid="7715869266611010880">"মোবাইল"</item>
     <item msgid="2838022395783120596">"শুধুমাত্র ওয়াই-ফাই"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"২"</item>
-    <item msgid="1171822231056612021">"১"</item>
-    <item msgid="3194458950573886239">"০"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"ওয়াই-ফাই ব্যবহার করুন"</item>
     <item msgid="5074515506087318555">"পছন্দের মোবাইল"</item>
@@ -1084,10 +1077,6 @@
     <item msgid="6132150507201243768">"ওয়াই-ফাই"</item>
     <item msgid="1118703915148755405">"মোবাইল"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"২"</item>
-    <item msgid="6200207341126893791">"১"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi কলিং চালু থাকার সময়ে, আপনার পছন্দ এবং কোন সিগন্যাল বেশি শক্তিশালী তার উপর নির্ভর করে আপনার ফোন ওয়াই-ফাই নেটওয়ার্ক বা আপনার পরিষেবা প্রদানকারীর নেটওয়ার্কের মাধ্যমে আপনার কলের রুট তৈরি করে। এই বৈশিষ্ট্যটি চালু করার আগে, আপনার পরিষেবা প্রদানকারীর থেকে ফি এবং অন্যান্য বিষয় সম্বন্ধে জেনে নিন।<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"জরুরি ঠিকানা"</string>
@@ -2058,8 +2047,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"২ মিনিট"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"পড়ার সময়"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"অ্যাকশন নেওয়ার সময় হয়েছে"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"আপনার পড়ার মেসেজ কতক্ষণ দেখা তা বেছে নিন সেগুলি সাময়িকভাবে দেখা যাবে।\n\nসব অ্যাপ এই সেটিংসে কাজ করে না।"</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"যে মেসেজ আপনাকে অ্যাকশন নিতে বলবে সেই মেসেজ কতক্ষণ দেখা যাবে তা আপনি ঠিক করতে পারেন, তবে তা শুধুমাত্র সাময়িকভাবে সেগুলি দেখা যায়।\n\nসব অ্যাপ এই সেটিংসে কাজ করে না।"</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"স্পর্শ করে ধরে রাখায় বিলম্ব"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"রঙ বিলোমক্রিয়া"</string>
@@ -3014,7 +3002,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"ব্লুটুথ, এনএফসি"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"ব্লুটুথ"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"অ্যাপ ও বিজ্ঞপ্তি"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"অনুমতিগুলি, ডিফল্ট অ্যাপ্স"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"কাজের প্রোফাইলে অ্যাপের জন্য বিজ্ঞপ্তি অ্যাক্সেস উপলভ্য নয়।"</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"অ্যাকাউন্ট"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"কোনও অ্যাকাউন্ট যোগ করা হয়নি"</string>
@@ -3077,7 +3066,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"অ্যাম্বিয়েন্ট ডিসপ্লে, লক স্ক্রিন ডিসপ্লে"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"লক স্ক্রিন বিজ্ঞপ্তি"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"ফেস"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"আঙ্গুলের ছাপ"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"অনুজ্জ্বল স্ক্রিন, টাচস্ক্রিন, ব্যাটারি, স্মার্ট উজ্জ্বলতা, ডায়নামিক উজ্জ্বলতা"</string>
     <!-- no translation found for keywords_display_adaptive_sleep (6865504720946121402) -->
     <skip />
@@ -3111,6 +3101,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"রিঙ্গারকে নীরব অবস্থায় সেট করা হয়েছে"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"রিং ভলিউম ৮০% তে রয়েছে"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"মিডিয়া ভলিউম"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"কলের ভলিউম"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"অ্যালার্মের ভলিউম"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"রিং ভলিউম"</string>
@@ -4231,10 +4223,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"\'বিরক্ত করবেন না\' মোডটি আপডেট করুন"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"যাতে বিরক্ত হতে না হয় তার জন্য বিজ্ঞপ্তি পজ করুন"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"এই বৈশিষ্ট্যটি এই ডিভাইসে উপলব্ধ নেই"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"এই ফিচারটি উপলভ্য নেই"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"এই ফিচারটি ব্যবহার করলে ফোন ঠিকভাবে কাজ নাও করতে পারে"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"GnssMeasurement সম্পূর্ণভাবে ট্র্যাক করুন"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ডিউটি-সাইক্লিং বাদে সমস্ত কন্সটেলেশন এবং ফ্রিকোয়েন্সি ট্র্যাক করুন"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"ব্যাকগ্রাউন্ড অ্যাক্টিভিটি চালু করার অনুমতি দিন"</string>
@@ -4438,6 +4428,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>টি বিজ্ঞপ্তির চ্যানেল। সবগুলি ম্যানেজ করতে ট্যাপ করুন।"</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"আউটপুট পরিবর্তন করুন"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>-এ চালানো হচ্ছে"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"এই পরিষেবা প্রদানকারীরতে আপনার সাবস্ক্রিপশন বাতিল হয়ে যেতে পারে। পুনরাবৃত্তি হওয়া সাবস্ক্রিপশন বাতিল করা যাবে না। আরও জানতে এই পরিষেবা প্রদানকারীর সাথে যোগাযোগ করুন।"</string>
 </resources>
diff --git a/res/values-bs/arrays.xml b/res/values-bs/arrays.xml
index 8afcb52..e8b24e8 100644
--- a/res/values-bs/arrays.xml
+++ b/res/values-bs/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Globalno"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 30dd0f2..9c449f5 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -956,10 +956,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Odaberi drugu mrežu"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Uređaj se ne može dodati"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Uređaj je pronađen"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Dijeljenje Wi-Fi mreže s ovim uređajem…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Povezivanje…"</string>
     <string name="retry" msgid="6472609612090877557">"Pokušaj ponovo"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Dijeli s ostalim korisnicima uređaja"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(nepromijenjeno)"</string>
@@ -1084,11 +1082,6 @@
     <item msgid="7715869266611010880">"Mobilna mreža"</item>
     <item msgid="2838022395783120596">"Samo WiFi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Preferira se WiFi"</item>
     <item msgid="5074515506087318555">"Preferira se mobilna mreža"</item>
@@ -1097,10 +1090,6 @@
     <item msgid="6132150507201243768">"WiFi"</item>
     <item msgid="1118703915148755405">"Mobilna mreža"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Kada je opcija Pozivanje putem WiFi-ja uključena, telefon može preusmjeravati pozive putem WiFi mreža ili mreže vašeg operatera, u zavisnosti od toga kakve su vaše postavke i koji signal je jači. Prije nego što uključite ovu funkciju, raspitajte se o naknadi i drugim informacijama kod operatera.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Adresa za hitne slučajeve"</string>
@@ -2074,8 +2063,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minute"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Vrijeme za čitanje"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Vrijeme za poduzimanje radnje"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Odaberite koliko dugo želite da se poruke koje trebate pročitati prikazuju. One će biti vidljive samo privremeno.\n\nOvu postavku ne podržavaju sve aplikacije."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Odaberite koliko dugo želite da se poruke koje od vas zahtijevaju da poduzmete radnju prikazuju, a koje će biti vidljive samo privremeno.\n\nOvu postavku ne podržavaju sve aplikacije."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Odgoda za dodirivanje i držanje"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inverzija boja"</string>
@@ -3046,7 +3034,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplikacije i obavještenja"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Odobrenja, zadane aplikacije"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Pristup obavještenjima nije dostupan za aplikacije u novom radnom profilu."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Računi"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nije dodan nijedan račun"</string>
@@ -3109,7 +3098,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambijentalni prikaz, Prikaz zaključavanja ekrana"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"obavještenje o zaključavanju ekrana"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"lice"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"otisak prsta"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"zatamnjenje ekrana, ekran osjetljiv na dodir, baterija, pametna osvijetljenost, dinamička osvijetljenost"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"zatamni ekran, stanje mirovanja, baterija, istek vremena, pažnja, prikaz, ekran, neaktivnost"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"rotirati, obrnuti, rotacija, uspravno, vodoravno, orijentacija, vertikalno, horizontalno"</string>
@@ -3142,6 +3132,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Zvono je utišano"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Jačina zvona je na 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Jačina zvuka medija"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Jačina zvuka tokom poziva"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Jačina zvuka alarma"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Jačina zvona"</string>
@@ -4295,10 +4287,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Ažurirajte način rada Ne ometaj"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Pauzirajte obavještenja da ostanete fokusirani"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Ova funkcija nije dostupna na ovom uređaju"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Ova funkcija nije dostupna"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Ona će usporiti ovaj telefon"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Prisilno omogući potpuno GNSS mjerenje"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Prati sve povezane panorame i frekvencije GNSS-a bez ciklusa rada"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Dozvoli pokretanja aktivnosti u pozadini"</string>
@@ -4508,6 +4498,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"Broj kanala obavještenja: <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Dodirnite da upravljate svim."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Prebacite izlaz"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Trenutno se reproducira na uređaju <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Moguće je da je vaša pretplata kod ovog pružaoca otkazana. Ponavljajuće pretplate neće biti otkazane. Za više informacija obratite se svom pružaocu."</string>
 </resources>
diff --git a/res/values-ca/arrays.xml b/res/values-ca/arrays.xml
index 6047729..1a01542 100644
--- a/res/values-ca/arrays.xml
+++ b/res/values-ca/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Global"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 3aed7d2..3524db7 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Tria una xarxa diferent"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"No s\'ha pogut afegir el dispositiu"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Dispositiu detectat"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"S\'està compartint la Wi‑Fi amb aquest dispositiu…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"S\'està connectant…"</string>
     <string name="retry" msgid="6472609612090877557">"Torna-ho a provar"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Comparteix amb altres usuaris del dispositiu"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(sense canvis)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"Dades mòbils"</item>
     <item msgid="2838022395783120596">"Només Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Preferència per la Wi-Fi"</item>
     <item msgid="5074515506087318555">"Preferència per dades mòbils"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Dades mòbils"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Quan la funció Trucades per Wi‑Fi està activada, el telèfon pot encaminar trucades a través de xarxes Wi‑Fi o de la xarxa de l\'operador de telefonia mòbil, segons la teva preferència i la intensitat del senyal. Abans d\'activar aquesta funció, contacta amb l\'operador per saber si hi ha cap càrrec i obtenir més informació.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Adreça d\'emergència"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minuts"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Temps de lectura"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Temps per dur a terme l\'acció"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Tria el temps que necessites per llegir els missatges que es mostren temporalment.\n\nNo totes les aplicacions admeten aquesta opció de configuració."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Selecciona el temps que vols tenir per llegir els missatges que es mostren temporalment i et demanen que duguis a terme una acció.\n\nAquesta opció no és compatible amb totes les aplicacions."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Retard en mantenir premut"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inversió dels colors"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplicacions i notificacions"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Permisos, aplicacions predeterminades"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Les aplicacions del perfil professional no tenen accés a les notificacions."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Comptes"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"No s\'ha afegit cap compte"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Pantalla ambient, pantalla de bloqueig"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notificació en pantalla de bloqueig"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"cara"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"empremta digital"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"pantalla atenuada, pantalla tàctil, bateria, brillantor intel·ligent, brillantor dinàmica"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"pantalla atenuada, repòs, bateria, temps d\'espera, atenció, pantalla, inactivitat"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"gir, canvi, rotació, retrat, paisatge, orientació, vertical, horitzontal"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Timbre en silenci"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Volum del to: 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Volum de multimèdia"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Volum de trucada"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Volum de l\'alarma"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volum del to"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Actualitza el mode No molestis"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Posa en pausa les notificacions per centrar l\'atenció"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Aquesta funció no està disponible en aquest dispositiu"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Aquesta funció no està disponible"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Aquesta funció alentirà el telèfon"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Força els mesuraments de GNSS complets"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Fes un seguiment de totes les freqüències i constel·lacions de GNSS sense cicle de treball"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Permet l\'inici d\'activitats en segon pla"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canals de notificacions. Toca per gestionar-los tots."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Canvia la sortida"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"S\'està reproduint al dispositiu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"És possible que es cancel·li la teva subscripció amb el proveïdor. Les subscripcions recurrents no es cancel·laran. Per obtenir més informació, contacta amb el proveïdor."</string>
 </resources>
diff --git a/res/values-cs/arrays.xml b/res/values-cs/arrays.xml
index 6f0e4a3..974cd85 100644
--- a/res/values-cs/arrays.xml
+++ b/res/values-cs/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Globální"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 52009ca..92958d0 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -972,10 +972,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Vybrat jinou síť"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Zařízení se nepodařilo přidat"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Bylo nalezeno zařízení"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Sdílení Wi‑Fi s tímto zařízením…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Připojování…"</string>
     <string name="retry" msgid="6472609612090877557">"Zkusit znovu"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Sdílet s ostatními uživateli zařízení"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(nezměněno)"</string>
@@ -1101,11 +1099,6 @@
     <item msgid="7715869266611010880">"Mobilní"</item>
     <item msgid="2838022395783120596">"Pouze Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Preferována síť W-Fi"</item>
     <item msgid="5074515506087318555">"Preferována mobilní data"</item>
@@ -1114,10 +1107,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Mobilní"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Je-li zapnuto volání přes Wi-Fi, telefon může hovory v závislosti na zadaných nastaveních a na tom, který signál je silnější, směrovat přes sítě Wi-Fi nebo přes sítě operátora. Než tuto funkci zapnete, zeptejte se operátora na možné poplatky a další podrobnosti.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Nouzová adresa"</string>
@@ -2094,8 +2083,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minuty"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Čas na přečtení"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Čas na akci"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Určete, jak dlouho se mají zobrazovat důležité zprávy, které jsou viditelné jen po omezenou dobu.\n\nToto nastavení podporují jen některé aplikace."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Určete, jak dlouho se mají zobrazovat zprávy s výzvami k akci, které jsou viditelné jen po omezenou dobu.\n\nToto nastavení podporují jen některé aplikace."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Prodleva přidržení"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Převrácení barev"</string>
@@ -3086,7 +3074,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplikace a oznámení"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Oprávnění, výchozí aplikace"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Aplikace v pracovním profilu nemají přístup k oznámením."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Účty"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nebyly přidány žádné účty"</string>
@@ -3149,7 +3138,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambientní displej, displej zámku obrazovky"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"oznámení na obrazovce uzamčení"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"obličej"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"otisk prstu"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ztlumení obrazovky, dotyková obrazovka, baterie, chytrý jas, dynamický jas"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"ztlumení obrazovky, spánek, baterie, časový limit, pozornost, displej, obrazovka, neaktivita"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"otočení, překlopení, rotace, na výšku, na šířku, orientace, vertikální, horizontální"</string>
@@ -3182,6 +3172,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Vyzvánění bylo ztlumeno"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Hlasitost vyzvánění: 80 %"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Hlasitost médií"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Hlasitost hovoru"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Hlasitost budíku"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Hlasitost vyzvánění"</string>
@@ -4371,10 +4363,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Aktualizujte režim Nerušit"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Pokud nechcete být rušeni, oznámení pozastavte"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Funkce v tomto zařízení není k dispozici"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Tato funkce není k dispozici"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Bude zpomalovat telefon"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Vynutit úplné měření GNSS"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Sledovat všechny konstelace a frekvence GNSS bez cyklického vypínání a zapínání"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Povolit zahájení aktivity na pozadí"</string>
@@ -4588,6 +4578,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"Kanály oznámení: <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Klepnutím můžete spravovat všechny."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Přepnout výstup"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Právě se přehrává na zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Vaše předplatné u tohoto poskytovatele může být zrušeno. Opakovaná předplatná zrušena nebudou. Další informace vám sdělí poskytovatel."</string>
 </resources>
diff --git a/res/values-da/arrays.xml b/res/values-da/arrays.xml
index 6ac0c22..d801b7e 100644
--- a/res/values-da/arrays.xml
+++ b/res/values-da/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Global"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index bce08bc..3f91202 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -1065,11 +1065,6 @@
     <item msgid="7715869266611010880">"Mobil"</item>
     <item msgid="2838022395783120596">"Kun Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"WiFi-netværk er foretrukket"</item>
     <item msgid="5074515506087318555">"Mobilnetværk foretrækkes"</item>
@@ -1078,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Mobil"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Når Wi-Fi-opkald er slået til, kan enheden dirigere opkald via Wi-Fi-netværk eller dit mobilselskabs netværk, afhængigt af hvad du foretrækker, og hvor signalet er stærkest. Før du slår denne funktion til, skal du kontakte dit mobilselskab angående gebyrer og andre oplysninger.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Adresse til nødstilfælde"</string>
@@ -2052,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minutter"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tid til at læse"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tid til at foretage en handling"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Vælg, hvor længe du vil have vist beskeder, du skal læse, men som kun vises midlertidigt.\n\nDenne indstilling understøttes ikke i alle apps."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Vælg, hvor længe du vil have vist beskeder, der beder dig om at foretage en handling, men som kun vises midlertidigt.\n\nDenne indstilling understøttes ikke i alle apps."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Forsinkelse på tryk og hold nede"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Ombytning af farver"</string>
@@ -3004,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps og notifikationer"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Tilladelser, standardapps"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Apps i arbejdsprofilen har ikke adgang til notifikationsindstillingerne."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Konti"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Ingen konti er tilføjet"</string>
@@ -3067,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Aktiv låseskærm, visning af låseskærm"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notifikation på låseskærm"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"ansigt"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingeraftryk"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"dæmp skærmlys, touchskærm, batteri, intelligent lysstyrke, dynamisk klarhed"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"dæmp skærm, dvale, batteri, timeout, betjening, visning, skærm, inaktivitet"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"rotere, vende, rotation, stående, liggende, retning, lodret, vandret"</string>
@@ -3100,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Ringesignalet er indstillet til lydløs"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Lydstyrken for ringetonen er på 80 %"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Lydstyrke for medier"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Lydstyrke for opkald"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Lydstyrke for alarmer"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Lydstyrke for ringetone"</string>
@@ -4424,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> notifikationskanaler. Tryk for at administrere alle."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Skift udgang"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Afspilles i øjeblikket på <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Dit abonnement hos denne udbyder ophæves muligvis. Faste abonnementer ophæves ikke. Du kan få flere oplysninger hos din udbyder."</string>
 </resources>
diff --git a/res/values-de/arrays.xml b/res/values-de/arrays.xml
index debf527..bd53afe 100644
--- a/res/values-de/arrays.xml
+++ b/res/values-de/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Global"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index fa39f61..947ec67 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Anderes Netzwerk auswählen"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Gerät konnte nicht hinzugefügt werden"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Gerät gefunden"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"WLAN wird für dieses Gerät freigegeben…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Verbindung wird hergestellt…"</string>
     <string name="retry" msgid="6472609612090877557">"Noch mal versuchen"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Für andere Gerätenutzer freigeben"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(nicht geändert)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"Mobil"</item>
     <item msgid="2838022395783120596">"Nur WLAN"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"WLAN bevorzugt"</item>
     <item msgid="5074515506087318555">"Mobilverbindung bevorzugt"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"WLAN"</item>
     <item msgid="1118703915148755405">"Mobil"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wenn die Option \"WLAN-Telefonie\" aktiviert ist, kann dein Smartphone abhängig von deiner Einstellung und von der Signalstärke Anrufe über WLANs oder über das Netz deines Mobilfunkanbieters übertragen. Bevor du diese Funktion aktivierst, solltest du dich bei deinem Mobilfunkanbieter nach den hierfür anfallenden Gebühren und anderen Voraussetzungen erkundigen.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Notfalladresse"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 Minuten"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Zeit zum Lesen"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Zeit zum Reagieren"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Hier kannst du auswählen, wie lange Nachrichten sichtbar sind, die du lesen musst, die aber nur vorübergehend angezeigt werden.\n\nDiese Einstellung wird nicht von allen Apps unterstützt."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Hier kannst du auswählen, wie lange Nachrichten sichtbar sind, die eine Reaktion erfordern, aber nur vorübergehend angezeigt werden.\n\nDiese Einstellung wird nicht von allen Apps unterstützt."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Reaktionszeit Berühren/Halten"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Farbumkehr"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps &amp; Benachrichtigungen"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Berechtigungen, Standard-Apps"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Für Apps im Arbeitsprofil ist der Benachrichtigungszugriff nicht verfügbar."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Konten"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Keine Konten hinzugefügt"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Inaktivitätsdisplay, Sperrbildschirm"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"benachrichtigung auf dem sperrbildschirm"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"Gesicht"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"Fingerabdruck"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"display dimmen, touchscreen, akku, intelligente helligkeit, dynamische helligkeit"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"display dimmen, ruhemodus, akku, zeitlimit, aufmerksamkeit, display, bildschirm, inaktivität"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"drehen, spiegeln, drehung, hochformat, querformat, ausrichtung, vertikal, horizontal"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Klingelton auf lautlos gestellt"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Klingeltonlautstärke: 80 %"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Medienlautstärke"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Anruflautstärke"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Weckerlautstärke"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Klingeltonlautstärke"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"\"Bitte nicht stören\" aktualisieren"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Zur besseren Konzentration Benachrichtigungen pausieren"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Diese Funktion ist auf diesem Gerät nicht verfügbar"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Diese Funktion ist nicht verfügbar"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Sie würde dieses Smartphone langsamer machen"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Vollständige GNSS-Messung erzwingen"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Alle GNSS-Konstellationen und -Frequenzen ohne GNSS-Zyklus erfassen"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Start von Hintergrundaktivitäten zulassen"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> Benachrichtigungskanäle. Tippen, um alle zu verwalten."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Ausgabe wechseln"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Die Wiedergabe läuft derzeit auf <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Dein Abo bei diesem Anbieter wird möglicherweise storniert. Wiederkehrende Abos werden dabei allerdings nicht storniert. Weitere Informationen erhältst du von deinem Anbieter."</string>
 </resources>
diff --git a/res/values-el/arrays.xml b/res/values-el/arrays.xml
index 6874c20..c9274e4 100644
--- a/res/values-el/arrays.xml
+++ b/res/values-el/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Παγκόσμιο"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index e431b70..5ac2c74 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -1065,11 +1065,6 @@
     <item msgid="7715869266611010880">"Δίκτυο κινητής τηλεφωνίας"</item>
     <item msgid="2838022395783120596">"Μόνο Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Προτίμηση Wi-Fi"</item>
     <item msgid="5074515506087318555">"Προτίμηση δικτύου κινητής τηλεφωνίας"</item>
@@ -1078,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Δίκτυο κινητής τηλεφωνίας"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Όταν η Κλήση Wi-Fi είναι ενεργή, το τηλέφωνό σας μπορεί να δρομολογήσει κλήσεις μέσω δικτύων Wi-Fi ή του δικτύου της εταιρείας κινητής τηλεφωνίας σας, ανάλογα με την προτίμησή σας και την ισχύ του κάθε σήματος. Προτού ενεργοποιήσετε αυτήν τη λειτουργία, επικοινωνήστε με την εταιρεία κινητής τηλεφωνίας σας σχετικά με χρεώσεις και άλλες λεπτομέρειες.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Διεύθυνση έκτακτης ανάγκης"</string>
@@ -2052,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 λεπτά"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Ώρα για ανάγνωση"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Ώρα για την εκτέλεση ενεργειών"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Επιλέξτε το χρονικό διάστημα για το οποίο θέλετε να εμφανίζονται τα μηνύματα που θα πρέπει να διαβάζετε, αλλά τα οποία είναι ορατά μόνο προσωρινά.\n\nΑυτή η ρύθμιση δεν υποστηρίζεται από όλες τις εφαρμογές."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Επιλέξτε το χρονικό διάστημα για το οποίο θέλετε να εμφανίζονται τα μηνύματα που σας ζητούν να προβείτε σε κάποια ενέργεια, αλλά τα οποία είναι ορατά μόνο προσωρινά.\n\nΑυτή η ρύθμιση δεν υποστηρίζεται από όλες τις εφαρμογές."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Καθυστέρηση παρατετ. αγγίγματος"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Αντιστροφή χρωμάτων"</string>
@@ -3004,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Εφαρμ. - ειδοπ/σεις"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Άδειες, προεπιλεγμένες εφαρμογές"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Η πρόσβαση ειδοποίησης δεν είναι διαθέσιμη για εφαρμογές στο προφίλ εργασίας."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Λογαριασμοί"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Δεν έχουν προστεθεί λογαριασμοί"</string>
@@ -3067,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Οθόνη περιβάλλοντος, Οθόνη κλειδώματος οθόνης"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ειδοποίηση οθόνης κλειδώματος"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"πρόσωπο"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"δακτυλικό αποτύπωμα"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"μείωση φωτεινότητας οθόνης, οθόνη αφής, μπαταρία, έξυπνη φωτεινότητα, δυναμική φωτεινότητα"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"μείωση φωτεινότητας οθόνης, αδράνεια, μπαταρία, λήξη ορίου χρόνου, προσοχή, προβολή, οθόνη, καμία ενέργεια"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"περιστρέφω, αναστροφή, περιστροφή, πορτραίτο, οριζόντια, προσανατολισμός, κάθετος, οριζόντιος"</string>
@@ -3100,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Η ειδοποίηση ήχου τέθηκε σε σίγαση"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Ένταση ήχου κλήσης στο 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Ένταση ήχου πολυμέσων"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Ένταση ήχου κλήσεων"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Ένταση ήχου ξυπνητηριού"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Ένταση ήχου κλήσης"</string>
@@ -4424,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> κανάλια ειδοποιήσεων. Πατήστε για να τα διαχειριστείτε όλα."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Εναλλαγή εξόδου"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Παίζει τώρα στη συσκευή <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Η συνδρομή σας με αυτόν τον πάροχο μπορεί να ακυρωθει. Οι επαναλαμβανόμενες συνδρομές δεν θα ακυρωθούν. Για περισσότερες πληροφορίες, απευθυνθείτε στην εταιρεία κινητής τηλεφωνίας σας."</string>
 </resources>
diff --git a/res/values-en-rAU/arrays.xml b/res/values-en-rAU/arrays.xml
index 1268bf2..f05f4ae 100644
--- a/res/values-en-rAU/arrays.xml
+++ b/res/values-en-rAU/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Global"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 32245fd..870ed66 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -1065,11 +1065,6 @@
     <item msgid="7715869266611010880">"Mobile"</item>
     <item msgid="2838022395783120596">"Wi-Fi only"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi preferred"</item>
     <item msgid="5074515506087318555">"Mobile preferred"</item>
@@ -1078,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Mobile"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"When Wi-Fi calling is on, your phone can route calls via Wi-Fi networks or your mobile’s network, depending on your preference and which signal is stronger. Before turning on this feature, check with your operator regarding fees and other details.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Emergency Address"</string>
@@ -3003,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps &amp; notifications"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Permissions, default apps"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Notification access is not available for apps in the work profile."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Accounts"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"No accounts added"</string>
@@ -3066,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambient display, Lock screen display"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"lock screen notification"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"face"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingerprint"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"dim screen, touchscreen, battery, smart brightness, dynamic brightness"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"dim screen, sleep, battery, timeout, attention, display, screen, inactivity"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"rotate, flip, rotation, portrait, landscape, orientation, vertical, horizontal"</string>
@@ -3099,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Ringer set to silent"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Ring volume at 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Media volume"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Call volume"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Alarm volume"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Ring volume"</string>
diff --git a/res/values-en-rCA/arrays.xml b/res/values-en-rCA/arrays.xml
index 1268bf2..f05f4ae 100644
--- a/res/values-en-rCA/arrays.xml
+++ b/res/values-en-rCA/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Global"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index c3675d4..f5e44d1 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -1065,11 +1065,6 @@
     <item msgid="7715869266611010880">"Mobile"</item>
     <item msgid="2838022395783120596">"Wi-Fi only"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi preferred"</item>
     <item msgid="5074515506087318555">"Mobile preferred"</item>
@@ -1078,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Mobile"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"When Wi-Fi calling is on, your phone can route calls via Wi-Fi networks or your mobile’s network, depending on your preference and which signal is stronger. Before turning on this feature, check with your operator regarding fees and other details.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Emergency Address"</string>
@@ -3003,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps &amp; notifications"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Permissions, default apps"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Notification access is not available for apps in the work profile."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Accounts"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"No accounts added"</string>
@@ -3066,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambient display, Lock screen display"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"lock screen notification"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"face"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingerprint"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"dim screen, touchscreen, battery, smart brightness, dynamic brightness"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"dim screen, sleep, battery, timeout, attention, display, screen, inactivity"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"rotate, flip, rotation, portrait, landscape, orientation, vertical, horizontal"</string>
@@ -3099,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Ringer set to silent"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Ring volume at 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Media volume"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Call volume"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Alarm volume"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Ring volume"</string>
diff --git a/res/values-en-rGB/arrays.xml b/res/values-en-rGB/arrays.xml
index 1268bf2..f05f4ae 100644
--- a/res/values-en-rGB/arrays.xml
+++ b/res/values-en-rGB/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Global"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 32245fd..870ed66 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -1065,11 +1065,6 @@
     <item msgid="7715869266611010880">"Mobile"</item>
     <item msgid="2838022395783120596">"Wi-Fi only"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi preferred"</item>
     <item msgid="5074515506087318555">"Mobile preferred"</item>
@@ -1078,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Mobile"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"When Wi-Fi calling is on, your phone can route calls via Wi-Fi networks or your mobile’s network, depending on your preference and which signal is stronger. Before turning on this feature, check with your operator regarding fees and other details.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Emergency Address"</string>
@@ -3003,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps &amp; notifications"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Permissions, default apps"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Notification access is not available for apps in the work profile."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Accounts"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"No accounts added"</string>
@@ -3066,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambient display, Lock screen display"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"lock screen notification"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"face"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingerprint"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"dim screen, touchscreen, battery, smart brightness, dynamic brightness"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"dim screen, sleep, battery, timeout, attention, display, screen, inactivity"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"rotate, flip, rotation, portrait, landscape, orientation, vertical, horizontal"</string>
@@ -3099,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Ringer set to silent"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Ring volume at 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Media volume"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Call volume"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Alarm volume"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Ring volume"</string>
diff --git a/res/values-en-rIN/arrays.xml b/res/values-en-rIN/arrays.xml
index 1268bf2..f05f4ae 100644
--- a/res/values-en-rIN/arrays.xml
+++ b/res/values-en-rIN/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Global"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 32245fd..870ed66 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -1065,11 +1065,6 @@
     <item msgid="7715869266611010880">"Mobile"</item>
     <item msgid="2838022395783120596">"Wi-Fi only"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi preferred"</item>
     <item msgid="5074515506087318555">"Mobile preferred"</item>
@@ -1078,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Mobile"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"When Wi-Fi calling is on, your phone can route calls via Wi-Fi networks or your mobile’s network, depending on your preference and which signal is stronger. Before turning on this feature, check with your operator regarding fees and other details.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Emergency Address"</string>
@@ -3003,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps &amp; notifications"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Permissions, default apps"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Notification access is not available for apps in the work profile."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Accounts"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"No accounts added"</string>
@@ -3066,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambient display, Lock screen display"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"lock screen notification"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"face"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingerprint"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"dim screen, touchscreen, battery, smart brightness, dynamic brightness"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"dim screen, sleep, battery, timeout, attention, display, screen, inactivity"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"rotate, flip, rotation, portrait, landscape, orientation, vertical, horizontal"</string>
@@ -3099,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Ringer set to silent"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Ring volume at 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Media volume"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Call volume"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Alarm volume"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Ring volume"</string>
diff --git a/res/values-en-rXC/arrays.xml b/res/values-en-rXC/arrays.xml
index 7350709..fcfbe28 100644
--- a/res/values-en-rXC/arrays.xml
+++ b/res/values-en-rXC/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‎‎‏‏‏‎‏‏‏‎‏‏‎‏‎‏‎‏‏‏‎‏‎‎‎‏‎‎‏‏‎‎‏‏‏‎‏‎‏‎‎‎‏‎‎‏‎‏‏‎‏‎RUIM/SIM‎‏‎‎‏‎"</item>
     <item msgid="2214656470548320124">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‎‏‎‏‏‏‏‎‎‎‎‎‎‏‎‏‎‎‏‎‏‎‎‏‏‏‎‎‎‎‎‏‎‏‎‎‎‏‏‎‏‏‎‎‎‏‏‏‏‎‏‏‏‏‏‎‎‎NV‎‏‎‎‏‎"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‏‎‏‎‏‎‎‎‎‎‎‏‏‏‎‎‎‏‎‎‏‎‎‏‏‏‎‏‎‏‎‏‎‏‎‏‎‏‎‏‎‏‎‎‎‏‏‏‏‏‎‎‏‎‏‎‎‎0‎‏‎‎‏‎"</item>
-    <item msgid="8113210705878681550">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‎‏‏‏‏‏‏‎‏‎‏‎‎‎‏‎‎‏‏‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‎‎‎‎‏‏‏‏‏‎‎‏‏‏‎‎1‎‏‎‎‏‎"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‏‎‏‎‎‏‎‎‎‎‎‏‎‏‏‎‎‏‏‎‏‎‏‎‎‎‏‏‎‎‎‏‎‎‎‎‎‏‎‏‎‏‏‎‎‏‎‎‎‏‏‏‎‏‎‎‎Global‎‏‎‎‏‎"</item>
     <item msgid="817971827645657949">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‏‎‏‎‏‏‎‏‎‎‎‎‎‎‏‎‏‎‎‎‎‏‎‏‏‎‎‎‏‏‏‏‏‎‎‎‏‏‎‎‎‏‎‏‏‎‎‏‏‎‏‎‏‏‏‎‏‎LTE / CDMA‎‏‎‎‏‎"</item>
     <item msgid="519208953133334357">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎‎‏‏‎‏‎‎‏‎‎‏‏‎‎‏‏‏‎‎‏‎‏‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‏‎LTE / GSM / UMTS‎‏‎‎‏‎"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‎‎‏‎‏‏‏‎‏‎‎‎‏‏‏‏‎‎‏‏‎‎‎‎‏‎‏‏‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‎‎‎‏‎‏‏‎‏‏‏‏‎‎10‎‏‎‎‏‎"</item>
-    <item msgid="4187053702071521357">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‎‎‎‎‏‏‎‏‏‎‏‏‎‎‏‏‏‎‎‏‎‏‎‎‎‎‏‏‏‎‏‏‏‎‏‏‏‎‏‎‏‎‎‎‏‎‎‎‎‎‏‎‎‏‏‎‏‎8‎‏‎‎‏‎"</item>
-    <item msgid="5461421967189969022">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‎‎‏‎‏‎‏‏‎‏‏‏‏‎‎‏‎‏‎‏‏‏‏‏‏‎‎‎‏‎‏‏‎‏‏‏‏‏‏‎‎‎‏‎‎‎‎‏‏‏‏‏‏‎‎9‎‏‎‎‏‎"</item>
-  </string-array>
 </resources>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 7a18068..f5eabf0 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -1064,11 +1064,6 @@
     <item msgid="7715869266611010880">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‎‏‎‏‎‎‎‏‎‎‎‏‏‎‎‎‏‏‎‏‏‏‏‎‏‏‎‎‎‏‏‎‏‏‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‎‎‎Mobile‎‏‎‎‏‎"</item>
     <item msgid="2838022395783120596">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‏‎‏‏‎‎‎‏‎‏‎‏‎‏‏‏‎‎‏‎‏‎‏‎‏‎‎‎‏‏‏‎‏‎‏‎‎‎‎‎‏‏‎‎‎‎‏‏‎‏‏‎‏‎‏‎‎‎Wi-Fi only‎‏‎‎‏‎"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‎‏‏‎‏‏‏‎‎‎‏‏‎‏‏‏‏‎‎‎‏‎‎‎‎‏‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎‏‎‏‏‏‎‎‏‏‏‎2‎‏‎‎‏‎"</item>
-    <item msgid="1171822231056612021">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‎‏‎‎‎‎‏‏‎‎‏‎‎‏‏‎‎‎‎‏‏‏‎‎‎‏‎‎‏‏‏‎‎‎‎‎‏‎‎‎‏‏‏‏‏‎‏‎‏‎‏‏‎‏‎‏‎1‎‏‎‎‏‎"</item>
-    <item msgid="3194458950573886239">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‎‎‏‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‏‎‎‏‎‏‏‎‏‎‎‎‎‏‏‎‎‎‎‎‏‎‏‏‎‎‎‏‏‏‏‏‎0‎‏‎‎‏‎"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‎‎‏‏‏‏‏‎‎‎‏‎‏‏‎‏‎‏‎‎‏‏‎‏‏‎‎‏‎‏‏‏‎‎‎‎‏‎‎‏‎‏‏‎‏‏‎‏‏‏‏‏‎‎‏‏‎Wi-Fi preferred‎‏‎‎‏‎"</item>
     <item msgid="5074515506087318555">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‎‎‏‏‎‏‏‎‎‎‏‎‎‏‏‎‎‏‏‏‏‎‏‏‏‏‎‎‎‎‎‏‏‏‎‎‎‏‎‏‏‏‏‎‏‎‏‎‎‎‎‎‏‏‎‏‏‎Mobile preferred‎‏‎‎‏‎"</item>
@@ -1077,10 +1072,6 @@
     <item msgid="6132150507201243768">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‎‏‏‎‎‏‏‏‎‎‎‏‏‎‎‏‏‎‎‏‎‏‏‎‎‏‎‎‏‎‏‏‏‏‎‏‏‎‎‎‏‎‏‎‏‎‎‏‏‏‏‎‎‎‎Wi-Fi‎‏‎‎‏‎"</item>
     <item msgid="1118703915148755405">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‏‏‎‎‎‎‏‏‎‎‏‏‎‏‏‏‏‎‏‎‎‏‎‎‎‏‎‎‏‏‏‏‏‎‏‎‎‎‏‏‏‏‏‎‎‎‎‎‏‏‏‎‎‏‏‎‏‎Mobile‎‏‎‎‏‎"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‎‎‏‏‏‎‏‏‎‏‎‏‎‏‏‎‎‏‎‎‏‏‏‏‏‏‎‎‏‏‏‎‏‎‎‏‎‎‎‎‎‎‏‏‎‎‏‎‏‏‏‏‎‎‏‏‏‎2‎‏‎‎‏‎"</item>
-    <item msgid="6200207341126893791">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‎‏‎‎‎‎‎‎‏‎‏‏‎‏‎‎‎‏‏‎‏‎‎‎‎‎‎‏‏‎‏‏‏‏‏‎1‎‏‎‎‏‎"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‏‏‎‏‎‏‏‎‏‎‎‎‎‎‎‎‏‎‎‏‎‏‏‎‎‏‏‏‎‏‎‎‏‏‎‏‎‎‎‏‎‏‏‏‏‏‎‎‎‎‎‎‏‏‎‏‎When Wi-Fi calling is on, your phone can route calls via Wi-Fi networks or your carrier’s network, depending on your preference and which signal is stronger. Before turning on this feature, check with your carrier regarding fees and other details.‎‏‎‎‏‏‎<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‎‏‏‏‏‎‎‎‏‏‎‏‏‏‎‎‎‎‏‎‎‏‏‏‏‏‎‏‏‏‏‎‎‏‎‎‏‎‎‎‎‎‎‎‎‏‏‎‎‏‎‏‏‏‎‎‏‎Emergency Address‎‏‎‎‏‎"</string>
@@ -3002,7 +2993,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‏‎‎‏‏‎‎‎‎‎‏‎‎‎‎‏‏‎‏‏‏‎‏‎‏‎‎‏‎‏‎‏‏‏‏‎‏‏‏‎‎‎‏‏‎‎‏‏‎‏‎‎‏‏‎Bluetooth, NFC‎‏‎‎‏‎"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‏‎‏‏‏‎‎‎‎‎‎‎‏‏‎‎‏‏‏‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‏‎‏‏‏‎‎‎‏‎‏‏‎‏‎‎‏‏‏‎Bluetooth‎‏‎‎‏‎"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‎‏‏‎‎‎‏‏‏‎‏‏‏‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‎‏‏‏‎‎‎‏‎‏‏‎‎‏‏‎‎‏‏‏‎‎‏‎‎‎‏‏‎Apps &amp; notifications‎‏‎‎‏‎"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‎‏‏‎‎‏‏‎‎‎‎‏‎‏‏‎‏‏‎‏‏‏‎‎‏‎‏‏‎‏‎‎‎‎‎‏‎‏‎‏‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎Permissions, default apps‎‏‎‎‏‎"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‎‎‎‏‏‏‎‎‏‏‎‏‎‎‎‏‏‎‎‎‎‏‎‏‏‎‎‎‎‏‏‏‏‏‎‎‏‏‏‏‎‏‏‎‏‏‎‎‏‏‏‎‎‏‎‏‏‎Notification access is not available for apps in the work profile.‎‏‎‎‏‎"</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‎‏‎‎‏‎‏‎‎‏‏‏‏‎‎‏‎‏‏‏‏‎‏‎‏‎‎‎‏‏‏‎‏‎‏‎‏‏‎‏‏‏‏‎‎‏‎‎‏‏‏‏‏‏‎Accounts‎‏‎‎‏‎"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‏‎‏‏‏‏‏‎‎‏‏‏‏‏‎‏‏‏‏‎‎‎‏‏‎‏‎‏‏‏‎‏‏‎‏‎‎‎‎‎‎‎‏‎‏‏‎‏‎‏‎‎‎‎‎‏‏‎No accounts added‎‏‎‎‏‎"</string>
@@ -3065,7 +3057,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‎‏‎‎‎‎‎‎‏‎‏‎‏‏‎‏‎‎‎‎‏‎‎‏‏‎‏‏‏‏‎‏‏‎‎‏‏‏‎‏‎‎‎‏‎‎‏‎‏‎‎‏‎‎Ambient display, Lock screen display‎‏‎‎‏‎"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‏‏‏‏‎‏‎‎‎‏‎‏‏‎‎‎‎‎‎‏‎‎‎‏‏‏‎‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‎‎‏‏‏‏‎‎‎‏‏‏‎lock screen notification‎‏‎‎‏‎"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‏‎‏‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‏‏‎‎‏‏‎‎‏‏‎‎‎‏‏‎‎‎‏‏‏‏‏‏‎‎‏‏‎‏‏‎‎‎‎‏‎face‎‏‎‎‏‎"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‏‎‏‎‏‎‎‎‏‏‏‏‎‎‎‏‏‏‎‎‏‏‎‏‏‏‎‎‎‎‏‎‎‏‏‎‏‏‎‎‏‎‏‎‏‏‎‎‎‏‏‎‏‎‎‏‎‎fingerprint‎‏‎‎‏‎"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‎‏‎‏‎‎‎‏‏‏‎‏‏‎‎‎‏‎‎‏‎‏‎‏‏‏‏‎‎‎‏‎‎‏‎‎‏‏‏‎‎‎‎‏‏‎‏‏‎‎‏‏‎‏‎‎‎dim screen, touchscreen, battery, smart brightness, dynamic brightness‎‏‎‎‏‎"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‏‏‏‎‎‏‎‏‏‎‎‎‎‏‎‏‎‏‏‎‎‏‎‏‏‏‏‏‏‎‎‎‎‏‎‏‏‎‎‏‎‏‎‏‎‏‏‏‎‏‎‎dim screen, sleep, battery, timeout, attention, display, screen, inactivity‎‏‎‎‏‎"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‎‎‎‎‎‎‎‎‏‎‏‏‎‎‎‎‎‎‏‏‏‏‏‎‎‏‎‏‏‎‏‎‏‎‏‎‎‎‎‎‎‏‎‎‏‏‏‎‏‎‎‏‎‎‏‏‎‎rotate, flip, rotation, portrait, landscape, orientation, vertical, horizontal‎‏‎‎‏‎"</string>
@@ -3098,6 +3091,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‎‎‏‏‎‏‏‎‎‎‏‎‏‏‎‎‏‏‏‏‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‎‎‏‏‎‎‎‏‎‏‏‎‏‏‎‏‎‎‎Ringer set to silent‎‏‎‎‏‎"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‏‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‎‏‎‎‏‎‎‏‎‏‎‎‎‎‎‏‎‎‏‏‎‎‎‎‏‏‎‎‎‎‏‏‏‎‏‎Ring volume at 80%‎‏‎‎‏‎"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‏‎‎‎‏‎‏‎‎‎‎‏‏‎‏‏‎‎‏‏‏‏‎‎‏‏‎‎‏‏‏‎‏‎‏‏‏‎‎‏‏‎‎‎‏‎Media volume‎‏‎‎‏‎"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‏‏‎‎‏‎‎‎‏‎‏‎‎‎‎‎‏‏‎‏‏‎‏‏‏‏‎‎‏‎‎‏‏‎‏‎‏‎‎‎‏‏‏‎‏‏‎‎‏‎‎‎‏‏‎‎‎‎Call volume‎‏‎‎‏‎"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‏‎‎‎‎‏‏‏‎‏‎‎‎‎‎‎‎‎‎‏‏‎‏‏‎‎‏‎‎‏‎‏‎‎‏‎‏‎‎‎‏‏‎‎‎‎‏‏‏‎‏‎‏‎Alarm volume‎‏‎‎‏‎"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‏‏‏‏‎‏‎‎‏‏‎‎‏‎‎‏‏‎‎‏‎‎‏‎‏‎‏‎‏‎‏‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‎‏‏‎‏‎‏‎Ring volume‎‏‎‎‏‎"</string>
diff --git a/res/values-es-rUS/arrays.xml b/res/values-es-rUS/arrays.xml
index de5e5c8..8866435 100644
--- a/res/values-es-rUS/arrays.xml
+++ b/res/values-es-rUS/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Global"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 07b5b2e..a9bb2da 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Seleccionar otra red"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"No se pudo agregar el dispositivo"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Se encontró el dispositivo"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Compartiendo Wi-Fi con este dispositivo…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Conectando…"</string>
     <string name="retry" msgid="6472609612090877557">"Reintentar"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Compartir con otros usuarios del dispositivo"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(sin cambios)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"Móvil"</item>
     <item msgid="2838022395783120596">"Solo Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Red Wi-Fi preferida"</item>
     <item msgid="5074515506087318555">"Red móvil preferida"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Móvil"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Si está activada la función Llamada por Wi-Fi, el teléfono podrá hacer llamadas mediante redes Wi-Fi o la red de tu proveedor, según la preferencia que hayas elegido y la señal que tenga más intensidad. Antes de activar esta función, verifica el costo y otros detalles con el proveedor.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Dirección de emergencia"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minutos"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tiempo de lectura"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tiempo de acción"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Selecciona el tiempo de visualización de mensajes que debes leer, pero que solo se muestran temporalmente.\n\nNo todas las apps admiten esta configuración."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Selecciona el tiempo de visualización de mensajes que requieren acciones, pero que solo se muestran temporalmente.\n\nNo todas las apps admiten esta opción."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Tiempo de respuesta táctil"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inversión de color"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps y notificaciones"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Permisos, apps predeterminadas"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Las apps del perfil de trabajo no tienen acceso a las notificaciones."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Cuentas"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"No se agregó ninguna cuenta"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Pantalla Ambiente, pantalla bloqueada"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notificación en pantalla bloqueada"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"rostro"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"huella digital"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"atenuar pantalla, pantalla táctil, batería, brillo inteligente, brillo dinámico"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"atenuar pantalla, suspender, batería, tiempo de espera, atención, pantalla, inactividad"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"rotar, girar, rotación, retrato, paisaje, orientación, vertical, horizontal"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Timbre en silencio"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Volumen de tono: 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Volumen multimedia"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Volumen de llamada"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Volumen de alarma"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volumen de tono"</string>
@@ -4217,10 +4209,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Actualizar el modo No interrumpir"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Pausa las notificaciones para concentrarte"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"La función no está disponible en este dispositivo"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Esta función no está disponible"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Esta función ralentizará el teléfono"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Forzar dimensiones GNSS completas"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Seguir todas las frecuencias y constelaciones de GNSS sin ciclo de funciones"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Permitir inicio de actividades en segundo plano"</string>
@@ -4426,6 +4416,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canales de notificación. Presiona para administrarlos todos."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Cambiar de salida"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Reproduciendo en <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Es posible que se haya cancelado tu suscripción de este proveedor. No se cancelarán las suscripciones recurrentes. Para obtener más información, comunícate con tu proveedor."</string>
 </resources>
diff --git a/res/values-es/arrays.xml b/res/values-es/arrays.xml
index 8a4fac5..d88de5f 100644
--- a/res/values-es/arrays.xml
+++ b/res/values-es/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Global"</item>
     <item msgid="817971827645657949">"LTE o CDMA"</item>
     <item msgid="519208953133334357">"LTE, GSM o UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 9370000..7923b9f 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -1065,11 +1065,6 @@
     <item msgid="7715869266611010880">"Móvil"</item>
     <item msgid="2838022395783120596">"Solo Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Dar prioridad a Wi-Fi"</item>
     <item msgid="5074515506087318555">"Dar prioridad a datos móviles"</item>
@@ -1078,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Móvil"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Si la función de llamada por Wi‑Fi está activada, el teléfono puede hacer llamadas a través de redes Wi‑Fi o de la red de tu operador, según la preferencia que hayas seleccionado y la señal que tenga más intensidad. Antes de activar esta función, consulta a tu operador las tarifas y otros detalles.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Dirección de emergencia"</string>
@@ -2052,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minutos"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tiempo para leer"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tiempo para responder"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Elige el tiempo que quieres tener para leer los mensajes que se muestran temporalmente.\n\nEsta opción no funciona con todas las aplicaciones."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Elige el tiempo que quieres tener para leer los mensajes que se muestran temporalmente y te piden que realices una acción.\n\nEsta opción no funciona con todas las aplicaciones."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Retraso al mantener pulsado"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Invertir colores"</string>
@@ -3004,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplicaciones y notificaciones"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Permisos, aplicaciones predeterminadas"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Las aplicaciones del perfil de trabajo no tienen acceso a las notificaciones."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Cuentas"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"No se ha añadido ninguna cuenta"</string>
@@ -3067,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Pantalla ambiente, pantalla de bloqueo"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notificación en pantalla de bloqueo"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"cara"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"huella digital"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"atenuar pantalla, pantalla táctil, batería, brillo inteligente, brillo dinámico"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"atenuar pantalla, suspensión, batería, tiempo de espera, atención, pantalla, inactividad"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"rotar, girar, rotación, retrato, paisaje, orientación, vertical, horizontal"</string>
@@ -3100,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Timbre en silencio"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Volumen del timbre al 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Volumen de multimedia"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Volumen de llamada"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Volumen de la alarma"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volumen del tono"</string>
@@ -4424,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canales de notificaciones. Toca para gestionarlos todos."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Cambiar salida"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Reproduciendo contenido en <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Es posible que se cancele tu suscripción a este proveedor. Las suscripciones periódicas no se cancelarán. Para obtener más información, consulta a tu proveedor."</string>
 </resources>
diff --git a/res/values-et/arrays.xml b/res/values-et/arrays.xml
index 36bd841..4a79d4a 100644
--- a/res/values-et/arrays.xml
+++ b/res/values-et/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Üldine"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 13af58c..2227911 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Valige mõni teine võrk"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Seadet ei õnnestunud lisada"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Leiti seade"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"WiFi-võrgu jagamine selle seadmega …"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Ühendamine …"</string>
     <string name="retry" msgid="6472609612090877557">"Proovi uuesti"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Jaga seadme teiste kasutajatega"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(muutmata)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"Mobiilne andmeside"</item>
     <item msgid="2838022395783120596">"Ainult WiFi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"WiFi eelistusega"</item>
     <item msgid="5074515506087318555">"Eelistatud on mobiilne andmeside"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"WiFi"</item>
     <item msgid="1118703915148755405">"Mobiilne andmeside"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Kui WiFi-kõned on sisse lülitatud, saab telefon olenevalt eelistustest ja signaalitugevusest kõnesid marsruutida WiFi-võrkude või teie operaatori võrgu kaudu. Enne selle funktsiooni sisselülitamist uurige operaatorilt tasude ja muude üksikasjade kohta. <xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Hädaolukorra aadress"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minutit"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Aeg lugemiseks"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Aeg toimingu tegemiseks"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Valige, kui kaua soovite kuvada sõnumeid, mida peate lugema, kuid mis on nähtavad ainult ajutiselt.\n\nKõik rakendused seda seadet ei toeta"</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Valige, kui kaua soovite kuvada sõnumeid, milles palutakse teil toiminguid teha, kuid mis on nähtaval ainult ajutiselt.\n\nKõik rakendused seda seadet ei toeta."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Puute ja hoidmise viide"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Värvuste ümberpööramine"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Rakendused ja märguanded"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Load, vaikerakendused"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Tööprofiilil pole märguannete juurdepääs rakenduste puhul saadaval."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Kontod"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Kontosid pole lisatud"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Säästlik ekraan, lukustuskuva ekraan"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"lukustuskuva märguanne"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"nägu"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"sõrmejälg"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ekraani hämardamine, puuteekraan, aku, nutikas heledus, dünaamiline heledus"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"ekraani hämardamine, unerežiim, aku, ajalõpp, tähelepanu, ekraan, ekraanikuva, tegevusetus"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"pöörama, vahetamine, pööramine, vertikaalpaigutus, horisontaalpaigutus, suund, vertikaalne, horisontaalne"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Telefonihelin on seatud hääletuks"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Helina helitugevus on 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Meedia helitugevus"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Kõne helitugevus"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Äratuse helitugevus"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Helina helitugevus"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Värskendage režiimi Mitte segada"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Keskendumiseks peatage märguanded"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Sellel seadmel pole see funktsioon saadaval"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"See funktsioon pole saadaval"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"See muudab selle telefoni aeglasemaks"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Jõusta GNSS-i täielikud mõõtmistulemused"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Jälgi kõiki GNSS-i radu ja sagedusi ilma töötsüklita"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Luba taustategevuste käivitamine"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> märguandekanalit. Puudutage kõigi haldamiseks."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Väljundi vahetamine"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Praegu seadmes <xliff:g id="DEVICE_NAME">%1$s</xliff:g> esitamisel"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Teie selle teenusepakkuja tellimus võidakse tühistada. Korduvaid tellimusi ei tühistata. Lisateavet küsige teenusepakkujalt."</string>
 </resources>
diff --git a/res/values-eu/arrays.xml b/res/values-eu/arrays.xml
index 667e23a..b510b94 100644
--- a/res/values-eu/arrays.xml
+++ b/res/values-eu/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Orokorrak"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 349fe7f..4cf2212 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -1065,11 +1065,6 @@
     <item msgid="7715869266611010880">"Datu-konexioa"</item>
     <item msgid="2838022395783120596">"Wi-Fi sarea soilik"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi konexioa hobesten da"</item>
     <item msgid="5074515506087318555">"Datu-konexioa hobesten da"</item>
@@ -1078,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi konexioa"</item>
     <item msgid="1118703915148755405">"Datu-konexioa"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wifi bidezko deiak aktibatuta daudenean, telefonoak wifi-sareen bidez edo operadorearen sarearen bidez bidera ditzake deiak, zure hobespenen eta seinalearen sendotasunaren arabera. Eginbide hau aktibatu aurretik, eskatu tarifak eta bestelako informazioa operadoreari.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Larrialdietarako helbidea"</string>
@@ -2052,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"Bi minutu"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Irakurtzeko denbora"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Zerbait egiteko denbora"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Aukeratu zenbat denboraz erakutsi behar diren mezuak, irakurri egin behar badituzu baina aldi baterako soilik badaude ikusgai.\n\nAplikazio guztiek ez dute onartzen ezarpen hau."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Aukeratu zenbat denboraz erakutsi behar diren mezuak, zerbait egiteko eskatzen badizute baina aldi baterako soilik badaude ikusgai.\n\nAplikazio guztiek ez dute onartzen ezarpen hau."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Sakatuta edukitzearen atzerapena"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Koloreen alderantzikatzea"</string>
@@ -3004,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplikazioak eta jakinarazpenak"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Baimenak, aplikazio lehenetsiak"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Laneko profilaren aplikazioek ezin dituzte atzitu jakinarazpenak."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Kontuak"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Ez da gehitu konturik"</string>
@@ -3067,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Pantaila ilundua, pantaila blokeatuaren bistaratzea"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"pantaila blokeatuko jakinarazpena"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"aurpegia"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"hatz-marka"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ilundu pantaila, ukipen-pantaila, bateria, distira adimenduna, distira dinamikoa"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"ilundu pantaila, pantaila ilundu, ezarri inaktibo, inaktibo ezarri, bateria, denbora-muga, arreta, pantaila, bistaratzea, jarduera eza, inaktibo"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"biratu, irauli, errotazioa, bertikala, horizontala, orientazioa"</string>
@@ -3100,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Isilik moduan ezarri da gailua"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Tonuaren bolumena: % 80"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Multimedia-edukiaren bolumena"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Deien bolumena"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Alarmaren bolumena"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Tonuaren bolumena"</string>
@@ -4424,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> jakinarazpen-kanal. Sakatu hau guztiak kudeatzeko."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Aldatu irteera"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailuan erreproduzitzen"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Baliteke hornitzaile honekin daukazun harpidetza bertan behera uztea. Harpidetza errepikariak ez dira utziko bertan behera. Informazio gehiago lortzeko, jarri hornitzailearekin harremanetan."</string>
 </resources>
diff --git a/res/values-fa/arrays.xml b/res/values-fa/arrays.xml
index f4121d3..9861b5d 100644
--- a/res/values-fa/arrays.xml
+++ b/res/values-fa/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"جهانی"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 706112a..59426ab 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"انتخاب شبکه‌ای دیگر"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"دستگاه اضافه نشد"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"دستگاه پیدا شد"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"‏درحال هم‌رسانی Wi‑Fi با این دستگاه…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"درحال اتصال…"</string>
     <string name="retry" msgid="6472609612090877557">"امتحان مجدد"</string>
     <string name="wifi_shared" msgid="844142443226926070">"اشتراک‌گذاری با دیگر استفاده‌کنندگان از دستگاه"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(بدون تغییر)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"داده شبکه تلفن همراه"</item>
     <item msgid="2838022395783120596">"‏فقط Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"۲"</item>
-    <item msgid="1171822231056612021">"۱"</item>
-    <item msgid="3194458950573886239">"۰"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"‏Wi-Fi ترجیحی"</item>
     <item msgid="5074515506087318555">"داده شبکه تلفن همراه ارجح است"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"داده شبکه تلفن همراه"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"۲"</item>
-    <item msgid="6200207341126893791">"۱"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"‏اگر تماس ازطریق Wi-Fi روشن باشد، تلفن شما می‌تواند براساس اولویتتان و اینکه چه سیگنالی قوی‌تر است، تماس‌ها را ازطریق شبکه‌های Wi-Fi یا شبکه شرکت مخابراتی‌تان هدایت کند. قبل از روشن کردن این ویژگی، هزینه‌ها و سایر جزئیات را با شرکت مخابراتی‌تان بررسی کنید.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"نشانی اضطراری"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"۲ دقیقه"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"زمان لازم برای خواندن"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"زمان لازم برای اقدام"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"مدت‌زمان موردنظرتان را برای نمایش پیام‌هایی که می‌خواهید بخوانید، اما به‌طور موقت نمایش داده می‌شوند، انتخاب کنید.\n\nهمه برنامه‌ها از این تنظیم پشتیبانی نمی‌کنند."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"مدت‌زمان موردنظرتان را برای نمایش پیام‌هایی که می‌خواهند اقدامی بکنید، اما به‌طور موقت نمایش داده می‌شوند، انتخاب کنید.\n\nهمه برنامه‌ها از این تنظیم پشتیبانی نمی‌کنند."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"تأخیر لمس کردن و نگه داشتن"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"وارونگی رنگ"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"‏بلوتوث، NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"بلوتوث"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"برنامه‌ها و اعلان‌ها"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"مجوزها، برنامه‌های پیش‌فرض"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"برنامه‌ها نمی‌توانند در نمایه کاری به اعلان‌ها دسترسی داشته باشند."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"حساب‌ها"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"حسابی اضافه نشد"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"نمایشگر محیطی. نمایشگر صفحه در حالت قفل"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"اعلان صفحه قفل"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"چهره"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"اثر انگشت"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"تار کردن صفحه‌نمایش، صفحه لمسی، باتری، روشنایی هوشمند، روشنایی پویا"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"کم‌نور کردن صفحه، خواب، باتری، مهلت زمانی، توجه، نمایشگر، صفحه، بی‌فعالیتی"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"چرخاندن، چرخش، چرخش، پرتره، منظره، جهت، عمودی، افقی"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"زنگ روی سکوت تنظیم شده است"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"بلندی صدای زنگ ۸۰٪"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"میزان صدای رسانه"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"میزان صدای تماس"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"میزان صدای هشدار"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"میزان صدای زنگ"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"به‌روزرسانی «مزاحم نشوید»"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"توقف موقت اعلان‌ها برای متمرکز ماندن"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"این ویدیو در این دستگاه دردسترس نیست."</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"این ویژگی دردسترس نیست"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"این کار عملکرد تلفن را کند می‌کند"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"‏اجرای کامل اندازه‌گیری GNSS"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"بدون دوره کاری همه زنجیره عکس‌های پانوراما و فرکانس‌ها را ردیابی کنید."</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"اجازه دادن به شروع فعالیت پس‌زمینه"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> کانال اعلان. برای مدیریت همه آن‌ها ضربه بزنید."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"تغییر خروجی"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"درحال‌حاضر در <xliff:g id="DEVICE_NAME">%1$s</xliff:g> درحال پخش است"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ممکن است اشتراکتان با این ارائه‌دهنده لغو شود. اشتراک‌های تکرارشونده لغو نخواهد شد. برای اطلاعات بیشتر با ارائه‌دهنده‌تان تماس بگیرید."</string>
 </resources>
diff --git a/res/values-fi/arrays.xml b/res/values-fi/arrays.xml
index 9b47268..ca6ce9e 100644
--- a/res/values-fi/arrays.xml
+++ b/res/values-fi/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Maailmanlaajuinen"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 02e236e..e02a342 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -1065,11 +1065,6 @@
     <item msgid="7715869266611010880">"Mobiili"</item>
     <item msgid="2838022395783120596">"Vain Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi ensisijainen"</item>
     <item msgid="5074515506087318555">"Mobiiliverkko ensisijainen"</item>
@@ -1078,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Mobiili"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Kun Wi-Fi-puhelut on käytössä, puhelimesi voi ohjata puhelut Wi-Fi-verkkojen tai operaattorisi verkon kautta, riippuen asetuksistasi ja siitä, kummassa on voimakkaampi signaali. Ennen kuin otat tämän ominaisuuden käyttöön, tarkista maksut ja muut tiedot operaattoriltasi.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Hätäosoite"</string>
@@ -2052,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minuuttia"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Lukuaika"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Reagointiaika"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Valitse, miten pitkään haluat nähdä viestit, jotka sinun on luettava mutta jotka näkyvät vain väliaikaisesti.\n\nKaikki sovellukset eivät tue tätä asetusta."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Valitse, miten pitkään haluat nähdä viestit, jotka pyytävät reagoimaan mutta näkyvät vain väliaikaisesti.\n\nKaikki sovellukset eivät tue tätä asetusta."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Pitkäkestoisen kosketuksen viive"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Käänteiset värit"</string>
@@ -3004,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Sovellukset ja ilmoitukset"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Käyttöoikeudet, oletussovellukset"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Työprofiilin sovelluksilla ei voi olla ilmoitusten käyttöoikeuksia."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Tilit"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Tilejä ei lisätty"</string>
@@ -3067,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Lepotilanäyttö, lukitusnäyttö"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"lukitusnäyttöilmoitus"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"kasvot"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"sormenjälki"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"himmeä näyttö, kosketusnäyttö, akku, älykäs kirkkaus, dynaaminen kirkkaus"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"himmennä näyttö, virransäästötila, akku, aikakatkaisu, huomio, näyttö, käyttämättömyys"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"kiertää, kääntää, kääntäminen, pystysuunta, vaakasuunta, suunta, pystysuorassa, vaakasuorassa"</string>
@@ -3100,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Soittoääni on mykistetty."</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Soittoäänen voimakkuus: 80 %"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Median äänenvoimakkuus"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Puhelun äänenvoimakkuus"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Hälytyksen voimakkuus"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Soittoäänen voimakkuus"</string>
@@ -4424,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ilmoituskanavaa. Napauta määrittääksesi kaikki."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Vaihda syötettä"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Toistetaan nyt: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Tämän palvelun tilauksesi saatetaan peruuttaa. Toistuvia tilauksia ei peruuteta. Lisätietoja saat palveluntarjoajalta."</string>
 </resources>
diff --git a/res/values-fr-rCA/arrays.xml b/res/values-fr-rCA/arrays.xml
index b4d2021..dd39cfc 100644
--- a/res/values-fr-rCA/arrays.xml
+++ b/res/values-fr-rCA/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Global"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 7a0194b..3d89fb6 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -1065,11 +1065,6 @@
     <item msgid="7715869266611010880">"Cellulaire"</item>
     <item msgid="2838022395783120596">"Wi-Fi seulement"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Réseau Wi-Fi de préférence"</item>
     <item msgid="5074515506087318555">"Connexion cellulaire de préférence"</item>
@@ -1078,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Cellulaire"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Lorsque les appels Wi-Fi sont activés, votre téléphone peut transférer les appels par réseau Wi-Fi ou le réseau de votre fournisseur de services, en fonction de votre préférence et du signal le plus puissant. Avant d\'activer cette fonctionnalité, renseignez-vous auprès de votre fournisseur pour en savoir plus sur les frais et d\'autres détails pertinents.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Adresse d\'urgence"</string>
@@ -2052,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minutes"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Durée de lecture"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Temps d\'interaction"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Choisissez la durée d\'affichage des messages que vous devez lire, mais qui ne sont visibles que temporairement.\n\nCe ne sont pas toutes les applications qui prennent en charge ce paramètre."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Choisissez la durée d\'affichage des messages vous demandant d\'agir mais qui ne sont visibles que temporairement.\n\nCe ne sont pas toutes les applications qui prennent en charge ce paramètre."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Délai de pression"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inversion des couleurs"</string>
@@ -3004,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Applis et notifications"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Autorisations, applications par défaut"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Les applications du profil professionnel n\'ont pas accès aux notifications."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Comptes"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Aucun compte ajouté"</string>
@@ -3067,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Affichage en mode Veille, écran de verrouillage"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notification sur l\'écran de verrouillage"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"visage"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"empreintes digitales"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"réduire la luminosité de l\'écran, écran tactile, pile, réglage intelligent de la luminosité, luminosité dynamique"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"assombrir l\'écran, veille, pile, délai d\'inactivité, attention, affichage, écran, inactivité"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"faire pivoter, tourner, retourner, rotation, portrait, paysage, orientation, vertical, horizontal"</string>
@@ -3100,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Sonnerie en mode silencieux"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Le volume de la sonnerie est à 80 %"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Volume du contenu multimédia"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Volume des appels"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Volume de l\'alarme"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volume de la sonnerie"</string>
@@ -4424,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canaux de notification. Touchez ici pour les gérer."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Changer de sortie"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"En cours de lecture sur l\'appareil <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Votre abonnement auprès de ce fournisseur pourrait être annulé. Les abonnements récurrents ne seront pas annulés. Pour obtenir plus d\'information, consultez votre fournisseur."</string>
 </resources>
diff --git a/res/values-fr/arrays.xml b/res/values-fr/arrays.xml
index 2677c12..f28d441 100644
--- a/res/values-fr/arrays.xml
+++ b/res/values-fr/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Général"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index fb25c85..3893174 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Sélectionner un autre réseau"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Impossible d\'ajouter l\'appareil"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Appareil détecté"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Partage Wi‑Fi avec cet appareil…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Connexion…"</string>
     <string name="retry" msgid="6472609612090877557">"Réessayer"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Partager avec d\'autres utilisateurs de l\'appareil"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(aucune modification)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"Mobile"</item>
     <item msgid="2838022395783120596">"Wi-Fi uniquement"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi de préférence"</item>
     <item msgid="5074515506087318555">"Données mobiles de préférence"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Mobile"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Lorsque les appels Wi-Fi sont activés, votre téléphone peut transférer les appels via les réseaux Wi-Fi ou le réseau de votre opérateur, en fonction de votre préférence et du signal le plus puissant. Avant d\'activer cette fonctionnalité, renseignez-vous auprès de votre opérateur pour en savoir plus sur les frais et autres détails.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Adresse d\'urgence"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minutes"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Durée d\'affichage"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Durée pour effectuer une action"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Choisissez la durée d\'affichage des messages que vous avez besoin de lire, mais dont la visibilité est temporaire.\n\nCertaines applications ne sont pas compatibles avec ce paramètre."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Choisissez la durée d\'affichage des messages qui vous demandent d\'effectuer une action, mais dont la visibilité est temporaire.\n\nCertaines applications ne sont pas compatibles avec ce paramètre."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Délai de pression"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inversion des couleurs"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Applis et notifications"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Autorisations, applications par défaut"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Les applications du profil professionnel n\'ont pas accès aux notifications."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Comptes"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Aucun compte ajouté"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"affichage en mode veille, affichage de l\'écran de verrouillage"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notification sur l\'écran de verrouillage"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"visage"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"empreinte digitale"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"réduire la luminosité de l\'écran, écran tactile, batterie, réglage intelligent de la luminosité, luminosité dynamique"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"assombrir l\'écran, veille, batterie, délai d\'inactivité, attention, affichage, écran, inactivité"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"faire pivoter, inverser, rotation, portrait, paysage, orientation, vertical, horizontal"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Sonnerie en mode silencieux"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Volume de sonnerie à 80 %"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Volume des contenus multimédias"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Volume d\'appel"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Volume de l\'alarme"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volume de la sonnerie"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Mettre à jour le mode Ne pas déranger"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Suspendre les notifications pour rester concentré"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Cette fonctionnalité n\'est pas disponible sur cet appareil"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Cette fonctionnalité n\'est pas disponible"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Elle ralentit le téléphone"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Forcer les mesures GNSS complètes"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Effectuer le suivi de toutes les fréquences et constellations GNSS sans rapport cyclique"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Autoriser le démarrage des activités en arrière-plan"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"Canaux de notification <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Appuyez sur cette notification pour tout gérer."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Changer de sortie"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"En cours de lecture sur <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Votre abonnement auprès de ce fournisseur pourra être annulé. Les abonnements en cours ne seront pas annulés. Pour en savoir plus, contactez votre fournisseur."</string>
 </resources>
diff --git a/res/values-gl/arrays.xml b/res/values-gl/arrays.xml
index d6b592c..93c3037 100644
--- a/res/values-gl/arrays.xml
+++ b/res/values-gl/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Global"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index dc1499c..46cc9c1 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Escoller unha rede diferente"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Non se puido engadir o dispositivo"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Atopouse o dispositivo"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Compartindo a wifi con este dispositivo…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Conectando…"</string>
     <string name="retry" msgid="6472609612090877557">"Tentar de novo"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Compartir rede con outros usuarios do dispositivo"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(non cambiado)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"Datos móbiles"</item>
     <item msgid="2838022395783120596">"Só por wifi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wifi preferida"</item>
     <item msgid="5074515506087318555">"Datos móbiles preferidos"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wifi"</item>
     <item msgid="1118703915148755405">"Datos móbiles"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Cando está activada a función Chamadas por wifi, o teléfono pode enviar as túas chamadas a través de redes wifi ou da rede do teu operador, dependendo das túas preferencias e de cal teña o sinal máis forte. Antes de activar esta función, consulta co teu operador as tarifas e outra información.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Enderezo de emerxencia"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minutos"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tempo para ler"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tempo para realizar unha acción"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Escolle o tempo durante o que se mostran as mensaxes que debes ler e que só son visibles temporalmente.\n\nNon todas as aplicacións son compatibles con esta opción de configuración."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Escolle o tempo durante o que se mostran as mensaxes que che piden que realices algunha acción e que só son visibles temporalmente.\n\nNon todas as aplicacións son compatibles con esta opción de configuración."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Retardo de pulsación prolongada"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inversión da cor"</string>
@@ -3007,7 +2995,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplicacións e notificacións"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Permisos, aplicacións predeterminadas"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Non se permite que as aplicacións do perfil de traballo accedan ás notificacións."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Contas"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Non se engadiron contas"</string>
@@ -3070,7 +3059,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Visualización da pantalla de bloqueo, pantalla ambiente"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notificación da pantalla de bloqueo"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"cara"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"impresión dixital"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"atenuar pantalla, pantalla táctil, batería, brillo intelixente, brillo dinámico"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"atenuar pantalla, modo de suspensión, batería, tempo de espera, atención, visualización, pantalla, inactividade"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"xirar, voltear, xiro, retrato, orientación, horizontal, vertical"</string>
@@ -3103,6 +3093,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Timbre en modo silencio"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Volume do ton ao 80 %"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Volume dos elementos multimedia"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Volume de chamada"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Volume da alarma"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volume do ton"</string>
@@ -4220,10 +4212,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Actualizar a modo Non molestar"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Pon en pausa as notificacións para concentrarte"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Esta función non está dispoñible neste dispositivo"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Esta función non está dispoñible"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Esta función reducirá a velocidade do teléfono"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Forzar medicións completas de GNSS"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Realiza un seguimento de todas as frecuencias e constelacións de satélites de GNSS sen ciclos"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Permitir o inicio de actividades en segundo plano"</string>
@@ -4429,6 +4419,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canles de notificacións. Toca para xestionalas todas."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Cambiar saída"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Reproducindo contido actualmente en <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"A túa subscrición con este provedor pódese cancelar. As subscricións periódicas non se cancelarán. Para consultar máis información, ponte en contacto co provedor."</string>
 </resources>
diff --git a/res/values-gu/arrays.xml b/res/values-gu/arrays.xml
index 1ed79e4..a47d4a8 100644
--- a/res/values-gu/arrays.xml
+++ b/res/values-gu/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"વૈશ્વિક"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 1e877e2..1b70ed6 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"અલગ નેટવર્ક પસંદ કરો"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"ડિવાઇસ ઉમેરી શક્યાં નથી"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"ડિવાઇસ મળ્યું"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"આ ડિવાઇસ સાથે વાઇ-ફાઇ શેર કરી રહ્યાં છીએ…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"કનેક્ટ થઈ રહ્યું છે…"</string>
     <string name="retry" msgid="6472609612090877557">"ફરી પ્રયાસ કરો"</string>
     <string name="wifi_shared" msgid="844142443226926070">"અન્ય ઉપકરણ વપરાશકર્તાઓ સાથે શેર કરો"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(અપરિવર્તિત)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"મોબાઇલ"</item>
     <item msgid="2838022395783120596">"ફક્ત વાઇ-ફાઇ"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"વાઇ-ફાઇ પસંદ કર્યું"</item>
     <item msgid="5074515506087318555">"મોબાઇલને પસંદગી"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"વાઇ-ફાઇ"</item>
     <item msgid="1118703915148755405">"મોબાઇલ"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"જ્યારે વાઇ-ફાઇ કૉલિંગ ચાલુ હોય, ત્યારે તમારી પસંદગી અને કયા સિગ્નલ મજબૂત છે તેને આધારે, તમારો ફોન વાઇ-ફાઇ નેટવર્ક અથવા તમારા કૅરિઅરના નેટવર્ક મારફતે કૉલને રૂટ કરી શકે છે. આ સુવિધાને ચાલુ કરતાં પહેલાં, શુલ્ક અને અન્ય વિગતો માટે તમારા કૅરિઅર સાથે વાત કરો.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"કટોકટીનું સરનામું"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 મિનિટ"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"વાંચવા માટેનો સમય"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"પગલાં લેવાનો સમય"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"તમારે વાંચવા જરૂરી હોય, પરંતુ હંગામી રૂપે દેખાતા સંદેશાને કેટલા સમય સુધી બતાવવા તે પસંદ કરો.\n\nઆ સેટિંગની સુવિધા બધી ઍપમાં નથી હોતી."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"તમને ક્રિયા કરવાનું કહેતાં હોય, પરંતુ હંગામી રૂપે દેખાતા સંદેશાને કેટલા સમય સુધી દેખાડવા તે પસંદ કરો.\n\nઆ સેટિંગની સુવિધા બધી ઍપમાં નથી હોતી."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"ટચ કરી અને પકડવા પર વિલંબ"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"રંગ બદલવાની સુવિધા"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"બ્લૂટૂથ, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"બ્લૂટૂથ"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"ઍપ્લિકેશનો અને સૂચનાઓ"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"પરવાનગીઓ, ડિફૉલ્ટ ઍપ્લિકેશનો"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"કાર્યાલયની પ્રોફાઇલમાં ઍપ માટે નોટિફિકેશન ઍક્સેસ ઉપલબ્ધ નથી."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"એકાઉન્ટ"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"કોઈ એકાઉન્ટ ઉમેરવામાં આવ્યાં નથી"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"વ્યાપક ડિસ્પ્લે, લૉક સ્ક્રીન ડિસ્પ્લે"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"લૉક સ્ક્રીન નોટિફિકેશન"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"ચહેરો"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"ફિંગરપ્રિન્ટની સેટિંગ"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ઝાંખી સ્ક્રીન, ટચસ્ક્રીન, બૅટરી, સ્માર્ટ બ્રાઇટનેસ, ડાયનામિક બ્રાઇટનેસ"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"ઝાંખી સ્ક્રીન, નિષ્ક્રિય થાઓ, બૅટરી, સમયસમાપ્તિ, ધ્યાન આપો, ડિસ્પ્લે, સ્ક્રીન, નિષ્ક્રિયતા"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"ફેરવો, ફ્લિપ કરો, રોટેશન, પોર્ટ્રેટ, લૅન્ડસ્કેપ, ઓરિએન્ટેશન, ઊભું, આડું કરો"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"રિંગર શાંત પર સેટ કરેલ છે"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"રિંગ વૉલ્યુમ 80% પર છે"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"મીડિયા વૉલ્યૂમ"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"કૉલ વૉલ્યૂમ"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"એલાર્મ વૉલ્યૂમ"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"રિંગ વૉલ્યૂમ"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"ખલેલ પાડશો નહીંને અપડેટ કરો"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"ધ્યાન કેન્દ્રિત કરવા માટે નોટિફિકેશન થોભાવો"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"આ ઉપકરણ પર આ સુવિધા ઉપલબ્ધ નથી"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"આ સુવિધા ઉપલબ્ધ નથી"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"તે તમારા ફોનની કાર્ય કરવાની ગતિ ધીમી કરશે"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"સંપૂર્ણ GNSS માપને લાગુ કરો"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"કોઈપણ ડ્યૂટી-સાઈક્લિંગ વગર બધા GNSS તારામંડળો અને આવર્તનો ટ્રૅક કરો"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"બૅકગ્રાઉન્ડ પ્રવૃત્તિ શરૂ કરવાની પરવાનગી આપો"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> નોટિફિકેશન ચૅનલ. બધા મેનેજ કરવા માટે ટૅપ કરો."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"આઉટપુટ સ્વિચ કરો"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"હાલમાં <xliff:g id="DEVICE_NAME">%1$s</xliff:g> પર ચલાવી રહ્યાં છે"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"તમારું આ પ્રદાતા સાથેનું સબ્સ્ક્રિપ્શન રદ થઈ શકે છે. પુનરાવર્તન પામતાં સબ્સ્ક્રિપ્શન રદ થશે નહીં. વધુ માહિતી માટે તમારા પ્રદાતાનો સંપર્ક કરો"</string>
 </resources>
diff --git a/res/values-hi/arrays.xml b/res/values-hi/arrays.xml
index ac3b1c8..47fc6ab 100644
--- a/res/values-hi/arrays.xml
+++ b/res/values-hi/arrays.xml
@@ -463,8 +463,10 @@
   </string-array>
     <!-- no translation found for swipe_direction_titles:0 (58569659116542716) -->
     <!-- no translation found for swipe_direction_titles:1 (1878704357761948043) -->
-    <!-- no translation found for swipe_direction_values:0 (8800082277840833437) -->
-    <!-- no translation found for swipe_direction_values:1 (7485508823396511299) -->
+  <string-array name="swipe_direction_values">
+    <item msgid="8800082277840833437">"1"</item>
+    <item msgid="7485508823396511299">"0"</item>
+  </string-array>
   <string-array name="wifi_metered_entries">
     <item msgid="5200910605264415911">"नेटवर्क की अपने आप पहचान हो"</item>
     <item msgid="8745603368609022803">"इस कनेक्शन में डेटा से जुड़ी पाबंदी है"</item>
@@ -520,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/सिम"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"हर जगह लागू"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index f079316..f15325a 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -801,10 +801,8 @@
     <string name="rx_link_speed" msgid="5729003360923133988">"<xliff:g id="RECEIVE_LINK_SPEED">%1$d</xliff:g> एमबीपीएस"</string>
     <string name="wifi_ask_enable" msgid="2795469717302060104">"<xliff:g id="REQUESTER">%s</xliff:g> वाई-फ़ाई को चालू करना चाहता है"</string>
     <string name="wifi_ask_disable" msgid="728366570145493573">"<xliff:g id="REQUESTER">%s</xliff:g> वाई-फ़ाई को बंद करना चाहता है"</string>
-    <!-- no translation found for art_verifier_for_debuggable_title (6029838014407791341) -->
-    <skip />
-    <!-- no translation found for art_verifier_for_debuggable_summary (2250352478065428399) -->
-    <skip />
+    <string name="art_verifier_for_debuggable_title" msgid="6029838014407791341">"डीबग वाले ऐप के बाइटकोड की पुष्टि करें"</string>
+    <string name="art_verifier_for_debuggable_summary" msgid="2250352478065428399">"डीबग किए जा सकने वाले ऐप्लिकेशन के लिए, ART को बाइटकोड की पुष्टि करने की मंज़ूरी दें"</string>
     <string name="nfc_quick_toggle_title" msgid="6769159366307299004">"आस-पास के डिवाइस से संपर्क (एनएफसी)"</string>
     <string name="nfc_quick_toggle_summary" product="tablet" msgid="8302974395787498915">"जब टैबलेट अन्य डिवाइस को स्पर्श करे तो डेटा ट्रांसफर करने दें"</string>
     <string name="nfc_quick_toggle_summary" product="default" msgid="5237208142892767592">"जब फ़ोन दूसरे डिवाइस को टच करे तो डेटा ट्रांसफर करने दें"</string>
@@ -919,8 +917,7 @@
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"वाई-फ़ाई हॉटस्पॉट से डिवाइस काे जाेड़ने के लिए कम से कम एक बैंड चुनें:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP सेटिंग"</string>
     <string name="wifi_privacy_settings" msgid="5500777170960315928">"निजता"</string>
-    <!-- no translation found for wifi_privacy_settings_ephemeral_summary (1539659414108891004) -->
-    <skip />
+    <string name="wifi_privacy_settings_ephemeral_summary" msgid="1539659414108891004">"अपने आप चुना गया एमएसी"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="8674936581557695411">"कोई डिवाइस जोड़ें"</string>
     <string name="wifi_dpp_center_qr_code" msgid="6244508369721032655">"डिवाइस को “<xliff:g id="SSID">%1$s</xliff:g>” से जोड़ने के लिए QR कोड को कैमरा विंडो के बीच में लाएं"</string>
     <string name="wifi_dpp_scan_qr_code" msgid="4794621158747044107">"QR कोड स्कैन करें"</string>
@@ -928,20 +925,13 @@
     <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="8096370383700478819">"QR कोड स्कैन करके वाई-फ़ाई से जुड़ें"</string>
     <string name="wifi_dpp_share_wifi" msgid="9065890131734833809">"वाई-फ़ाई शेयर करें"</string>
     <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="8416440732377359392">"इस QR कोड को किसी दूसरे डिवाइस से स्कैन करके “<xliff:g id="SSID">%1$s</xliff:g>” में शामिल हों"</string>
-    <!-- no translation found for wifi_dpp_could_not_detect_valid_qr_code (641893675646330576) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_failure_authentication_or_configuration (3372757783382381044) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_failure_not_compatible (2829930473520603740) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_failure_timeout (5228320772245820458) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_failure_generic (8030831192606098356) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_failure_not_supported (2643768115109632725) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_check_connection_try_again (2632966336733361805) -->
-    <skip />
+    <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="641893675646330576">"QR कोड नहीं पहचाना जा सका. कोड को बीच में रखें और दोबारा कोशिश करें"</string>
+    <string name="wifi_dpp_failure_authentication_or_configuration" msgid="3372757783382381044">"फिर से कोशिश करें. अगर समस्या ठीक नहीं होती है, तो डिवाइस बनाने वाली कंपनी से संपर्क करें"</string>
+    <string name="wifi_dpp_failure_not_compatible" msgid="2829930473520603740">"काेई गड़बड़ी हुई"</string>
+    <string name="wifi_dpp_failure_timeout" msgid="5228320772245820458">"देख लें कि डिवाइस प्लग इन किया हुआ है, चार्ज हो चुका है, और चालू है"</string>
+    <string name="wifi_dpp_failure_generic" msgid="8030831192606098356">"देख लें कि डिवाइस प्लग इन किया हुआ है, चार्ज हो चुका है, और चालू है. अगर समस्या ठीक नहीं होती है, तो डिवाइस बनाने वाली कंपनी से संपर्क करें"</string>
+    <string name="wifi_dpp_failure_not_supported" msgid="2643768115109632725">"इस डिवाइस पर “<xliff:g id="SSID">%1$s</xliff:g>” जोड़ने की सुविधा काम नहीं करती"</string>
+    <string name="wifi_dpp_check_connection_try_again" msgid="2632966336733361805">"कनेक्शन जाँचें और फिर से कोशिश करें"</string>
     <string name="wifi_dpp_choose_network" msgid="7139308800110200281">"नेटवर्क चुनें"</string>
     <string name="wifi_dpp_choose_network_to_connect_device" msgid="4025269026652486605">"अपना डिवाइस जोड़ने के लिए कोई नेटवर्क चुनें"</string>
     <string name="wifi_dpp_add_device_to_wifi" msgid="5459084866460319042">"इस डिवाइस को “<xliff:g id="SSID">%1$s</xliff:g>” से जोड़ें?"</string>
@@ -1077,11 +1067,6 @@
     <item msgid="7715869266611010880">"मोबाइल"</item>
     <item msgid="2838022395783120596">"केवल वाई-फ़ाई"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"वाई-फ़ाई को प्राथमिकता"</item>
     <item msgid="5074515506087318555">"मोबाइल को प्राथमिकता"</item>
@@ -1090,12 +1075,7 @@
     <item msgid="6132150507201243768">"वाई-फ़ाई"</item>
     <item msgid="1118703915148755405">"मोबाइल"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
-    <!-- no translation found for wifi_calling_off_explanation (564780186974911501) -->
-    <skip />
+    <string name="wifi_calling_off_explanation" msgid="564780186974911501">"वाई-फ़ाई कॉलिंग चालू होने पर, आपका फ़ोन वाई-फ़ाई या मोबाइल और इंटरनेट सेवा देने वाली कंपनी के नेटवर्क से कॉल कर सकता है. यह आपकी सेटिंग और इस बात पर निर्भर करेगा कि इनमें से किस सिग्नल का प्रदर्शन बेहतर है. इस सुविधा को चालू करने से पहले, शुल्क और दूसरी जानकारी पाने के लिए मोबाइल और इंटरनेट सेवा देने वाली कंपनी से बात करें. <xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"आपातकालीन पता"</string>
     <string name="emergency_address_summary" msgid="7751971156196115129">"जब आप वाई-फ़ाई पर आपातकालीन कॉल करते हैं, तब आपकी मौजूदा जगह को आपके पते के तौर पर इस्तेमाल किया जाता है"</string>
@@ -2065,8 +2045,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"दो मिनट"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"पढ़ने के लिए समय"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"कार्रवाई करने के लिए समय"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"चुनें कि कुछ समय तक दिखाई देने वाले ऐसे मैसेज जो आपको पढ़ने हैं वे कितनी देर तक दिखाई दें.\n\nयह सेटिंग सभी ऐप्लिकेशन में काम नहीं करती."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"चुनें कि आपको कार्रवाई करने के लिए कहने वाले मैसेज कितनी देर तक दिखाने हैं, लेकिन वे सिर्फ़ कुछ समय के लिए ही दिखाई देते हैं.\n\nयह सेटिंग सभी ऐप्लिकेशन पर काम नहीं करती है."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"दबाकर रखने की अवधि"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"रंग को पलटें"</string>
@@ -3017,7 +2996,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"ब्लूटूथ, एनएफ़सी"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"ब्लूटूथ"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"ऐप्लिकेशन और सूचनाएं"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"अनुमतियां, डिफ़ॉल्ट ऐप"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"कार्य प्रोफ़ाइल चालू होने पर ऐप्लिकेशन से जुड़ी सूचना नहीं देखी जा सकती है."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"खाते"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"कोई खाता नहीं जोड़ा गया"</string>
@@ -3080,7 +3060,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"हमेशा चालू स्क्रीन, लॉक स्क्रीन डिसप्ले"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"लॉक स्क्रीन सूचना"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"चेहरा"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"फ़िंगरप्रिंट"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"हल्की रोशनी वाली स्क्रीन, टचस्क्रीन, बैटरी, स्मार्ट ब्राइटनेस, डाइनैमिक ब्राइटनेस"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"हल्की रोशनी वाली स्क्रीन, सुलाएं (कम बैटरी मोड), बैटरी, टाइम आउट, ध्यान दें, डिसप्ले, स्क्रीन, गतिविधि न होना"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"घुमाएं, फ़्लिप करें, घुमाव, पोर्ट्रेट, लैंडस्केप, स्क्रीन की दिशा, वर्टिकल, हॉरिज़ॉन्टल"</string>
@@ -3113,6 +3094,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"रिंगर मौन पर सेट है"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"रिंग की आवाज़ 80% है"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"मीडिया की आवाज़"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"कॉल की आवाज़"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"अलार्म की आवाज़"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"रिंग की आवाज़"</string>
@@ -3278,12 +3261,9 @@
     <string name="hide_silent_icons_summary" msgid="7479863645940885952">"स्थिति बार में बिना आवाज़ की सूचनाओं के आइकॉन छिपाएं"</string>
     <string name="notification_badging_title" msgid="5938709971403474078">"सूचना बिंदुओं की अनुमति दें"</string>
     <string name="notification_bubbles_title" msgid="4750896810493858296">"सूचना बबल दिखाने की मंज़ूरी दें"</string>
-    <!-- no translation found for swipe_direction_title (6877543492435053137) -->
-    <skip />
-    <!-- no translation found for swipe_direction_ltr (3623394320915041215) -->
-    <skip />
-    <!-- no translation found for swipe_direction_rtl (4972099509548044938) -->
-    <skip />
+    <string name="swipe_direction_title" msgid="6877543492435053137">"स्वाइप करने पर होने वाली कार्रवाइयां"</string>
+    <string name="swipe_direction_ltr" msgid="3623394320915041215">"खारिज करने के लिए दाईं ओर स्वाइप करें और मेन्यू दिखाने के लिए बाईं ओर"</string>
+    <string name="swipe_direction_rtl" msgid="4972099509548044938">"खारिज करने के लिए बाईं ओर स्वाइप करें और मेन्यू दिखाने के लिए दाईं ओर"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"ब्लिंक लाइट"</string>
     <string name="lock_screen_notifications_title" msgid="2583595963286467672">"लॉक स्क्रीन पर दिखाई दे"</string>
     <string name="locked_work_profile_notification_title" msgid="8327882003361551992">"कार्य प्रोफ़ाइल लॉक होने पर"</string>
@@ -3607,8 +3587,7 @@
     <string name="advanced_apps" msgid="4812975097124803873">"बेहतर सेटिंग"</string>
     <string name="configure_apps" msgid="6685680790825882528">"ऐप्स कॉन्‍फ़िगर करें"</string>
     <string name="unknown_app" msgid="5275921288718717656">"अज्ञात ऐप"</string>
-    <!-- no translation found for app_permissions (5584182129908141622) -->
-    <skip />
+    <string name="app_permissions" msgid="5584182129908141622">"अनुमतियों का प्रबंधन"</string>
     <string name="app_permissions_summary" msgid="5163974162150406324">"<xliff:g id="APPS">%1$s</xliff:g> का उपयोग करने वाले ऐप्लिकेशन"</string>
     <string name="tap_to_wake" msgid="7211944147196888807">"वेक करने के लिए टैप करें"</string>
     <string name="tap_to_wake_summary" msgid="4341387904987585616">"डिवाइस की स्क्रीन को चालू करने के लिए, स्क्रीन पर कहीं भी दो बार छूएं"</string>
@@ -4400,8 +4379,7 @@
     <string name="network_connection_timeout_dialog_ok" msgid="8924405960181020156">"फिर से कोशिश करें"</string>
     <string name="network_connection_errorstate_dialog_message" msgid="6953778550775646710">"कुछ गड़बड़ी हुई है ऐप्लिकेशन ने डिवाइस चुनने का अनुरोध रद्द कर दिया है."</string>
     <string name="network_connection_connect_successful" msgid="5935510954474494928">"कनेक्शन कामयाब रहा"</string>
-    <!-- no translation found for network_connection_request_dialog_showall (6938922880244567521) -->
-    <skip />
+    <string name="network_connection_request_dialog_showall" msgid="6938922880244567521">"सभी दिखाएं"</string>
     <plurals name="show_bluetooth_devices" formatted="false" msgid="1715020480026568408">
       <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> डिवाइस कनेक्ट हैं</item>
       <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> डिवाइस कनेक्ट हैं</item>
@@ -4429,8 +4407,7 @@
     <string name="search_bar_account_avatar_content_description" msgid="4718261366290530792"></string>
     <string name="permission_bar_chart_empty_text" msgid="4380731551728553852">"किसी भी ऐप्लिकेशन ने अनुमतियों का इस्तेमाल नहीं किया"</string>
     <string name="permission_bar_chart_title" msgid="7748942699610196566">"पिछले 24 घंटों में सबसे ज़्यादा इस्तेमाल की गई अनुमतियां"</string>
-    <!-- no translation found for permission_bar_chart_details (5648719432839246667) -->
-    <skip />
+    <string name="permission_bar_chart_details" msgid="5648719432839246667">"अनुमतियों का डैशबोर्ड देखें"</string>
     <string name="accessibility_usage_title" msgid="5136753034714150614">"सुलभता सुविधाओं का इस्तेमाल"</string>
     <plurals name="accessibility_usage_summary" formatted="false" msgid="4364945481915750314">
       <item quantity="one"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> सुविधाओं को आपके डिवाइस पर पूरा एक्सेस है</item>
@@ -4438,11 +4415,12 @@
     </plurals>
     <string name="manage_app_notification" msgid="877012013856561440">"<xliff:g id="APP_NAME">%1$s</xliff:g> की सूचनाएं प्रबंधित करें"</string>
     <string name="no_suggested_app" msgid="5722034393216359231">"कोई भी सुझाया गया ऐप्लिकेशन नहीं है"</string>
-    <!-- no translation found for notification_few_channel_count_summary (1090888820158822106) -->
-    <!-- no translation found for notification_many_channel_count_summary (8647409434789898073) -->
-    <skip />
+    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="1090888820158822106">
+      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> सूचना के चैनल.</item>
+      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> सूचना के चैनल.</item>
+    </plurals>
+    <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> सूचना के चैनल. सभी को प्रबंधित करने के लिए टैप करें."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"स्विच आउटपुट"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"इस समय <xliff:g id="DEVICE_NAME">%1$s</xliff:g> पर खेल रहा है"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"शायद सेवा देने वाली इस कंपनी की आपकी सदस्यता रद्द हो गई है बार-बार रिन्यू होने वाली सदस्यताएं रद्द नहीं होंगी. ज़्यादा जानकारी के लिए सेवा देने वाली कंपनी से संपर्क करें."</string>
 </resources>
diff --git a/res/values-hr/arrays.xml b/res/values-hr/arrays.xml
index 497c2ac..907c879 100644
--- a/res/values-hr/arrays.xml
+++ b/res/values-hr/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Globalno"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 1d1f455..b22e53a 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -956,10 +956,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Odaberite drugu mrežu"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Dodavanje uređaja nije uspjelo"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Uređaj je pronađen"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Dijeljenje Wi-Fija s ovim uređajem…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Povezivanje…"</string>
     <string name="retry" msgid="6472609612090877557">"Ponovi"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Podijeli s drugim korisnicima uređaja"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(nepromijenjeno)"</string>
@@ -1084,11 +1082,6 @@
     <item msgid="7715869266611010880">"Mobilni uređaj"</item>
     <item msgid="2838022395783120596">"Samo Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Prednost ima Wi-Fi mreža"</item>
     <item msgid="5074515506087318555">"Za mobilne uređaje"</item>
@@ -1097,10 +1090,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Mobilni uređaj"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Kada su Wi-Fi pozivi uključeni, telefon može usmjeravati pozive putem Wi-Fi mreža ili mreže vašeg mobilnog operatera, ovisno o vašoj želji i o tome koji je signal jači. Prije nego što uključite tu značajku, raspitajte se o naknadi i ostalim pojedinostima kod mobilnog operatera.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Adresa za hitne pozive"</string>
@@ -2074,8 +2063,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minute"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Vrijeme za čitanje"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Vrijeme za vršenje radnje"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Odaberite koliko će se dugo prikazivati poruke koje trebate pročitati, no vidljive su samo privremeno.\n\nNeke aplikacije ne podržavaju tu postavku."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Odaberite koliko će se dugo prikazivati poruke koje traže da izvršite radnju, no vidljive su samo privremeno.\n\nNeke aplikacije ne podržavaju tu postavku."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Trajanje pritiska"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inverzija boja"</string>
@@ -3046,7 +3034,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplikacije i obavijesti"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Dopuštenja, zadane aplikacije"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Pristup obavijestima nije dostupan za aplikacije u radnom profilu."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Računi"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nije dodan nijedan račun"</string>
@@ -3109,7 +3098,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambijentalni zaslon, prikaz zaključanog zaslona"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"obavijest o zaključanom zaslonu"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"lice"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"otisak prsta"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"zatamnjenje zaslona, dodirni zaslon, baterija, pametna svjetlina, dinamična svjetlina"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"zatamnjeni zaslon, mirovanje, baterija, vrijeme čekanja, pozornost, prikaz, zaslon, neaktivnost"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"zakrenuti, okrenuti, rotacija, portret, pejzaž, usmjerenje, okomito, vodoravno"</string>
@@ -3142,6 +3132,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Softver zvona postavljen na nečujno"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Glasnoća zvona na 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Glasnoća medija"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Glasnoća poziva"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Glasnoća alarma"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Glasnoća zvona"</string>
@@ -4295,10 +4287,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Ažuriranje načina Ne uznemiravaj"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Pauzirajte obavijesti da biste ostali usredotočeni"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Ova značajka nije dostupna na ovom uređaju"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Ova značajka nije dostupna"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Ovo će usporiti telefon"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Primijeni potpuna mjerenja GNSS-a"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Prati sve konstelacije i frekvencije GNSS-a bez određivanja radnog omjera"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Dopusti pokretanje pozadinskih aktivnosti"</string>
@@ -4508,6 +4498,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> kanal obavijesti. Dodirnite za upravljanje svim kanalima."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Promjena izlaza"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Trenutačno se reproducira na uređaju <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Vaša pretplata kod ovog davatelja usluga možda će se otkazati. Ponavljajuće pretplate neće se otkazati. Više informacija zatražite od davatelja usluga."</string>
 </resources>
diff --git a/res/values-hu/arrays.xml b/res/values-hu/arrays.xml
index feca9e8..7bda838 100644
--- a/res/values-hu/arrays.xml
+++ b/res/values-hu/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Globális"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 2894dab..4e12f8b 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Másik hálózat választása"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Nem sikerült hozzáadni az eszközt"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Eszköz észlelve"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Wi‑Fi megosztása ezzel az eszközzel…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Csatlakozás…"</string>
     <string name="retry" msgid="6472609612090877557">"Újra"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Megosztás az eszköz más felhasználóival"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(nem változott)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"Mobil"</item>
     <item msgid="2838022395783120596">"Csak Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi előnyben részesítve"</item>
     <item msgid="5074515506087318555">"Preferált: mobil"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Mobil"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Ha be van kapcsolva a Wi-Fi-hívás, akkor a telefon az Ön beállításaitól és a jelerősségtől függően vagy a Wi-Fi-hálózaton, vagy a mobilszolgáltató hálózatán át vezeti a hívásokat. A funkció bekapcsolása előtt tájékozódjon mobilszolgáltatójánál a díjakról és egyéb részletekről. <xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>."</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Vészhelyzeti cím"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 perc"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Olvasásra szánt idő"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Művelet elvégzésére szánt idő"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Válassza ki, hogy mennyi ideig látszódjanak az elolvasandó, de csak ideiglenesen látható üzenetek .\n\nNem minden alkalmazás támogatja ezt a beállítást."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Válassza ki, hogy mennyi ideig legyenek láthatók azok az üzenetek, amelyek művelet elvégzését kérik, de csak ideiglenesen láthatók a képernyőn.\n\nNem minden alkalmazás támogatja ezt a beállítást."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Érintés és tartási késleltetés"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Színek invertálása"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Alkalmazások és értesítések"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Engedélyek, alapértelmezett alkalmazások"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Az értesítésekhez való hozzáférés a munkaprofil alkalmazásai számára nem áll rendelkezésre."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Fiókok"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nincs hozzáadott fiók"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Aktív kijelző, lezárási képernyő"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"lezárási képernyőn megjelenő értesítés"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"arc"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"ujjlenyomat"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"képernyő halványítása, érintőképernyő, akkumulátor, okos fényerő, dinamikus fényerő"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"képernyő halványítása, alvó mód, akkumulátor, időtúllépés, figyelem, képernyő, kijelző, inaktivitás"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"elforgatás, elfordítás, forgatás, álló, fekvő, tájolás, függőleges, vízszintes"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Csengetés: néma"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Csörgetés hangereje: 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Média hangereje"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Hívás hangereje"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Ébresztés hangereje"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Csengés hangereje"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"A Ne zavarjanak mód frissítése"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Az összpontosításhoz szüneteltetheti az értesítéseket"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Ez a funkció nem áll rendelkezésre ezen az eszközön"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Ez a funkció nem áll rendelkezésre."</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Használata lelassítaná a telefont."</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Teljes GNSS-mérés indítása"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Az összes GNSS-műhold és -frekvencia nyomon követése aktívciklus-szabályozás nélkül"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Háttér-tevékenységek megkezdésének engedélyezése"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> értesítési csatorna. Koppintson az összes kezeléséhez."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Kimenet átváltása"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Lejátszás folyamatban a(z) <xliff:g id="DEVICE_NAME">%1$s</xliff:g> eszközön"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Előfordulhat, hogy az ennél a szolgáltatónál lévő előfizetését visszavonják. A megújuló előfizetéseket nem vonják vissza. Ha további információra van szüksége, lépjen kapcsolatba szolgáltatójával."</string>
 </resources>
diff --git a/res/values-hy/arrays.xml b/res/values-hy/arrays.xml
index 725e660..688b0de 100644
--- a/res/values-hy/arrays.xml
+++ b/res/values-hy/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Համաշխարհային"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 46c7118..0732651 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -944,10 +944,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Ընտրել այլ ցանց"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Չհաջողվեց ավելացնել սարք"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Գտնվել է 1 սարք"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Սարքը միանում է Wi‑Fi-ին…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Միացում…"</string>
     <string name="retry" msgid="6472609612090877557">"Կրկնել"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Կիսվել այլ սարքերի օգտատերերի հետ"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(անփոփոխ)"</string>
@@ -1071,11 +1069,6 @@
     <item msgid="7715869266611010880">"Բջջային"</item>
     <item msgid="2838022395783120596">"Միայն Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi, նախընտրելի"</item>
     <item msgid="5074515506087318555">"Նախընտրելի է բջջային ցանցը"</item>
@@ -1084,10 +1077,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Բջջային"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Երբ «Զանգեր Wi-Fi-ով» գործառույթը միացված է, հեռախոսը կարող է ուղարկել զանգերը Wi-Fi ցանցերի կամ ձեր օպերատորի ցանցի միջոցով՝ կախված ձեր նախընտրություններից և ազդանշանի ուժգնությունից: Մինչ այս գործառույթը միացնելը՝ տեղեկացեք վճարների և այլ մանրամասների մասին ձեր օպերատորից:<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Արտակարգ իրավիճակների հասցե"</string>
@@ -2058,8 +2047,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 րոպե"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Ժամանակ կարդալու համար"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Ժամանակ գործողության կատարման համար"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Նշեք, թե որքան ժամանակ է ձեզ անհրաժեշտ` ավտոմատ անհետացող հաղորդագրությունները կարդալու համար:\n\nԱյս կարգավորումը ոչ բոլոր հավելվածներում է աջակցվում:"</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Նշեք, թե որքան ժամանակ է ձեզ անհրաժեշտ՝ կատարելու ավտոմատ անհետացող հաղորդագրություններում ներկայացված գործողությունները:\n\nԱյս կարգավորումը ոչ բոլոր հավելվածներում է աջակցվում:"</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Սեղմելու և պահելու հապաղումը"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Գունաշրջում"</string>
@@ -3014,7 +3002,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Հավելվածներ և ծանուցումներ"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Թույլտվություններ, կանխադրված հավելվածներ"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Աշխատանքային պրոֆիլի հավելվածներին ծանուցումների օգտագործումը հասանելի չէ:"</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Հաշիվներ"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Հաշիվներ չեն ավելացվել"</string>
@@ -3077,7 +3066,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ամբիենտ էկրան, կողպէկրան"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ծանուցում կողպէկրանին"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"դեմք"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"մատնահետք"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"խամրեցված էկրան, հպէկրան, մարտկոց, խելացի պայծառություն, դինամիկ պայծառություն"</string>
     <!-- no translation found for keywords_display_adaptive_sleep (6865504720946121402) -->
     <skip />
@@ -3111,6 +3101,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Զանգի ձայնն անջատված է"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Զանգի ուժգնությունը 80%-ի դեպքում"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Մուլտիմեդիա"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Ձայն"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Զարթուցիչ"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Զանգերանգ"</string>
@@ -4231,10 +4223,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Թարմացնե՞լ «Չանհանգստացնել» ռեժիմը"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Չցուցադրել շեղող ծանուցումները"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Տվյալ գործառույթը հասանելի չէ այս սարքի վրա"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Գործառույթը հասանելի չէ"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Հեռախոսի աշխատանքը կդանդաղի"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"GNSS-ի չափումների ամբողջական բեռնում"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Հետագծել GNSS-ի բոլոր սխեմաներն ու հաճախականությունները՝ առանց աշխատաշրջանի"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Թույլատրել աշխատանքը ֆոնային ռեժիմում"</string>
@@ -4438,6 +4428,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"Ծանուցումների <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> կապուղի: Հպեք՝ բոլոր կապուղիները կառավարելու համար:"</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Աուդիոելքի սարքի փոխարկում"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Նվագարկվում է <xliff:g id="DEVICE_NAME">%1$s</xliff:g> սարքում"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Այս ծառայության բաժանորդագրությունը կարող է չեղարկվել: Պարբերական բաժանորդագրությունները կպահպանվեն: Լրացուցիչ տեղեկությունների համար դիմեք ծառայության մատակարարին:"</string>
 </resources>
diff --git a/res/values-in/arrays.xml b/res/values-in/arrays.xml
index b60ddf2..0908941 100644
--- a/res/values-in/arrays.xml
+++ b/res/values-in/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Global"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index b508aa1..db34123 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Pilih jaringan lainnya"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Tidak dapat menambahkan perangkat"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Perangkat ditemukan"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Membagikan Wi‑Fi kepada perangkat ini…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Menyambungkan…"</string>
     <string name="retry" msgid="6472609612090877557">"Coba lagi"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Berbagi dengan pengguna perangkat lain"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(tidak diubah)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"Ponsel"</item>
     <item msgid="2838022395783120596">"Khusus Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi dipilih"</item>
     <item msgid="5074515506087318555">"Seluler dipilih"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Ponsel"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Jika panggilan Wi-Fi aktif, ponsel dapat merutekan panggilan telepon melalui jaringan Wi-Fi atau jaringan operator, bergantung pada preferensi dan sinyal mana yang lebih kuat. Sebelum mengaktifkan fitur ini, sebaiknya tanyakan info biaya dan detail lainnya ke operator.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Alamat Darurat"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 menit"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Waktunya membaca"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Waktunya mengambil tindakan"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Pilih durasi pesan yang ingin dibaca, namun hanya terlihat sementara, ditampilkan.\n\nTidak semua aplikasi mendukung setelan ini."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Memilih durasi pesan yang meminta untuk mengambil tindakan, namun hanya terlihat sementara, ditampilkan.\n\nTidak semua aplikasi mendukung setelan ini."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Penundaan sentuh &amp; tahan"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inversi warna"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplikasi &amp; notifikasi"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Izin, aplikasi default"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Akses notifikasi tidak tersedia untuk aplikasi di profil kerja"</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Akun"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Tidak ada akun yang ditambahkan"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Tampilan standby, tampilan Layar kunci"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notifikasi layar kunci"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"wajah"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"sidik jari"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"redupkan layar, layar sentuh, baterai, smart brightness, kecerahan dinamis"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"layar redup, tidur, baterai, waktu tunggu, perhatian, tampilan, layar, tidak aktif"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"putar, balik, rotasi, potret, lanskap, orientasi, vertikal, horizontal"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Pendering disetel senyap"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Volume dering 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Volume media"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Volume panggilan"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Volume alarm"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volume dering"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Perbarui mode Jangan Ganggu"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Jeda notifikasi agar tetap fokus"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Fitur ini tidak tersedia di perangkat"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Fitur ini tidak tersedia"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Fitur ini akan memperlambat ponsel Anda"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Paksa ukuran GNSS penuh"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Lacak semua konstelasi dan frekuensi GNSS tanpa siklus tugas"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Izinkan aktivitas latar belakang dimulai"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> saluran notifikasi. Tap untuk mengelola semua."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Ganti keluaran"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Sedang diputar di <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Langganan Anda dengan penyedia ini mungkin dibatalkan. Langganan berulang tidak akan dibatalkan. Untuk mengetahui informasi selengkapnya, hubungi penyedia Anda."</string>
 </resources>
diff --git a/res/values-is/arrays.xml b/res/values-is/arrays.xml
index 038b8c2..1d33bf1 100644
--- a/res/values-is/arrays.xml
+++ b/res/values-is/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Alþjóðlegt"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 88d52de..3d8d0d0 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Velja annað net"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Ekki var hægt að bæta við tæki"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Tæki fannst"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Deilir Wi‑Fi með þessu tæki…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Tengist…"</string>
     <string name="retry" msgid="6472609612090877557">"Reyna aftur"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Deila með öðrum notendum tækisins"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(óbreytt)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"Farsímakerfi"</item>
     <item msgid="2838022395783120596">"Wi-Fi eingöngu"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi í forgangi"</item>
     <item msgid="5074515506087318555">"Farsímakerfi í forgangi"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Farsímakerfi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Þegar kveikt er á Wi-Fi símtölum getur síminn beint símtölum um Wi-Fi net eða kerfi símafyrirtækisins, eftir því hvað þú velur og hvor tengingin er betri. Kannaðu verðskrá og aðrar upplýsingar hjá símafyrirtækinu þínu áður en þú kveikir á þessu.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Neyðarheimilisfang"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 mínútur"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tími til að lesa"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tími til að grípa til aðgerða"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Veldu hve lengi á að birta skilaboð sem þú þarft að lesa en sem birtast aðeins tímabundið.\n\nEkki er víst að öll forrit styðji þennan eiginleika."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Veldu hversu lengi skilaboð birtast sem biðja þig um að grípa til aðgerða, en eru aðeins sýnileg tímabundið.\n\nEkki er víst að öll forrit styðji þennan eiginleika."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Töf þar til snerting er numin"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Umsnúningur lita"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Forrit og tilkynningar"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Heimildir, sjálfgefin forrit"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Tilkynningaaðgangur er ekki í boði fyrir forrit í vinnusniði."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Reikningar"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Engum reikningum bætt við"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Umhverfisskjár, Lásskjár"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"tilkynningastillingar fyrir lásskjá"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"andlit"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingrafar"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"myrkva skjá, snertiskjár, rafhlaða, birtuaðlögun, kvikt birtustig"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"myrkva skjá, biðstaða, rafhlaða, tímamörk, athuga, skjár, aðgerðarleysi"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"snúa, spegla, snúningur, skammsnið, langsnið, stefna, lárétt, lóðrétt"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Hljóð tekið af hringjara"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Hljóðstyrkur er 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Hljóðstyrkur margmiðlunarefnis"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Hljóðstyrkur símtala"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Hljóðstyrkur vekjara"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Hljóðstyrkur hringingar"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Uppfæra „Ónáðið ekki“"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Gera hlé á tilkynningum svo þær trufli ekki"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Þessi eiginleiki er ekki í boði í þessu tæki"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Þessi eiginleiki er ekki í boði"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Hann hægir á símanum"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Full GNSS-mæling"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Rekja öll GNSS söfn og tíðnir með engum vinnulotum"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Leyfa aðgerðir í bakgrunninum"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> tilkynningarásir. Ýttu til að stjórna öllum."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Skipta um úttak"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Í spilun núna í <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Áskrift þinni hjá þessari þjónustu verður sagt upp. Áskrift sem endurnýjast sjálfkrafa verður ekki sagt upp. Hafðu samband við þjónustuveituna til að fá frekari upplýsingar."</string>
 </resources>
diff --git a/res/values-it/arrays.xml b/res/values-it/arrays.xml
index a4dbc76..c95b265 100644
--- a/res/values-it/arrays.xml
+++ b/res/values-it/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Globale"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 37be42d..d4f6c81 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Scegli una rete diversa"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Impossibile aggiungere il dispositivo"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Dispositivo trovato"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Condivisione della rete Wi‑Fi con questo dispositivo…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Connessione…"</string>
     <string name="retry" msgid="6472609612090877557">"Riprova"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Condividi con altri utenti del dispositivo"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(invariato)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"Rete mobile"</item>
     <item msgid="2838022395783120596">"Solo Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Rete preferita: Wi-Fi"</item>
     <item msgid="5074515506087318555">"Modalità preferita: dati mobili"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Rete mobile"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Se le chiamate Wi-Fi sono attive, il tuo telefono può indirizzare le chiamate tramite reti Wi-Fi o la rete del tuo operatore, in base alle tue preferenze e alla potenza del segnale. Prima di attivare questa funzionalità, verifica tariffe e altri dettagli con il tuo operatore.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Indirizzo per le emergenze"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minuti"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tempo per la lettura"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tempo per intervenire"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Scegli per quanto tempo lasciare visibili i messaggi che devi leggere e che vengono mostrati solo temporaneamente.\n\nNon tutte le app supportano questa impostazione."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Scegli per quanto tempo lasciare visibili i messaggi che ti chiedono di eseguire delle operazioni e che vengono mostrati solo temporaneamente.\n\nNon tutte le app supportano questa impostazione."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Ritardo tocco e pressione"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inversione colori"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"App e notifiche"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Autorizzazioni, app predefinite"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"L\'accesso alle notifiche non è disponibile per le app nel profilo di lavoro."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Account"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nessun account aggiunto"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Display ambient, display della schermata di blocco"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notifica schermata di blocco"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"volto"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"impronta digitale"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"attenuazione schermo, touchscreen, batteria, luminosità intelligente, luminosità dinamica"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"oscurare lo schermo, sospensione, batteria, timeout, attenzione, display, schermo, inattività"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"ruotare, capovolgere, rotazione, verticale, orizzontale, orientamento"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Suoneria impostata su Silenzioso"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Volume suoneria all\'80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Volume contenuti multimediali"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Volume chiamate"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Volume sveglia"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volume suoneria"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Aggiorna modalità Non disturbare"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Metti in pausa le notifiche per mantenere la concentrazione"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Questa funzione non è disponibile su questo dispositivo"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Questa funzionalità non è disponibile"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Rallenta il telefono"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Forza esecuzione completa delle misurazioni GNSS"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Monitora tutte le costellazioni e le frequenze GNSS senza ciclo di lavoro utile"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Consenti l\'avvio dell\'attività in background"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canali di notifica. Tocca per gestirli tutti."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Cambia uscita"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Attualmente in riproduzione sul dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Il tuo abbonamento a questo fornitore potrebbe essere annullato. Gli abbonamenti ricorrenti non verranno annullati. Per ulteriori informazioni, rivolgiti al tuo fornitore."</string>
 </resources>
diff --git a/res/values-iw/arrays.xml b/res/values-iw/arrays.xml
index 41d1cf9..0a56aa3 100644
--- a/res/values-iw/arrays.xml
+++ b/res/values-iw/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"כללי"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 688f4c2..0e20d92d 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -972,10 +972,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"בחירה ברשת אחרת"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"לא ניתן היה להוסיף את המכשיר"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"המכשיר נמצא"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"‏מתבצע שיתוף Wi‑Fi עם מכשיר זה…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"בתהליך התחברות…"</string>
     <string name="retry" msgid="6472609612090877557">"ניסיון נוסף"</string>
     <string name="wifi_shared" msgid="844142443226926070">"שתף עם משתמשים אחרים במכשיר"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(ללא שינוי)"</string>
@@ -1101,11 +1099,6 @@
     <item msgid="7715869266611010880">"סלולרי"</item>
     <item msgid="2838022395783120596">"‏Wi-Fi בלבד"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"‏Wi-Fi מועדף"</item>
     <item msgid="5074515506087318555">"מצב מועדף: רשת סלולרית"</item>
@@ -1114,10 +1107,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"סלולרי"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"‏כשתכונת שיחות Wi-Fi פועלת, הטלפון יכול לנתב שיחות ברשתות Wi-Fi או ברשת של הספק, בהתאם להעדפה שלך ולאות שחזק יותר. לפני הפעלת תכונה זו, יש לבדוק עם הספק פרטים הקשורים לעמלות ופרטים אחרים.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"כתובת למקרה חירום"</string>
@@ -2094,8 +2083,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 דקות"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"משך הזמן לקריאה"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"משך הזמן לנקיטת פעולה"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"ניתן לבחור את משך הזמן להצגת הודעות שיש לקרוא, אשר גלויות באופן זמני בלבד.\n\nלא כל האפליקציות תומכות בהגדרה זו."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"ניתן לבחור את משך הזמן להצגת הודעות שדורשות נקיטת פעולה כלשהי, אך גלויות באופן זמני בלבד.\n\nלא כל האפליקציות תומכות בהגדרה זו."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"עיכוב של נגיעה והחזקה"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"היפוך צבעים"</string>
@@ -3088,7 +3076,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"‏Bluetooth,‏ NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"אפליקציות והתראות"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"הרשאות ואפליקציות המוגדרות כברירת מחדל"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"הגישה להתראות אינה זמינה לאפליקציות בפרופיל העבודה."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"חשבונות"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"לא נוספו חשבונות"</string>
@@ -3151,7 +3140,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"תצוגה רגישה לסביבה, תצוגה של מסך נעילה"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"התראות במסך הנעילה"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"פנים"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"טביעת אצבע"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"עמעום מסך, מסך מגע, סוללה, בהירות חכמה, בהירות דינמית"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"עמעום מסך, שינה, סוללה, זמן קצוב לתפוגה, תשומת לב, תצוגה, מסך, חוסר פעילות"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"לסובב, להפוך, סיבוב, לאורך, לרוחב, כיוון, אנכי, אופקי"</string>
@@ -3184,6 +3174,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"תוכנת הצלצול במצב שקט"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"עוצמת צלצול ב-80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"עוצמת קול של מדיה"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"עוצמת קול של שיחות"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"עוצמת קול של התראה"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"עוצמת צלצול"</string>
@@ -4373,10 +4365,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"עדכון המצב \'נא לא להפריע\'"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"אפשר להשהות את ההתראות כדי שלא יפריעו לך"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"התכונה לא זמינה במכשיר הזה"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"תכונה זו לא זמינה"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"הטלפון יפעל באיטיות עם תכונה זו"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"‏אילוץ של הרצה מלאה של מדידות Gnss"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"‏מעקב אחר כל מערכות הניווט והתדרים של GNSS ללא מחזור פעילות"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"הפעלת התחלות של פעילות ברקע"</string>
@@ -4590,6 +4580,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ערוצי התראות. יש להקיש כדי לנהל הכול."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"החלפת פלט"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"בהפעלה כרגע ב-<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ייתכן שהמינוי שלך לספק זה יבוטל. מינויים חוזרים לא יבוטלו. למידע נוסף, יש לפנות לספק."</string>
 </resources>
diff --git a/res/values-ja/arrays.xml b/res/values-ja/arrays.xml
index 1a5c407..86f0487 100644
--- a/res/values-ja/arrays.xml
+++ b/res/values-ja/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM / SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"グローバル"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 6eba8d6..e9535c3 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"別のネットワークを選択"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"デバイスを追加できませんでした"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"デバイスが見つかりました"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Wi‑Fi をこのデバイスと共有しています…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"接続しています…"</string>
     <string name="retry" msgid="6472609612090877557">"再試行"</string>
     <string name="wifi_shared" msgid="844142443226926070">"他の端末ユーザーと共有する"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"（変更なし）"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"モバイル"</item>
     <item msgid="2838022395783120596">"Wi-Fi のみ"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi 優先"</item>
     <item msgid="5074515506087318555">"モバイル優先"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"モバイル"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi 通話を ON にすると、ユーザーの設定と信号の強度に応じて、スマートフォンから Wi-Fi ネットワークか携帯通信会社ネットワークのいずれかを経由して通話をルーティングできるようになります。この機能を ON にする場合は、事前に料金などの条件について携帯通信会社にご確認ください。<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"緊急対応の住所"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2分"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"表示しておく時間"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"操作を行う時間"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"表示可能な時間が限られているメッセージの表示時間を指定してください。\n\nこの設定に対応していないアプリもあります。"</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"操作が求められるが表示可能な時間が限られているメッセージの表示時間を指定してください。\n\nこの設定に対応していないアプリもあります。"</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"長押しする時間"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"色反転"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth、NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"アプリと通知"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"権限、デフォルト アプリ"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"仕事用プロファイルのアプリには通知へのアクセス権限はありません。"</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"アカウント"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"アカウントが追加されていません"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"アンビエント表示, ロック画面表示"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ロック画面の通知"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"顔"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"指紋"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"画面を暗くする, タッチスクリーン, 電池, スマート ブライトネス, ダイナミック ブライトネス"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"画面を暗くする, スリープ, 電池, タイムアウト, 注意, ディスプレイ, 画面, 操作が行われていない"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"回転, 切り替え, ローテーション, 縦向き, 横向き, 画面の向き, 縦, 横"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"マナーモード着信に設定"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"着信音の音量: 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"メディアの音量"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"通話音量"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"アラームの音量"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"着信音の音量"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"サイレント モードの更新"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"集中するために通知を一時停止する"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"この機能は、お使いの端末ではご利用いただけません"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"この機能はご利用いただけません"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"このスマートフォンの動作が遅くなります"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"GNSS 計測の完全な実行"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"デューティ サイクリングを無効にした状態で、すべての GNSS コンステレーションと頻度をトラッキングします"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"バックグラウンド アクティビティの開始を許可する"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> 件の通知チャンネルがあります。すべて管理するにはタップしてください。"</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"出力の切り替え"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"現在 <xliff:g id="DEVICE_NAME">%1$s</xliff:g> で再生しています"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"このプロバイダとの定期購入が解約されることがあります。定期的な定期購入は解約されません。詳しくは、プロバイダにお問い合わせください。"</string>
 </resources>
diff --git a/res/values-ka/arrays.xml b/res/values-ka/arrays.xml
index 179462c..33cb6c5 100644
--- a/res/values-ka/arrays.xml
+++ b/res/values-ka/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"გლობალური"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 4a0d7f4..77c4808 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -944,10 +944,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"სხვა ქსელის არჩევა"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"მოწყობილობის დამატება ვერ მოხერხდა"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"მოწყობილობა მოიძებნა"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"ზიარდება Wi‑Fi ამ მოწყობილობასთან…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"მიმდინარეობს დაკავშირება…"</string>
     <string name="retry" msgid="6472609612090877557">"ხელახლა ცდა"</string>
     <string name="wifi_shared" msgid="844142443226926070">"მოწყობილობის სხვა მომხმარებლებთან გაზიარება"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(უცვლელი)"</string>
@@ -1071,11 +1069,6 @@
     <item msgid="7715869266611010880">"მობილური"</item>
     <item msgid="2838022395783120596">"მხოლოდ Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"სასურველია Wi-Fi"</item>
     <item msgid="5074515506087318555">"უპირატესობა მიენიჭოს მობილურს"</item>
@@ -1084,10 +1077,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"მობილური"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi დარეკვის ჩართვის შემთხვევაში, ტელეფონს ზარების მარშრუტიზაცია შეუძლია როგორც Wi-Fi ქსელების, ისე თქვენი ოპერატორის ქსელის მეშვეობით, რაც დამოკიდებულია თქვენ მიერ მითითებულ პარამეტრებსა და კონკრეტული სიგნალის სიძლიერეზე. ამ ფუნქციის ჩართვამდე მიმართეთ თქვენს ოპერატორს ტარიფებისა და სხვა დეტალების დასაზუსტებლად.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"საგანგებო მისამართი"</string>
@@ -2058,8 +2047,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 წუთი"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"წაკითხვის დრო"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"ქმედების შესრულების დრო"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"აირჩიეთ, რა დროის განმავლობაში გამოჩნდეს შეტყობინებები, რომელთა წაკითხვაც გჭირდებათ, მაგრამ მხოლოდ დროებით ჩანს.\n\nეს პარამეტრი არ არის მხარდაჭერილი ყველა აპის მიერ."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"აირჩიეთ, რა დროის განმავლობაში გამოჩნდეს შეტყობინებები, რომლებიც გთხოვთ ქმედების შესრულებას, თუმცა მხოლოდ დროებით ჩანს.\n\nეს პარამეტრი არ არის მხარდაჭერილი ყველა აპის მიერ."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"შეხება და დაყოვნება"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"ფერის ინვერსია"</string>
@@ -3014,7 +3002,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"აპები და შეტყობინებები"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"ნებართვები, ნაგულისხმევი აპები"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"შეტყობინებებზე წვდომა სამსახურის პროფილში არსებული აპებისთვის მიუწვდომელია."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"ანგარიშები"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"ანგარიშები დამატებული არ არის"</string>
@@ -3077,7 +3066,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"ემბიენტური ეკრანი, ჩაკეტილი ეკრანი"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"შეტყობინება ჩაკეტილ ეკრანზე"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"სახე"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"თითის ანაბეჭდი"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ეკრანის გამქრქალება, სენსორული ეკრანი, ბატარეა, გონივრული სიკაშკაშე, დინამიკური სიკაშკაშე"</string>
     <!-- no translation found for keywords_display_adaptive_sleep (6865504720946121402) -->
     <skip />
@@ -3111,6 +3101,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"მრეკავი დაყენებულია უხმოზე"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"ზარის სიმძლავრე: 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"მედიის ხმა"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"ზარის ხმა"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"მაღვიძარას ხმა"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"ზარის სიმძლავრე"</string>
@@ -4231,10 +4223,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"„არ შემაწუხოთ“ რეჟიმის განახლება"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"შეტყობინებების დაპაუზება კონცენტრირების შესანარჩუნებლად"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"ამ მოწყობილობაზე ეს ფუნქცია მიუწვდომელია"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"ეს ფუნქცია მიუწვდომელია"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"ის შეანელებს ამ ტელეფონს"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"სრული GNSS გაზომვის განხორციელების იძულება"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ყველა GNSS კონსტელაციისა და სიხშირის აღრიცხვა, დატვირთვის კოეფიციენტის გარეშე"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"აქტივობის ფონურ რეჟიმში დაწყების დაშვება"</string>
@@ -4438,6 +4428,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"შეტყობინებათა <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> არხი. შეეხეთ ყველას სამართავად."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"გამომავალი სიგნალის გადართვა"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"ამჟამად იკვრება <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-ზე"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ამ პროვაიდერის გამოწერა შეიძლება გაგიუქმდეთ. განმეორებადი გამოწერები არ გაუქმდება. დამატებითი ინფორმაციისთვის მიმართეთ თქვენს პროვაიდერს."</string>
 </resources>
diff --git a/res/values-kk/arrays.xml b/res/values-kk/arrays.xml
index f6b4b74..03dc184 100644
--- a/res/values-kk/arrays.xml
+++ b/res/values-kk/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM картасы"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Бүкіл әлем"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 13d5add..1bda970 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Басқа желіні таңдау"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Құрылғы қосылмады"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Құрылғы табылды"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Осы құрылғымен Wi‑Fi байланысы бөлісілуде…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Жалғануда…"</string>
     <string name="retry" msgid="6472609612090877557">"Қайталау"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Басқа құрылғы пайдаланушыларымен бөлісу"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(өзгермеген)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"Мобильдік"</item>
     <item msgid="2838022395783120596">"Тек Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi ұсынылған"</item>
     <item msgid="5074515506087318555">"Таңдаулы мобильдік байланыс"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Мобильдік"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi қоңыраулары қосулы кезде, телефон қоңырауларды параметрге және сигналдың күшіне байланысты Wi-Fi желілері немесе оператор желісі арқылы бағыттай алады. Бұл функцияны қоспас бұрын, алынатын ақы туралы және басқа да мәліметтерді оператордан сұрап алыңыз.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Төтенше жағдайда пайдаланылатын мекенжай"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 минут"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Оқу ұзақтығы"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Шара қолдану ұзақтығы"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Оқылатын уақытша хабарлардың көрсетілу ұзақтығын таңдаңыз.\n\nБұл параметр барлық қолданбаларда бола бермейді."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Шара қолдануды талап ететін хабарлардың уақытша көрсетілу ұзақтығын таңдаңыз.\n\nБұл параметр барлық қолданбаларда бола бермейді."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Түртіп ұстап тұрғандағы кідіріс"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Түстер инверсиясы"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Қолданбалар мен хабарландырулар"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Рұқсаттар, әдепкі қолданбалар"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Жұмыс профиліндегі қолданбалар үшін хабарландырулар қолжетімді емес."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Есептік жазбалар"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Ешқандай есептік жазба қосылмаған"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Қосулы экран, құлып экраны"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"құлып экранындағы хабарландыру"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"бет"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"саусақ ізі"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"күңгірт экран, сенсорлық экран, батарея, ақылды жарықтық, динамикалық жарықтық"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"экранды күңгірттеу, ұйқы режимі, батарея, күту уақыты, назар, дисплей, экран, әрекетсіздік"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"бұру, аудару, айналдыру, портреттік, альбомдық, бағыт, тік, көлденең"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Қоңырау үнсіз режимге қойылған"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Қоңыраудың дыбыс деңгейі: 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Meдианың дыбыс деңгейі"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Қоңыраудың дыбыс деңгейі"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Дабылдың дыбыс деңгейі"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Қоңыраудың дыбыс деңгейі"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"\"Мазаламау\" режимін жаңарту"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Алаңдататын хабарландыруларды кідірту"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Бұл мүмкіндік құрылғыда жоқ"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Бұл функция істемейді."</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Телефонның жұмысы баяулайды."</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"GNSS толық өлшемдерін қосу"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Жұмыс циклінсіз барлық GNSS тізбектері мен жиіліктерін қадағалау"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Фондық әрекеттердің басталуына рұқсат ету"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> хабарландыру арнасы. Барлығын басқару үшін түртіңіз."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Шығатын панельді ауыстыру"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> деген құрылғыда ойнап жатыр."</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Жазылым тоқтатылуы мүмкін. Қайталанатын жазылымдардан бас тартылмайды. Толық ақпаратты провайдерден сұрап алыңыз."</string>
 </resources>
diff --git a/res/values-km/arrays.xml b/res/values-km/arrays.xml
index 989db0a..2eb3017 100644
--- a/res/values-km/arrays.xml
+++ b/res/values-km/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/ស៊ីម"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"សកល"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 3834749..2ed604e 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"ជ្រើសរើស​បណ្ដាញផ្សេង"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"មិន​អាច​បញ្ចូល​ឧបករណ៍​បាន​ទេ"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"បាន​រកឃើញ​ឧបករណ៍"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"កំពុង​ចែករំលែក Wi‑Fi ជាមួយ​ឧបករណ៍​នេះ…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"កំពុង​ភ្ជាប់…"</string>
     <string name="retry" msgid="6472609612090877557">"ព្យាយាមម្ដងទៀត"</string>
     <string name="wifi_shared" msgid="844142443226926070">"ចែករំលែកជាមួយអ្នកប្រើឧបករណ៍ផ្សេងទៀត"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(មិន​ផ្លាស់ប្ដូរ)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"ទូរសព្ទ​ចល័ត"</item>
     <item msgid="2838022395783120596">"Wi-Fi តែប៉ុណ្ណោះ"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi ជាអាទិភាព"</item>
     <item msgid="5074515506087318555">"បាន​ជ្រើសរើសប្រើទិន្នន័យចល័ត"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"ទូរសព្ទ​ចល័ត"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"នៅពេល​ការហៅ​តាម Wi-Fi បានបើក ទូរសព្ទ​របស់អ្នក​អាច​ធ្វើការហៅចេញ​តាមរយៈ​បណ្ដាញ Wi-Fi ឬ​បណ្ដាញ​​របស់ក្រុមហ៊ុនសេវាទូរសព្ទ​អ្នក ដោយផ្អែកលើ​ចំណូលចិត្ត​របស់អ្នក និងរលកសញ្ញា​នៃបណ្ដាញ​ណាមួយ​ដែល​ខ្លាំងជាង។ មុនពេល​បើក​មុខងារ​នេះ សូមសាកសួរ​ក្រុមហ៊ុន​សេវាទូរសព្ទរបស់អ្នក​អំពី​ថ្លៃសេវា និង​ព័ត៌មានលម្អិត​ផ្សេងៗ​។<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"អាសយដ្ឋានគ្រាអាសន្ន"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 នាទី"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"ដល់ពេលអានហើយ"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"ដល់​ពេលធ្វើ​សកម្មភាព​ហើយ"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"ជ្រើសរើស​រយៈពេលសម្រាប់បង្ហាញសារ​ដែលអ្នកត្រូវអាន ប៉ុន្តែអាចមើលឃើញ​បណ្ដោះអាសន្នតែប៉ុណ្ណោះ។\n\nមិនមែនគ្រប់​កម្មវិធីទាំងអស់​សុទ្ធតែស្គាល់ការកំណត់នេះទេ។"</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"ជ្រើសរើសរយៈពេលសម្រាប់បង្ហាញសារ​ដែលស្នើឱ្យអ្នក​ធ្វើសកម្មភាព ប៉ុន្តែអាចមើលឃើញ​បណ្ដោះអាសន្ន​តែប៉ុណ្ណោះ។\n\nមិនមែនគ្រប់កម្មវិធីទាំងអស់សុទ្ធតែស្គាល់ការកំណត់នេះទេ។"</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"ប៉ះ និង សង្កត់​ឲ្យ​យូរ"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"​បញ្ច្រាស​ពណ៌"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"ប៊្លូធូស, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"ប៊្លូធូស"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"កម្មវិធី និងការជូនដំណឹង"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"ការ​អនុញ្ញាត កម្មវិធី​លំនាំដើម"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"មិនអាច​ចូល​ប្រើ​ការ​ជូន​ដំណឹងបានទេ​សម្រាប់​កម្មវិធី​នៅក្នុង​កម្រង​ព័ត៌មាន​ការងារ។"</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"គណនី"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"មិន​មាន​ការ​បញ្ចូល​គណនី​ទេ"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"មុខងារ​អេក្រង់​សម្ងំ មុខងារ​អេក្រង់​ចាក់សោ"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ការជូនដំណឹង​លើ​អេក្រង់​ចាក់សោ"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"មុខ"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"ស្នាមម្រាមដៃ"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"អេក្រង់​ខ្សោយពន្លឺ អេក្រង់​ចុច ថ្ម ពន្លឺ​ឆ្លាតវៃ ពន្លឺ​ឌីណាមិក"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"បន្ថយ​ពន្លឺ​អេក្រង់ ដេក ថ្ម អស់ម៉ោង ការផ្ដោត​អារម្មណ៍ ផ្ទាំងអេក្រង់ អេក្រង់ អសកម្ម"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"បង្វិល ត្រឡប់ រង្វិល បញ្ឈរ ផ្តេក ទិស បន្ទាត់ឈរ បន្ទាត់ដេក"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"បានកំណត់សំឡេងរោទិ៍ឲ្យស្ងាត់"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"កម្រិតសំឡេងរោទិ៍ត្រឹម 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"កម្រិត​សំឡេង​មេឌៀ"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"កម្រិត​សំឡេង​ហៅ"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"កម្រិត​សំឡេងម៉ោង​រោទ៍"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"កម្រិត​សំឡេង​រោទ៍"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"ធ្វើ​បច្ចុប្បន្នភាព​មុខងារ​កុំរំខាន"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"ផ្អាក​ការជូនដំណឹង​ដើម្បីផ្តោត​អារម្មណ៍"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"មុខងារនេះ​មិនមាន​នៅលើ​ឧបករណ៍​នេះទេ"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"មិនអាចប្រើ​មុខងារ​នេះ​បានទេ"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"មុខងារនេះ​នឹង​ធ្វើឱ្យ​ទូរសព្ទ​នេះ​ដំណើរការយឺត"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"ជំរុញការវាស់ GNSS ពេញលេញ"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"តាមដានក្រុមរូបថត និងហ្រេ្វកង់ GNSS ទាំងអស់​ដែល​គ្មាន​ការបែង​ចែក​រយៈពេល​ដំណើរការ"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"អនុញ្ញាតឱ្យ​សកម្មភាពនៅ​ផ្ទៃខាងក្រោយ​ចាប់ផ្តើម"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"បណ្តាញ​ជូនដំណឺង <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>។ ចុច​ដើម្បី​គ្រប់គ្រង​ទាំងអស់។"</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"លទ្ធផល Switch"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"ឥឡូវនេះ​កំពុងចាក់​នៅលើ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ការជាវរបស់អ្នក​តាមរយៈក្រុមហ៊ុនផ្ដល់សេវា​នេះអាចនឹងត្រូវបានបោះបង់។ ការជាវដែលបន្តឡើងវិញ​នឹងមិនត្រូវបាន​បោះបង់ទេ។ ដើម្បីទទួលបាន​ព័ត៌មានបន្ថែម សូមពិនិត្យមើល​ជាមួយក្រុមហ៊ុន​ផ្ដល់សេវារបស់អ្នក។"</string>
 </resources>
diff --git a/res/values-kn/arrays.xml b/res/values-kn/arrays.xml
index 496a9e7..deba0ce 100644
--- a/res/values-kn/arrays.xml
+++ b/res/values-kn/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/ಸಿಮ್‌"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"ಜಾಗತಿಕ"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 1913833..bd9b66e 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -944,10 +944,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"ಬೇರೆ ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ಆರಿಸಿ"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"ಸಾಧನವನ್ನು ಸೇರಿಸಲಾಗಲಿಲ್ಲ"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"ಸಾಧನ ಕಂಡುಬಂದಿದೆ"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"ಈ ಸಾಧನದೊಂದಿಗೆ ವೈ-ಫೈ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳಲಾಗುತ್ತಿದೆ…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"ಸಂಪರ್ಕಿಸುತ್ತಿದೆ…"</string>
     <string name="retry" msgid="6472609612090877557">"ಮರುಪ್ರಯತ್ನಿಸು"</string>
     <string name="wifi_shared" msgid="844142443226926070">"ಇತರ ಸಾಧನ ಬಳಕೆದಾರರ ಜೊತೆಗೆ ಹಂಚಿಕೊಳ್ಳಿ"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(ಬದಲಾವಣೆಯಾಗದ)"</string>
@@ -1071,11 +1069,6 @@
     <item msgid="7715869266611010880">"ಮೊಬೈಲ್"</item>
     <item msgid="2838022395783120596">"ವೈ-ಫೈ ಮಾತ್ರ"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"ವೈ-ಫೈಗೆ ಆದ್ಯತೆ"</item>
     <item msgid="5074515506087318555">"ಮೊಬೈಲ್‌ಗೆ ಆದ್ಯತೆ"</item>
@@ -1084,10 +1077,6 @@
     <item msgid="6132150507201243768">"ವೈ-ಫೈ"</item>
     <item msgid="1118703915148755405">"ಮೊಬೈಲ್"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"ವೈ-ಫೈ ಕರೆ ಮಾಡುವಿಕೆ ಆನ್‌ ಆದಾಗ, ನಿಮ್ಮ ಫೋನ್‌ ನಿಮ್ಮ ಆದ್ಯತೆ ಮತ್ತು ಯಾವ ಸಿಗ್ನಲ್ ಬಲವಾಗಿದೆ ಎಂಬುದರ ಅನುಗುಣವಾಗಿ, ಕರೆಗಳನ್ನು ವೈ-ಫೈ ನೆಟ್‌ವರ್ಕ್‌ಗಳು ಅಥವಾ ನಿಮ್ಮ ವಾಹಕದ ನೆಟ್‌ವರ್ಕ್ ಮೂಲಕ ರವಾನಿಸುತ್ತದೆ. ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಆನ್‌ ಮಾಡುವ ಮೊದಲು, ಶುಲ್ಕಗಳು ಮತ್ತು ಇತರ ವಿವರಗಳಿಗೆ ಸಂಬಂಧಿಸಿದಂತೆ ನಿಮ್ಮ ವಾಹಕವನ್ನು ಸಂಪರ್ಕಿಸಿ.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"ತುರ್ತು ವಿಳಾಸ"</string>
@@ -2058,8 +2047,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 ನಿಮಿಷಗಳು"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"ಓದುವ ಸಮಯ"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"ಕ್ರಮವನ್ನು ತೆಗೆದುಕೊಳ್ಳುವ ಸಮಯ"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"ನೀವು ಓದಬೇಕಾದ ಸಂದೇಶಗಳನ್ನು ಎಷ್ಟು ಸಮಯದ ಕಾಲ ತೋರಿಸಬೇಕು ಎಂಬುದನ್ನು ಆಯ್ಕೆಮಾಡಿ, ಆದರೆ ತಾತ್ಕಾಲಿಕವಾಗಿ ಮಾತ್ರ ಗೋಚರಿಸುತ್ತದೆ.\n\nಎಲ್ಲಾ ಆ್ಯಪ್‌ಗಳು ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"ನೀವು ಕ್ರಮ ತೆಗೆದುಕೊಳ್ಳಲು ಕೇಳುವ ಸಂದೇಶಗಳನ್ನು ಎಷ್ಟು ಸಮಯದ ಕಾಲ ತೋರಿಸಬೇಕು ಎಂಬುದನ್ನು ಆಯ್ಕೆಮಾಡಿ.\n\nಎಲ್ಲಾ ಆ್ಯಪ್‌ಗಳು ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"ಸ್ಪರ್ಶ &amp; ಹೋಲ್ಡ್‌ ವಿಳಂಬ"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"ಬಣ್ಣ ವಿಲೋಮ"</string>
@@ -3014,7 +3002,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"ಬ್ಲೂಟೂತ್, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"ಬ್ಲೂಟೂತ್"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"ಆ್ಯಪ್ &amp; ಅಧಿಸೂಚನೆ"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"ಅನುಮತಿಗಳು, ಡಿಫಾಲ್ಟ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"ಕೆಲಸದ ಪ್ರೊಫೈಲ್‌ನಲ್ಲಿರುವ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಅಧಿಸೂಚನೆ ಪ್ರವೇಶ ಲಭ್ಯವಿಲ್ಲ."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"ಖಾತೆಗಳು"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"ಯಾವುದೇ ಖಾತೆಗಳನ್ನು ಸೇರಿಸಿಲ್ಲ"</string>
@@ -3077,7 +3066,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"ಆಂಬಿಯೆಂಟ್ ಡಿಸ್‌ಪ್ಲೇ, ಲಾಕ್ ಸ್ಕ್ರೀನ್ ಡಿಸ್‌ಪ್ಲೇ"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ಲಾಕ್ ಸ್ಕ್ರೀನ್ ಅಧಿಸೂಚನೆ"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"ಮುಖ"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"ಫಿಂಗರ್‌ ಪ್ರಿಂಟ್"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ಮಂದ ಪರದೆ, ಟಚ್‌ಸ್ಕ್ರೀನ್, ಬ್ಯಾಟರಿ, ಸ್ಮಾರ್ಟ್ ಪ್ರಖರತೆ, ಡೈನಾಮಿಕ್ ಪ್ರಖರತೆ"</string>
     <!-- no translation found for keywords_display_adaptive_sleep (6865504720946121402) -->
     <skip />
@@ -3111,6 +3101,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"ರಿಂಗರ್ ಅನ್ನು ನಿಶ್ಯಬ್ಧಕ್ಕೆ ಹೊಂದಿಸಲಾಗಿದೆ"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"80% ರಷ್ಟು ರಿಂಗ್ ವಾಲ್ಯೂಮ್"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"ಮಾಧ್ಯಮ ವಾಲ್ಯೂಮ್"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"ಕರೆಯ ವಾಲ್ಯೂಮ್"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"ಅಲಾರಮ್ ವಾಲ್ಯೂಮ್"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"ರಿಂಗ್ ವಾಲ್ಯೂಮ್"</string>
@@ -4231,10 +4223,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"ಅಡಚಣೆ ಮಾಡಬೇಡಿ ಅನ್ನು ಅಪ್‌ಡೇಟ್‌ ಮಾಡಿ"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"ಫೋಕಸ್‌ ಆಗಿ ಇರಲು ಅಧಿಸೂಚನೆಗಳನ್ನು ವಿರಾಮಗೊಳಿಸಿ"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"ಈ ಸಾಧನದಲ್ಲಿ ಈ ವೀಡಿಯೊ ಲಭ್ಯವಿಲ್ಲ"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"ಈ ವೈಶಿಷ್ಟ್ಯ ಲಭ್ಯವಿಲ್ಲ"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"ಇದರಿಂದ, ಫೋನ್‌ನ ಕಾರ್ಯಾಚರಣೆ ನಿಧಾನವಾಗುತ್ತದೆ"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"ಫೋರ್ಸ್‌ ಫುಲ್ GNSS ಅಳತೆಗಳು"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ಯಾವುದೇ ಡ್ಯೂಟಿ ಸೈಕ್ಲಿಂಗ್ ಇಲ್ಲದೆ ಎಲ್ಲಾ GNSS ಕಾನ್ಸ್ಟಲೇಶನ್‌ಗಳು ಮತ್ತು ಆವರ್ತನೆಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"ಹಿನ್ನೆಲೆ ಚಟುವಟಿಕೆ ಪ್ರಾರಂಭಗಳನ್ನು ಅನುಮತಿಸಿ"</string>
@@ -4438,6 +4428,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ಅಧಿಸೂಚನೆ ಚಾನಲ್‌ಗಳು. ಎಲ್ಲವನ್ನೂ ನಿರ್ವಹಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"ಔಟ್‌ಫುಟ್ ಬದಲಿಸಿ"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"ಪ್ರಸ್ತುತ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ನಲ್ಲಿ ಪ್ಲೇ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ಈ ಸೇವೆಯನ್ನು ಒದಗಿಸುವವರ ಜೊತೆಗಿನ ನಿಮ್ಮ ಸಬ್‌ಸ್ಕ್ರಿಪ್ಶನ್ ಅನ್ನು ರದ್ದುಗೊಳಿಸಬಹುದು. ಮರುಕಳಿಸುವ ಸಬ್‌ಸ್ಕ್ರಿಪ್ಶನ್‌ಗಳನ್ನು ರದ್ದುಗೊಳಿಸಲಾಗುವುದಿಲ್ಲ. ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ, ನಿಮ್ಮ ಸೇವೆ ಒದಗಿಸುವವರ ಜೊತೆಗೆ ಪರಿಶೀಲಿಸಿ."</string>
 </resources>
diff --git a/res/values-ko/arrays.xml b/res/values-ko/arrays.xml
index f2d7828..29d07b7 100644
--- a/res/values-ko/arrays.xml
+++ b/res/values-ko/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"글로벌"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index feff6ef..57a0f07 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -944,10 +944,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"다른 네트워크 선택"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"기기를 추가할 수 없습니다."</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"검색된 기기"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"이 기기와 Wi‑Fi 공유 중…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"연결 중…"</string>
     <string name="retry" msgid="6472609612090877557">"재시도"</string>
     <string name="wifi_shared" msgid="844142443226926070">"다른 기기 사용자와 공유"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(변경 안함)"</string>
@@ -1071,11 +1069,6 @@
     <item msgid="7715869266611010880">"모바일"</item>
     <item msgid="2838022395783120596">"Wi-Fi에서만"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi를 기본으로 설정"</item>
     <item msgid="5074515506087318555">"모바일을 기본으로 설정"</item>
@@ -1084,10 +1077,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"모바일"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi 통화가 켜져 있으면 휴대전화에서 환경설정과 신호 강도에 따라 Wi-Fi 네트워크나 이동통신사 네트워크를 통해 통화를 연결할 수 있습니다. 이 기능을 사용하기 전에 이동통신사에 문의하여 요금과 기타 세부정보를 알아보세요.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"긴급 주소"</string>
@@ -2058,8 +2047,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2분"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"읽기 시간"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"조치를 취할 시간"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"읽어야 하지만 일시적으로만 보이는 메시지를 표시할 시간을 선택하세요.\n\n일부 앱에서는 이 설정이 지원되지 않습니다."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"사용자에게 조치를 취하도록 요청하지만 일시적으로만 보이는 메시지를 표시할 시간을 선택하세요.\n\n일부 앱에서는 이 설정이 지원되지 않습니다."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"길게 눌러 입력하기"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"색상 전도"</string>
@@ -3014,7 +3002,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"블루투스, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"블루투스"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"앱 및 알림"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"권한, 기본 앱"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"알림 액세스는 직장 프로필에 있는 앱에서 사용할 수 없습니다."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"계정"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"추가된 계정 없음"</string>
@@ -3077,7 +3066,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"절전 모드 자동 해제, 잠금 화면 표시"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"잠금 화면 알림"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"얼굴"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"지문"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"화면 어둡게 하기, 터치스크린, 배터리, 스마트 밝기, 동적 밝기"</string>
     <!-- no translation found for keywords_display_adaptive_sleep (6865504720946121402) -->
     <skip />
@@ -3111,6 +3101,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"벨소리 장치가 무음으로 설정됨"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"벨소리 볼륨 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"미디어 볼륨"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"통화 볼륨"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"알람 볼륨"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"벨소리 볼륨"</string>
@@ -4231,10 +4223,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"방해 금지 모드 업데이트"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"방해받지 않도록 알림 일시중지"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"이 기기에서 지원하지 않는 기능입니다."</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"이 기능은 사용할 수 없습니다."</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"휴대전화 속도를 저하시키는 기능입니다."</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"전체 GNSS 측정 강제 사용"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"사용률 없이 모든 GNSS 배열 및 빈도를 추적"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"백그라운드 활동 시작 허용"</string>
@@ -4438,6 +4428,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"알림 채널 <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>개. 모두 관리하려면 탭하세요."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"출력 전환"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"현재 <xliff:g id="DEVICE_NAME">%1$s</xliff:g>에서 재생 중"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"이 제공업체를 통한 구독은 취소될 수 있습니다. 반복 구독은 취소되지 않습니다. 자세한 내용은 제공업체에 문의하세요."</string>
 </resources>
diff --git a/res/values-ky/arrays.xml b/res/values-ky/arrays.xml
index 436d560..d329e42 100644
--- a/res/values-ky/arrays.xml
+++ b/res/values-ky/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Жалпы"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 5761b02..3e02d27 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -939,10 +939,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Башка тармакты тандоо"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Түзмөк кошулган жок"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Түзмөк табылды"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Wi‑Fi бул түзмөк менен бөлүшүлүүдө…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Туташууда…"</string>
     <string name="retry" msgid="6472609612090877557">"Кайталоо"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Түзмөктүн башка колдонуучулары менен бөлүшүлсүн"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(өзгөрбөгөн)"</string>
@@ -1066,11 +1064,6 @@
     <item msgid="7715869266611010880">"Мобилдик түзмөк"</item>
     <item msgid="2838022395783120596">"Wi-Fi гана"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi тандалган"</item>
     <item msgid="5074515506087318555">"Тандалган мобилдик түзмөк"</item>
@@ -1079,10 +1072,6 @@
     <item msgid="6132150507201243768">"Wi‑Fi"</item>
     <item msgid="1118703915148755405">"Мобилдик түзмөк"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi аркылуу чалуу күйгүзүлгөндө, телефонуңуз, жеке жөндөөлөрүңүзгө жана сигналдын күчтүүлүгүнө жараша, чалууларды Wi-Fi тармактары же операторуңуздун тармагы аркылуу багыттай алат. Бул функцияны күйгүзүүдөн мурда, төлөмдөрү жана башка маалымат боюнча операторуңузга кайрылыңыз.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Өзгөчө кырдаалда кайрыла турган дарек"</string>
@@ -2053,8 +2042,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 мүнөт"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Окуу убакыты"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Чара көрүү убакыты"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Окуш керек болгон, бирок убактылуу гана көрүнө турган билдирүүлөр канча убакыт көрсөтүлөрүн тандаңыз.\n\nБул жөндөө бардык колдонмолордо иштей бербейт."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Чара көрүүнү өтүнгөн убактылуу көрүнгөн билдирүүлөр канча убакыт көрсөтүлөрүн тандаңыз.\n\nБул жөндөө бардык колдонмолордо иштей бербейт."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Коё бербей басып туруу узактыгы"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Түстү инверсиялоо"</string>
@@ -3005,7 +2993,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Колдонмолор/билдирмелер"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Уруксаттар, демейки колдонмолор"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Жумуш профилиндеги колдонмолордо билдирмелерди иштетүү мүмкүн эмес."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Аккаунттар"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Бир да аккаунт кошулган эмес"</string>
@@ -3068,7 +3057,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Экран автоматтык түрдө күйөт, экран кулпусу"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"кулпуланган экрандагы билдирме"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"жүз"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"манжа изи"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"күңүрт экран, сенсордук экран, батарея, акылдуу жарыктык, динамикалык жарыктык"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"экранды бүдөмүктөтүү, уйку режими, батарея, экрандын өчүү убакыты, көңүл буруу, дисплей, экран, аракетсиздик"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"буруу, көрсөтүү, айлануу, тигинен, туурасынан, багыт, вертикалдык, горизонталдык"</string>
@@ -3101,6 +3091,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Коңгуроонун үнү өчүрүлгөн"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Шыңгырдын катуулугу 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Мультимедианын үнү"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Чалуунун үнү"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Ойготкучтун үнү"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Шыңгырдын үнү"</string>
@@ -4218,10 +4210,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"\"Тынчымды алба\" режимин жаңыртуу"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Алагды кылбоо үчүн билдирмелерди тындыруу"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Бул функция бул түзмөктө иштебейт"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Бул функция жеткиликтүү эмес"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Ал функция телефондун иштешин жайлатат"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"GNSS көрсөткүчтөрүнө толук көз салууну иштетүү"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Иштөө цикли өчүрүлүп, бардык GNSS топторуна жана жыштыктарга көз салынат"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Фондогу аракеттерге уруксат берүү"</string>
@@ -4427,6 +4417,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> билдирме каналы. Баарын башкаруу үчүн таптап коюңуз."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Аудио түзмөктү которуштуруу"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Учурда <xliff:g id="DEVICE_NAME">%1$s</xliff:g> түзмөгүндө ойнотулууда"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Бул камсыздоочуга жазылууңуз жокко чыгарылышы мүмкүн. Кайталануучу жазылуулар жокко чыгарылбайт. Көбүрөөк маалымат үчүн, камсыздоочуңузга байланышыңыз."</string>
 </resources>
diff --git a/res/values-lo/arrays.xml b/res/values-lo/arrays.xml
index 13f95c3..22718dc 100644
--- a/res/values-lo/arrays.xml
+++ b/res/values-lo/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"ທົ່ວໂລກ"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index f62b761..aacc9e0 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"ເລືອກເຄືອຂ່າຍອື່ນ"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"ບໍ່ສາມາດເພີ່ມອຸປະກອນໄດ້"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"ພົບອຸປະກອນ"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"ກຳລັງແບ່ງປັນ Wi‑Fi ກັບອຸປະກອນນີ້…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"ກຳລັງເຊື່ອມຕໍ່…"</string>
     <string name="retry" msgid="6472609612090877557">"ລອງໃໝ່"</string>
     <string name="wifi_shared" msgid="844142443226926070">"ແບ່ງປັນກັບຜູ້ໃຊ້ອຸປະກອນອື່ນ"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(ບໍ່ມີການປ່ຽນແປງ)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"ມືຖື"</item>
     <item msgid="2838022395783120596">"Wi-Fi ເທົ່ານັ້ນ"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"ເລືອກໃຊ້ Wi-Fi ກ່ອນ"</item>
     <item msgid="5074515506087318555">"ຕ້ອງການໃຊ້ມືຖື"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"ມືຖື"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"ເມື່ອເປີດໃຊ້ການໂທ Wi-Fi, ໂທລະສັບຂອງທ່ານຈະສາມາດໂທຜ່ານເຄືອຂ່າຍ Wi-Fi ຫຼື ເຄືອຂ່າຍຜູ້ໃຫ້ບໍລິການຂອງທ່ານກໍໄດ້, ຂຶ້ນກັບການຕັ້ງຄ່າຂອງທ່ານ ແລະ ຂຶ້ນກັບວ່າສັນຍານເຄືອຂ່າຍໃດແຮງກວ່າ. ກ່ອນການເປີດໃຊ້ຄຸນສົມບັດນີ້, ກະລຸນາກວດສອບກັບຜູ້ໃຫ້ບໍລິການຂອງທ່ານກ່ຽວກັບຄ່າທຳນຽມ ແລະ ລາຍລະອຽດອື່ນໆ.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"ທີ່ຢູ່ສຸກເສີນ"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 ນາທີ"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"ເວລາອ່ານ"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"ເວລາໃນການດຳເນີນການ"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"ເລືອກໄລຍະເວລາທີ່ຈະສະແດງຂໍ້ຄວາມທີ່ທ່ານຕ້ອງການອ່ານ, ແຕ່ຈະເຫັນໄດ້ຊົ່ວຄາວເທົ່ານັ້ນ.\n\nບາງແອັບບໍ່ຮອງຮັບການຕັ້ງຄ່ານີ້."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"ເລືອກໄລຍະເວລາເພື່ອສະແດງຂໍ້ຄວາມໃຫ້ທ່ານດຳເນີນການ, ແຕ່ຈະເຫັນຊົ່ວຄາວເທົ່ານັ້ນ.\n\nບໍ່ແມ່ນທຸກແອັບທີ່ຮອງຮັບການຕັ້ງຄ່ານີ້."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"ການກົດຄ້າງໄວ້"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"ການປີ້ນສີ"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"ແອັບ ແລະ ການແຈ້ງເຕືອນ"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"ສິດອະນຸຍາດ, ແອັບເລີ່ມຕົ້ນ"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"ບໍ່ສາມາດເຂົ້າເຖິງການແຈ້ງເຕືອນສຳລັບແອັບໃນໂປຣໄຟລ໌ບ່ອນເຮັດວຽກໄດ້."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"ບັນຊີ"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"ບໍ່ໄດ້ເພີ່ມບັນຊີ"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"ການສະແດງຜົນຕາມແສງສະພາບແວດລ້ອມ, ໜ້າຈໍລັອກ"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ການແຈ້ງເຕືອນໃນໜ້າຈໍລັອກ"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"ໃບໜ້າ"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"ລາຍນີ້ວມື"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ຫຼຸດແສງໜ້າຈໍ, ໜ້າຈໍສຳຜັດ, ແບັດເຕີຣີ, ຄວາມສະຫວ່າງອັດສະລິຍະ, ຄວາມສະຫວ່າງແບບໄດນາມິກ"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"ຫຼຸດແສງໜ້າຈໍ, ປິດໜ້າຈໍ, ແບັດເຕີຣີ, ໝົດເວລາ, ຄວນເອົາໃຈໃສ່, ສະແດງຜົນ, ໜ້າຈໍ, ບໍ່ເຄື່ອນໄຫວ"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"ໝຸນ, ກັບດ້ານ, ຮູບລວງຕັ້ງ, ຮູບລວງນອນ, ທິດທາງ, ລວງຕັ້ງ, ລວງນອນ"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"ປິດສຽງໂທລະສັບແລ້ວ"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"ສຽງໂທລະສັບທີ່ 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"​ລະ​ດັບ​ສຽງ​ມີ​ເດຍ"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"ລະດັບສຽງການໂທ"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"ລະ​ດັບ​ສຽງ​ໂມງ​ປຸກ"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"​ລະ​ດັບ​ສຽງ​ໂທ​ລະ​ສັບ"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"ອັບເດດໂໝດຫ້າມລົບກວນ"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"ຢຸດການແຈ້ງເຕືອນຊົ່ວຄາວເພື່ອໃຫ້ມີສະມາທິ"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"ຄຸນສົມບັດນີ້ບໍ່ສາມາດໃຊ້ໄດ້ໃນອຸປະກອນນີ້ໄດ້"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"ຄຸນສົມບັດນີ້ບໍ່ສາມາດໃຊ້ໄດ້"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"ມັນຈະເຮັດໃຫ້ໂທລະສັບໜ່ວຍນີ້ຊ້າລົງ"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"ບັງຄັບການກວດສອບ GNSS ເຕັມຮູບແບບ"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ຕິດຕາມກຸ່ມ ແລະ ຄວາມຖີ່ GNSS ທັງໝົດໂດຍບໍ່ມີຮອບຕາມພັນທະ"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"ອະນຸຍາດໃຫ້ການເຄື່ອນໄຫວໃນພື້ນຫຼັງເລີ່ມຕົ້ນ"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ຊ່ອງການແຈ້ງເຕືອນ. ແຕະເພື່ອຈັດການທັງໝົດ."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"ສະຫຼັບການສົ່ງຂໍ້ມູນອອກ"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"ຕອນນີ້ກຳລັງຫຼິ້ນຢູ່ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ການສະໝັກໃຊ້ຂອງທ່ານກັບຜູ້ໃຫ້ບໍລິການນີ້ອາດຖືກຍົກເລີກ. ການສະໝັກໃຊ້ແບບຕໍ່ເນື່ອງຈາກບໍ່ຖືກຍົກເລີກ. ກະລຸນາກວດສອບກັບຜູ້ໃຫ້ບໍລິການຂອງທ່ານສຳລັບຂໍ້ມູນເພີ່ມເຕີມ."</string>
 </resources>
diff --git a/res/values-lt/arrays.xml b/res/values-lt/arrays.xml
index 97e5c23..72e7cf0 100644
--- a/res/values-lt/arrays.xml
+++ b/res/values-lt/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM / SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Visuotinis"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 34785a6..c8ab6fe6 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -972,10 +972,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Pasirinkti kitą tinklą"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Nepavyko pridėti įrenginio"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Rastas įrenginys"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Bendrinamas „Wi‑Fi“ su šiuo įrenginiu…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Prisijungiama…"</string>
     <string name="retry" msgid="6472609612090877557">"Bandyti dar kartą"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Bendrinti su kitais įrenginio naudotojais"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(nepakeista)"</string>
@@ -1101,11 +1099,6 @@
     <item msgid="7715869266611010880">"Mobiliojo ryšio tinklas"</item>
     <item msgid="2838022395783120596">"Tik „Wi-Fi“ ryšys"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Pageidautinas „Wi-Fi“ ryšys"</item>
     <item msgid="5074515506087318555">"Pirmenybė mobiliojo ryšio tinklui"</item>
@@ -1114,10 +1107,6 @@
     <item msgid="6132150507201243768">"„Wi-Fi“ ryšys"</item>
     <item msgid="1118703915148755405">"Mobiliojo ryšio tinklas"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Kai „Wi-Fi“ skambinimas įjungtas, telefonas gali nukreipti skambučius per „Wi-Fi“ tinklus arba operatoriaus tinklą, atsižvelgiant į jūsų nuostatas ir stipresnį signalą. Prieš įjungdami šią funkciją, pasikonsultuokite su operatoriumi dėl mokesčių ir kitos išsamios informacijos.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Adresas prireikus pagalbos"</string>
@@ -2094,8 +2083,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 min."</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Skaitymo laikas"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Laikas, skirtas veiksmams atlikti"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Pasirinkite, kiek laiko norite rodyti pranešimus, kuriuos reikia perskaityti ir kurie matomi tik laikinai.\n\nŠis nustatymas palaikomas ne visose programose."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Pasirinkite, kiek laiko norite rodyti pranešimus, su kuriais reikia atlikti veiksmus ir kurie matomi tik laikinai.\n\nŠis nustatymas palaikomas ne visose programose."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"„Paliesti ir laikyti“ delsa"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Spalvų inversija"</string>
@@ -3086,7 +3074,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"„Bluetooth“, ALR"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Programos ir pranešimai"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Leidimai, numatytosios programos"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Prieiga prie pranešimų negalima darbo profilio programoms."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Paskyros"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nepridėta jokių paskyrų"</string>
@@ -3149,7 +3138,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Aplinkos ekranas, užrakinimo ekranas"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"užrakinimo ekrano pranešimas"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"veidas"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"piršto antspaudas"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"pritemdyti ekraną, jutiklinis ekranas, akumuliatorius, išmanusis šviesumas, dinaminis šviesumas"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"užtemdyti ekraną, miego būsena, akumuliatorius, skirtasis laikas, dėmesys, pateiktis, ekranas, neaktyvumas"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"pasukti, apversti, pasukimas, stačia, gulsčia, orientacija, vertikali, horizontali"</string>
@@ -3182,6 +3172,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Skambutis nustatytas į tylų"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Skambučio garsumas – 80 %"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Medijų garsumas"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Skambučio garsumas"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Signalo garsumas"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Skambučio garsumas"</string>
@@ -4371,10 +4363,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Atnaujinti netrukdymo režimą"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Pristabdyti pranešimus, kad neblaškytų dėmesio"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Ši funkcija nepasiekiama šiame įrenginyje"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Ši funkcija negalima"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Ją įjungus telefonas veiks lėčiau"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Priversti vykdyti visus GNSS matavimus"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Stebėti visas GNSS konferencijas ir visus dažnius netaikant darbo ciklų"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Leisti pradėti veiklą fone"</string>
@@ -4588,6 +4578,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> pranešimų kanalas. Palieskite, jei norite viską tvarkyti."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Išvesties perjungimas"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Šiuo metu leidžiama per <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Šio paslaugų teikėjo prenumerata gali būti atšaukta. Pasikartojančios prenumeratos nebus atšauktos. Jei reikia daugiau informacijos, susisiekite su paslaugų teikėju."</string>
 </resources>
diff --git a/res/values-lv/arrays.xml b/res/values-lv/arrays.xml
index 0ba96a5..dc8f5c1 100644
--- a/res/values-lv/arrays.xml
+++ b/res/values-lv/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Vispārējie"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 8709352..d361e93 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -956,10 +956,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Izvēlēties citu tīklu"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Nevarēja pievienot ierīci."</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Atrasta ierīce"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Notiek Wi‑Fi kopīgošana ar šo ierīci…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Notiek savienojuma izveide…"</string>
     <string name="retry" msgid="6472609612090877557">"Mēģināt vēlreiz"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Koplietot ar citiem ierīces lietotājiem"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(bez izmaiņām)"</string>
@@ -1084,11 +1082,6 @@
     <item msgid="7715869266611010880">"Mobilie dati"</item>
     <item msgid="2838022395783120596">"Tikai Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2."</item>
-    <item msgid="1171822231056612021">"1."</item>
-    <item msgid="3194458950573886239">"0."</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Vēlams Wi-Fi tīkls"</item>
     <item msgid="5074515506087318555">"Vēlams mobilo datu savienojums"</item>
@@ -1097,10 +1090,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Mobilie dati"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Kad ir ieslēgti Wi-Fi zvani, tālrunis var novirzīt zvanus, izmantojot Wi-Fi tīklus vai mobilo sakaru operatora tīklu (atkarībā no jūsu iestatījumiem un tā, kurš signāls ir stiprāks). Pirms šīs funkcijas ieslēgšanas noskaidrojiet pie mobilo sakaru operatora par tarifiem un citu informāciju.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Ārkārtas adrese"</string>
@@ -2074,8 +2063,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minūtes"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Laiks lasīt"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Laiks veikt darbību"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Izvēlieties to ziņojumu rādīšanas ilgumu, kuri jums ir jāizlasa, bet kuri tiek rādīti tikai noteiktu laiku.\n\nNe visās lietotnēs šis iestatījums tiek atbalstīts."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Izvēlieties to ziņojumu rādīšanas ilgumu, kuros ir iekļauts aicinājums uz darbību, bet kuri tiek rādīti tikai noteiktu laiku.\n\nNe visās lietotnēs šis iestatījums tiek atbalstīts."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Aizkave, pieskaroties un turot"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Krāsu inversija"</string>
@@ -3046,7 +3034,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Lietotnes un paziņojumi"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Atļaujas, noklusējuma lietotnes"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Piekļuve paziņojumiem nav pieejama darba profila lietotnēm."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Konti"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Neviens konts nav pievienots"</string>
@@ -3109,7 +3098,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Gaidstāves ekrāns, bloķēšanas ekrāna attēlojums"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"bloķēšanas ekrāna paziņojums"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"seja"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"pirksta nospiedums"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"aptumšots ekrāns, skārienekrāns, akumulators, viedais spilgtums, dinamiskais spilgtums"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"ekrāna aptumšošana, miega režīms, akumulators, noildze, uzmanība, displejs, ekrāns, bezdarbība"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"pagriezt, apvērst, pagriešana, portrets, ainava, virziens, vertikāls, horizontāls"</string>
@@ -3142,6 +3132,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Zvanītājam iestatīts klusuma režīms."</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Zvana skaļums: 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Multivides skaļums"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Zvana skaļums"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Signāla skaļums"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Zvana skaļums"</string>
@@ -4295,10 +4287,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Atjaunināt iestatījumu “Netraucēt”"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Pārtraukt paziņojumus, lai ilglaicīgi koncentrētos"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Šī funkcija šajā ierīcē nav pieejama."</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Šī funkcija nav pieejama."</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Tiks palēnināts šī tālruņa darbības ātrums."</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Veikt pilnus GNSS mērījumus"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Izsekot visas GNSS konstelācijas un frekvences bez darba cikliem"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Atļaut darbību sākšanu fonā"</string>
@@ -4508,6 +4498,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> paziņojumu kanāli. Pieskarieties, lai pārvaldītu visu."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Slēdža izeja"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Šobrīd saturs tiek atskaņots ierīcē <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Jūsu abonements pie šī pakalpojumu sniedzēja var tikt atcelts. Periodiskie abonementi netiks atcelti. Lai saņemtu plašāku informāciju, sazinieties ar pakalpojumu sniedzēju."</string>
 </resources>
diff --git a/res/values-mk/arrays.xml b/res/values-mk/arrays.xml
index 55dddfb..3a87134 100644
--- a/res/values-mk/arrays.xml
+++ b/res/values-mk/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Глобален"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 8a4232c..982c8f1 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -1065,11 +1065,6 @@
     <item msgid="7715869266611010880">"Мобилен интернет"</item>
     <item msgid="2838022395783120596">"Само Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Се претпочита Wi-Fi"</item>
     <item msgid="5074515506087318555">"Претпочитам мобилен интернет"</item>
@@ -1078,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Мобилен интернет"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Кога е вклучена „Повици преку Wi-Fi“, телефонот може да пренасочува повици преку Wi-Fi мрежи или преку мрежата на вашиот оператор, во зависност од вашата поставка и од тоа кој сигнал е посилен. Пред да ја вклучите функцијата, распрашајте се кај операторот за трошоците и другите детали.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Адреса за итни случаи"</string>
@@ -2052,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 минути"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Време за читање"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Време за преземање дејство"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Изберете колку долго да се прикажуваат пораките што треба да ги прочитате, но се видливи само привремено.\n\nНе сите апликации ја поддржуваат оваа поставка."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Изберете колку долго да се прикажуваат пораките што бараат да преземете дејство, но се видливи само привремено.\n\nНе сите апликации ја поддржуваат оваа поставка."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Допри и задржи подолго"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Инверзија на боја"</string>
@@ -3004,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Апликации и известувања"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Дозволи, стандардни апликации"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Пристапот до известувањата не е достапен за апликации во работниот профил."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Сметки"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Нема додадени сметки"</string>
@@ -3067,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Амбиентален екран, Екран за заклучување на екранот"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"известување на заклучен екран"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"лице"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"отпечаток"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"затемнет екран, екран на допир, батерија, паметна осветленост, динамична осветленост"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"затемнет екран, режим во мирување, батерија, истек на време, внимание, приказ, екран, неактивност"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"ротирај, преврти, ротација, портрет, пејзаж, ориентација, вертикална, хоризонтална"</string>
@@ -3100,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Ѕвонењето е поставено на безгласен режим"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Јачината на звукот на ѕвонењето е на 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Јачина на аудио/видео звук"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Јачина на звук за повици"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Јачина на звук на аларм"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Јачина на звук на ѕвонење"</string>
@@ -4424,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> канали за известување. Допрете за да управувате со сите."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Сменете го излезот"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Моментално се пушта на <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Вашата претплата кај овој оператор може да се откаже. Повторливите претплати нема да се откажат. За повеќе информации, контактирајте со операторот."</string>
 </resources>
diff --git a/res/values-ml/arrays.xml b/res/values-ml/arrays.xml
index 11b37b0..39e4726 100644
--- a/res/values-ml/arrays.xml
+++ b/res/values-ml/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/സിം"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"ആഗോളം"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 77aabdb..6706a03 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"മറ്റൊരു നെറ്റ്‌വർക്ക് തിരഞ്ഞെടുക്കുക"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"ഉപകരണം ചേർക്കാനായില്ല"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"ഉപകരണം കണ്ടെത്തി"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"ഈ ഉപകരണവുമായി Wi‑Fi പങ്കിടുന്നു…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"കണക്‌റ്റ് ചെയ്യുന്നു…"</string>
     <string name="retry" msgid="6472609612090877557">"വീണ്ടും ശ്രമിക്കുക"</string>
     <string name="wifi_shared" msgid="844142443226926070">"മറ്റ് ഉപകരണ ഉപയോക്താക്കളുമായി പങ്കിടുക"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(മാറ്റം വരുത്തിയിട്ടില്ല)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"മൊബൈൽ"</item>
     <item msgid="2838022395783120596">"വൈ-ഫൈ മാത്രം"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi തിരഞ്ഞെടുത്തിരിക്കുന്നു"</item>
     <item msgid="5074515506087318555">"തിരഞ്ഞെടുത്ത മൊബൈൽ"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"വൈ-ഫൈ"</item>
     <item msgid="1118703915148755405">"മൊബൈൽ"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi കോളിംഗ് ഓണായിരിക്കുമ്പോൾ, നിങ്ങളുടെ മുൻഗണനയും ഏത് സിഗ്നലാണ് ശക്തമെന്നതും അടിസ്ഥാനമാക്കി ഫോണിന് Wi-Fi നെറ്റ്‌വർക്കോ കാരിയർ നെറ്റ്‌വർക്കോ വഴി കോളുകൾ റൂട്ട് ചെയ്യാനാകും. ഈ ഫീച്ചർ ഓണാക്കുന്നതിനുമുമ്പ്, നിരക്കുകളും മറ്റ് വിശദാംശങ്ങളും അറിയുന്നതിന് നിങ്ങളുടെ കാരിയറെ ബന്ധപ്പെടുക.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"അടിയന്തര വിലാസം"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 മിനിറ്റ്"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"വായിക്കാനുള്ള സമയം"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"നടപടി സ്വീകരിക്കാനുള്ള സമയം"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"നിങ്ങൾക്ക് വായിക്കേണ്ട സന്ദേശങ്ങൾ എത്ര സമയം കാണിക്കണമെന്നത് തിരഞ്ഞെടുക്കുക, എന്നാൽ താൽക്കാലികമായി മാത്രമേ ദൃശ്യമാകൂ.\n\nഎല്ലാ ആപ്പുകളും ഈ ക്രമീകരണം പിന്തുണയ്ക്കുന്നില്ല."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"നടപടി സ്വീകരിക്കാൻ ആവശ്യപ്പെടുന്ന സന്ദേശങ്ങൾ എത്ര സമയം കാണിക്കണമെന്നത് തിരഞ്ഞെടുക്കുക, എന്നാൽ താൽക്കാലികമായി മാത്രമേ ദൃശ്യമാകൂ.\n\nഎല്ലാ ആപ്പുകളും ഈ ക്രമീകരണം പിന്തുണയ്ക്കുന്നില്ല."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"സ്‌പർശിച്ച്, അമർത്തിപ്പിടിക്കുക"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"വർണ്ണവൈപരീത്യം"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"ആപ്‌സും അറിയിപ്പുകളും"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"അനുമതികൾ, ‌ഡിഫോൾട്ട് ആപ്പുകൾ"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"ഔദ്യോഗിക പ്രൊഫൈലിലെ ആപ്പുകൾക്ക് അറിയിപ്പിലേക്കുള്ള ആക്‌സസ് ലഭ്യമല്ല."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"അക്കൗണ്ടുകൾ"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"അക്കൗണ്ടുകളൊന്നും ചേർത്തില്ല"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"പാതിമയക്ക ഡിസ്‌പ്ലേ, ലോക്ക് സ്‌ക്രീൻ ഡിസ്‌പ്ലേ"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ലോക്ക് സ്‌ക്രീൻ അറിയിപ്പ്"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"മുഖം"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"ഫിംഗർപ്രിന്റ്"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"സ്‌ക്രീൻ മങ്ങിക്കൽ, ടച്ച്‌സ്‌ക്രീൻ, ബാറ്ററി, സ്മാർട്ട് തെളിച്ചം, ചലനാത്മക തെളിച്ചം"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"മങ്ങിച്ച സ്ക്രീൻ, ഉറക്കം, ബാറ്ററി, സമയപരിധി, ശ്രദ്ധ, ഡിസ്‌പ്ലേ, സ്‌ക്രീൻ, നിഷ്ക്രിയത്വം"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"തിരിക്കുക, ഫ്ലിപ്പ്, തിരിക്കൽ, പോർ‌ട്രെയ്റ്റ്, ലാൻഡ്‌സ്കേപ്പ്, ഓറിയന്റേഷൻ, ലംബം, സമാന്തരം"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"നിശബ്ദമാക്കിയിരിക്കുന്ന തരത്തിൽ റിംഗർ സജ്ജമാക്കി"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"റിംഗ് വോളിയം: 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"മീഡിയ വോളിയം"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"കോൾ വോളിയം"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"അലാറം വോളിയം"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"റിംഗ് വോളിയം"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"\'ശല്യപ്പെടുത്തരുത്\' അപ്‌ഡേറ്റ് ചെയ്യുക"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"ഫോക്കസ് ചെയ്‌ത നിലയിൽ തുടരാൻ, അറിയിപ്പുകൾ താൽക്കാലികമായി നിർത്തുക"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"ഈ ഫീച്ചർ ഈ ഉപകരണത്തിൽ ലഭ്യമല്ല"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"ഈ ഫീച്ചർ ലഭ്യമല്ല"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"ഇത് നിങ്ങളുടെ ഫോണിൻ്റെ വേഗത കുറയ്‌ക്കും"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"പൂർണ്ണ GNSS അളവുകൾ നടപ്പിലാക്കുക"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"നോ ഡ്യൂട്ടി സൈക്ലിംഗ് ഉപയോഗിച്ച് മുഴുവൻ GNSS കോൺസ്‌റ്റലേഷനുകളും ആവൃത്തികളും ട്രാക്ക് ചെയ്യൂ"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"പ്രവർത്തനം ആരംഭിക്കുന്നതിനുള്ള പശ്ചാത്തല ആക്റ്റിവിറ്റി"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> അറിയിപ്പ് ചാനലുകൾ. എല്ലാം മാനേജ് ചെയ്യാൻ ടാപ്പ് ചെയ്യുക."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"ഔട്ട്പുട്ട് മാറുക"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"നിലവിൽ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> എന്ന ഉപകരണത്തിൽ പ്ലേ ചെയ്യുന്നു"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ഈ ദാതാവുമായുള്ള നിങ്ങളുടെ സബ്‌സ്‌ക്രിപ്‌ഷൻ റദ്ദാക്കിയേക്കാം. ആവർത്തിക്കുന്ന സബ്‌സ്‌ക്രിപ്‌ഷനുകൾ റദ്ദാക്കില്ല. കൂടുതൽ വിവരങ്ങൾക്ക്, നിങ്ങളുടെ ദാതാവുമായി ബന്ധപ്പെടുക."</string>
 </resources>
diff --git a/res/values-mn/arrays.xml b/res/values-mn/arrays.xml
index 816605f..238a429 100644
--- a/res/values-mn/arrays.xml
+++ b/res/values-mn/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Глобал"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index a67a7f3..ad84d0d 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Өөр сүлжээ сонгох"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Төхөөрөмж нэмж чадсангүй"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Төхөөрөмж олдсон"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Wi‑Fi-г энэ төхөөрөмжтэй хуваалцаж байна…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Холбогдож байна…"</string>
     <string name="retry" msgid="6472609612090877557">"Дахин оролдох"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Төхөөрөмжийн бусад хэрэглэгчтэй хуваалцах"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(өөрчлөгдөөгүй)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"Мобайл"</item>
     <item msgid="2838022395783120596">"Зөвхөн Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi давуу эрхтэй"</item>
     <item msgid="5074515506087318555">"Мобайл давуу эрхтэй"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Мобайл"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Таны утас Wi-Fi дуудлагыг асаалттай үед таны сонголт болон аль дохио илүү хүчтэй байгаагаас шалтгаалан Wi-Fi сүлжээ эсвэл таны оператор компанийн сүлжээгээр дуудлага хийх боломжтой. Энэ онцлогийг асаахаасаа өмнө оператор компанийнхаа төлбөр болон бусад дэлгэрэнгүйг шалгаж үзээрэй.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Яаралтай тусламжийн хаяг"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 минут"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Унших хугацаа"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Үйлдэл хийх хугацаа"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Та унших шаардлагатай хэдий ч зөвхөн түр хугацаанд харагддаг мессежийг хэр удаан харуулахыг сонгоно уу.\n\nЗарим апп энэ тохиргоог дэмждэггүй."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Танаас үйлдэл хийхийг шаарддаг хэдий ч зөвхөн түр хугацаанд харагддаг зурвасыг хэр удаан хугацаагаар харуулахыг сонгоно уу.\n\nЗарим апп энэ тохиргоог дэмждэггүй."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Хүрэх &amp; барих хүлээлт"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Өнгө урвуулалт"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Апп; мэдэгдэл"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Зөвшөөрөл, өгөгдмөл апп"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Мэдэгдлийн хандалт ажлын профайлын аппад боломжгүй байна."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Бүртгэл"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Бүртгэл нэмээгүй байна"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Орчинтой тохирсон дэлгэц, Түгжигдсэн дэлгэцийн дэлгэц"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"түгжигдсэн дэлгэцийн мэдэгдэл"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"царай"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"хурууны хээ"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"бүдэг дэлгэц, мэдрэмтгий дэлгэц, батарей, ухаалаг гэрэлтүүлэг, динамик гэрэлтүүлэг"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"бүдэг дэлгэц, идэвхгүй, батарей, завсарлага, анхаарал, нүүр, дэлгэц, идэвхгүй горим"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"эргүүлэх, хөнтрөх, эргэлт, босоо, хөндлөн, чиглэл, босоо, хөндлөн"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Хонхыг чимээгүй болгож тохируулсан"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Хонх дуугаргах түвшин 80%-д"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Медиа дууны түвшин"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Дуудлагын дууны түвшин"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Сэрүүлгийн дууны түвшин"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Хонхны дууны түвшин"</string>
@@ -4217,10 +4209,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Бүү саад бол горимыг шинэчлэх"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Төвлөрсөн хэвэрэ байхын тулд мэдэгдлийг түр зогсоох"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Энэ онцлог энэ төхөөрөмжид боломжгүй"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Энэ онцлог боломжгүй байна"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Энэ нь энэ утсыг удаашруулна"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Бүтэн GNSS хэмжилтийг хүчлэх"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Бүх GNSS орд болон давтамжийг давтамжийн түвшингүйгээр шинжлэх"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Арын үйл ажиллагааг эхлүүлэхийг зөвшөөрөх"</string>
@@ -4426,6 +4416,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"Мэдэгдлийн <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> суваг байна. Бүгдийг нь удирдахын тулд товшино уу."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Гаралтыг сэлгэх"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Одоогоор <xliff:g id="DEVICE_NAME">%1$s</xliff:g> дээр тоглуулж байна"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Таны энэ үйлчилгээ үзүүлэгчийн захиалгыг цуцалсан байж болзошгүй. Хэвшмэл захиалгыг цуцлахгүй. Нэмэлт мэдээлэл авахын тулд үйлчилгээ үзүүлэгчтэйгээ холбогдоно уу."</string>
 </resources>
diff --git a/res/values-mr/arrays.xml b/res/values-mr/arrays.xml
index f652a08..eed5731 100644
--- a/res/values-mr/arrays.xml
+++ b/res/values-mr/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/सिम"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"जागतिक"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 400105e..ac9bb15 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"वेगळे नेटवर्क निवडा"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"डिव्हाइस जोडता आले नाही"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"डिव्हाइस सापडले"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"या डिव्हाइससह वाय‑फाय शेअर करत आहे…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"कनेक्ट करत आहे…"</string>
     <string name="retry" msgid="6472609612090877557">"पुन्हा प्रयत्न करा"</string>
     <string name="wifi_shared" msgid="844142443226926070">"इतर डिव्हाइस वापरकर्त्यांसह शेअर करा"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(न बदललेले)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"मोबाइल"</item>
     <item msgid="2838022395783120596">"केवळ वाय-फाय"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"वाय-फाय अग्रमानांकित"</item>
     <item msgid="5074515506087318555">"प्राधान्य दिलेला मोबाइल"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"वाय-फाय"</item>
     <item msgid="1118703915148755405">"मोबाइल"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"वाय-फाय कॉलिंग चालू असताना, तुमचा फोन तुमच्या प्राधान्यावर आणि कोणता सिग्नल मजबूत आहे याच्या आधारावर, वाय-फाय नेटवर्क किंवा तुमच्या वाहकाच्या नेटवर्कद्वारे कॉल राउट करू शकतो. हे वैशिष्ट्य सुरू करण्यापूर्वी, फी आणि इतर तपशीलांच्या संबंधात तुमच्या वाहकास विचारा. <xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"संकटकालीन पत्ता"</string>
@@ -2055,8 +2044,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"दोन मिनिटे"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"वाचण्यासाठी वेळ"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"क्रिया करण्याची वेळ"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"तात्पुरता दृश्यमान असेल असा तुम्हाला वाचायचा असलेला मेसेज किती वेळ दाखवायचा ते निवडा.\n\nसर्व अ‍ॅप्स यासेटिंगला सपोर्ट करत नाहीत."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"तुम्हाला क्रिया करण्यास सांगणारे, परंतु केवळ तात्पुरते दृश्यमान असलेले मेसेज किती वेळ दाखवले जावेत ते निवडा.\n\nसर्व अ‍ॅप या सेटिंगला सपोर्ट करत नाहीत."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"स्पर्श आणि धरण्याचा विलंब"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"रंग व्युत्क्रम"</string>
@@ -3007,7 +2995,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"ब्लूटूथ, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"ब्लूटूथ"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"अॅप्स आणि सूचना"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"परवानग्या, डीफॉल्ट अ‍ॅप्स"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"कार्य प्रोफाइलमधील अॅप्ससाठी सूचनेचा अॅक्सेस उपलब्ध नाही."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"खाती"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"कोणतीही खाती जोडली नाहीत"</string>
@@ -3070,7 +3059,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"अँबियन्ट डिस्‍प्‍ले, लॉक स्‍क्रीन डिस्‍प्‍ले"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"लॉक स्‍क्रीन सूचना"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"चेहरा"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"फिंगरप्रिंट"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"मंद स्क्रीन, टचस्क्रीन, बॅटरी, स्मार्ट ब्राइटनेस, डायनॅमिक ब्राइटनेस"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"मंद स्क्रीन, स्लीप, बॅटरी, टाइमआउट, अटेंशन, डिस्प्ले, स्क्रीन, निष्क्रियता"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"फिरवा, फ्लिप करा, रोटेशन, पोर्ट्रेट, लँडस्केप, ओरिएंटेशन, उभे, आडवे"</string>
@@ -3103,6 +3093,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"रिंगर शांत वर सेट केले"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"रिंग व्हॉल्यूम 80% वर आहे"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"मीडिया व्हॉल्यूम"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"कॉल व्हॉल्यूम"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"अलार्म व्हॉल्यूम"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"रिंग व्हॉल्यूम"</string>
@@ -4220,10 +4212,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"व्यत्यय आणू नका अपडेट करा"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"लक्ष केंद्रित केलेले राहण्यासाठी सूचना थांंबवा"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"हे वैशिष्‍ट्य या डिव्हाइसवर उपलब्ध नाही"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"हे वैशिष्ट्य उपलब्ध नाही"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"हे तुमच्या फोनला धिमे करेल"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"पूर्ण GNSS मापांची सक्ती करा"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"कुठल्याही ड्युटी सायकलिंग शिवाय सर्व GNSS तारामंडळे आणि वारंवारता ट्रॅक करा"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"बॅकग्राउंड अॅक्टिव्हिटीला सुरू होण्याची अनुमती द्या"</string>
@@ -4429,6 +4419,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> सूचना चॅनेल. सर्व व्यवस्थापित करण्यासाठी टॅप करा."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"आउटपुट स्विच करा"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"सध्या <xliff:g id="DEVICE_NAME">%1$s</xliff:g> वर प्ले करत आहे"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"तुमचे या पुरवठादारासह असलेले सदस्यत्व कदाचित रद्द झाले आहे. आवर्ती सदस्यत्व रद्द केले जाणार नाही. आणखी माहितीसाठी तुमच्या पुरवठादाराशी संपर्क साधा."</string>
 </resources>
diff --git a/res/values-ms/arrays.xml b/res/values-ms/arrays.xml
index b2a7b88..4847927 100644
--- a/res/values-ms/arrays.xml
+++ b/res/values-ms/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Global"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 26bd472..8500637 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -944,10 +944,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Pilih rangkaian lain"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Tidak dapat menambah peranti"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Peranti ditemui"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Berkongsi Wi‑Fi dengan peranti ini…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Menyambung…"</string>
     <string name="retry" msgid="6472609612090877557">"Cuba semula"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Kongsi dengan pengguna peranti yang lain"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(tidak berubah)"</string>
@@ -1071,11 +1069,6 @@
     <item msgid="7715869266611010880">"Mudah alih"</item>
     <item msgid="2838022395783120596">"Wi-Fi sahaja"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi diutamakan"</item>
     <item msgid="5074515506087318555">"Mudah alih diutamakan"</item>
@@ -1084,10 +1077,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Mudah alih"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Apabila panggilan Wi-Fi dihidupkan, telefon anda boleh menghalakan panggilan melalui rangkaian Wi-Fi atau rangkaian pembawa anda, bergantung pada pilihan anda dan isyarat yang lebih kuat. Sebelum menghidupkan ciri ini, semak dengan pembawa anda berkenaan bayaran dan butiran lain.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Alamat Kecemasan"</string>
@@ -2058,8 +2047,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minit"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tempoh untuk membaca"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tempoh untuk mengambil tindakan"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Pilih tempoh untuk menunjukkan mesej yang perlu anda baca tetapi kelihatan hanya sementara.\n\nBukan semua apl menyokong tetapan ini."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Pilih tempoh untuk menunjukkan mesej yang meminta anda mengambil tindakan, tetapi mesej itu hanya dapat dilihat buat sementara waktu.\n\nTidak semua apl menyokong tetapan ini."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Lengahan sentuh &amp; tahan"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Penyongsangan warna"</string>
@@ -3014,7 +3002,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apl &amp; pemberitahuan"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Kebenaran, apl lalai"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Akses pemberitahuan tidak tersedia untuk apl dalam profil kerja."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Akaun"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Tiada akaun yang ditambahkan"</string>
@@ -3077,7 +3066,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Paparan ambien, Paparan skrin kunci"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"pemberitahuan skrin kunci"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"wajah"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"cap jari"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"malapkan skrin, skrin sentuh, bateri, kecerahan pintar, kecerahan dinamik"</string>
     <!-- no translation found for keywords_display_adaptive_sleep (6865504720946121402) -->
     <skip />
@@ -3111,6 +3101,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Pendering ditetapkan kepada senyap"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Kelantangan deringan pada 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Kelantangan media"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Kelantangan panggilan"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Kelantangan penggera"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Kelantangan deringan"</string>
@@ -4231,10 +4223,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Kemas Kini Jangan Ganggu"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Jeda pemberitahuan untuk mengekalkan tumpuan"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Video ini tidak tersedia pada peranti ini"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Ciri ini tidak tersedia"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Ciri akan memperlahankan telefon ini"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Paksa ukuran GNSS penuh"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Jejak semua gugusan dan kekerapan GNSS tanpa kitaran tugas"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Benarkan aktiviti latar belakang bermula"</string>
@@ -4438,6 +4428,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> saluran pemberitahuan. Ketik untuk mengurus semua."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Tukar output"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Sedang dimainkan pada <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Langganan anda dengan pembekal ini mungkin dibatalkan. Langganan berulang tidak akan dibatalkan. Untuk mendapatkan maklumat lanjut, semak dengan pembekal anda."</string>
 </resources>
diff --git a/res/values-my/arrays.xml b/res/values-my/arrays.xml
index 8f50be6..cce2101 100644
--- a/res/values-my/arrays.xml
+++ b/res/values-my/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"၀"</item>
-    <item msgid="8113210705878681550">"၁"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"ကမ္ဘာအနှံ့"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"၁၀"</item>
-    <item msgid="4187053702071521357">"၈"</item>
-    <item msgid="5461421967189969022">"၉"</item>
-  </string-array>
 </resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 1a1cdc6..494dbce 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"အခြားကွန်ရက် ရွေးရန်"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"စက်ပစ္စည်းကို ထည့်၍မရပါ"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"စက်ပစ္စည်းကို တွေ့ရှိပါသည်"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Wi‑Fi ကို ဤစက်အား မျှဝေနေသည်…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"ချိတ်ဆက်နေသည်…"</string>
     <string name="retry" msgid="6472609612090877557">"ထပ်စမ်းကြည့်ရန်"</string>
     <string name="wifi_shared" msgid="844142443226926070">"အခြားစက်ပစ္စည်းအသုံးပြုသူများဖြင့် မျှဝေ"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(ပြောင်းလဲခြင်းမရှိ)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"မိုဘိုင်း"</item>
     <item msgid="2838022395783120596">"Wi-Fi သာလျှင်"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"၂"</item>
-    <item msgid="1171822231056612021">"၁"</item>
-    <item msgid="3194458950573886239">"၀"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi ကိုပိုနှစ်စက်သည်"</item>
     <item msgid="5074515506087318555">"မိုဘိုင်းကို အသုံးပြုလိုပါသည်"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"မိုဘိုင်း"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"၂"</item>
-    <item msgid="6200207341126893791">"၁"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi ခေါ်ဆိုမှု ဖွင့်ထားသည့်အခါ သင်၏ရွေးချယ်မှုနှင့် လိုင်းပိုမိမှုအပေါ် မူတည်၍ သင့်ဖုန်းသည် Wi-Fi ကွန်ရက်များ သို့မဟုတ် သင့် ဝန်ဆောင်မှုပေးသူ၏ ကွန်ရက်မှတစ်ဆင့် ခေါ်ဆိုမှုများ ထပ်ဆင့်ပို့နိုင်ပါသည်။ ဤဝန်ဆောင်မှုမဖွင့်မီ ကျသင့်ငွေနှင့် အခြားအသေးစိတ် အချက်များအတွက် သင့်ဝန်ဆောင်မှုပေးသူကို မေးမြန်းကြည့်ပါ။<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"အရေးပေါ်လိပ်စာ"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"၂ မိနစ်"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"ဖတ်ရန် အချိန်"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"တစ်ခုခုလုပ်ဆောင်ရန် အချိန်"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"သင် ဖတ်ရှုရမည့် မက်ဆေ့ဂျ်များအား ပြရမည့် ကြာချိန် ရွေးပါ။ သို့သော်လည်း ယာယီသာ မြင်ရပါမည်။\n\nဤဆက်တင်ကို အက်ပ်အားလုံးတွင် အသုံးမပြုနိုင်ပါ။"</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"တစ်ခုခုလုပ်ဆောင်ရန် မေးသည့် မက်ဆေ့ဂျ်များ ပြရမည့်ကြာချိန် ရွေးပါ၊ သို့သော်လည်း ယာယီသာ မြင်ရပါမည်။\n\nအက်ပ်အားလုံးတွင် ဤဆက်တင် အသုံးမပြုနိုင်ပါ။"</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"ထိထားရန် လိုအပ်ချိန်"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"အရောင်​ပြောင်းပြန်"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"ဘလူးတုသ်၊ NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"ဘလူးတုသ်"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"အက်ပ်နှင့်အကြောင်းကြားချက်"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"ခွင့်ပြုချက်များ၊ မူရင်းအက်ပ်များ"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"အလုပ်ပရိုဖိုင်အတွင်းရှိ အက်ပ်များအတွက် အကြောင်းကြားချက် ဝင်ကြည့်၍ မရနိုင်ပါ။"</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"အကောင့်များ"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"မည်သည့်အကောင့်ကိုမျှ ထည့်သွင်းမထားပါ"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"ဝန်းကျင်ကို ပြကွက်၊ လော့ခ်ချထားချိန် မျက်နှာပြင်"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"လော့ခ်ချထားချိန် မျက်နှာပြင် အကြောင်းကြားချက်"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"မျက်နှာ"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"လက်ဗွေ"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"မျက်နှာပြင် အမှိန်၊ တို့ထိမျက်နှာပြင်၊ ဘက်ထရီ၊ အဆင့်မြင့် တောက်ပမှု၊ အားကောင်းသောတောက်ပမှု"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"ဖန်သားပြင် အရောင်မှိန်ခြင်း၊ နားခြင်း၊ ဘက်ထရီ၊ ခဏရပ်ချိန်၊ သတိပြုရန်၊ မျက်နှာပြင်ပြသမှု၊ မျက်နှာပြင်၊ အသုံးပြုမှုမရှိခြင်း"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"လှည့်သည်၊ လှန်ခြင်း၊ လှည့်ခြင်း၊ ထောင်လိုက်၊ အလျားလိုက်၊ အနေအထား၊ ထောင်လိုက်၊ ရေပြင်ညီ"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"ဖုန်းမြည်သံကို အသံပိတ်ထားပါသည်"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"ဖုန်းမြည်သံ အတိုးအကျယ် ၈၀% ဖြစ်သည်"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"မီဒီယာ အသံအတိုးအကျယ်"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"ဖုန်းခေါ်မှု အသံအတိုးအကျယ်"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"နှိုးစက်အသံ အတိုးအကျယ်"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"ဖုန်းမြည်သံ အတိုးအကျယ်"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"\'မနှောင့်ယှက်ရ\' ကို အပ်ဒိတ်လုပ်ခြင်း"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"အာရုံစူးစိုက်နိုင်ရန် အကြောင်းကြားချက်များကို ခေတ္တရပ်ထားပါ"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"ဤဝန်ဆောင်မှုကို ဤစက်ပစ္စည်းတွင် မရရှိနိုင်ပါ"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"ဤဝန်ဆောင်မှုကို မရနိုင်ပါ"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"၎င်းကြောင့် ဤဖုန်းနှေးသွားပါမည်"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"GNSS အတိုင်းအတာအပြည့် သက်ရောက်ရန်"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"လည်ပတ်ချိန်မပါဘဲ GNSS စက်ဝိုင်းပုံမြင်ကွင်းကျယ်ပုံများနှင့် ကြိမ်နှုန်းအားလုံးကို ခြေရာခံပါ"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"နောက်ခံ လုပ်ဆောင်ချက် စတင်မှုများ ခွင့်ပြုပါ"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"အကြောင်းကြားချက် ချန်နယ် <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ခု။ အားလုံးကို စီမံရန် တို့ပါ။"</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"မီဒီယာအထွက် ပြောင်းပါ"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ပေါ်တွင် လက်ရှိ ဖွင့်နေသည်"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ဤဝန်ဆောင်မှုပေးသူကို စာရင်းသွင်းမှု ပယ်ဖျက်ပါမည်။ ထပ်တလဲလဲ စာရင်းသွင်းမှုများကို ပယ်ဖျက်မည်မဟုတ်ပါ။ နောက်ထပ်အချက်အလက်များအတွက် ဝန်ဆောင်မှုပေးသူကို မေးမြန်းပါ။"</string>
 </resources>
diff --git a/res/values-nb/arrays.xml b/res/values-nb/arrays.xml
index 2b526ce..8c6d7b8 100644
--- a/res/values-nb/arrays.xml
+++ b/res/values-nb/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Globalt"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index b68939b..f655d08 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Velg et annet nettverk"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Kunne ikke legge til enheten"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Fant en enhet"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Deler Wi-Fi med denne enheten …"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Kobler til …"</string>
     <string name="retry" msgid="6472609612090877557">"Prøv på nytt"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Del med andre brukere av enheten"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(uendret)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"Mobil"</item>
     <item msgid="2838022395783120596">"Bare Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi er foretrukket"</item>
     <item msgid="5074515506087318555">"Først-på-mobil"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Mobil"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Når Wi-Fi-anrop er slått på, kan telefonen din dirigere telefonsamtaler via Wi-Fi-nettverk eller operatørens nettverk, avhengig av hva du har angitt i innstillingene og hvilket signal som er sterkest. Før du slår på denne funksjonen, er det viktig å sjekke gebyrer og andre detaljer med operatøren din.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Adresse for nødssituasjoner"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minutter"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tid til å lese"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tid til å gjøre noe"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Velg hvor lenge du vil se meldinger du må lese, men som bare vises midlertidig.\n\nIkke alle apper støtter denne innstillingen."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Velg hvor lenge du vil se meldinger som ber deg gjøre noe, men som bare vises midlertidig.\n\nIkke alle apper støtter denne innstillingen."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Forsinkelse for trykk-og-hold"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Fargeinvertering"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apper og varsler"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Tillatelser, standardapper"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Tilgang til varsler er ikke tilgjengelig for apper i jobbprofilen."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Kontoer"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Ingen kontoer er lagt til"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Passiv skjerm, låseskjerm"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"varsel på låseskjermen"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"ansikt"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingeravtrykk"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"dim skjermen, berøringsskjerm, batteri, smart lysstyrke, dynamisk lysstyrke"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"ton ned skjermen, hvilemodus, batteri, tidsavbrudd, oppmerksomhet, visning, skjerm, inaktivitet"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"rotér, vend, rotasjon, stående, liggende, retning, vertikal, horisontal"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Ringeprogrammet er satt til stille"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Ringevolumet er satt til 80 %"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Medievolum"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Samtalevolum"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Alarmvolum"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Ringevolum"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Oppdater «Ikke forstyrr»"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Sett varsler på pause for å holde deg fokusert"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Denne funksjonen er ikke tilgjengelig på denne enheten"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Denne funksjonen er ikke tilgjengelig"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Den senker hastigheten til telefonen"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Tving fullstendige GNSS-målinger"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Spor alle GNSS-konstellasjoner og -frekvenser uten syklus for oppgaver"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Tillat start av bakgrunnsaktivitet"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> varselkanaler. Trykk for å administrere alle."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Bytt utenhet"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Spiller nå av på <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Abonnementet ditt hos denne leverandøren kan bli kansellert. Gjentakende abonnement blir ikke kansellert. Hvis du vil ha mer informasjon, kan du kontakte leverandøren din."</string>
 </resources>
diff --git a/res/values-ne/arrays.xml b/res/values-ne/arrays.xml
index a492cdb..d22250a 100644
--- a/res/values-ne/arrays.xml
+++ b/res/values-ne/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"विश्वव्यापी"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index bcdfb8c..91245f7 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"फरक नेटवर्क छनौट गर्नुहोस्"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"यन्त्र थप्न सकिएन"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"यन्त्र भेटियो"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"यो सेवामार्फत Wi‑Fi आदान प्रदान गर्दै…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"जडान गर्दै…"</string>
     <string name="retry" msgid="6472609612090877557">"पुनः प्रयास गर्नु…"</string>
     <string name="wifi_shared" msgid="844142443226926070">"अन्य यन्त्र प्रयोगकर्ताहरूसँग साझेदारी गर्नुहोस्"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(अपरिवर्तित)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"मोबाइल"</item>
     <item msgid="2838022395783120596">"Wi-Fi मात्र"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi रुचाइएको"</item>
     <item msgid="5074515506087318555">"मोबाइल रूचाइएको छ"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"मोबाइल"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"२"</item>
-    <item msgid="6200207341126893791">"१"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi कलिङ सक्रिय पारिएका बेला तपाईंको फोनले तपाईंको प्राथमिकता र सङ्केतको बलियोपनाका आधारमा कलहरूलाई Wi-Fi नेटवर्कहरू वा तपाईंको सेवा प्रदायकको नेटवर्कमार्फत पठाउन सक्छ। यो सुविधा सक्रिय गर्नुअघि लाग्ने शुल्क र अन्य विवरणहरूबारे बुझ्न आफ्नो सेवा प्रदायकसँग सम्पर्क गर्नुहोस्।<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"आपतकालीन ठेगाना"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"२ मिनेट"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"पढ्ने समय"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"कारबाही गर्ने समय"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"तपाईंले पढ्नु पर्ने तर अस्थायी रूपमा मात्र देखिने सन्देशहरू देखाइने समय छनौट गर्नुहोस्।\n\nयो सेटिङले सबै अनुप्रयोगहरूमा काम गर्दैन।"</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"तपाईंलाई कारबाही गर्न लगाउने तर अस्थायी रूपमा मात्र देखिने सन्देशहरू देखाइने समय छनौट गर्नुहोस्।\n\nसबै अनुप्रयोगहरूले यो सेटिङ समर्थन गर्दैनन्।"</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"छुनुहोस् र केहीबेर समाउनुहोस्"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"रंग इन्भर्सन"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"ब्लुटुथ, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"ब्लुटुथ"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"अनुप्रयोग तथा सूचनाहरू"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"अनुमतिहरू, पूर्वनिर्धारित अनुप्रयोगहरू"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"कार्य प्रोफाइलका अनुप्रयोगहरूको सूचनामाथि पहुँच छैन।"</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"खाताहरू"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"कुनै पनि खाता थप गरिएन"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"परिवेशको प्रदर्शन, लक स्क्रिनको प्रदर्शन"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"लक स्क्रिनको सूचना"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"अनुहार"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"फिंगरप्रिन्ट"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"मधुरो स्क्रिन, टचस्क्रिन, ब्याट्री, स्मार्ट चमक, गतिशील उज्यालोपन"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"मधुरो स्क्रिन, शयन अवस्था, ब्याट्री, टाइमआउट, ध्यान, डिस्प्ले, स्क्रिन, निष्क्रियता"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"घुमाउनुहोस्, पल्टाउनुहोस्, परिक्रमा, पोर्ट्रेट, ल्यान्डस्केप, अभिमुखीकरण, ठाडो, तेर्सो"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"घन्टी बजाउनेलाई मौनमा सेट गरिएको छ"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"८०% मा सेट गरिँदा घन्टीको भोल्युम"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"मिडियाको आवाजको मात्रा"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"कलको भोल्युम"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"अलार्मको आवाजको मात्रा"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"घन्टीको आवाजको मात्रा"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"बाधा नपुर्‍याउनुहोस्‌ नामक सेवालाई अद्यावधिक गर्नुहोस्‌"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"केन्द्रित रहन सूचनाहरू पज गर्नुहोस्"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"यस यन्त्रमा यो सुविधा उपलब्ध छैन"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"यो सुविधा उपलब्ध छैन"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"यो सुविधा प्रयोग गर्नुले फोनको कार्यक्षमता सुस्त पार्ने छ"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"पूर्ण GNSS मापनहरू बलपूर्वक लागू गर्नुहोस्"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"कुनै उपयोगिता अनुपात बिना नै सबै GNSS कन्स्टेलेसन तथा फ्रिक्वेन्सीहरूलाई ट्र्याक गर्नुहोस्"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"पृष्ठभूमिको क्रियाकलाप सुरु हुने अनुमति दिनुहोस्"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"सूचनाका <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> च्यानलहरू। सबैको व्यवस्थापन गर्न ट्याप गर्नुहोस्।"</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"आउटपुट बदल्नुहोस्"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"हाल <xliff:g id="DEVICE_NAME">%1$s</xliff:g> मा प्ले भइरहेको"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"तपाईंको यो सेवा प्रदायकको सदस्यता रद्द गर्न सकिन्छ। पुनरावर्ती सदस्यताहरू रद्द गरिने छैनन्। थप जानकारीका लागि आफ्नो सेवा प्रदायकलाई सम्पर्क गर्नुहोस्।"</string>
 </resources>
diff --git a/res/values-nl/arrays.xml b/res/values-nl/arrays.xml
index a07e0cd..256730a 100644
--- a/res/values-nl/arrays.xml
+++ b/res/values-nl/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Algemeen"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index f4eb633..2f5dffa 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Ander netwerk kiezen"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Kan apparaat niet toevoegen"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Apparaat gevonden"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Wifi delen met dit apparaat…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Verbinden…"</string>
     <string name="retry" msgid="6472609612090877557">"Opnieuw proberen"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Delen met andere apparaatgebruikers"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(ongewijzigd)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"Mobiel"</item>
     <item msgid="2838022395783120596">"Alleen wifi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Voorkeur voor wifi"</item>
     <item msgid="5074515506087318555">"Voorkeur voor mobiel"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wifi"</item>
     <item msgid="1118703915148755405">"Mobiel"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wanneer bellen via wifi is ingeschakeld, kan je telefoon gesprekken doorschakelen via wifi-netwerken of het netwerk van je provider, afhankelijk van je voorkeur en welk signaal sterker is. Voordat je deze functie inschakelt, neem je contact met je provider op over de kosten en andere details.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Adres bij noodgevallen"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minuten"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tijd om te lezen"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tijd om actie te ondernemen"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Kies hoelang je berichten wilt weergeven die je moet lezen, maar die slechts tijdelijk zichtbaar zijn.\n\nDeze instelling wordt niet door alle apps ondersteund."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Kies hoelang je berichten wilt weergeven die je vragen om actie te ondernemen, maar die slechts tijdelijk zichtbaar zijn.\n\nDeze instelling wordt niet door alle apps ondersteund."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Vertraging voor blijven aanraken"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Kleurinversie"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps en meldingen"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Machtigingen, standaard-apps"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Toegang tot meldingen is niet beschikbaar voor apps in het werkprofiel."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Accounts"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Geen accounts toegevoegd"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Inactieve display, vergrendelingsscherm"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"melding op vergrendelingsscherm"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"gezicht"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"vingerafdruk"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"scherm dimmen, touchscreen, batterij, slimme helderheid, dynamische helderheid"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"scherm dimmen, slaap, batterij, time-out, aandacht, display, scherm, inactiviteit"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"roteren, draaien, omdraaien, rotatie, portret, landschap, oriëntatie, verticaal, horizontaal, staand, liggend"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Belsoftware ingesteld op stil"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Belvolume op 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Mediavolume"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Belvolume"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Wekkervolume"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Beltoonvolume"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"\'Niet storen\' updaten"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Meldingen onderbreken om gefocust te blijven"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Deze functie is niet beschikbaar op dit apparaat"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Deze functie is niet beschikbaar"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"De functie vertraagt deze telefoon"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Volledige GNSS-metingen afdwingen"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Alle GNSS-constellaties en -frequenties bijhouden zonder duty cycling"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Starts van activiteit op de achtergrond toestaan"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> meldingskanalen. Tik om alle kanalen te beheren."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Uitvoer wijzigen"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Wordt momenteel afgespeeld op <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Je abonnement bij deze provider kan worden opgezegd. Terugkerende abonnementen worden niet opgezegd. Neem voor meer informatie contact op met je provider."</string>
 </resources>
diff --git a/res/values-or/arrays.xml b/res/values-or/arrays.xml
index 2a0da03..e54a6c6 100644
--- a/res/values-or/arrays.xml
+++ b/res/values-or/arrays.xml
@@ -463,8 +463,10 @@
   </string-array>
     <!-- no translation found for swipe_direction_titles:0 (58569659116542716) -->
     <!-- no translation found for swipe_direction_titles:1 (1878704357761948043) -->
-    <!-- no translation found for swipe_direction_values:0 (8800082277840833437) -->
-    <!-- no translation found for swipe_direction_values:1 (7485508823396511299) -->
+  <string-array name="swipe_direction_values">
+    <item msgid="8800082277840833437">"1"</item>
+    <item msgid="7485508823396511299">"0"</item>
+  </string-array>
   <string-array name="wifi_metered_entries">
     <item msgid="5200910605264415911">"ସ୍ଵଚାଳିତ ଭାବେ ଚିହ୍ନଟ କରନ୍ତୁ"</item>
     <item msgid="8745603368609022803">"ମାପ ହୋଇଥିବା ସଂଯୋଗ ରୂପେ ବିବେଚନା କରନ୍ତୁ"</item>
@@ -520,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"ଗ୍ଲୋବାଲ୍"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 9038a4c..24de2ec 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -801,10 +801,8 @@
     <string name="rx_link_speed" msgid="5729003360923133988">"<xliff:g id="RECEIVE_LINK_SPEED">%1$d</xliff:g> Mbps"</string>
     <string name="wifi_ask_enable" msgid="2795469717302060104">"<xliff:g id="REQUESTER">%s</xliff:g> ୱାଇ-ଫାଇ ଅନ୍‌ କରିବାକୁ ଚାହାଁନ୍ତି"</string>
     <string name="wifi_ask_disable" msgid="728366570145493573">"<xliff:g id="REQUESTER">%s</xliff:g> ୱାଇ-ଫାଇ ବନ୍ଦ କରିବାକୁ ଚାହୁଁଛି"</string>
-    <!-- no translation found for art_verifier_for_debuggable_title (6029838014407791341) -->
-    <skip />
-    <!-- no translation found for art_verifier_for_debuggable_summary (2250352478065428399) -->
-    <skip />
+    <string name="art_verifier_for_debuggable_title" msgid="6029838014407791341">"debuggable ଆପ୍‍ର bytecode ଯାଞ୍ଚ କରାନ୍ତୁ"</string>
+    <string name="art_verifier_for_debuggable_summary" msgid="2250352478065428399">"debuggable ଆପ୍ସ ପାଇଁ bytecode ଯାଞ୍ଚ କରିବାକୁ ART ଅନୁମତି କରନ୍ତୁ"</string>
     <string name="nfc_quick_toggle_title" msgid="6769159366307299004">"NFC"</string>
     <string name="nfc_quick_toggle_summary" product="tablet" msgid="8302974395787498915">"ଟାବ୍‌ଲେଟ୍‌ ଅନ୍ୟ ଡିଭାଇସ୍‌କୁ ଛୁଇଁଲେ ଡାଟା ଆଦାନପ୍ରଦାନର ଅନୁମତି ଦିଅନ୍ତୁ"</string>
     <string name="nfc_quick_toggle_summary" product="default" msgid="5237208142892767592">"ଫୋନ୍‌ଟି ଅନ୍ୟ ଡିଭାଇସ୍‌କୁ ଛୁଇଁଲେ ଡାଟା ପ୍ରତିବଦଳ କରିପାରିବ"</string>
@@ -919,8 +917,7 @@
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"ୱାଇ-ଫାଇ ହଟସ୍ପଟ୍ ପାଇଁ ଅତିକମ୍‌ରେ ଗୋଟିଏ ବ୍ୟାଣ୍ଡକୁ ଚୟନ କରନ୍ତୁ:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP ସେଟିଙ୍ଗ"</string>
     <string name="wifi_privacy_settings" msgid="5500777170960315928">"ଗୋପନୀୟତା"</string>
-    <!-- no translation found for wifi_privacy_settings_ephemeral_summary (1539659414108891004) -->
-    <skip />
+    <string name="wifi_privacy_settings_ephemeral_summary" msgid="1539659414108891004">"ଅନିୟମିତ MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="8674936581557695411">"ଏକ ଡିଭାଇସ୍‍ ଯୋଗ କରନ୍ତୁ"</string>
     <string name="wifi_dpp_center_qr_code" msgid="6244508369721032655">"ଏହି “<xliff:g id="SSID">%1$s</xliff:g>”ରେ ଯୋଗ କରିବା ପାଇଁ ନିମ୍ନରେ ଥିବା QR କୋଡ୍‍କୁ କେନ୍ଦ୍ରକୁ ଆଣନ୍ତୁ"</string>
     <string name="wifi_dpp_scan_qr_code" msgid="4794621158747044107">"QR କୋଡ୍‍ ସ୍କାନ୍‍ କରନ୍ତୁ"</string>
@@ -928,20 +925,13 @@
     <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="8096370383700478819">"ଗୋଟିଏ QR କୋଡ୍ ସ୍କାନ୍‌ କରି ୱାଇ-ଫାଇରେ ଯୋଗ ଦିଅନ୍ତୁ"</string>
     <string name="wifi_dpp_share_wifi" msgid="9065890131734833809">"ୱାଇ-ଫାଇ ସେୟାର୍‌ କରନ୍ତୁ"</string>
     <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="8416440732377359392">"“<xliff:g id="SSID">%1$s</xliff:g>”ରେ ଯୋଗଦେବାକୁ, ଏହି QR କୋଡ୍‌କୁ ଅନ୍ୟଏକ ଡିଭାଇସ୍‌ରେ ସ୍କାନ୍‌ କରନ୍ତୁ"</string>
-    <!-- no translation found for wifi_dpp_could_not_detect_valid_qr_code (641893675646330576) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_failure_authentication_or_configuration (3372757783382381044) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_failure_not_compatible (2829930473520603740) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_failure_timeout (5228320772245820458) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_failure_generic (8030831192606098356) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_failure_not_supported (2643768115109632725) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_check_connection_try_again (2632966336733361805) -->
-    <skip />
+    <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="641893675646330576">"QR କୋଡ୍‍କୁ ପଢ଼ି ପାରୁ ନାହିଁ। କୋଡ୍ ପୁନଃ-କେନ୍ଦ୍ରିତ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ"</string>
+    <string name="wifi_dpp_failure_authentication_or_configuration" msgid="3372757783382381044">"ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ। ଯଦି ସମସ୍ୟା ଜାରି ରୁହେ, ଡିଭାଇସ୍‍ର ନିର୍ମାତାଙ୍କୁ ଯୋଗାଯୋଗ କରନ୍ତୁ"</string>
+    <string name="wifi_dpp_failure_not_compatible" msgid="2829930473520603740">"କିଛି ଭୁଲ ହୋଇଗଲା"</string>
+    <string name="wifi_dpp_failure_timeout" msgid="5228320772245820458">"ଡିଭାଇସ୍ ପ୍ଲଗ୍‍ ଇନ୍, ଚାର୍ଜ, ଏବଂ ଚାଲୁ ରହିଥିବା ସୁନିଶ୍ଚିତ ହୁଅନ୍ତୁ"</string>
+    <string name="wifi_dpp_failure_generic" msgid="8030831192606098356">"ଡିଭାଇସ୍ ପ୍ଲଗ୍‍ ଇନ୍, ଚାର୍ଜ, ଏବଂ ଚାଲୁ ରହିଥିବା ସୁନିଶ୍ଚିତ ହୁଅନ୍ତୁ। ଯଦି ସମସ୍ୟା ଜାରି ରୁହେ, ଡିଭାଇସ୍‍ର ନିର୍ମାତାଙ୍କୁ ଯୋଗାଯୋଗ କରନ୍ତୁ"</string>
+    <string name="wifi_dpp_failure_not_supported" msgid="2643768115109632725">"ଏହି ଡିଭାଇସ୍‍‍ରେ “<xliff:g id="SSID">%1$s</xliff:g>” ଯୋଗ କରିବା ସମର୍ଥିତ ନୁହେଁ"</string>
+    <string name="wifi_dpp_check_connection_try_again" msgid="2632966336733361805">"ସଂଯୋଗ ଯାଞ୍ଚ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ"</string>
     <string name="wifi_dpp_choose_network" msgid="7139308800110200281">"ନେଟ୍‌ୱର୍କ ବାଛନ୍ତୁ"</string>
     <string name="wifi_dpp_choose_network_to_connect_device" msgid="4025269026652486605">"ଆପଣଙ୍କ ଡିଭାଇସ୍‍ ସହ ସଂଯୋଗ କରିବାକୁ, ଏକ ନେ‍ଟ୍‍ୱର୍କ ବାଛନ୍ତୁ"</string>
     <string name="wifi_dpp_add_device_to_wifi" msgid="5459084866460319042">"“<xliff:g id="SSID">%1$s</xliff:g>”କୁ ଏହି ଡିିିିଭାଇସ୍‍ ଯୋଗ କରିିିବେ?"</string>
@@ -950,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"ଭିନ୍ନ ନେଟ୍‍ୱର୍କ ବାଛନ୍ତୁ"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"ଡିଭାଇସ୍‍କୁ ଯୋଗ କରାଯାଇପାରିଲା ନାହିଁ"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"ଡିଭାଇସ୍‍ ମିଳିଲା"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"ଏହି ଡିଭାଇସ୍ ସହ ୱାଇ-ଫାଇ ସେୟାର୍ କରାଯାଉଛି…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"ସଂଯୋଗ କରୁଛି…"</string>
     <string name="retry" msgid="6472609612090877557">"ପୁନଃଚେଷ୍ଟା କରନ୍ତୁ"</string>
     <string name="wifi_shared" msgid="844142443226926070">"ଅନ୍ୟାନ୍ୟ ଡିଭାଇସ୍‌ ଉପଯୋଗକର୍ତ୍ତାଙ୍କ ସହ ଶେୟାର୍‌ କରନ୍ତୁ"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(ଅପରିବର୍ତ୍ତିତ)"</string>
@@ -1077,11 +1065,6 @@
     <item msgid="7715869266611010880">"ମୋବାଇଲ୍‌"</item>
     <item msgid="2838022395783120596">"କେବଳ ୱାଇ-ଫାଇ"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"୧"</item>
-    <item msgid="3194458950573886239">"୦"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"ମନପସନ୍ଦର ୱାଇ-ଫାଇ"</item>
     <item msgid="5074515506087318555">"ପସନ୍ଦର ମୋବାଇଲ୍‌"</item>
@@ -1090,12 +1073,7 @@
     <item msgid="6132150507201243768">"ୱାଇ-ଫାଇ"</item>
     <item msgid="1118703915148755405">"ମୋବାଇଲ୍"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"୨"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
-    <!-- no translation found for wifi_calling_off_explanation (564780186974911501) -->
-    <skip />
+    <string name="wifi_calling_off_explanation" msgid="564780186974911501">"ୱାଇ-ଫାଇ କଲିଂ ଚାଲୁ ଥିବା ବେଳେ, ଆପଣଙ୍କ ଫୋନ୍ ଆପଣଙ୍କ ପସନ୍ଦ ଉପରେ ନିର୍ଭର କରି ତଥା ୱାଇ-ଫାଇ ନେଟ୍‍ୱର୍କ କିମ୍ବା ଆପଣଙ୍କ ବାହକର ନେଟ୍‍ୱର୍କ ମଧ୍ୟରେ ଦୃଢ଼ ଥିବା ସିଗ୍‍ନାଲ୍ ମାଧ୍ୟମରେ କଲ୍‌ଗୁଡ଼ିକ ରୁଟ୍ କରିପାରେ। ଏହି ବୈଶିଷ୍ଟ୍ୟ ଚାଲୁ କରିବା ପୂର୍ବରୁ, ଶୁଳ୍କ ତଥା ଅନ୍ୟାନ୍ୟ ବିବରଣୀ ପାଇଁ ଆପଣଙ୍କ ବାହକଙ୍କ ସହ ସମ୍ପର୍କ କରନ୍ତୁ।<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"ଜରୁରୀକାଳୀନ ଠିକଣା"</string>
     <string name="emergency_address_summary" msgid="7751971156196115129">"ୱାଇ-ଫାଇ ମାଧ୍ୟମରେ ଆପଣ କୌଣସି ଆପାତକାଳୀନ କଲ୍‌ କରିବା ବେଳେ ଆପଣଙ୍କ ଲୋକେଶନ୍‌ ରୂପେ ବ୍ୟବହୃତ ହୋଇଥାଏ"</string>
@@ -2065,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 ମିନିଟ୍"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"ପଢ଼ିବାର ସମୟ"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"ପଦକ୍ଷେପ ନେବାର ସମୟ"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"ଆପଣ ପଢ଼ିବା ପାଇଁ କେତେ ସମୟ ମେସେଜ୍ ଦେଖାଯିବ ବାଛନ୍ତୁ, କିନ୍ତୁ ଦୃଶ୍ୟଲବ୍ଧ ଅସ୍ଥାୟୀ ଅଟେ।\n\nସମସ୍ତ ଆପ୍ ଏହି ସେଟିଂ ସମର୍ଥନ କରେ ନାହିଁ।"</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"ଯେଉଁ ମେସେଜ୍‍ ଆପଣଙ୍କୁ ପଦକ୍ଷେପ ନେବା ପାଇଁ କହେ, କିନ୍ତୁ ଅସ୍ଥାୟୀ ରୂପେ ଦେଖାଯାଏ, ତାହା କେତେ ସମୟ ଦେଖାଯିବ, ତାହା ବାଛନ୍ତୁ।\n\nସମସ୍ତ ଆପ୍‍ ଏହି ସେଟିଂସ୍‍କୁ ସମର୍ଥନ କରେନାହିଁ।"</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"ସ୍ପର୍ଶକରି ଦବାଇ ରଖିବାରେ ବିଳମ୍ୱ"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"ରଙ୍ଗର ବିପରୀତକରଣ"</string>
@@ -3017,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"ବ୍ଲୁ-ଟୂଥ୍‍‌, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"ବ୍ଲୁ-ଟୂଥ୍‍‌"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"ଆପ୍‌ ଓ ବିଜ୍ଞପ୍ତି"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"ଅନୁମତି, ଡିଫଲ୍ଟ ଆପ୍‌"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"ୱାର୍କ ପ୍ରୋଫାଇଲ୍‍ରେ ଆପ୍‍ସ ପାଇଁ ବିଜ୍ଞପ୍ତି ଆକ୍ସେସ ଉପଲବ୍ଧ ନାହିଁ."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"ଆକାଉଣ୍ଟ"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"କୌଣସି ଆକାଉଣ୍ଟ ଯୋଡ଼ାଯାଇନାହିଁ"</string>
@@ -3080,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"ଆମ୍ବିଏଣ୍ଟ ଡିସ୍‌ପ୍ଲେ, ଲକ୍ ସ୍କ୍ରୀନ୍ ଡିସ୍‌ପ୍ଲେ"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ସ୍କ୍ରିନ୍ ବିଜ୍ଞପ୍ତିକୁ ଲକ୍ କରନ୍ତୁ"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"ଫେସ୍‌"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"ଆଙ୍ଗୁଠି ଚିହ୍ନ"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"କମ୍ ଆଲୋକ ଥିବା ସ୍କ୍ରୀନ୍, ଟଚ୍‍ସ୍କ୍ରୀନ୍, ବ୍ୟାଟେରୀ, ସ୍ମାର୍ଟ ଉଜ୍ଵଳତା, ଡାଇନାମିକ୍ ଉଜ୍ଵଳତା"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"କମ୍‌ ଆଲୋକ ଥିବା ସ୍କ୍ରିନ୍‌, ସ୍ଲିପ୍‍ ମୋଡ୍‍‍, ବ୍ୟାଟେରୀ, ସମୟ ସମାପ୍ତି, ଧ୍ୟାନଦିଅନ୍ତୁ, ଡିସ୍‌ପ୍ଲେ, ସ୍କ୍ରିନ୍‌, ନିଷ୍କ୍ରିୟତା"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"ରୋଟେଟ୍, ଫ୍ଲିପ୍, ରୋଟେଶନ୍, ପୋର୍ଟେଟ୍, ଲ୍ୟାଣ୍ଡସ୍କେପ୍, ଓରିଏଣ୍ଟେଶନ୍, ଭର୍ଟିକଲ୍, ହୋରିଜୋଣ୍ଟାଲ୍"</string>
@@ -3113,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"ରିଙ୍ଗର୍‌, ସାଇଲେଣ୍ଟକୁ ସେଟ୍‌ କରାଯାଇଛି"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"ରିଙ୍ଗ ଭଲ୍ୟୁମ 80% ରେ ଅଛି"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"ମିଡିଆ ଭଲ୍ୟୁମ୍‌"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"କଲ୍‍ ଭଲ୍ୟୁମ୍‍"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"ଆଲାର୍ମର ଭଲ୍ୟୁମ୍‌"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"ରିଙ୍ଗ ଭଲ୍ୟୁମ୍‌"</string>
@@ -3278,12 +3259,9 @@
     <string name="hide_silent_icons_summary" msgid="7479863645940885952">"ନୀରବ ବାରରେ ନୀରବ ବିଜ୍ଞପ୍ତିର ଆଇକନ୍ ଲୁଚାନ୍ତୁ"</string>
     <string name="notification_badging_title" msgid="5938709971403474078">"ବିଜ୍ଞପ୍ତି ଡଟସ୍‌ ପାଇଁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
     <string name="notification_bubbles_title" msgid="4750896810493858296">"ବିଜ୍ଞପ୍ତି ବବଲ୍ ପାଇଁ ଅନୁମତି କରନ୍ତୁ"</string>
-    <!-- no translation found for swipe_direction_title (6877543492435053137) -->
-    <skip />
-    <!-- no translation found for swipe_direction_ltr (3623394320915041215) -->
-    <skip />
-    <!-- no translation found for swipe_direction_rtl (4972099509548044938) -->
-    <skip />
+    <string name="swipe_direction_title" msgid="6877543492435053137">"ସ୍ୱାଇପ୍ କାର୍ଯ୍ୟ"</string>
+    <string name="swipe_direction_ltr" msgid="3623394320915041215">"ଖାରଜ କରିବାକୁ ଡାହାଣକୁ, ମେନୁ ଦେଖାଇବାକୁ ବାମକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ"</string>
+    <string name="swipe_direction_rtl" msgid="4972099509548044938">"ଖାରଜ କରିବାକୁ ବାମକୁ, ମେନୁ ଦେଖାଇବାକୁ ଡାହାଣକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"ଆଲୋକକୁ ଧପଧପ କର"</string>
     <string name="lock_screen_notifications_title" msgid="2583595963286467672">"ଲକ୍ ସ୍କ୍ରୀନ୍ ଉପରେ"</string>
     <string name="locked_work_profile_notification_title" msgid="8327882003361551992">"କାର୍ଯ୍ୟ ପ୍ରୋଫାଇଲ୍ ଲକ୍ ଥିବା ବେଳେ"</string>
@@ -3608,8 +3586,7 @@
     <string name="advanced_apps" msgid="4812975097124803873">"ଉନ୍ନତ"</string>
     <string name="configure_apps" msgid="6685680790825882528">"ଆପ୍‌ଗୁଡ଼ିକୁ କନ୍‌ଫିଗର୍‌ କରନ୍ତୁ"</string>
     <string name="unknown_app" msgid="5275921288718717656">"ଅଜଣା ଆପ୍"</string>
-    <!-- no translation found for app_permissions (5584182129908141622) -->
-    <skip />
+    <string name="app_permissions" msgid="5584182129908141622">"ଅନୁମତି ପରିଚାଳକ"</string>
     <string name="app_permissions_summary" msgid="5163974162150406324">"<xliff:g id="APPS">%1$s</xliff:g> ବ୍ୟବହାର କରୁଥିବା ଆପ୍"</string>
     <string name="tap_to_wake" msgid="7211944147196888807">"ଜାଗ୍ରତ କରିବାକୁ ଟାପ୍‌ କରନ୍ତୁ"</string>
     <string name="tap_to_wake_summary" msgid="4341387904987585616">"ଡିଭାଇସ୍‌କୁ ଜାଗ୍ରତ କରିବା ପାଇଁ ସ୍କ୍ରୀନ୍‌ର ଯେକୌଣସି ସ୍ଥାନରେ ଟାପ୍‌ କରନ୍ତୁ"</string>
@@ -4237,10 +4214,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"’ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ’ ଅପଡେଟ୍ କରନ୍ତୁ"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"ଫୋକସ୍ ରହିବା ପାଇଁ ବିଜ୍ଞପ୍ତି ବିରତି କରନ୍ତୁ"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"ଏହି ଡିଭାଇସ୍‌ରେ ଏହି ବୈଶିଷ୍ଟ୍ୟ ଉପଲବ୍ଧ ନୁହେଁ"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"ଏହି ବୈଶିଷ୍ଟ୍ୟ ଉପଲବ୍ଧ ନାହିଁ"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"ଏହା ଏହି ଫୋନ୍‍କୁ ମନ୍ଥର କରିଦେବ"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"ପୂର୍ଣ୍ଣ GNSS ପରିମାପ ବାଧ୍ୟ କରନ୍ତୁ"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ଉପଯୋଗିତା ଅନୁପାତ ନଥିବା ସମସ୍ତ GNSS ଉପଗ୍ରହ ସମଷ୍ଟି ଓ ଫ୍ରିକ୍ୱେନ୍ସୀକୁ ଟ୍ରାକ୍‌ କରନ୍ତୁ"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"ପୃଷ୍ଠଭୂମି ଗତିବିଧି ଆରମ୍ଭ ହେବାକୁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
@@ -4404,8 +4379,7 @@
     <string name="network_connection_timeout_dialog_ok" msgid="8924405960181020156">"ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ"</string>
     <string name="network_connection_errorstate_dialog_message" msgid="6953778550775646710">"କିଛି ଗୋଟିଏ ବାହାରିଛି ଏକ ଡିଭାଇସ୍‍କୁ ବାଛିବାକୁ, ଆପ୍ଲିକେସନ୍‌ ଅନୁରୋଧ ବାତିଲ୍‌ କରିଛି।"</string>
     <string name="network_connection_connect_successful" msgid="5935510954474494928">"ସଫଳତାର ସହ ସଂଯୋଗ ହୋଇଛି"</string>
-    <!-- no translation found for network_connection_request_dialog_showall (6938922880244567521) -->
-    <skip />
+    <string name="network_connection_request_dialog_showall" msgid="6938922880244567521">"ସମସ୍ତ ଦେଖାନ୍ତୁ"</string>
     <plurals name="show_bluetooth_devices" formatted="false" msgid="1715020480026568408">
       <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> ଡିଭାଇସ୍‍ଗୁଡ଼ିକ ସଂଯୋଗ ହୋଇଛି</item>
       <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> ଟି ଡିଭାଇସ୍‍ ସଂଯୋଗ ହୋଇଛି</item>
@@ -4433,8 +4407,7 @@
     <string name="search_bar_account_avatar_content_description" msgid="4718261366290530792"></string>
     <string name="permission_bar_chart_empty_text" msgid="4380731551728553852">"0 ଆପ୍ ଅନୁମତିର ଉପଯୋଗ କରିନାହାନ୍ତି"</string>
     <string name="permission_bar_chart_title" msgid="7748942699610196566">"ଗତ 24 ଘଣ୍ଟାରେ ଅଧିକ ବ୍ୟବହୃତ ହୋଇଥିବା ଅନୁମତି"</string>
-    <!-- no translation found for permission_bar_chart_details (5648719432839246667) -->
-    <skip />
+    <string name="permission_bar_chart_details" msgid="5648719432839246667">"ଅନୁମତି ଡ୍ୟାସ୍‍‍ବୋର୍ଡ ଦେଖନ୍ତୁ"</string>
     <string name="accessibility_usage_title" msgid="5136753034714150614">"ଆକ୍ସେସିବିଲିଟୀ ବ୍ୟବହାର"</string>
     <plurals name="accessibility_usage_summary" formatted="false" msgid="4364945481915750314">
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g>ଟି ସେବାର ଆପଣଙ୍କର ଡିଭାଇସ୍‌କୁ ସମ୍ପୂର୍ଣ୍ଣ ଆକ୍ସେସ୍‌ ଅଛି</item>
@@ -4442,11 +4415,12 @@
     </plurals>
     <string name="manage_app_notification" msgid="877012013856561440">"<xliff:g id="APP_NAME">%1$s</xliff:g>ବିଜ୍ଞପ୍ତି ପରିଚାଳନା କରନ୍ତୁ"</string>
     <string name="no_suggested_app" msgid="5722034393216359231">"କୌଣସି ପ୍ରସ୍ତାବିତ ଆପ୍ଲିକେସନ୍ ନାହିଁ"</string>
-    <!-- no translation found for notification_few_channel_count_summary (1090888820158822106) -->
-    <!-- no translation found for notification_many_channel_count_summary (8647409434789898073) -->
-    <skip />
+    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="1090888820158822106">
+      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g>ଟି ବିଜ୍ଞପ୍ତି ଚ୍ୟାନେଲ୍।</item>
+      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g>ଟି ବିଜ୍ଞପ୍ତି ଚ୍ୟାନେଲ୍।</item>
+    </plurals>
+    <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>ଟି ବିଜ୍ଞପ୍ତି ଚ୍ୟାନେଲ୍। ସବୁ ପରିଚାଳନା କରିବାକୁ ଟାପ୍ କରନ୍ତୁ।"</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"ଆଉଟ୍‌ପୁଟ୍ ସ୍ବିଚ୍ କରନ୍ତୁ"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"ବର୍ତ୍ତମାନ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>ରେ ଚାଲୁଛି"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ଏହି ପ୍ରଦାନକାରୀଙ୍କ ସହ ଆପଣଙ୍କର ସଦସ୍ୟତା ବାତିଲ୍ ହୋଇଯାଇପାରେ। ସଦସ୍ୟତା ପୁନରାବୃତ୍ତି ବାତିଲ୍ ହେବ ନାହିଁ। ଅଧିକ ସୂଚନା ପାଇଁ, ଆପଣଙ୍କର ପ୍ରଦାନକାରୀଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।"</string>
 </resources>
diff --git a/res/values-pa/arrays.xml b/res/values-pa/arrays.xml
index d8b99ac..e9c53f2 100644
--- a/res/values-pa/arrays.xml
+++ b/res/values-pa/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"ਗਲੋਬਲ"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index b1f48fe..0a93d01 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"ਵੱਖਰਾ ਨੈੱਟਵਰਕ ਚੁਣੋ"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"ਡੀਵਾਈਸ ਨੂੰ ਸ਼ਾਮਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"ਡੀਵਾਈਸ ਮਿਲਿਆ"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"ਇਸ ਡੀਵਾਈਸ ਨਾਲ ਵਾਈ-ਫਾਈ ਸਾਂਝਾ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"ਕਨੈਕਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
     <string name="retry" msgid="6472609612090877557">"ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ"</string>
     <string name="wifi_shared" msgid="844142443226926070">"ਹੋਰ ਡੀਵਾਈਸ ਵਰਤੋਂਕਾਰਾਂ ਨਾਲ ਸਾਂਝਾ ਕਰੋ"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(ਬਿਨਾਂ ਬਦਲਿਆ)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"ਮੋਬਾਈਲ"</item>
     <item msgid="2838022395783120596">"ਸਿਰਫ਼ ਵਾਈ-ਫਾਈ"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"ਵਾਈ-ਫਾਈ ਤਰਜੀਹੀ"</item>
     <item msgid="5074515506087318555">"ਮੋਬਾਈਲ ਨੂੰ ਤਰਜੀਹ ਹੈ"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"ਵਾਈ-ਫਾਈ"</item>
     <item msgid="1118703915148755405">"ਮੋਬਾਈਲ"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"ਜਦੋਂ ਵਾਈ-ਫਾਈ ਕਾਲਿੰਗ ਚਾਲੂ ਹੁੰਦੀ ਹੈ, ਤਾਂ ਤੁਹਾਡਾ ਫ਼ੋਨ ਤੁਹਾਡੀ ਤਰਜੀਹ ਅਤੇ ਕਿਹੜਾ ਸਿਗਨਲ ਵੱਧ ਮਜ਼ਬੂਤ ਹੈ, ਦੇ ਆਧਾਰ \'ਤੇ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕਾਂ ਜਾਂ ਤੁਹਾਡੇ ਕੈਰੀਅਰ ਦੇ ਨੈੱਟਵਰਕ ਰਾਹੀਂ ਕਾਲਾਂ ਰੂਟ ਕਰ ਸਕਦਾ ਹੈ। ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਚਾਲੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ, ਫੀਸ ਅਤੇ ਹੋਰ ਵੇਰਵਿਆਂ ਲਈ ਆਪਣੇ ਕੈਰੀਅਰ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"ਸੰਕਟਕਾਲੀਨ ਪਤਾ"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 ਮਿੰਟ"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"ਪੜ੍ਹਨ ਦਾ ਸਮਾਂ"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"ਕਾਰਵਾਈ ਕਰਨ ਦਾ ਸਮਾਂ"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"ਤੁਹਾਡੇ ਪੜ੍ਹਣ ਲਈ ਲੋੜੀਂਦੇ ਸੁਨੇਹਿਆਂ ਨੂੰ ਦਿਖਾਉਣ ਦਾ ਸਮਾਂ ਚੁਣੋ, ਜੋ ਕਿ ਸਿਰਫ਼ ਅਸਥਾਈ ਤੌਰ \'ਤੇ ਦਿਸਦੇ ਹਨ।\n\nਇਸ ਸੈਟਿੰਗ ਦਾ ਸਾਰੀਆਂ ਐਪਾਂ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੀਆਂ ਹਨ।"</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"ਚੁਣੋ ਕਿ ਤੁਹਾਨੂੰ ਕਾਰਵਾਈ ਕਰਨ ਲਈ ਕਹਿਣ ਵਾਲੇ ਸੁਨੇਹਿਆਂ ਨੂੰ ਕਿੰਨੀ ਦੇਰ ਤੱਕ ਦਿਖਾਉਣਾ ਹੈ, ਜੋ ਕਿ ਸਿਰਫ਼ ਅਸਥਾਈ ਤੌਰ \'ਤੇ ਦਿਖਾਈ ਦਿੰਦੇ ਹਨ।\n\nਇਸ ਸੈਟਿੰਗ ਦਾ ਸਾਰੀਆਂ ਐਪਾਂ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੀਆਂ ਹਨ।"</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"ਸਪੱਰਸ਼ ਕਰਕੇ ਰੱਖਣ ਵਿੱਚ ਦੇਰੀ"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"ਰੰਗ ਦੀ ਉਲਟੀ ਤਰਤੀਬ"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"ਬਲੂਟੁੱਥ, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"ਬਲੂਟੁੱਥ"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"ਐਪਾਂ ਅਤੇ ਸੂਚਨਾਵਾਂ"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"ਇਜਾਜ਼ਤਾਂ, ਪੂਰਵ-ਨਿਰਧਾਰਤ ਐਪਾਂ"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਵਿੱਚ ਐਪਾਂ ਲਈ ਸੂਚਨਾ ਪਹੁੰਚ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।"</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"ਖਾਤੇ"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"ਕੋਈ ਖਾਤੇ ਸ਼ਾਮਲ ਨਹੀਂ ਕੀਤੇ ਗਏ"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"ਤੱਕਣੀਯੋਗ ਡਿਸਪਲੇ, ਲਾਕ ਸਕ੍ਰੀਨ ਡਿਸਪਲੇ"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ਲਾਕ ਸਕ੍ਰੀਨ ਸੂਚਨਾ"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"ਚਿਹਰਾ"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"ਫਿੰਗਰਪ੍ਰਿੰਟ"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ਡਿਮ ਸਕ੍ਰੀਨ, ਟੱਚਸਕ੍ਰੀਨ, ਬੈਟਰੀ, ਸਮਾਰਟ ਚਮਕ, ਗਤੀਸ਼ੀਲ ਚਮਕ"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"ਮੱਧਮ ਸਕ੍ਰੀਨ, ਸਲੀਪ, ਬੈਟਰੀ, ਸਮਾਂ ਸਮਾਪਤ, ਇਕਾਗਰਤਾ, ਡਿਸਪਲੇ, ਸਕ੍ਰੀਨ, ਅਸਰਗਰਮੀ"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"ਘੁੰਮਾਓ, ਫਲਿੱਪ, ਘੁਮਾਅ, ਪੋਰਟਰੇਟ, ਲੈਂਡਸਕੇਪ, ਦਿਸ਼ਾਮਾਨ, ਖੜ੍ਹਵਾਂ, ਲੇਟਵਾਂ"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"ਰਿੰਗਰ ਸ਼ਾਂਤ \'ਤੇ ਸੈੱਟ ਹੈ"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"ਰਿੰਗ ਦੀ ਅਵਾਜ਼ 80% ਹੈ"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"ਮੀਡੀਆ ਦੀ ਅਵਾਜ਼"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"ਕਾਲ ਦੀ ਅਵਾਜ਼"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"ਅਲਾਰਮ ਦੀ ਅਵਾਜ਼"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"ਰਿੰਗ ਦੀ ਅਵਾਜ਼"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"\'ਪਰੇਸ਼ਾਨ ਨਾ ਕਰੋ\' ਨੂੰ ਅੱਪਡੇਟ ਕਰੋ"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"ਧਿਆਨ ਕੇਂਦਰਿਤ ਰੱਖਣ ਲਈ ਸੂਚਨਾਵਾਂ ਰੋਕੋ"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"ਇਸ ਨਾਲ ਇਸ ਫ਼ੋਨ ਦੀ ਗਤੀ ਧੀਮੀ ਹੋਵੇਗੀ"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"ਪੂਰੇ GNSS ਮਾਪ ਜ਼ਬਰਦਰਸਤੀ ਲਾਗੂ ਕਰੋ"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ਡਿਊਟੀ ਸਾਈਕਲਿੰਗ ਤੋਂ ਬਿਨਾਂ ਸਾਰੇ GNSS ਉਪਗ੍ਰਹਿ ਗਰੁੱਪਾਂ ਅਤੇ ਵਾਰਵਾਰਤਾਵਾਂ ਨੂੰ ਟਰੈਕ ਕਰੋ"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"ਬੈਕਗ੍ਰਾਊਂਡ ਸਰਗਰਮੀ ਸ਼ੁਰੂ ਕਰਨ ਦਿਓ"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ਸੂਚਨਾ ਚੈਨਲ। ਸਭ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ।"</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"ਆਊਟਪੁੱਟ ਬਦਲੋ"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"ਫਿਲਹਾਲ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> \'ਤੇ ਚੱਲ ਰਿਹਾ ਹੈ"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ਸ਼ਾਇਦ ਇਸ ਪ੍ਰਦਾਨਕ ਨਾਲ ਤੁਹਾਡੀ ਗਾਹਕੀ ਰੱਦ ਕੀਤੀ ਜਾਵੇ। ਆਵਰਤੀ ਗਾਹਕੀਆਂ ਨੂੰ ਰੱਦ ਨਹੀਂ ਕੀਤਾ ਜਾਵੇਗਾ। ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ, ਆਪਣੇ ਪ੍ਰਦਾਨਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।"</string>
 </resources>
diff --git a/res/values-pl/arrays.xml b/res/values-pl/arrays.xml
index 13fec2a..79ab2c1 100644
--- a/res/values-pl/arrays.xml
+++ b/res/values-pl/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Globalny"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 954a6cc..e162b70 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -1099,11 +1099,6 @@
     <item msgid="7715869266611010880">"Komórkowe"</item>
     <item msgid="2838022395783120596">"Tylko Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Preferuj Wi-Fi"</item>
     <item msgid="5074515506087318555">"Preferowane komórkowe"</item>
@@ -1112,10 +1107,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Komórkowe"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Po włączeniu opcji Połączenia przez Wi-Fi telefon może kierować połączenia przez sieci Wi-lub sieć operatora w zależności od ustawień i siły sygnału. Zanim włączysz tę funkcję, sprawdź, jakie opłaty pobiera operator, i zapoznaj się z innymi warunkami usługi.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Adres alarmowy"</string>
@@ -2092,8 +2083,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minuty"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Czas na czytanie"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Czas na wykonanie czynności"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Określ, jak długo mają być wyświetlane wiadomości wymagające przeczytania, które są widoczne tylko tymczasowo.\n\nNie wszystkie aplikacje obsługują to ustawienie."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Określ, jak długo mają być wyświetlane wiadomości wymagające wykonania jakiejś czynności, które są widoczne tylko tymczasowo.\n\nNie wszystkie aplikacje obsługują to ustawienie."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Czas dotknięcia i przytrzymania"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Odwrócenie kolorów"</string>
@@ -3084,7 +3074,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplikacje i powiadomienia"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Uprawnienia, aplikacje domyślne"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Aplikacje w profilu do pracy nie mają dostępu do powiadomień."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Konta"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nie dodano kont"</string>
@@ -3147,7 +3138,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ekran dostosowany do otoczenia, ekran blokady"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"powiadomienie na ekranie blokady"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"twarz"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"odcisk palca"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"przyciemnianie ekranu, ekran dotykowy, bateria, inteligentne dostosowanie jasności, dynamiczna jasność"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"przyciemniony ekran, uśpienie, bateria, wygaszanie, uwaga, wyświetlacz, ekran, brak aktywności"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"obrót, odwrócenie, rotacja, pionowo, poziomo, orientacja, pionowa, pozioma"</string>
@@ -3180,6 +3172,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Dzwonek wyciszony"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Głośność dzwonka to 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Głośność multimediów"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Głośność połączenia"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Głośność alarmu"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Głośność dzwonka"</string>
@@ -4584,6 +4578,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"Liczba kanałów powiadomień: <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Kliknij, by zarządzać wszystkimi."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Przełącz urządzenie wyjściowe"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Aktualnie odtwarzane na urządzeniu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Twoja subskrypcja u tego dostawcy może być anulowana. Subskrypcje cykliczne nie zostaną anulowane. Więcej informacji można uzyskać u dostawcy."</string>
 </resources>
diff --git a/res/values-pt-rBR/arrays.xml b/res/values-pt-rBR/arrays.xml
index af856ad..e1bec41 100644
--- a/res/values-pt-rBR/arrays.xml
+++ b/res/values-pt-rBR/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"R-UIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Global"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 43f3296..7bc336e 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -1065,11 +1065,6 @@
     <item msgid="7715869266611010880">"Celular"</item>
     <item msgid="2838022395783120596">"Somente Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi preferido"</item>
     <item msgid="5074515506087318555">"Preferência pela rede móvel"</item>
@@ -1078,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Celular"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Quando a \"chamada no Wi-Fi\" estiver ativada, seu smartphone poderá encaminhar chamadas por redes Wi-Fi ou pela rede da sua operadora, dependendo da sua preferência e de qual sinal estiver mais forte. Antes de ativar esse recurso, verifique as taxas e outros detalhes com sua operadora.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Endereço de emergência"</string>
@@ -2052,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minutos"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tempo para ler"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tempo para agir"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Escolha por quanto tempo serão mostradas mensagens que você precisa ler, mas que ficam visíveis apenas temporariamente.\n\nNem todos os apps são compatíveis com essa configuração."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Escolha por quanto tempo serão mostradas mensagens que exigem uma ação sua, mas que ficam visíveis apenas temporariamente.\n\nNem todos os apps são compatíveis com essa configuração."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Atraso ao tocar e pressionar"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inversão de cores"</string>
@@ -3004,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps e notificações"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Permissões, apps padrão"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"O acesso às notificações não está disponível para apps no perfil de trabalho."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Contas"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nenhuma conta adicionada"</string>
@@ -3067,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Exibição ambiente, exibição de tela de bloqueio"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notificação na tela de bloqueio"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"rosto"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"impressão digital"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"escurecer tela, touchscreen, bateria, brilho inteligente, brilho dinâmico"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"escurecer tela, suspensão bateria, tempo limite, atenção, display, tela, inatividade"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"girar, virar, rotação, retrato, paisagem, orientação, vertical, horizontal"</string>
@@ -3100,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Campainha silenciada"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Volume do toque em 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Volume de mídia"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Volume de chamadas"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Volume do alarme"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volume do toque"</string>
@@ -4424,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canais de notificação. Toque para gerenciar todos."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Alterar saída"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Tocando atualmente no <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Sua assinatura desse provedor pode ser cancelada. Assinaturas recorrentes não serão canceladas. Para mais informações, entre em contato com seu provedor."</string>
 </resources>
diff --git a/res/values-pt-rPT/arrays.xml b/res/values-pt-rPT/arrays.xml
index fc2b29e..5e9616c 100644
--- a/res/values-pt-rPT/arrays.xml
+++ b/res/values-pt-rPT/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Global"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 6694597..9daecac 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -1065,11 +1065,6 @@
     <item msgid="7715869266611010880">"Rede móvel"</item>
     <item msgid="2838022395783120596">"Apenas Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Rede Wi-Fi preferida"</item>
     <item msgid="5074515506087318555">"Preferência pela rede móvel"</item>
@@ -1078,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Rede móvel"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Se as chamadas Wi-Fi estiverem ativadas, o telemóvel pode encaminhar as chamadas através de redes Wi-Fi ou da rede do seu operador, consoante as suas preferências e do sinal que for mais forte. Antes de ativar esta funcionalidade, verifique junto do seu operador questões como tarifas, entre outras.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Endereço de emergência"</string>
@@ -2052,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minutos"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tempo para ler"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tempo para tomar medidas"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Escolha o tempo durante o qual pretende mostrar mensagens que precisa de ler, mas que são visíveis apenas temporariamente.\n\nNem todas as aplicações são compatíveis com esta definição."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Escolha o tempo durante o qual pretende mostrar mensagens que lhe solicitam que tome medidas, mas que são visíveis apenas temporariamente.\n\nNem todas as aplicações são compatíveis com esta definição."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Atraso ao manter premida a tecla"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inversão de cores"</string>
@@ -3004,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps e notificações"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Autorizações, aplicações predefinidas"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"O acesso às notificações não está disponível para aplicações no perfil de trabalho."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Contas"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nenhuma conta adicionada."</string>
@@ -3067,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Visualização de ambiente, visualização de ecrã de bloqueio"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notificação no ecrã de bloqueio"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"rosto"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"impressão digital"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"escurecer ecrã, ecrã tátil, bateria, brilho inteligente, brilho dinâmico"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"escurecer ecrã, suspensão, bateria, tempo limite, atenção, visualização, ecrã, inatividade"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"rodar, inverter, rotação, retrato, paisagem, orientação, vertical, horizontal"</string>
@@ -3100,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Campainha definida como silenciosa"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Volume do toque a 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Volume de multimédia"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Volume das chamadas"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Volume do alarme"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volume do toque"</string>
@@ -4424,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canais de notificações. Toque para gerir tudo."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Saída do interruptor"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"A reproduzir atualmente no dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>…"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"A sua subscrição deste fornecedor pode ser cancelada. As subscrições recorrentes não serão canceladas. Para obter mais informações, consulte o seu fornecedor."</string>
 </resources>
diff --git a/res/values-pt/arrays.xml b/res/values-pt/arrays.xml
index af856ad..e1bec41 100644
--- a/res/values-pt/arrays.xml
+++ b/res/values-pt/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"R-UIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Global"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 43f3296..7bc336e 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -1065,11 +1065,6 @@
     <item msgid="7715869266611010880">"Celular"</item>
     <item msgid="2838022395783120596">"Somente Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi preferido"</item>
     <item msgid="5074515506087318555">"Preferência pela rede móvel"</item>
@@ -1078,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Celular"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Quando a \"chamada no Wi-Fi\" estiver ativada, seu smartphone poderá encaminhar chamadas por redes Wi-Fi ou pela rede da sua operadora, dependendo da sua preferência e de qual sinal estiver mais forte. Antes de ativar esse recurso, verifique as taxas e outros detalhes com sua operadora.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Endereço de emergência"</string>
@@ -2052,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minutos"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tempo para ler"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tempo para agir"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Escolha por quanto tempo serão mostradas mensagens que você precisa ler, mas que ficam visíveis apenas temporariamente.\n\nNem todos os apps são compatíveis com essa configuração."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Escolha por quanto tempo serão mostradas mensagens que exigem uma ação sua, mas que ficam visíveis apenas temporariamente.\n\nNem todos os apps são compatíveis com essa configuração."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Atraso ao tocar e pressionar"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inversão de cores"</string>
@@ -3004,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps e notificações"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Permissões, apps padrão"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"O acesso às notificações não está disponível para apps no perfil de trabalho."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Contas"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nenhuma conta adicionada"</string>
@@ -3067,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Exibição ambiente, exibição de tela de bloqueio"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notificação na tela de bloqueio"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"rosto"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"impressão digital"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"escurecer tela, touchscreen, bateria, brilho inteligente, brilho dinâmico"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"escurecer tela, suspensão bateria, tempo limite, atenção, display, tela, inatividade"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"girar, virar, rotação, retrato, paisagem, orientação, vertical, horizontal"</string>
@@ -3100,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Campainha silenciada"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Volume do toque em 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Volume de mídia"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Volume de chamadas"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Volume do alarme"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volume do toque"</string>
@@ -4424,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canais de notificação. Toque para gerenciar todos."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Alterar saída"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Tocando atualmente no <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Sua assinatura desse provedor pode ser cancelada. Assinaturas recorrentes não serão canceladas. Para mais informações, entre em contato com seu provedor."</string>
 </resources>
diff --git a/res/values-ro/arrays.xml b/res/values-ro/arrays.xml
index 66bc02d..bcbfdd3 100644
--- a/res/values-ro/arrays.xml
+++ b/res/values-ro/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Global"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index d951797..1e97dbe 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -956,10 +956,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Alegeți o altă rețea"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Nu s-a putut adăuga dispozitivul"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"S-a găsit un dispozitiv"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Se permite accesul la Wi-Fi pentru acest dispozitiv…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Se conectează…"</string>
     <string name="retry" msgid="6472609612090877557">"Încercați din nou"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Permiteți accesul și altor utilizatori ai dispozitivului"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(neschimbate)"</string>
@@ -1084,11 +1082,6 @@
     <item msgid="7715869266611010880">"Date mobile"</item>
     <item msgid="2838022395783120596">"Numai Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Se preferă conexiunea Wi-Fi"</item>
     <item msgid="5074515506087318555">"Se preferă datele mobile"</item>
@@ -1097,10 +1090,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Date mobile"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Când este activată Apelarea prin Wi-Fi, telefonul poate să redirecționeze apelurile prin rețelele Wi-Fi sau prin rețeaua operatorului, în funcție de preferință și de semnalul cu cea mai mare intensitate. Înainte să activați această funcție, consultați-vă operatorul în privința taxelor și altor detalii.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Adresă de urgență"</string>
@@ -2074,8 +2063,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minute"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Timp pentru citit"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Timp pentru a acționa"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Alegeți durata de afișare a mesajelor pe care trebuie să le citiți, dar care sunt vizibile numai temporar.\n\nNu toate aplicațiile permit această setare."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Alegeți durata de afișare a mesajelor care vă cer să acționați, dar care sunt vizibile numai temporar.\n\nNu toate aplicațiile permit această setare."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Întârziere la atingere lungă"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inversarea culorilor"</string>
@@ -3046,7 +3034,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplicații și notificări"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Permisiuni, aplicații prestabilite"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Accesul la notificări nu este disponibil pentru aplicații în profilul de lucru."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Conturi"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nu a fost adăugat niciun cont"</string>
@@ -3109,7 +3098,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Afișare ambient, Afișare ecran de blocare"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notificare ecran de blocare"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"chip"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"amprentă"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"reduceți luminozitatea ecranului, ecran tactil, luminozitate inteligentă, luminozitate dinamică"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"reduceți luminozitatea ecranului, inactivitate, baterie, timp limită, atenție, afișaj, ecran, lipsă de activitate"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"rotiți, comutați, rotire, portret, peisaj, orientare, vertical, orizontal"</string>
@@ -3142,6 +3132,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Soneria este setată pe silențios"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Volumul soneriei este la 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Volum media"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Volumul apelului"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Volum alarmă"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volum sonerie"</string>
@@ -4295,10 +4287,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Actualizați funcția Nu deranja"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Întrerupeți notificările pentru a vă păstra concentrarea"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Această caracteristică nu este disponibilă pe acest dispozitiv"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Această funcție nu este disponibilă"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Va încetini acest dispozitiv"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Forțați măsurători GNSS complete"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Urmăriți toate constelațiile și frecvențele GNSS fără ciclu de funcționare"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Permiteți ca activitățile să pornească în fundal"</string>
@@ -4508,6 +4498,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canale de notificare. Atingeți ca să le gestionați pe toate."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Schimbați rezultatul"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Se redă acum pe <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Este posibil ca abonamentul dvs. la acest furnizor să fie anulat. Abonamentele recurente nu vor fi anulate. Pentru mai multe informații, consultați furnizorul."</string>
 </resources>
diff --git a/res/values-ru/arrays.xml b/res/values-ru/arrays.xml
index 08acdda..2e5c067 100644
--- a/res/values-ru/arrays.xml
+++ b/res/values-ru/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Весь мир"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 2ab0a04..eb613e7 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -976,10 +976,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Выбрать другую сеть Wi-Fi"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Не удалось добавить устройство."</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Устройство найдено"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Предоставление доступа к сети Wi‑Fi…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Подключение…"</string>
     <string name="retry" msgid="6472609612090877557">"Повторить попытку"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Поделиться с другими пользователями устройства"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(без изменений)"</string>
@@ -1105,11 +1103,6 @@
     <item msgid="7715869266611010880">"Мобильный Интернет"</item>
     <item msgid="2838022395783120596">"Только Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Приоритет Wi-Fi"</item>
     <item msgid="5074515506087318555">"Приоритет мобильного Интернета"</item>
@@ -1118,11 +1111,7 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Мобильный Интернет"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
-    <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Когда функция \"Звонки по Wi-Fi\" включена, для исходящих вызовов может использоваться как Wi-Fi, так и мобильная сеть (в зависимости от ваших предпочтений и уровня сигнала). Прежде чем включать эту функцию, свяжитесь со своим оператором и уточните детали.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
+    <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Когда функция \"Звонки по Wi-Fi\" включена, для исходящих вызовов может использоваться как Wi-Fi, так и мобильная сеть (в зависимости от ваших предпочтений и уровня сигнала). Прежде чем включать эту функцию, свяжитесь со своим оператором и уточните стоимость и другие детали.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Адрес в чрезвычайных ситуациях"</string>
     <string name="emergency_address_summary" msgid="7751971156196115129">"Ваше местоположение при экстренном вызове по Wi‑Fi"</string>
@@ -2098,8 +2087,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 минуты"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Время на чтение"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Время на выполнение действия"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Укажите, сколько времени вам нужно на чтение автоматически исчезающих сообщений.\n\nЭта настройка поддерживается не во всех приложениях."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Укажите, сколько времени вам нужно на выполнение действий в автоматически исчезающих сообщениях.\n\nЭта настройка поддерживается не во всех приложениях."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Задержка при нажатии и удержании"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Инверсия цветов"</string>
@@ -3094,7 +3082,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Приложения и уведомления"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Разрешения, приложения по умолчанию"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Приложениям в рабочем профиле нельзя предоставить доступ к уведомлениям."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Аккаунты"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Аккаунтов нет"</string>
@@ -3157,7 +3146,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Автоматическое включение экрана, заблокированный экран"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"уведомление на заблокированном экране"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"лицо"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"отпечаток пальца"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"снижение яркости, сенсорный экран, батарея, умная яркость, динамическая яркость"</string>
     <!-- no translation found for keywords_display_adaptive_sleep (6865504720946121402) -->
     <skip />
@@ -3191,6 +3181,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Включен режим без звука"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Громкость звонка: 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Музыка, видео, игры"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Разговор"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Будильник"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Рингтон"</string>
@@ -4383,10 +4375,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Включите режим \"Не беспокоить\""</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Заблокируйте отвлекающие уведомления"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Функция недоступна на этом устройстве."</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Эта функция недоступна."</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Она замедляет работу телефона."</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Полное отслеживание измерений GNSS"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Отслеживать все выкладки и частоты GNSS без рабочего цикла"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Разрешить запуск компонентов в фоновом режиме"</string>
@@ -4596,6 +4586,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"Количество каналов уведомлений: <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Нажмите, чтобы перейти к настройкам всех каналов."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Смена устройства аудиовыхода"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Воспроизводится на устройстве \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Подписка на этот сервис может быть отменена. Постоянные платные подписки отменены не будут. Дополнительную информацию можно получить у поставщика услуг."</string>
 </resources>
diff --git a/res/values-si/arrays.xml b/res/values-si/arrays.xml
index 993c802..e3b0a4c 100644
--- a/res/values-si/arrays.xml
+++ b/res/values-si/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"ගෝලීය"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index d675a08..a6f3399 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"වෙනත් ජාලයක් තෝරන්න"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"උපාංගය එක් කළ නොහැකි විය"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"උපාංගය හමු විය"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"මෙම උපාංගය සමඟ Wi‑Fi බෙදා ගනිමින්…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"සබැඳෙමින්…"</string>
     <string name="retry" msgid="6472609612090877557">"යළි උත්සාහ කරන්න"</string>
     <string name="wifi_shared" msgid="844142443226926070">"අනෙකුත් උපාංග පරිශීලකයන් සමග බෙදා ගන්න"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(වෙනස් නොකළ)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"ජංගම"</item>
     <item msgid="2838022395783120596">"Wi-Fi පමණයි"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi වඩා කැමතියි"</item>
     <item msgid="5074515506087318555">"ජංගම කැමතියි"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"ජංගම"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi ඇමතීම සක්‍රීය වූ විට, ඔබේ දුරකථනයට ඔබේ මනාපයට සහ සංඥා ප්‍රබලතාවට අනුව, Wi-Fi ජාල හරහා හෝ ඔබේ වාහකයේ ජාලය හරහා ඇමතුම් ප්‍රතියොමු කළ හැක. මෙම විශේෂාංගය සක්‍රීය කිරීමට පෙර, ගාස්තු සහ අනෙකුත් විස්තර පිළිබඳව ඔබේ වාහකය සමඟ පරීක්‍ෂා කර ගන්න.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"හදිසි අවස්ථා ලිපිනය"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"මිනිත්තු 2"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"කියවීමට කාලය"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"ක්‍රියා කිරීමට කාලය"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"ඔබට කියවීමට අවශ්‍ය නමුත්, තාවකාලිකව පමණක් දිස් වන, පණිවිඩ කොතරම් කාලයක් දිස් වන්නේද යන්න තෝරා ගන්න.\n\nසියලු යෙදුම් මෙම සැකසීමට සහාය නොදක්වයි."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"ක්‍රියා කිරීමට ඔබගෙන් ඉල්ලා සිටින, නමුත් තාවකාලිකව පමණක් දිස් වන, පණිවිඩ කොතරම් කාලයක් දිස් වන්නේද යන්න තෝරන්න.\n\nසියලු යෙදුම් මෙම සැකසීමට සහාය නොදක්වයි."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"ස්පර්ශ කර ප්‍රමාදය රඳවන්න"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"වර්ණ අපවර්තනය"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"බ්ලූටූත්, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"බ්ලූටූත්"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"යෙදුම් සහ දැනුම්දීම්"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"අවසර, පෙරනිමි යෙදුම්"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"කාර්යාල පැතිකඩ තුළ යෙදුම් සඳහා දැනුම්දීම් ප්‍රවේශය ලබා ගත නොහැකිය"</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"ගිණුම්"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"ගිණුම් එක් නොකරන ලදී"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"පරිසර දර්ශකය, අගුලු තිර දර්ශකය"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"අගුළු තිර දැනුම්දීම"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"මුහුණ"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"ඇඟිලි සලකුණ"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"අඳුරු තිරය, ස්පර්ශ තිරය, බැටරිය, ස්මාර්ට් දීප්තිය, ගතික දීප්තිය"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"අඳුරු තිරය, නිද්‍රාව, බැටරිය, යල් පැනීම, අවධානය, සංදර්ශකය, තිරය, නිෂ්ක්‍රියාව"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"කරකවන්න, ෆ්ලිප් කරන්න, කරකැවීම, ආලේඛ්‍ය, භූ දර්ශනය, දිශානතිය, සිරස්, තිරස්"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"හඬ නඟනය නිහඬ වන ලෙස සකසා ඇත"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"80% දී නාදක හඬ පරිමාව"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"මාධ්‍ය ශබ්දය"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"ඇමතුම් ශබ්දය ත්‍රීවතාවය"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"සීනුවේ ශබ්දය"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"නාද ශබ්දය"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"බාධා නොකරන්න යාවත්කාලීන කරන්න"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"අවධානය යොමු කිරීම සඳහා දැනුම්දීම් විරාම කරන්න"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"මෙම අංගය මෙම උපාංගයේ ලබා ගත නොහැක"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"මෙම විශේෂාංගය නොමැත"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"එය මෙම දුරකථනය මන්දගාමී කරනු ඇත"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"සම්පූර්ණ GNSS මිනුම් බලාත්මක කරන්න"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"කාර්ය චක්‍රය රහිත සියලු GNSS සබැඳි තාරකා ගෝල සහ සංඛ්‍යාත"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"පසුබිම් ක්‍රියාකාරකම් පටන් ගැනීමට ඉඩ දෙන්න"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"දැනුම්දීම් නාලිකා <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>ක්. සියල්ල කළමනා කිරීමට තට්ටු කරන්න."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"ප්‍රතිදාන මාරු කරන්න"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"දැනට <xliff:g id="DEVICE_NAME">%1$s</xliff:g> මත වාදන කෙරෙන"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"මෙම සැපයුම්කරු සමඟ ඔබ දායකත්වය අවලංගු විය හැක. ප්‍රත්‍යාවර්තී දායකත්වයන් අවලංගු කරනු නොලැබේ. වැඩිදුර තොරතුරු සඳහා, ඔබේ සැපයුම්කරු සමඟ පරීක්ෂා කරන්න."</string>
 </resources>
diff --git a/res/values-sk/arrays.xml b/res/values-sk/arrays.xml
index 6879216..0993627 100644
--- a/res/values-sk/arrays.xml
+++ b/res/values-sk/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Globálne"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 2517c2c..27e6d74 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -972,10 +972,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Vybrať inú sieť"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Zariadenie sa nepodarilo pridať"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Našlo sa zariadenie"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"S týmto zariadením sa zdieľa pripojenie Wi‑Fi…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Pripája sa…"</string>
     <string name="retry" msgid="6472609612090877557">"Skúsiť znova"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Zdieľať s ostatnými používateľmi zariadenia"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(nezmenené)"</string>
@@ -1101,11 +1099,6 @@
     <item msgid="7715869266611010880">"Mobilné dáta"</item>
     <item msgid="2838022395783120596">"Len Wi‑Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Preferovať Wi‑Fi"</item>
     <item msgid="5074515506087318555">"Preferovať mobilné spojenie"</item>
@@ -1114,10 +1107,6 @@
     <item msgid="6132150507201243768">"Wi‑Fi"</item>
     <item msgid="1118703915148755405">"Mobilné dáta"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Ak je zapnuté volanie cez Wi‑Fi, váš telefón môže smerovať volania cez siete Wi‑Fi alebo cez sieť vášho operátora. Závisí to od vašich preferencií a od toho, ktorý signál je silnejší. Pred zapnutím tejto funkcie kontaktujte svojho operátora a informujte sa o poplatkoch a ďalších podrobnostiach.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Tiesňová adresa"</string>
@@ -2094,8 +2083,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minúty"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Čas na čítanie"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Čas na vykonanie akcie"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Vyberte, ako dlho sa majú zobrazovať dočasne viditeľné správy.\n\nNiektoré aplikácie toto nastavenie nepodporujú."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Vyberte, koľko sa majú zobrazovať správy s výzvami na akciu, ktoré sa zobrazujú iba dočasne.\n\nNiektoré aplikácie toto nastavenie nepodporujú."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Oneskorenie pridržania"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inverzia farieb"</string>
@@ -3086,7 +3074,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplikácie a upozornenia"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Povolenia, predvolené aplikácie"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Prístup k upozorneniam nie je k dispozícii pre aplikácie v pracovnom profile."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Účty"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Neboli pridané žiadne účty"</string>
@@ -3149,7 +3138,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambientné zobrazenie, zobrazenie uzamknutej obrazovky"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"upozornenie na uzamknutej obrazovke"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"tvár"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"odtlačok prsta"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"stmavenie obrazovky, dotyková obrazovka, batéria, inteligentný jas, dynamický jas"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"stlmiť obrazovku, spánok, batéria, časový limit, pozor, zobrazenie, obrazovka, nečinnosť"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"otočiť, prevrátiť, rotovať, na výšku, na šírku, orientácia, zvisle, vodorovne"</string>
@@ -3182,6 +3172,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Zvonenie je stlmené"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Hlasitosť zvonenia: 80 %"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Hlasitosť médií"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Hlasitosť hovoru"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Hlasitosť budíkov"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Hlasitosť zvonenia"</string>
@@ -4371,10 +4363,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Aktualizovať režim bez vyrušení"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Pozastavte upozornenia, aby ste sa mohli sústrediť"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Táto funkcia nie je v zariadení k dispozícii"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Táto funkcia nie je k dispozícii"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Spomalí tento telefón"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Vynútiť úplné meranie GNSS"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Sledovať všetky konštelácie a frekvencie GNSS bez cyklického vypínania a zapínania"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Povoliť spúšťanie aktivity na pozadí"</string>
@@ -4588,6 +4578,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"Počet kanálov upozornení: <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Klepnutím môžete spravovať všetky."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Prepnutie výstupu"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Momentálne sa prehráva v zariadení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Váš odber od tohto poskytovateľa môže byť zrušený. Opakované odbery nebudú zrušené. Ďalšie informácie vám poskytne poskytovateľ."</string>
 </resources>
diff --git a/res/values-sl/arrays.xml b/res/values-sl/arrays.xml
index f6f8f30..420560b 100644
--- a/res/values-sl/arrays.xml
+++ b/res/values-sl/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Globalno"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index b52f479..d816c32 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -972,10 +972,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Izberi drugo omrežje"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Naprave ni bilo mogoče dodati"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Najdena je bila naprava"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Skupna raba povezave Wi‑Fi s to napravo …"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Povezovanje …"</string>
     <string name="retry" msgid="6472609612090877557">"Poskusi znova"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Skupna raba z drugimi uporabniki naprave"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(nespremenjeno)"</string>
@@ -1101,11 +1099,6 @@
     <item msgid="7715869266611010880">"Mobilno"</item>
     <item msgid="2838022395783120596">"Samo Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Prednostno Wi-Fi"</item>
     <item msgid="5074515506087318555">"Prednostno mobilno"</item>
@@ -1114,10 +1107,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Mobilno"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Ko je vklopljeno klicanje prek omrežja Wi-Fi, lahko telefon preusmeri klice prek omrežij Wi-Fi ali omrežja operaterja na podlagi vaše nastavitve in moči signala. Pred vklopom te funkcije pri operaterju preverite cene in druge podrobnosti.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Naslov za nujne primere"</string>
@@ -2094,8 +2083,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minuti"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Čas za branje"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Čas za ukrepanje"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Izberite, kako dolgo naj bodo prikazana sporočila, ki jih morate prebrati, vendar so prikazana le začasno.\n\nTe nastavitve ne podpirajo vse aplikacije."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Izberite, kako dolgo naj bodo prikazana sporočila, ki vas pozivajo k ukrepanju, vendar so prikazana le začasno.\n\nTe nastavitve ne podpirajo vse aplikacije."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Časovni zam. za dotik in pridržanje"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inverzija barv"</string>
@@ -3086,7 +3074,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplikacije in obvestila"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Dovoljenja, privzete aplikacije"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Dostop do obvestil ni na voljo za aplikacije v delovnem profilu."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Računi"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Dodan ni bil noben račun"</string>
@@ -3149,7 +3138,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"prikaz na podlagi okolja, prikaz na zaklenjenem zaslonu"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"obvestilo na zaklenjenem zaslonu"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"obraz"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"prstni odtis"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"zatemnitev zaslona, zaslon na dotik, akumulator, pametna svetlost, dinamična svetlost"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"zatemnitev zaslona, stanje pripravljenosti, akumulator, časovna omejitev, pozor, prikaz, zaslon, nedejavnost"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"zavrteti, obrniti, vrtenje, pokončno, ležeče, postavitev, navpično, vodoravno"</string>
@@ -3182,6 +3172,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Zvonjenje je nastavljeno na tiho"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Glasnost zvonjenja: 80 %"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Glasnost predstavnosti"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Glasnost klica"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Glasnost alarma"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Glasnost zvonjenja"</string>
@@ -4371,10 +4363,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Posodobitev načina »ne moti«"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Začasno zaustavite prikazovanje obvestil, da ostanete osredotočeni"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Ta funkcija ni na voljo v tej napravi."</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Ta funkcija ni na voljo"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Upočasnila bo delovanje tega telefona"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Vsili popolne meritve GNSS"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Spremljaj vse razmestitve in frekvence GNSS brez ciklov"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Dovoli začetek dejavnosti v ozadju"</string>
@@ -4588,6 +4578,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"Št. kanalov za obveščanje: <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Dotaknite se, če želite upravljati vse."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Preklop izhoda"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Trenutno se predvaja v napravi <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Naročnina pri tem ponudniku bo morda preklicana. Ponavljajoče se naročnine ne bodo preklicane. Za več informacij se obrnite na ponudnika."</string>
 </resources>
diff --git a/res/values-sq/arrays.xml b/res/values-sq/arrays.xml
index f4354c4..e919915 100644
--- a/res/values-sq/arrays.xml
+++ b/res/values-sq/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Globale"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 711c2ef..c62016e 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Zgjidh një rrjet tjetër"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Pajisja nuk mund të shtohej"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"U gjet pajisje"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Po ndan Wi‑Fi me këtë pajisje…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Po lidhet…"</string>
     <string name="retry" msgid="6472609612090877557">"Riprovo"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Ndaje me përdoruesit e tjerë të pajisjes"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(i pandryshuar)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"Celular"</item>
     <item msgid="2838022395783120596">"Vetëm Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Preferohet Wi-Fi"</item>
     <item msgid="5074515506087318555">"Preferohet rrjeti celular"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Celular"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Kur telefonata me Wi-Fi është e aktivizuar, telefoni mund t\'i kalojë telefonatat nëpërmjet rrjeteve Wi-Fi ose nëpërmjet rrjetit të operatorit celular, në varësi të preferencës dhe se cili sinjal është më i fortë. Para se të aktivizosh këtë funksion, kontakto me operatorin celular në lidhje me tarifat dhe detaje të tjera.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Adresa e urgjencës"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minuta"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Koha për të lexuar"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Koha për të kryer veprime"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Zgjidh se për sa kohë të shfaqen mesazhet që duhet të lexosh, por që janë të dukshme vetëm përkohësisht.\n\nKy cilësim nuk mbështetet nga të gjitha aplikacionet."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Zgjidh se për sa kohë të shfaqen mesazhet që të kërkojnë të kryesh një veprim, por që janë të dukshme vetëm përkohësisht.\n\nKy cilësim nuk mbështetet nga të gjitha aplikacionet."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Vonesa e prekjes dhe e mbajtjes shtypur"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Kthimi i ngjyrës"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apl. dhe njoftimet"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Lejet, apl. e parazgjedhura"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Qasja te njoftimet nuk ofrohet për aplikacionet në profilin e punës."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Llogaritë"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nuk u shtua asnjë llogari"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Shfaqja e ambientit, shfaqja e ekranit të kyçjes"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"njoftimi i ekranit të kyçjes"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"fytyrë"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"gjurmë gishti"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"errëso ekranin, ekrani me prekje, bateria, ndriçimi inteligjent, ndriçimi dinamik"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"errëso ekranin, në gjumë, bateria, koha e pritjes, vëmendja, ekrani, mungesa e aktivitetit"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"rrotullo, përmbys, rrotullim, portret, peizazh, orientimi, vertikal, horizontal"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Zilja u vendos në heshtje"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Volumi i ziles në 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Volumi i medias"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Volumi i telefonatës"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Volumi i alarmit"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volumi i ziles"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Përditëso modalitetin \"Mos shqetëso\""</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Vendos njoftimet në pauzë për të qëndruar i fokusuar"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Ky funksion nuk ofrohet në këtë pajisje"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Ky funksion nuk ofrohet"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Ai do ta ngadalësojë këtë telefon"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Matjet GNSS me fuqi të plotë"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Gjurmo të gjitha koleksionet dhe frekuencat e GNSS pa ciklim të detyruar"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Lejo nisjet e aktiviteteve në sfond"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> kanale njoftimi. Trokit për t\'i menaxhuar të gjitha."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Ndrysho daljen"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Aktualisht po luhet në <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Abonimi yt me këtë ofrues mund të anulohet. Abonimet e përsëritura nuk do të anulohen. Për më shumë informacion, kontakto me ofruesin tënd."</string>
 </resources>
diff --git a/res/values-sr/arrays.xml b/res/values-sr/arrays.xml
index 330133a..01ae693 100644
--- a/res/values-sr/arrays.xml
+++ b/res/values-sr/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Глобална"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 4ae4060..1af5350 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -956,10 +956,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Одабери другу мрежу"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Додавање уређаја није успело"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Пронађен је уређај"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Дели се Wi‑Fi са овим уређајем…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Повезује се…"</string>
     <string name="retry" msgid="6472609612090877557">"Пробај поново"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Дели са другим корисницима уређаја"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(непромењено)"</string>
@@ -1084,11 +1082,6 @@
     <item msgid="7715869266611010880">"Мобилни подаци"</item>
     <item msgid="2838022395783120596">"Само Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Предност има Wi-Fi"</item>
     <item msgid="5074515506087318555">"Желим мобилне податке"</item>
@@ -1097,10 +1090,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Мобилни подаци"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2."</item>
-    <item msgid="6200207341126893791">"1."</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Када је позивање преко Wi-Fi-ја укључено, телефон може да преусмерава позиве преко Wi-Fi мрежа или мреже мобилног оператера у зависности од тога које сте подешавање изабрали и који сигнал је јачи. Пре него што укључите ову функцију, информишите се код мобилног оператера о накнадама и другим детаљима.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Адреса за хитне случајеве"</string>
@@ -2074,8 +2063,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 минута"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Време за читање"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Време за реаговање"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Одаберите колико дуго ће се приказивати поруке које треба да прочитате, али су видљиве само привремено.\n\nОво подешавање не подржавају све апликације."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Одаберите колико дуго ће се приказивати поруке које траже да реагујете, али су видљиве само привремено.\n\nОво подешавање не подржавају све апликације."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Одлагање додира и задржавањa"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Инверзија боја"</string>
@@ -3046,7 +3034,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aпликације и обавештења"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Дозволе, подразумеване апликације"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Приступ обавештењима није доступан за апликације на радном профилу."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Налози"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Ниједан налог није додат"</string>
@@ -3109,7 +3098,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Амбијентални екран, приказ на закључаном екрану"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"обавештење на закључаном екрану"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"лице"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"дигитални отисак"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"затамнити екран, додирни екран, батерија, паметна светлина, динамичка светлина"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"затамњење екрана, спавање, батерија, временско ограничење, пажња, приказ, екран, неактивност"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"ротирај, обрни, ротација, усправно, водоравно, положај, вертикално, хоризонтално"</string>
@@ -3142,6 +3132,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Звоно је подешено на нечујно"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Јачина звона је 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Јачина звука медија"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Јачина звука позива"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Јачина звука аларма"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Јачина звука звона"</string>
@@ -4295,10 +4287,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Ажурирајте режим Не узнемиравај"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Паузирајте обавештења ради боље концентрације"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Ова функција није доступна на овом уређају."</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Ова функција није доступна"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Успориће овај телефон"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Принудно покрени пуна GNSS мерења"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Прати све GNSS консталације и фреквенције без циклуса рада"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Дозволи покретање апликација у позадини"</string>
@@ -4508,6 +4498,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> канал за обавештења. Додирните да бисте управљали свим."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Промените излаз"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Тренутно се пушта на уређају <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Претплата код овог добављача услуге је можда отказана. Активне претплате неће бити отказане. Више информација потражите од добављача услуге."</string>
 </resources>
diff --git a/res/values-sv/arrays.xml b/res/values-sv/arrays.xml
index 3308045..583c04e 100644
--- a/res/values-sv/arrays.xml
+++ b/res/values-sv/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Globalt"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index cb51296..18935ca 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Välj ett annat nätverk"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Det gick inte att lägga till enheten"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"En enhet hittades"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Wi‑Fi delas med den här enheten …"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Ansluter …"</string>
     <string name="retry" msgid="6472609612090877557">"Försök igen"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Dela med andra som använder enheten"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(oförändrat)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"Mobil enhet"</item>
     <item msgid="2838022395783120596">"Endast Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi i första hand"</item>
     <item msgid="5074515506087318555">"Mobilnät i första hand"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Mobil enhet"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"När Wi-Fi-samtal har aktiverats kan mobilen dirigera samtal via Wi-Fi-nätverk eller operatörens nätverk, beroende på dina inställningar och vilken signal som är starkast. Innan du aktiverar funktionen frågar du operatören om eventuella avgifter och annan information.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Adress för nödfall"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minuter"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tidsperiod för läsning"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tidsperiod för att vidta åtgärder"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Välj hur lång tid som tillfälliga meddelanden som du behöver läsa ska visas.\n\nFunktionen stöds inte i alla appar."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Ställ in hur lång tid som tillfälliga meddelanden som ber dig att vidta åtgärder ska visas.\n\nDet är inte alla appar som har stöd för inställningen."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Fördröjning för tryck och håll ned"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inverterade färger"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Appar och aviseringar"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Behörigheter, standardappar"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Appar i jobbprofilen har inte åtkomst till aviseringar"</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Konton"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Inga konton har lagts till"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Aktiv låsskärm, visning av låsskärm"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"avisering på låsskärm"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"ansikte"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingeravtryck"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"nedtonad skärm, pekskärm, batteri, intelligent ljusstyrka, dynamisk ljusstyrka"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"tona ned skärmen, viloläge, batteri, tidsgräns, aktivitet, skärm, inaktiv"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"rotera, vänd, rotation, stående, liggande, orientering, lodrätt, vågrätt"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Ringsignalen är avstängd"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Ringvolym på 80 %"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Medievolym"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Samtalsvolym"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Alarmvolym"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Ringvolym"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Uppdatera Stör ej"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Pausa aviseringar så du kan behålla ditt fokus"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Den här funktionen är inte tillgänglig på den här enheten."</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Funktionen är inte tillgänglig"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Funktionen gör att den här mobilen fungerar långsammare"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Framtvinga fullständiga GNSS-mätningar"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Spåra alla konstellationer och frekvenser för GNSS utan arbetscykel"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Tillåt att aktiviteter startas i bakgrunden"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> aviseringskanaler. Tryck för att hantera alla."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Utdata som styrs med reglaget"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Spelas upp nu på <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Din prenumeration hos den här leverantören kan ha avslutats. Prenumerationer som förnyas regelbundet avslutas inte. Kontakta leverantören för mer information."</string>
 </resources>
diff --git a/res/values-sw/arrays.xml b/res/values-sw/arrays.xml
index df3edfe..96abe98 100644
--- a/res/values-sw/arrays.xml
+++ b/res/values-sw/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Jumla"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 474f8a2..ed1e6b5 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Chagua mtandao tofauti"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Imeshindwa kuongeza kifaa"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Imepata kifaa"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Inashiriki Wi‑Fi na kifaa hiki…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Inaunganisha…"</string>
     <string name="retry" msgid="6472609612090877557">"Jaribu tena"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Shiriki na watumiaji wengine wa kifaa"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(haijabadilishwa)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"Mtandao wa simu"</item>
     <item msgid="2838022395783120596">"Wi-Fi pekee"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Inayopendelea Wi-Fi"</item>
     <item msgid="5074515506087318555">"Mtandao wa simu unapendelewa"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Mtandao wa simu"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wakati kipengele cha kupiga simu kupitia Wi-Fi kimewashwa, simu yako inaweza kuelekeza simu kupitia mitandao ya Wi-Fi au mtandao wa kampuni inayokupa huduma za simu, kutegemea mapendeleo yako na mawimbi yaliyo thabiti zaidi. Kabla ya kuwasha kipengele hiki, angalia ada na maelezo mengine kutoka kwenye kampuni inayokupa huduma za simu.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Anwani ya Dharura"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"Dakika 2"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Wakati wa kusoma"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Wakati wa kuchukua hatua"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Chagua muda ambao ungependa kuonyesha ujumbe unaohitaji kusoma, lakini unaonekana kwa muda mfupi. \n\nBaadhi ya programu hazitumii mipangilio hii."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Chagua muda ambao ungependa kuonyesha ujumbe unaokuomba uchukue hatua, lakini utaonekana kwa muda mfupi.\n\nBaadhi ya programu hazitumii mipangilio hii."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Muda wa kugusa na kushikilia"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Ugeuzaji rangi"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Programu na arifa"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Ruhusa, programu chaguomsingi"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Programu zilizo katika wasifu wa kazini haziwezi kufungua arifa."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Akaunti"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Hakuna akaunti zilizoongezwa"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Onyesho tulivu, Skrini iliyofungwa"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"arifa ya skrini iliyofungwa"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"uso"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"alama ya kidole"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"skrini yenye mwanga hafifu, skrini ya kugusa, betri, mwangaza mahiri, ung\'avu maalum"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"punguza mwangaza wa skrini, hali tuli, betri, muda umekwisha, ilani, onyesho, skrini, kutokuwa na shughuli"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"zungusha, gueza, kuzungusha, wima, mlalo, mkao"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Programu inayotoa milio ya simu imewekwa katika hali ya kimya"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Kiwango cha sauti ya mlio ni 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Sauti ya muziki"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Sauti ya simu"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Sauti ya kengele"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Sauti ya mlio"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Sasisha kipengele cha Usinisumbue"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Sitisha arifa ili uendelee kumakinika"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Kipengele hiki hakipatikani kwenye kifaa hiki"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Kipengele hiki hakipatikani"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Hali hii itapunguza kasi ya kifaa chako"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Lazimisha vipimo vya GNSS kamili"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Fuatilia mikusanyiko na mawimbi yote yasiyo na utendakazi wa GNSS"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Iruhusu kuanza shughuli chinichini"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"Arifa <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> za vituo. Gusa ili udhibiti zote."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Badilisha kifaa cha kutoa"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Inacheza sasa kwenye <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Huenda itaghairi usajili wako katika kampuni hii inayokupa huduma. Haitaghairi usajili unaojirudia. Ili upate maelezo zaidi, wasiliana na kampuni inayokupa huduma."</string>
 </resources>
diff --git a/res/values-ta/arrays.xml b/res/values-ta/arrays.xml
index c2c9c89..12b219f 100644
--- a/res/values-ta/arrays.xml
+++ b/res/values-ta/arrays.xml
@@ -463,8 +463,10 @@
   </string-array>
     <!-- no translation found for swipe_direction_titles:0 (58569659116542716) -->
     <!-- no translation found for swipe_direction_titles:1 (1878704357761948043) -->
-    <!-- no translation found for swipe_direction_values:0 (8800082277840833437) -->
-    <!-- no translation found for swipe_direction_values:1 (7485508823396511299) -->
+  <string-array name="swipe_direction_values">
+    <item msgid="8800082277840833437">"1"</item>
+    <item msgid="7485508823396511299">"0"</item>
+  </string-array>
   <string-array name="wifi_metered_entries">
     <item msgid="5200910605264415911">"தானாகக் கண்டறி"</item>
     <item msgid="8745603368609022803">"டேட்டா அளவிடப்பட்டது"</item>
@@ -520,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"குளோபல்"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index f8298ce..2e76fea 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -801,10 +801,8 @@
     <string name="rx_link_speed" msgid="5729003360923133988">"<xliff:g id="RECEIVE_LINK_SPEED">%1$d</xliff:g> மெ.பை./வி"</string>
     <string name="wifi_ask_enable" msgid="2795469717302060104">"வைஃபையை இயக்க <xliff:g id="REQUESTER">%s</xliff:g> விரும்புகிறது"</string>
     <string name="wifi_ask_disable" msgid="728366570145493573">"வைஃபையை முடக்க <xliff:g id="REQUESTER">%s</xliff:g> விரும்புகிறது"</string>
-    <!-- no translation found for art_verifier_for_debuggable_title (6029838014407791341) -->
-    <skip />
-    <!-- no translation found for art_verifier_for_debuggable_summary (2250352478065428399) -->
-    <skip />
+    <string name="art_verifier_for_debuggable_title" msgid="6029838014407791341">"பிழைதிருத்த, ஆப்ஸ் பைட்கோடை சரிபார்த்தல்"</string>
+    <string name="art_verifier_for_debuggable_summary" msgid="2250352478065428399">"பிழைதிருத்த, ஆப்ஸிற்கான பைட்கோடைச் சரிபார்க்க ARTயை அனுமதிக்கும்"</string>
     <string name="nfc_quick_toggle_title" msgid="6769159366307299004">"NFC"</string>
     <string name="nfc_quick_toggle_summary" product="tablet" msgid="8302974395787498915">"டேப்லெட்டானது வேறொரு சாதனத்தைத் தொடும்போது தரவுப் பரிமாற்றத்தை அனுமதி"</string>
     <string name="nfc_quick_toggle_summary" product="default" msgid="5237208142892767592">"வேறொரு சாதனத்தைத் தொடும்போது டேட்டா பரிமாற்றத்தை அனுமதி"</string>
@@ -919,8 +917,7 @@
     <string name="wifi_ap_band_select_one" msgid="3476254666116431650">"வைஃபை ஹாட்ஸ்பாட்டிற்கு, குறைந்தது ஒரு பேண்ட்டைத் தேர்வுசெய்யவும்:"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"IP அமைப்பு"</string>
     <string name="wifi_privacy_settings" msgid="5500777170960315928">"தனியுரிமை"</string>
-    <!-- no translation found for wifi_privacy_settings_ephemeral_summary (1539659414108891004) -->
-    <skip />
+    <string name="wifi_privacy_settings_ephemeral_summary" msgid="1539659414108891004">"ரேண்டம் ஆக்கப்பட்ட MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="8674936581557695411">"சாதனத்தைச் சேர்த்தல்"</string>
     <string name="wifi_dpp_center_qr_code" msgid="6244508369721032655">"“<xliff:g id="SSID">%1$s</xliff:g>” இல் சாதனத்தைச் சேர்ப்பதற்குக் கீழேயுள்ள QR குறியீட்டை மையப்படுத்திக் காட்டவும்"</string>
     <string name="wifi_dpp_scan_qr_code" msgid="4794621158747044107">"QR குறியீட்டை ஸ்கேன் செய்தல்"</string>
@@ -928,20 +925,13 @@
     <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="8096370383700478819">"QR குறியீட்டை ஸ்கேன் செய்வதன் மூலம் வைஃபையுடன் இணையலாம்"</string>
     <string name="wifi_dpp_share_wifi" msgid="9065890131734833809">"வைஃபையைப் பகிர்தல்"</string>
     <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="8416440732377359392">"மற்றொரு சாதனத்தை “<xliff:g id="SSID">%1$s</xliff:g>” உடன் இணைக்க இந்த QR குறியீட்டை ஸ்கேன் செய்யவும்"</string>
-    <!-- no translation found for wifi_dpp_could_not_detect_valid_qr_code (641893675646330576) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_failure_authentication_or_configuration (3372757783382381044) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_failure_not_compatible (2829930473520603740) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_failure_timeout (5228320772245820458) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_failure_generic (8030831192606098356) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_failure_not_supported (2643768115109632725) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_check_connection_try_again (2632966336733361805) -->
-    <skip />
+    <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="641893675646330576">"QR குறியீட்டின் விவரங்களைப் பெற இயலவில்லை. சரியாக மையத்தில் காட்டி முயலவும்"</string>
+    <string name="wifi_dpp_failure_authentication_or_configuration" msgid="3372757783382381044">"மீண்டும் முயலவும். சிக்கல் தொடர்ந்தால் சாதன உற்பத்தியாளரைத் தொடர்புகொள்ளவும்"</string>
+    <string name="wifi_dpp_failure_not_compatible" msgid="2829930473520603740">"ஏதோ தவறாகிவிட்டது"</string>
+    <string name="wifi_dpp_failure_timeout" msgid="5228320772245820458">"சாதனம் பிளக்கில் செருகப்பட்டும் சார்ஜ் செய்யப்பட்டும் ஆன் நிலையிலும் இருப்பதை உறுதிசெய்துகொள்ளவும்"</string>
+    <string name="wifi_dpp_failure_generic" msgid="8030831192606098356">"சாதனம் பிளக்கில் செருகப்பட்டும் சார்ஜ் செய்யப்பட்டும் ஆன் நிலையிலும் இருப்பதை உறுதி செய்துகொள்ளவும். சிக்கல் தொடர்ந்தால் சாதன உற்பத்தியாளரைத் தொடர்புகொள்ளவும்"</string>
+    <string name="wifi_dpp_failure_not_supported" msgid="2643768115109632725">"இந்தச் சாதனத்தில் இதைச் சேர்க்க இயலாது: <xliff:g id="SSID">%1$s</xliff:g>"</string>
+    <string name="wifi_dpp_check_connection_try_again" msgid="2632966336733361805">"இணைப்பைச் சரிபார்த்து மீண்டும் முயலவும்"</string>
     <string name="wifi_dpp_choose_network" msgid="7139308800110200281">"நெட்வொர்க்கைத் தேர்வுசெய்தல்"</string>
     <string name="wifi_dpp_choose_network_to_connect_device" msgid="4025269026652486605">"உங்கள் சாதனத்தை இணைப்பதற்கு நெட்வொர்க் ஒன்றைத் தேர்வுசெய்யவும்"</string>
     <string name="wifi_dpp_add_device_to_wifi" msgid="5459084866460319042">"“<xliff:g id="SSID">%1$s</xliff:g>” இல் சாதனத்தைச் சேர்க்கவா?"</string>
@@ -1077,11 +1067,6 @@
     <item msgid="7715869266611010880">"மொபைல்"</item>
     <item msgid="2838022395783120596">"வைஃபை மட்டும்"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"வைஃபைக்கு முன்னுரிமை"</item>
     <item msgid="5074515506087318555">"மொபைல் தரவிற்கு முன்னுரிமை"</item>
@@ -1090,12 +1075,7 @@
     <item msgid="6132150507201243768">"வைஃபை"</item>
     <item msgid="1118703915148755405">"மொபைல்"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
-    <!-- no translation found for wifi_calling_off_explanation (564780186974911501) -->
-    <skip />
+    <string name="wifi_calling_off_explanation" msgid="564780186974911501">"’வைஃபை அழைப்பு’ இயக்கத்தில் இருக்கும்போது உங்கள் விருப்பத்தேர்வையும் சிக்னல் வலிமையையும் பொறுத்து வைஃபை நெட்வொர்க்குகளுக்கோ மொபைல் நெட்வொர்க்கிற்கோ உங்கள் மொபைல் அழைப்புகளைத் திசைதிருப்பும். இந்த அம்சத்தை இயக்குவதற்கு முன், கட்டணங்களையும் பிற விவரங்களையும் குறித்து உங்கள் மொபைல் நிறுவனத்திடமிருந்து தெரிந்துகொள்ளவும்.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"அவசர முகவரி"</string>
     <string name="emergency_address_summary" msgid="7751971156196115129">"Wi-Fi மூலம் அவசர அழைப்பை மேற்கொள்ளும்போது, உங்களின் அப்போதைய இருப்பிடமே உங்கள் முகவரியாகக் கருதப்படும்"</string>
@@ -2065,8 +2045,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 நிமிடங்கள்"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"மெசேஜ்களைப் படிக்க ஆகும் நேரம்"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"மெசேஜ்களின்படி செயல்பட ஆகும் நேரம்"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"நீங்கள் வாசிக்க விரும்பும், தற்காலிகமாகத் தெரியும் மெசேஜ்கள் எவ்வளவு நேரம் காட்டப்பட வேண்டும் என்பதைத் தேர்வுசெய்யலாம்.\n\nஇந்த அமைப்பு அனைத்து ஆப்ஸிலும் ஆதரிக்கப்படாது."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"உங்களைச் செயல்படும்படி கூறும் மெசேஜ்களை எவ்வளவு நேரம் காட்டலாம் என்பதைத் தேர்வுசெய்யவும். இவை சற்று நேரத்திற்கு மட்டுமே காட்டப்படும்.\n\nஇந்த அமைப்பு அனைத்து ஆப்ஸாலும் ஆதரிக்கப்படாது."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"தொட்டுப் பிடித்தல் தாமதம்"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"வண்ணத்தின் நேர்மாறான முறை"</string>
@@ -3017,7 +2996,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"புளூடூத், NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"புளூடூத்"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"ஆப்ஸ் &amp; அறிவிப்புகள்"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"அனுமதிகள், இயல்பு ஆப்ஸ்"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"பணிக் கணக்கில், ஆப்ஸுற்கான அறிவிப்பு அணுகல் இல்லை."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"கணக்குகள்"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"கணக்குகள் எதுவும் சேர்க்கப்படவில்லை"</string>
@@ -3080,7 +3060,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"சூழல்சார் திரை, லாக் ஸ்கிரீன்"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"பூட்டுத் திரை அறிவிப்பு"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"முகம்"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"கைரேகை"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"மங்கல் திரை, டச்ஸ்கிரீன், பேட்டரி, ஸ்மார்ட் பிரைட்னஸ், சிறப்பு ஒளிர்வு"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"மங்கலான திரை, உறக்கம், பேட்டரி, முடிவு நேரம், கவனம், காட்சி, திரை, செயலின்மை"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"சுழற்று, ஃபிலிப், சுழற்சி, போர்ட்ரெய்ட், லேண்ட்ஸ்கேப், திசையமைப்பு, நீளவாக்கு, அகலவாக்கு"</string>
@@ -3113,6 +3094,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"ரிங்கர் \"நிசப்த நிலைக்கு\" அமைக்கப்பட்டது"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"ரிங் ஒலியளவு: 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"மீடியா ஒலியளவு"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"அழைப்பின் ஒலியளவு"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"அலார ஒலியளவு"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"அழைப்பு - ஒலியளவு"</string>
@@ -3278,12 +3261,9 @@
     <string name="hide_silent_icons_summary" msgid="7479863645940885952">"நிலைப் பட்டியில் அறிவிப்புகளை ஒலியின்றிக் காட்டும் நிலை ஐகான்களை மறைத்தல்"</string>
     <string name="notification_badging_title" msgid="5938709971403474078">"அறிவிப்புப் புள்ளிகளைக் காட்டு"</string>
     <string name="notification_bubbles_title" msgid="4750896810493858296">"அறிவிப்புக் குமிழ்களை அனுமதி"</string>
-    <!-- no translation found for swipe_direction_title (6877543492435053137) -->
-    <skip />
-    <!-- no translation found for swipe_direction_ltr (3623394320915041215) -->
-    <skip />
-    <!-- no translation found for swipe_direction_rtl (4972099509548044938) -->
-    <skip />
+    <string name="swipe_direction_title" msgid="6877543492435053137">"ஸ்வைப் செயல்கள்"</string>
+    <string name="swipe_direction_ltr" msgid="3623394320915041215">"நிராகரிக்க வலப்புறமும் மெனுவைக் காண்பிக்க இடப்புறமும் ஸ்வைப் செய்யவும்"</string>
+    <string name="swipe_direction_rtl" msgid="4972099509548044938">"நிராகரிக்க இடப்புறமும் மெனுவைக் காண்பிக்க வலப்புறமும் ஸ்வைப் செய்யவும்"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"ஒளியைச் சிமிட்டு"</string>
     <string name="lock_screen_notifications_title" msgid="2583595963286467672">"லாக் ஸ்கிரீன் அறிவிப்புகள்"</string>
     <string name="locked_work_profile_notification_title" msgid="8327882003361551992">"பணிக் கணக்கு பூட்டியிருந்தால்"</string>
@@ -3607,8 +3587,7 @@
     <string name="advanced_apps" msgid="4812975097124803873">"மேம்பட்டவை"</string>
     <string name="configure_apps" msgid="6685680790825882528">"பயன்பாடுகளை உள்ளமை"</string>
     <string name="unknown_app" msgid="5275921288718717656">"அறியப்படாத பயன்பாடு"</string>
-    <!-- no translation found for app_permissions (5584182129908141622) -->
-    <skip />
+    <string name="app_permissions" msgid="5584182129908141622">"அனுமதி நிர்வாகம்"</string>
     <string name="app_permissions_summary" msgid="5163974162150406324">"<xliff:g id="APPS">%1$s</xliff:g> ஆகியவற்றைப் பயன்படுத்தும் பயன்பாடுகள்"</string>
     <string name="tap_to_wake" msgid="7211944147196888807">"இயக்க, தட்டவும்"</string>
     <string name="tap_to_wake_summary" msgid="4341387904987585616">"சாதனத்தை இயக்க, திரையின் எந்த இடத்திலும் இருமுறை தட்டவும்"</string>
@@ -4400,8 +4379,7 @@
     <string name="network_connection_timeout_dialog_ok" msgid="8924405960181020156">"மீண்டும் முயல்க"</string>
     <string name="network_connection_errorstate_dialog_message" msgid="6953778550775646710">"ஏதோ அறிவிப்பு வந்துள்ளது. ஒரு சாதனத்தைத் தேர்வுசெய்வதற்கான கோரிக்கையை இந்த ஆப்ஸ் ரத்துசெய்துள்ளது."</string>
     <string name="network_connection_connect_successful" msgid="5935510954474494928">"இணைப்பு வெற்றியடைந்தது"</string>
-    <!-- no translation found for network_connection_request_dialog_showall (6938922880244567521) -->
-    <skip />
+    <string name="network_connection_request_dialog_showall" msgid="6938922880244567521">"அனைத்தையும் காட்டு"</string>
     <plurals name="show_bluetooth_devices" formatted="false" msgid="1715020480026568408">
       <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> சாதனங்கள் இணைக்கப்பட்டுள்ளன</item>
       <item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> சாதனம் இணைக்கப்பட்டுள்ளது</item>
@@ -4429,8 +4407,7 @@
     <string name="search_bar_account_avatar_content_description" msgid="4718261366290530792"></string>
     <string name="permission_bar_chart_empty_text" msgid="4380731551728553852">"எந்த ஆப்ஸும் அனுமதிகளைப் பயன்படுத்தவில்லை"</string>
     <string name="permission_bar_chart_title" msgid="7748942699610196566">"கடந்த 24 மணிநேரத்தில் அதிகம் பயன்படுத்தப்பட்ட அனுமதிகள்"</string>
-    <!-- no translation found for permission_bar_chart_details (5648719432839246667) -->
-    <skip />
+    <string name="permission_bar_chart_details" msgid="5648719432839246667">"அனுமதிகள் டாஷ்போர்டைக் காட்டு"</string>
     <string name="accessibility_usage_title" msgid="5136753034714150614">"அணுகல்தன்மை உபயோகம்"</string>
     <plurals name="accessibility_usage_summary" formatted="false" msgid="4364945481915750314">
       <item quantity="other">உங்கள் சாதனத்திற்கான முழு அணுகல் <xliff:g id="SERVICE_COUNT">%1$d</xliff:g> சேவைகளுக்கு உள்ளன</item>
@@ -4438,11 +4415,12 @@
     </plurals>
     <string name="manage_app_notification" msgid="877012013856561440">"<xliff:g id="APP_NAME">%1$s</xliff:g> அறிவிப்புகளை நிர்வகி"</string>
     <string name="no_suggested_app" msgid="5722034393216359231">"பரிந்துரை ஆப்ஸ் எதுவுமில்லை"</string>
-    <!-- no translation found for notification_few_channel_count_summary (1090888820158822106) -->
-    <!-- no translation found for notification_many_channel_count_summary (8647409434789898073) -->
-    <skip />
+    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="1090888820158822106">
+      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> அறிவிப்புச் சேனல்கள்.</item>
+      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> அறிவிப்புச் சேனல்.</item>
+    </plurals>
+    <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> அறிவிப்புச் சேனல்கள். அனைத்தையும் நிர்வகிக்கத் தட்டவும்."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"அவுட்புட்டை மாற்று"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> சாதனத்தில் தற்போது இயங்குகிறது"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"இந்த நெட்வொர்க் வழங்குநருடனான உங்கள் சந்தா ரத்துசெய்யப்படலாம். தொடர்ச்சியான சந்தாக்கள் ரத்துசெய்யப்படாது. கூடுதல் தகவலுக்கு உங்கள் நெட்வொர்க் வழங்குநரைத் தொடர்புகொள்ளவும்."</string>
 </resources>
diff --git a/res/values-te/arrays.xml b/res/values-te/arrays.xml
index bf2c753..27846ef 100644
--- a/res/values-te/arrays.xml
+++ b/res/values-te/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"అంతర్జాతీయ"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMT"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index de5e0fe..35794da 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"వేరే నెట్‌వర్క్‌ను ఎంచుకోండి"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"పరికరాన్ని జోడించడం సాధ్యపడలేదు"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"పరికరం కనుగొనబడింది"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"ఈ పరికరంతో Wi‑Fiని షేర్ చేస్తోంది…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"కనెక్ట్ అవుతోంది…"</string>
     <string name="retry" msgid="6472609612090877557">"మళ్లీ ప్రయత్నించు"</string>
     <string name="wifi_shared" msgid="844142443226926070">"ఇతర పరికర వినియోగదారులతో భాగస్వామ్యం చేయి"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(మారలేదు)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"మొబైల్"</item>
     <item msgid="2838022395783120596">"Wi-Fi మాత్రమే"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fiకి ప్రాధాన్యత"</item>
     <item msgid="5074515506087318555">"మొబైల్‌కి ప్రాధాన్యత ఇవ్వబడింది"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"మొబైల్"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi కాలింగ్ ఆన్‌లో ఉన్నప్పుడు, మీ ఫోన్ మీ ప్రాధాన్యత మరియు ఏ సిగ్నల్ సామర్థ్యం ఎక్కువగా ఉంది వంటి అంశాల ఆధారంగా Wi-Fi నెట్‌వర్క్‌లు లేదా మీ క్యారియర్ నెట్‌వర్క్ ద్వారా కాల్‌లు వెళ్లేలా చేస్తుంది. ఈ ఫీచర్‌ను ఆన్ చేయడానికి ముందు, రుసుములు మరియు ఇతర వివరాల గురించి తెలుసుకోవడానికి మీ క్యారియర్‌ను సంప్రదించండి.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"అత్యవసర చిరునామా"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 నిమిషాలు"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"చదవడానికి పట్టే సమయం"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"చర్య తీసుకోవడానికి పట్టే సమయం"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"మీరు చదవాల్సిన సందేశాలను స్క్రీన్‌పై తాత్కాలికంగా ఎంతసేపు చూపాలనేది ఎంచుకోవచ్చు.\n\nఈ సెట్టింగ్‌కు అన్ని యాప్‌లలో మద్దతు ఉండదు."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"మిమ్మల్ని ఏదో ఒక చర్యని తీసుకోమంటూ, తాత్కాలికంగా స్క్రీన్‌పై కనిపించే సందేశాలు ఎంతసేపు అలాగే ఉండాలనేది ఎంచుకోవచ్చు.\n\nఈ సెట్టింగ్‌కు అన్ని యాప్‌లలో మద్దతు ఉండదు."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"తాకి ఉంచాల్సిన సమయం"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"వర్ణ విలోమం"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"బ్లూటూత్, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"బ్లూటూత్"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"యాప్‌లు &amp; నోటిఫికేషన్‌లు"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"అనుమతులు, డిఫాల్ట్ యాప్‌లు"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"కార్యాలయ ప్రొఫైల్‌లో ఉన్న యాప్‌లకు సంబంధించి నోటిఫికేషన్ యాక్సెస్ అందుబాటులో లేదు."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"ఖాతాలు"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"ఖాతాలు జోడించబడలేదు"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"విస్తార ప్రదర్శన, లాక్ స్క్రీన్ ప్రదర్శన"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"లాక్ స్క్రీన్ నోటిఫికేషన్"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"ముఖం"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"వేలిముద్ర"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"కాంతిహీన స్క్రీన్, టచ్‌స్క్రీన్, బ్యాటరీ, స్మార్ట్ ప్రకాశం, గతిశీల ప్రకాశం"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"స్క్రీన్‌ కాంతిహీనం, స్లీప్, బ్యాటరీ, గడువు ముగింపు, దృష్టి, ప్రదర్శన, స్క్రీన్, ఇనాక్టివ్‌"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"తిప్పండి, తిప్పు, పరిభ్రమణం, పోర్ట్రెయిట్, ల్యాండ్‌స్కేప్, ఓరియంటేషన్, నిలువు, అడ్డం"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"రింగర్ నిశ్శబ్దానికి సెట్ చేయబడింది"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"రింగ్ వాల్యూమ్ 80% ఉంది"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"మీడియా వాల్యూమ్"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"కాల్ వాల్యూమ్"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"అలారం వాల్యూమ్"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"రింగ్ వాల్యూమ్"</string>
@@ -3352,7 +3344,7 @@
       <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> వర్గం</item>
     </plurals>
     <string name="no_channels" msgid="3077375508177744586">"ఈ యాప్ ఏ నోటిఫికేషన్‌లను పోస్ట్ చేయలేదు"</string>
-    <string name="app_settings_link" msgid="8894946007543660906">"అనువర్తనంలో అదనపు సెట్టింగ్‌లు"</string>
+    <string name="app_settings_link" msgid="8894946007543660906">"యాప్‌లో అదనపు సెట్టింగ్‌లు"</string>
     <string name="app_notification_listing_summary_zero" msgid="8046168435207424440">"అన్ని యాప్‌లలో ఆన్ చేయబడ్డాయి"</string>
     <plurals name="app_notification_listing_summary_others" formatted="false" msgid="6709582776823665660">
       <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> యాప్‌లలో ఆఫ్ చేయబడింది</item>
@@ -4221,10 +4213,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"అంతరాయం కలిగించవద్దును అప్‌డేట్ చేయి"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"ఇతర వ్యాపకాలపై దృష్టి మరలకుండా ఉండడానికి నోటిఫికేషన్‌లను పాజ్ చేయండి"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"ఈ లక్షణం ఈ పరికరంలో అందుబాటులో లేదు"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"ఈ ఫీచర్ అందుబాటులో లేదు"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"దీని వలన ఈ ఫోన్ పనితీరు నెమ్మదిస్తుంది"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"శక్తివంతమైన GNSS కొలతలు"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"డ్యూటీ సైక్లింగ్ లేకుండా అన్ని GNSS నక్షత్రరాశులను మరియు ఫ్రీక్వెన్సీలను ట్రాక్ చేయండి"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"నేపథ్య కార్యకలాపం మొదలవ్వడానికి అనుమతి ఇవ్వు"</string>
@@ -4430,6 +4420,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> నోటిఫికేషన్ ఛానెల్‌లు. అన్నింటినీ నిర్వహించుకోవడానికి నొక్కండి."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"అవుట్‌పుట్ మార్చండి"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>లో ప్లే అవుతోంది"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ఈ ప్రదాత మీ సభ్యత్వాన్ని రద్దు చేసి ఉండవచ్చు. పునరావృతమయ్యే సభ్యత్వాలు రద్దు చేయబడవు. మరింత సమాచారం కోసం, మీ ప్రదాతను సంప్రదించండి."</string>
 </resources>
diff --git a/res/values-th/arrays.xml b/res/values-th/arrays.xml
index eb94dac..84bf280 100644
--- a/res/values-th/arrays.xml
+++ b/res/values-th/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"ทั่วโลก"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 4ff4705..d78a626 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"เลือกเครือข่ายอื่น"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"เพิ่มอุปกรณ์ไม่ได้"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"พบอุปกรณ์แล้ว"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"กำลังแชร์ Wi‑Fi กับอุปกรณ์เครื่องนี้…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"กำลังเชื่อมต่อ…"</string>
     <string name="retry" msgid="6472609612090877557">"ลองอีกครั้ง"</string>
     <string name="wifi_shared" msgid="844142443226926070">"แชร์กับผู้ใช้อุปกรณ์คนอื่นๆ"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(ไม่เปลี่ยน)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"อินเทอร์เน็ตมือถือ"</item>
     <item msgid="2838022395783120596">"Wi-Fi เท่านั้น"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"ต้องการใช้ Wi-Fi"</item>
     <item msgid="5074515506087318555">"ต้องการใช้อินเทอร์เน็ตมือถือ"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"อินเทอร์เน็ตมือถือ"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"เมื่อเปิดการโทรผ่าน Wi-Fi โทรศัพท์จะกำหนดเส้นทางการโทรผ่านเครือข่าย Wi-Fi หรือเครือข่ายของผู้ให้บริการได้ ทั้งนี้ขึ้นอยู่กับค่ากำหนดของคุณและสัญญาณฝั่งที่แรงกว่า โปรดสอบถามค่าธรรมเนียมและรายละเอียดอื่นๆ กับผู้ให้บริการก่อนที่จะเปิดฟีเจอร์นี้<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"ที่อยู่ฉุกเฉิน"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 นาที"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"เวลาในการอ่าน"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"เวลาในการดำเนินการ"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"เลือกระยะเวลาแสดงข้อความที่คุณต้องการอ่านแต่ปรากฏเพียงชั่วคราวเท่านั้น\n\nแอปบางแอปไม่รองรับการตั้งค่านี้"</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"เลือกระยะเวลาแสดงข้อความที่ขอให้คุณดำเนินการแต่ปรากฏเพียงชั่วคราวเท่านั้น\n\nแอปบางแอปไม่รองรับการตั้งค่านี้"</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"การหน่วงเวลาด้วยการแตะค้างไว้"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"การกลับสี"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"บลูทูธ, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"บลูทูธ"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"แอปและการแจ้งเตือน"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"สิทธิ์ แอปเริ่มต้น"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"การเข้าถึงการแจ้งเตือนไม่พร้อมใช้งานสำหรบแอปในโปรไฟล์งาน"</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"บัญชี"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"ไม่ได้เพิ่มบัญชี"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"หน้าจอแอมเบียนท์ หน้าจอล็อก"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"การแจ้งเตือนในหน้าจอล็อก"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"ใบหน้า"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"ลายนิ้วมือ"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"หน้าจอสลัว หน้าจอสัมผัส แบตเตอรี่ ความสว่างอัจฉริยะ ความสว่างแบบไดนามิก"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"หรี่แสงหน้าจอ สลีป แบตเตอรี่ ระยะหมดเวลา ความสนใจ จอแสดงผล หน้าจอ ไม่มีการใช้งาน"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"หมุน, พลิก, การหมุน, แนวตั้ง, แนวนอน, การวางแนว, ตั้ง, นอน"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"ตั้งโปรแกรมสร้างเสียงเรียกเข้าเป็นโหมดเงียบแล้ว"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"ระดับเสียงเรียกเข้าที่ 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"ระดับเสียงของสื่อ"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"ระดับเสียงการโทร"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"ระดับเสียงปลุก"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"ระดับเสียงเรียกเข้า"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"อัปเดตโหมดห้ามรบกวน"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"หยุดการแจ้งเตือนชั่วคราวเพื่อไม่ให้มีสิ่งรบกวน"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"ฟีเจอร์นี้ไม่สามารถใช้ได้บนอุปกรณ์นี้"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"ฟีเจอร์นี้ไม่พร้อมใช้งาน"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"ฟีเจอร์ดังกล่าวจะทำให้โทรศัพท์เครื่องนี้ทำงานช้าลง"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"บังคับใช้การวัด GNSS เต็มรูปแบบ"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ติดตามระบบดาวเทียมและความถี่สัญญาณ GNSS ทั้งหมดโดยไม่มีการปิดพักเพื่อประหยัดพลังงาน"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"อนุญาตให้เริ่มกิจกรรมในเบื้องหลัง"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"ช่องทางการแจ้งเตือน <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ช่องทาง แตะเพื่อจัดการทั้งหมด"</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"เปลี่ยนเอาต์พุต"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"กำลังเล่นใน <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ระบบอาจยกเลิกการสมัครใช้บริการกับผู้ให้บริการรายนี้ แต่จะไม่ยกเลิกการสมัครใช้บริการที่เกิดซ้ำ โปรดตรวจสอบข้อมูลเพิ่มเติมกับผู้ให้บริการของคุณ"</string>
 </resources>
diff --git a/res/values-tl/arrays.xml b/res/values-tl/arrays.xml
index e56afcf..6950a36 100644
--- a/res/values-tl/arrays.xml
+++ b/res/values-tl/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Pangkalahatan"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index e7f8b89..abd5360 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Pumili ng ibang network"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Hindi maidagdag ang device"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Nakita ang device"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Ibinabahagi ang Wi‑Fi sa device na ito…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Kumokonekta…"</string>
     <string name="retry" msgid="6472609612090877557">"Subukang Muli"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Ibahagi sa iba pang mga user ng device"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(di-nabago)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"Mobile"</item>
     <item msgid="2838022395783120596">"Wi-Fi lang"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Mas gusto ang Wi-Fi"</item>
     <item msgid="5074515506087318555">"Mas gusto ang mobile"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Mobile"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Kapag naka-on ang pagtawag gamit ang Wi-Fi, maaaring magruta ng mga tawag ang iyong telepono sa pamamagitan ng mga Wi-Fi network o network ng iyong carrier, depende sa iyong kagustuhan at kung aling signal ang mas malakas. Bago i-on ang feature na ito, sumangguni sa iyong carrier hinggil sa mga bayarin at iba pang detalye.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Pang-emergency na Address"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minuto"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tagal ng pagbabasa"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tagal ng pag-aksyon"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Piliin kung gaano katagal ipapakita ang mga mensaheng kailangan mong basahin ngunit pansamantala lang na makikita.\n\nHindi sumusuporta sa setting na ito ang lahat ng app."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Piliin kung gaano katagal ipapakita ang mga mensaheng humihiling sa iyong umaksyon, ngunit pansamantala lang makikita.\n\nHindi lahat ng app ay sumusuporta sa setting na ito."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Pindutin nang matagal ang delay"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Pag-invert ng kulay"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Mga app at notification"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Mga pahintulot, mga default na app"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Hindi available ang access sa notification para sa mga app sa profile sa trabaho."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Mga Account"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Walang naidagdag na account"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambient na display, Display ng lock screen"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notification sa lock screen"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"mukha"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingerprint"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"madilim na screen, touchscreen, baterya, smart brightness, dynamic na liwanag"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"i-dim ang screen, mag-sleep, baterya, pag-timeout, atensyon, display, screen, kawalan ng aktibidad"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"i-rotate, i-flip, pag-rotate, portrait, landscape, oryentasyon, patayo, pahalang"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Naka-silent ang ringer"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Nasa 80% ang volume ng pag-ring"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Volume ng media"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Volume ng tawag"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Volume ng alarm"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Volume ng pag-ring"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"I-update ang Huwag Istorbohin"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"I-pause ang mga notification para manatiling nakatuon ang pansin"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Hindi available ang feature na ito sa device na ito"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Hindi available ang feature na ito"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Pababagalin nito ang teleponong ito"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Ipatupad ang kumpletong sukat ng GNSS"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Sinusubaybayan ang lahat ng constellation at dalas ng GNSS nang walang duty cycling"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Payagang magsimula ng aktibidad sa background"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> (na) notification channel. I-tap para pamahalaan ang lahat."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Output ng Switch"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Kasalukuyang nagpe-play sa <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Pwedeng makansela ang iyong subscription sa provider na ito. Hindi makakansela ang mga umuulit na subscription. Para sa higit pang impormasyon, makipag-ugnayan sa iyong provider."</string>
 </resources>
diff --git a/res/values-tr/arrays.xml b/res/values-tr/arrays.xml
index 2780ada..ccfb6c5 100644
--- a/res/values-tr/arrays.xml
+++ b/res/values-tr/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Genel"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index a29c7db..2f7fd84 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Farklı ağ seç"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Cihaz eklenemedi"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Cihaz bulundu"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Bu cihazla kablosuz bağlantı paylaşılıyor…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Bağlanıyor…"</string>
     <string name="retry" msgid="6472609612090877557">"Tekrar dene"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Diğer cihaz kullanıcılarıyla paylaş"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(değişmedi)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"Mobil"</item>
     <item msgid="2838022395783120596">"Yalnızca kablosuz"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Kablosuz bağlantı tercihli"</item>
     <item msgid="5074515506087318555">"Mobil tercihli"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Kablosuz"</item>
     <item msgid="1118703915148755405">"Mobil"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Kablosuz çağrı açık olduğunda, telefonunuz tercihinize ve hangi sinyalin daha güçlü olduğuna bağlı olarak çağrıları kablosuz ağlar veya operatörünüzün ağı üzerinden yönlendirebilir. Bu özelliği açmadan önce, ücretleri ve diğer ayrıntıları öğrenmek için operatörünüze danışın.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Acil Durum Adresi"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 dakika"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Okuma süresi"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Harekete geçme zamanı"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Okumanız gereken ancak sadece geçici olarak görüntülenen mesajların ne kadar süre gösterileceğini seçin.\n\nBu ayar tüm uygulamalar tarafından desteklenmez."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Harekete geçmenizi isteyen, ancak geçici olarak görüntülenen mesajların ne kadar süre gösterileceğini seçin.\n\nBu ayar tüm uygulamalar tarafından desteklenmez."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Dokunma ve basılı tutma süresi"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Rengi ters çevirme"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Uygulama ve bildirimler"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"İzinler, varsayılan uygulamalar"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"İş profilindeki uygulamalar için bildirim erişimi kullanılamaz."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Hesaplar"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Hiçbir hesap eklenmedi"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ekran ambiyansı, Ekran kilidi ekranı"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"kilit ekranı bildirimi"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"yüz"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"dijital parmak izi"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ekranı karartma, dokunmatik ekran, pil, akıllı parlaklık, dinamik parlakık"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"ekranı karartma, uyku, pil, zaman aşımı, ilgi, görüntü, ekran, etkin olmama"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"döndür, çevir, döndürme, portre, manzara, yön, dikey, yatay"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Telefon zili sessize ayarlandı"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Zil sesi seviyesi: %80"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Medya ses düzeyi"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Çağrı ses düzeyi"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Alarm ses düzeyi"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Zil ses düzeyi"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Rahatsız Etmeyin özelliğini güncelleyin"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Konsantrasyonunuzu bozmamak için bildirimleri duraklatın"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Bu özellik bu cihazda kullanılamıyor"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Bu özellik kullanılamıyor"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Söz konusu özellik bu telefonu yavaşlatır"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Tam GNSS ölçümlerini zorla"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Tüm GNSS takımyıldızlarını ve görev döngüsü olmayan frekansları takip et"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Arka planda başlayan işlemlere izin ver"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> bildirim kanalı. Hepsini yönetmek için dokunun."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Çıkışı değiştir"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Şu anda <xliff:g id="DEVICE_NAME">%1$s</xliff:g> cihazında oynatılıyor"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Bu sağlayıcıyla olan aboneliğiniz iptal edilebilir. Yinelenen abonelikler iptal edilmez. Daha fazla bilgi edinmek için sağlayıcınızla iletişim kurun."</string>
 </resources>
diff --git a/res/values-uk/arrays.xml b/res/values-uk/arrays.xml
index 7067510..ccb47b4 100644
--- a/res/values-uk/arrays.xml
+++ b/res/values-uk/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Загальний"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index e56bbc3..bcf0a62 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -976,10 +976,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Вибрати іншу мережу"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Не вдалося додати пристрій"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Знайдено пристрій"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Цьому пристрою надається доступ до Wi‑Fi…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"З’єднання…"</string>
     <string name="retry" msgid="6472609612090877557">"Повторити"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Надати доступ іншим користувачам пристрою"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(без змін)"</string>
@@ -1105,11 +1103,6 @@
     <item msgid="7715869266611010880">"Мобільні"</item>
     <item msgid="2838022395783120596">"Лише Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Пріоритет Wi-Fi"</item>
     <item msgid="5074515506087318555">"Пріоритет мобільної мережі"</item>
@@ -1118,10 +1111,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Мобільні"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Якщо ввімкнути Дзвінки через Wi-Fi, ваш телефон зможе спрямовувати дзвінки через мережі Wi-Fi або мережу оператора, залежно від налаштувань і потужності сигналу. Перш ніж увімкнути цю функцію, уточніть в оператора вартість послуги й інші деталі.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Екстрена адреса"</string>
@@ -2098,8 +2087,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 хвилини"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Час на читання"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Час на виконання дії"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Виберіть, як довго показувати тимчасово видимі повідомлення, які потрібно прочитати.\n\nНе всі додатки підтримують це налаштування."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Виберіть, як довго показувати тимчасово видимі повідомлення із закликом до дії.\n\nНе всі додатки підтримують це налаштування."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Затримка натискання й утримування"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Інверсія кольорів"</string>
@@ -3094,7 +3082,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Додатки та сповіщення"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Дозволи та додатки за умовчанням"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Додатки в робочому профілі не мають доступу до сповіщень."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Облікові записи"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Облікових записів не додано"</string>
@@ -3157,7 +3146,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Активний екран, заблокований екран"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"сповіщення на заблокованому екрані"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"обличчя"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"відбиток пальця"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"затемнений екран, сенсорний екран, акумулятор, розумна яскравість, динамічна яскравість"</string>
     <!-- no translation found for keywords_display_adaptive_sleep (6865504720946121402) -->
     <skip />
@@ -3191,6 +3181,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Звук дзвінка вимкнено"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Гучність дзвінка: 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Гучність медіа"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Гучність виклику"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Гучність будильника"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Гучність дзвінка"</string>
@@ -4383,10 +4375,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Оновити режим \"Не турбувати\""</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Призупинити сповіщення, щоб не відволікатися"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Ця функція недоступна на цьому пристрої"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Ця функція недоступна"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Це сповільнить роботу телефона"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Увімкнути повне вимірювання GNSS"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Відстежувати всі фотосхеми й частоти GNSS без застосування циклічного режиму"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Починати дії у фоновому режимі"</string>
@@ -4596,6 +4586,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"Кількість каналів сповіщень: <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Торкніться, щоб керувати всіма."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Виберіть вихід"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Зараз відтворюється на пристрої <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Вашу підписку на послуги цього постачальника може бути скасовано. Повторювані підписки не буде скасовано. Щоб дізнатися більше, зв’яжіться зі своїм постачальником."</string>
 </resources>
diff --git a/res/values-ur/arrays.xml b/res/values-ur/arrays.xml
index 6cbda57..38c4fce 100644
--- a/res/values-ur/arrays.xml
+++ b/res/values-ur/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"عالمی"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index b01b914..7d06f0d 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"مختلف نیٹ ورک منتخب کریں"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"آلہ شامل نہیں کیا جا سکا"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"آلہ ملا"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"‏اس آلہ کے ساتھ Wi‑Fi کا اشتراک کیا جا رہا ہے…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"منسلک ہو رہا ہے…"</string>
     <string name="retry" msgid="6472609612090877557">"پھر کوشش کریں"</string>
     <string name="wifi_shared" msgid="844142443226926070">"دوسرے آلہ صارفین کے ساتھ اشتراک کریں"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(غیر تبدیل شدہ)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"موبائل"</item>
     <item msgid="2838022395783120596">"‏صرف Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"‏Wi-Fi ترجیحی"</item>
     <item msgid="5074515506087318555">"موبائل ترجیحی"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"موبائل"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"‏Wi-Fi کالنگ آن ہونے پر، آپ کا فون آپ کی ترجیح اور زیادہ مضبوط سگنل کی بنیاد پر کالز کو Wi-Fi یا آپ کے کیریئر نیٹ ورک کے ذریعہ روٹ کر سکتا ہے۔ اس خصوصیت کو آن کرنے سے پہلے، فیس اور دیگر تفصیلات کے لیے اپنے کیریئر سے رابطہ کریں۔<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"ہنگامی پتہ"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 منٹ"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"پڑھنے کا وقت"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"کارروائی کرنے کا وقت"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"ان پیغامات کو دکھانے کی مدت منتخب کریں جسے آپ پڑھنا چاہتے ہیں، لیکن عارضی طور پر دکھائی دیتے ہیں۔\n\nسبھی ایپس اس ترتیب کا تعاون نہیں کرتی ہیں۔"</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"ان پیغامات کو دکھانے کی مدت منتخب کریں جو آپ سے کارروائی کرنے کا مطالبہ کرتے ہیں، لیکن عارضی طور پر دکھائی دیتے ہیں۔\n\nسبھی ایپس اس ترتیب کا تعاون نہیں کرتی ہیں۔"</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"چھونے اور دبائے رکھنے کا وقفہ"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"رنگ میں تبدیلی"</string>
@@ -3004,7 +2992,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"‏بلوٹوتھ، NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"بلوٹوتھ"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"ایپس اور اطلاعات"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"اجازتیں، ڈیفالٹ ایپس"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"دفتری پروفائل میں ایپس کو اطلاع تک رسائی حاصل نہیں ہے۔"</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"اکاؤنٹس"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"کوئی اکاؤنٹ شامل نہیں ہے"</string>
@@ -3067,7 +3056,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"ايمبيئنٹ ڈسپلے، لاک اسکرین ڈسپلے"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"مقفل اسکرین کی اطلاع"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"چہرہ"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"فنگر پرنٹ"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"مدھم اسکرین، ٹچ اسکرین، بیٹری، اسمارٹ چمک، ڈائنیمک چمک"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"مدھم اسکرین، سلیپ وضع، بیٹری، ٹائم آؤٹ، توجہ، ڈسپلے، اسکرین، غیر فعالیت"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"گھمانا، پلٹنا، گردش، پورٹریٹ، لینڈ اسکیپ، سمت بندی، عمودی، افقی"</string>
@@ -3100,6 +3090,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"رنگر خاموش پر سیٹ ہو گیا"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"‏رنگ والیوم ‎80%‎ پر ہے"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"میڈیا والیوم"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"کال کا والیوم"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"الارم والیوم"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"رنگ والیوم"</string>
@@ -4217,10 +4209,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"\'ڈسٹرب نہ کریں\' کو اپ ڈیٹ کریں"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"متوجہ رہنے کے لیے اطلاعات موقوف کریں"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"یہ خصوصیت اس آلہ میں دستیاب نہیں ہے"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"یہ خصوصیت دستیاب نہیں ہے"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"اس سے فون کی رفتار سست ہوجائے گی"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"‏مکمل GNSS پیمائشوں کو زبردستی لاگو کریں"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"‏ڈیوٹی سائیکلنگ کے بغیر سبھی GNSS مجموعوں اور کثرتوں کو ٹریک کریں"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"پس منظر کی سرگرمی شروع ہونے دیں"</string>
@@ -4426,6 +4416,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> اطلاع کے چینلز۔ تمام کا نظم کرنے کے لیے تھپتھپائیں۔"</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"آؤٹ پٹ سوئچ کریں"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"فی الوقت <xliff:g id="DEVICE_NAME">%1$s</xliff:g> پر چلایا جا رہا ہے"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"آپ کی سبسکرپشن اس فراہم کنندہ کے ساتھ منسوخ کی جا سکتی ہے۔ اعادی سبسکرپشنز منسوخ نہیں کی جائیں گی۔ مزید معلومات کے لیے، اپنے فراہم کنندہ کے ساتھ چیک کریں۔"</string>
 </resources>
diff --git a/res/values-uz/arrays.xml b/res/values-uz/arrays.xml
index 11d465c..9def8b1 100644
--- a/res/values-uz/arrays.xml
+++ b/res/values-uz/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Global"</item>
     <item msgid="817971827645657949">"LTE / CDMA"</item>
     <item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 3f32fc9..f471de4 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Boshqa tarmoqni tanlash"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Qurilma kirtilmadi"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Qurilma topildi"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Wi‑Fi bu qurilma bilan ulashilmoqda…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Ulanmoqda…"</string>
     <string name="retry" msgid="6472609612090877557">"Qaytadan"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Qurilmaning boshqa foydalanuvchilari bilan ulashish"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(o‘zgartirilmagan)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"Mobil"</item>
     <item msgid="2838022395783120596">"Faqat Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi afzal ko‘rilsin"</item>
     <item msgid="5074515506087318555">"Mobil internet afzalligi"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Mobil"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi chaqiruv xizmati yoniqligida telefoningiz signal quvvatiga asoslanib Wi-Fi tarmoqlari yoki mobil internet orqali chaqiruvlarni amalga oshiradi. Ushbu xizmatni yoqib qoʻyishdan oldin oʻz mobil operatoringizdan narxlar va tafsilotlarni surishtirib oling.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Favqulodda holatlardagi manzili"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 daqiqa"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Oʻqish uchun vaqt"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Amal bajarish uchun vaqt"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Oʻqish talab qiladigan vaqtinchalik xabarlar qancha vaqt chiqishi kerakligini tanlang.\n\nAyrim ilovalarda bu parametr ishlamasligi mumkin."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Amal bajarishni talab qiladigan vaqtinchalik xabarlar qancha vaqt chiqishi kerakligini tanlang.\n\nAyrim ilovalarda bu parametr ishlamasligi mumkin."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Bosganda va bosib turganda kechikish"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Ranglarni akslantirish"</string>
@@ -3022,7 +3010,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Ilovalar va bildirishnomalar"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Ruxsatlar, birlamchi ilovalar"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Ishchi profildagi ilovalarga bildirishnomalar ruxsati berilmagan."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Hisoblar"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Hech qanday hisobga kirilmagan"</string>
@@ -3085,7 +3074,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ekranning avtomatik yonishi, ekran qulfi"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"qulflangan ekrandagi bildirishnoma"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"yuz"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"barmoq izi"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"xira ekran, sensorli ekran, batareya, smart yorqinlik, dinamik yorqinlik"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"ekranni xiralashtirish, uyqu, batareya, tanaffus, qurilmadan foydalanish, monitor, ekran, harakatsizlik"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"burish, aylantirish, burilish, tik, yoqish, holat, portret, peyzaj"</string>
@@ -3118,6 +3108,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Qo‘ng‘iroq ovozi o‘chirilgan"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Qo‘ng‘iroq ovozi balandligi: 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Multimedia tovushi"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Chaqiruv tovushi"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Signal tovushi balandligi"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Rington"</string>
@@ -4235,10 +4227,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Bezovta qilinmasin rejimini yoqing"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Bezovta qiluvchi bildirishnomalarni pauza qiling"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Bu funksiya ushbu qurilmada ishlamaydi"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Bu funksiya ishlamaydi"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Bunda telefon sekinlashi mumkin"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Butun GNSS statistikasini yuklash"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Siklsiz barcha GNSS sxema va davriyliklarini kuzatish"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Orqa fonda ishga tushirishga ruxsat berish"</string>
@@ -4444,6 +4434,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ta bildirishnomalar kanali. Barchasini boshqarish uchun bosing."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Audiochiqishni almashtirish"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Hozirda <xliff:g id="DEVICE_NAME">%1$s</xliff:g> qurilmasida ijro etilmoqda"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Bu provayder obunasi bekor qilinishi mumkin. Obunalarni takrorlash bekor qilinmaydi. Batafsil axborot olish uchun provayderingizni tekshiring."</string>
 </resources>
diff --git a/res/values-vi/arrays.xml b/res/values-vi/arrays.xml
index 920f121..84ad454 100644
--- a/res/values-vi/arrays.xml
+++ b/res/values-vi/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Toàn cầu"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index e924bb2..b048316 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -944,10 +944,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Chọn mạng khác"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Không thể thêm thiết bị"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Đã tìm thấy thiết bị"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Chia sẻ Wi‑Fi với thiết bị này…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Đang kết nối…"</string>
     <string name="retry" msgid="6472609612090877557">"Thử lại"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Chia sẻ với những người khác cũng dùng thiết bị này"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(không thay đổi)"</string>
@@ -1071,11 +1069,6 @@
     <item msgid="7715869266611010880">"Di động"</item>
     <item msgid="2838022395783120596">"Chỉ Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Ưu tiên Wi-Fi"</item>
     <item msgid="5074515506087318555">"Được ưu tiên trên thiết bị di động"</item>
@@ -1084,10 +1077,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"Di động"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Khi bạn bật tính năng gọi qua Wi-Fi, điện thoại có thể định tuyến cuộc gọi qua mạng Wi-Fi hoặc mạng của nhà mạng, tùy thuộc vào tùy chọn của bạn và tín hiệu nào mạnh hơn. Trước khi bật tính năng này, hãy hỏi nhà mạng của bạn về cước phí và các chi tiết khác.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Địa chỉ khẩn cấp"</string>
@@ -2058,8 +2047,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 phút"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Thời gian đọc"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Thời gian thực hiện hành động"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Chọn thời lượng hiển thị thông báo mà bạn cần đọc nhưng chỉ hiển thị tạm thời.\n\nKhông phải tất cả ứng dụng đều hỗ trợ tùy chọn cài đặt này."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Chọn thời lượng hiển thị thông báo yêu cầu bạn thực hiện hành động nhưng chỉ hiển thị tạm thời.\n\nKhông phải tất cả ứng dụng đều hỗ trợ tùy chọn cài đặt này."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Thời gian chờ cho chạm và giữ"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Đảo màu"</string>
@@ -3014,7 +3002,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Ứng dụng và thông báo"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Quyền, ứng dụng mặc định"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Trong hồ sơ công việc, các ứng dụng không có quyền truy cập vào mục thông báo."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Tài khoản"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Chưa thêm tài khoản nào"</string>
@@ -3077,7 +3066,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Màn hình sáng, Màn hình ở chế độ màn hình khóa"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"thông báo trên màn hình khóa"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"khuôn mặt"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"vân tay"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"làm mờ màn hình, màn hình cảm ứng, pin, độ sáng thông minh, độ sáng động"</string>
     <!-- no translation found for keywords_display_adaptive_sleep (6865504720946121402) -->
     <skip />
@@ -3111,6 +3101,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Đã đặt chuông thành im lặng"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Âm lượng chuông ở mức 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Âm lượng phương tiện"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Âm lượng cuộc gọi"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Âm lượng báo thức"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Âm lượng chuông"</string>
@@ -4231,10 +4223,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Cập nhật chế độ Không làm phiền"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Tạm dừng thông báo để tập trung"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Không sử dụng được tính năng này trên thiết bị này"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Tính năng này chưa được cung cấp"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Tính năng này sẽ làm giảm tốc độ điện thoại"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Thực thi số đo GNSS đầy đủ"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Theo dõi tất cả chòm sao và tần suất GNSS mà không có chu kỳ làm việc"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Cho phép các lượt bắt đầu hoạt động trong nền"</string>
@@ -4438,6 +4428,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> kênh thông báo. Nhấn để quản lý tất cả."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Chuyển đổi đầu ra"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Hiện đang phát trên <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Gói đăng ký của bạn với nhà cung cấp này có thể bị hủy. Các gói đăng ký định kỳ sẽ không bị hủy. Để biết thêm thông tin, hãy kiểm tra với nhà cung cấp của bạn."</string>
 </resources>
diff --git a/res/values-zh-rCN/arrays.xml b/res/values-zh-rCN/arrays.xml
index 9e80ed5..2ab8621 100644
--- a/res/values-zh-rCN/arrays.xml
+++ b/res/values-zh-rCN/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"通用"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index c3c8912..3be9c58 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"选择其他网络"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"无法添加设备"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"找到设备"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"正在与此设备分享 WLAN…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"正在连接…"</string>
     <string name="retry" msgid="6472609612090877557">"重试"</string>
     <string name="wifi_shared" msgid="844142443226926070">"与其他设备用户共享"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"（未更改）"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"移动数据"</item>
     <item msgid="2838022395783120596">"仅限 WLAN"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"首选 WLAN"</item>
     <item msgid="5074515506087318555">"首选移动数据网络"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"WLAN"</item>
     <item msgid="1118703915148755405">"移动数据"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"开启“WLAN 通话”功能后，您的手机可根据偏好设置并视信号强弱来选择通过 WLAN 网络或运营商网络来进行通话。开启此功能之前，请先向您的运营商咨询收费情况及其他详情。<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"紧急联系地址"</string>
@@ -2054,8 +2043,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 分钟"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"阅读时间"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"执行操作时间"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"请选择您需要阅读的消息的显示时间（只会暂时显示）。\n\n只有部分应用支持这项设置。"</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"请选择提示您执行操作的消息的显示时间（只会暂时显示）。\n\n部分应用可能不支持这项设置。"</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"触摸和按住延迟"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"颜色反转"</string>
@@ -3006,7 +2994,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"蓝牙、NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"蓝牙"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"应用和通知"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"权限、默认应用"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"工作资料中的应用无法访问通知。"</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"帐号"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"未添加任何帐号"</string>
@@ -3069,7 +3058,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"主动显示, 锁定屏幕显示"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"锁定屏幕通知"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"面孔"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"指纹"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"降低屏幕亮度, 触摸屏, 电池, 智能亮度, 动态亮度"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"调暗屏幕, 休眠, 电池, 超时, 注意力, 显示, 屏幕, 闲置"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"旋转, 翻转, 纵向, 横向, 屏幕方向, 垂直, 水平"</string>
@@ -3102,6 +3092,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"振铃器已设为静音"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"铃声音量为 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"媒体音量"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"通话音量"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"闹钟音量"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"铃声音量"</string>
@@ -4219,10 +4211,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"更新勿扰模式"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"暂停通知即可保持专注"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"该设备不支持此功能"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"此功能不可用"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"这会降低这部手机的速度"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"强制启用 GNSS 测量结果全面跟踪"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"在停用工作周期的情况下跟踪所有 GNSS 星座和频率"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"允许系统执行后台活动"</string>
@@ -4428,6 +4418,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> 个通知渠道。点按即可管理全部。"</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"切换输出"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"目前正在<xliff:g id="DEVICE_NAME">%1$s</xliff:g>上播放"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"您通过此提供方订阅的内容可能会被取消。周期性订阅内容不会被取消。如需了解详情，请咨询您的提供方。"</string>
 </resources>
diff --git a/res/values-zh-rHK/arrays.xml b/res/values-zh-rHK/arrays.xml
index 4a74bcd..1c75201 100644
--- a/res/values-zh-rHK/arrays.xml
+++ b/res/values-zh-rHK/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"全球"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index f8aace4..fba156d 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"選擇其他網絡"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"無法新增裝置"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"找到裝置"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"正在與此裝置分享 Wi-Fi…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"連接中…"</string>
     <string name="retry" msgid="6472609612090877557">"重試"</string>
     <string name="wifi_shared" msgid="844142443226926070">"與其他裝置使用者分享"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(未變更)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"流動網絡"</item>
     <item msgid="2838022395783120596">"只限 Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"首選 Wi-Fi"</item>
     <item msgid="5074515506087318555">"流動網絡優先"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"流動網絡"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"當開啟 Wi-Fi 通話時，您的手機可根據偏好設定及訊號強弱，選擇使用 Wi-Fi 網絡或流動網絡供應商的網絡安排來電轉駁。開啟此功能前，請向您的流動網絡供應商查詢收費及其他詳情。<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"緊急地址"</string>
@@ -2055,8 +2044,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 分鐘"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"閱讀時間"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"處理時間"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"對於待讀訊息，選擇顯示時間 (只會暫時顯示)。\n\n只有部分應用程式支援此設定。"</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"對於您要處理的訊息，選擇顯示時間 (只會暫時顯示)。\n\n只有部分應用程式支援此設定。"</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"輕觸並按住延遲"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"色彩反轉"</string>
@@ -3007,7 +2995,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"藍牙、NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"藍牙"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"應用程式和通知"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"權限、預設應用程式"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"工作設定檔中的應用程式無法存取通知設定。"</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"帳戶"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"未新增任何帳戶"</string>
@@ -3070,7 +3059,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"環境顯示，上鎖畫面顯示"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"上鎖畫面通知"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"臉孔"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"指紋"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"螢幕變暗, 觸控螢幕, 電池, 智能亮度, 動態亮度"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"調暗螢幕, 休眠, 電池, 逾時, 注意, 顯示屏, 螢幕, 閒置"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"旋轉, 翻轉, 旋轉, 直向, 橫向, 屏幕定向, 垂直, 水平"</string>
@@ -3103,6 +3093,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"響鈴設定為靜音"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"鈴聲音量為 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"媒體音量"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"通話音量"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"鬧鐘音量"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"鈴聲音量"</string>
@@ -4220,10 +4212,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"更新請勿騷擾模式"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"暫停通知，助您保持專注"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"這部裝置不支援此功能"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"無法使用此功能"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"此功能會減慢這部手機的運作速度"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"強制啟用完整的 GNSS 測量資料"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"在停用工作週期的情況下追蹤所有 GNSS 星座圖和頻率"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"允許啟動背景活動"</string>
@@ -4429,6 +4419,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> 個通知渠道。輕按即可管理所有渠道。"</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"切換輸出"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"目前正在「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」上播放"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"您透過此供應商訂閱的內容或會取消。定期訂閱不會取消。如需瞭解更多資訊，請聯絡您的供應商。"</string>
 </resources>
diff --git a/res/values-zh-rTW/arrays.xml b/res/values-zh-rTW/arrays.xml
index fa57efd..fa4d11a 100644
--- a/res/values-zh-rTW/arrays.xml
+++ b/res/values-zh-rTW/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"通用"</item>
     <item msgid="817971827645657949">"LTE/CDMA"</item>
     <item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 2231dd6..7dc0e82 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -944,10 +944,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"選擇其他網路"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"無法新增裝置"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"找到裝置"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"正在與這個裝置分享 Wi‑Fi…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"連線中…"</string>
     <string name="retry" msgid="6472609612090877557">"重試"</string>
     <string name="wifi_shared" msgid="844142443226926070">"與裝置的其他使用者共用"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(未變更)"</string>
@@ -1071,11 +1069,6 @@
     <item msgid="7715869266611010880">"行動網路"</item>
     <item msgid="2838022395783120596">"僅限 Wi-Fi"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Wi-Fi 優先"</item>
     <item msgid="5074515506087318555">"行動網路優先"</item>
@@ -1084,10 +1077,6 @@
     <item msgid="6132150507201243768">"Wi-Fi"</item>
     <item msgid="1118703915148755405">"行動網路"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"開啟 Wi-Fi 通話功能之後，你的手機可依據你的偏好設定，透過 Wi-Fi 網路或你電信業者的網路通話 (選擇訊號較強者)。開啟這項功能前，請先與你的電信業者詢問費用與其他細節。<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"緊急地址"</string>
@@ -2058,8 +2047,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 分鐘"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"可閱讀的時間"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"可進行操作的時間"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"選擇你需要閱讀的訊息會暫時顯示多久。\n\n只有部分應用程式支援這項設定。"</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"選擇要求你進行操作的訊息會暫時顯示多久。\n\n只有部分應用程式支援這項設定。"</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"輕觸並按住的延遲時間"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"色彩反轉"</string>
@@ -3014,7 +3002,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"藍牙、NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"藍牙"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"應用程式和通知"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"權限、預設應用程式"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"這個工作資料夾中的應用程式無法存取通知。"</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"帳戶"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"未新增任何帳戶"</string>
@@ -3077,7 +3066,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"微光螢幕, 螢幕鎖定畫面"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"螢幕鎖定通知"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"臉孔"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"指紋"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"調暗螢幕, 觸控螢幕, 電池, 智慧型亮度, 動態亮度"</string>
     <!-- no translation found for keywords_display_adaptive_sleep (6865504720946121402) -->
     <skip />
@@ -3111,6 +3101,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"鈴聲已設為靜音"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"鈴聲音量為 80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"媒體音量"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"通話音量"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"鬧鐘音量"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"鈴聲音量"</string>
@@ -4231,10 +4223,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"更新「零打擾」模式"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"暫停通知以保持專注"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"這個裝置不支援此功能"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"無法使用這項功能"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"這會減慢這支手機的速度"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"強制啟用完整的 GNSS 測量資料"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"在停用工作週期的情況下追蹤所有 GNSS 星座圖和頻率"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"允許系統執行背景活動"</string>
@@ -4438,6 +4428,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> 個通知管道。輕觸即可管理所有通知管道。"</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"切換輸出裝置"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"目前正在「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」上播放"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"你透過這個供應商訂閱的項目可能會遭到取消。週期性訂閱項目不會遭到取消。如需更多資訊，請洽詢你的供應商。"</string>
 </resources>
diff --git a/res/values-zu/arrays.xml b/res/values-zu/arrays.xml
index ec2f9aa..861691f 100644
--- a/res/values-zu/arrays.xml
+++ b/res/values-zu/arrays.xml
@@ -522,18 +522,9 @@
     <item msgid="8753271080005095725">"I-RUIM/SIM"</item>
     <item msgid="2214656470548320124">"NV"</item>
   </string-array>
-  <string-array name="cdma_subscription_values">
-    <item msgid="3697517500945829780">"0"</item>
-    <item msgid="8113210705878681550">"1"</item>
-  </string-array>
   <string-array name="preferred_network_mode_choices_world_mode">
     <item msgid="1054992858056320116">"Okomhlaba jikelele"</item>
     <item msgid="817971827645657949">"I-LTE / CDMA"</item>
     <item msgid="519208953133334357">"I-LTE / GSM / UMTS"</item>
   </string-array>
-  <string-array name="preferred_network_mode_values_world_mode">
-    <item msgid="3904215366284600030">"10"</item>
-    <item msgid="4187053702071521357">"8"</item>
-    <item msgid="5461421967189969022">"9"</item>
-  </string-array>
 </resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 5ee711d..c75fbb0 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -940,10 +940,8 @@
     <string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Khetha inethiwekhi ehlukile"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Ayikwazanga ukungeza idivayisi"</string>
     <string name="wifi_dpp_device_found" msgid="8618134150169810107">"Idivayisi itholiwe"</string>
-    <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
-    <skip />
+    <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Yabelana nge-Wi‑Fi ngale divayisi…"</string>
+    <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Iyaxhuma…"</string>
     <string name="retry" msgid="6472609612090877557">"Zama futhi"</string>
     <string name="wifi_shared" msgid="844142443226926070">"Yabelana nabanye abasebenzisi bedivayisi"</string>
     <string name="wifi_unchanged" msgid="3410422020930397102">"(akushintshiwe)"</string>
@@ -1067,11 +1065,6 @@
     <item msgid="7715869266611010880">"Iselula"</item>
     <item msgid="2838022395783120596">"I-Wi-Fi kuphela"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values">
-    <item msgid="4799585830102342375">"2"</item>
-    <item msgid="1171822231056612021">"1"</item>
-    <item msgid="3194458950573886239">"0"</item>
-  </string-array>
   <string-array name="wifi_calling_mode_choices_without_wifi_only">
     <item msgid="5782108782860004851">"Kuncanyelwa i-Wi-Fi"</item>
     <item msgid="5074515506087318555">"Kuncanyelwa iselula"</item>
@@ -1080,10 +1073,6 @@
     <item msgid="6132150507201243768">"I-Wi-Fi"</item>
     <item msgid="1118703915148755405">"Iselula"</item>
   </string-array>
-  <string-array name="wifi_calling_mode_values_without_wifi_only">
-    <item msgid="2339246858001475047">"2"</item>
-    <item msgid="6200207341126893791">"1"</item>
-  </string-array>
     <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Uma kuvulwe ukushaya kwe-Wi-Fi, ifoni yakho ingahambisa amakholi ngamanethiwekhi e-Wi-Fi kunethiwekhi yenkampani yakho yenethiwekhi, ngokuya ngokuncamelayo nokuthi iyiphi isignali eqinile. Ngaphambi kokuthi uvule lesi sici, hlola nenkampani yakho yenethiwekhi ngokuphathelene nezinkokhiso kanye neminye imininingwane. <xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
     <string name="emergency_address_title" msgid="932729250447887545">"Ikheli eliphuthumayo"</string>
@@ -2055,8 +2044,7 @@
     <string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 amaminithi"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Isikhathi sokufunda"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Isikhathi sokwenza isenzo"</string>
-    <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
-    <skip />
+    <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Khetha ukuthi ungabonisa kangakanani imilayezo okumele uyifunde, kodwa ebonakala kuphela okwesikhashana.\n\nAkuzona zonke izinhlelo zokusebenza ezisekela lesi silungiselelo."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Khetha ukuthi imilayezo izoboniswa isikhathi esingakanani ekucela ukuthi wenze isenzo, kodwa ebonakala kuphela okwesikhashana.\n\nAkuzona zonke izinhlelo zokusebenza ezisekela lesi silungiselelo."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Thinta futhi ukulibazisa"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Ukuguqulwa kombala"</string>
@@ -3007,7 +2995,8 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"I-Bluetooth, i-NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"I-Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Izinhlelo zokusebenza nezaziso"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Izimvume, izinhlelo zokusebenza ezienzakalelayo"</string>
+    <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+    <skip />
     <string name="notification_settings_work_profile" msgid="3186757479243373003">"Ukufinyelela kwesaziso akutholakaleli izinhelo zokusebenza kuphrofayela yomsebenzi."</string>
     <string name="account_dashboard_title" msgid="5895948991491438911">"Ama-akhawunti"</string>
     <string name="account_dashboard_default_summary" msgid="3998347400161811075">"Awekho ama-akhawunti angeziwe"</string>
@@ -3070,7 +3059,8 @@
     <string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Isibonisi se-Ambient, isibonisi sesikrini sokukhiya"</string>
     <string name="keywords_lock_screen_notif" msgid="6610464036497568711">"isaziso sokukhiya isikrini"</string>
     <string name="keywords_face_settings" msgid="7505388678116799329">"ubuso"</string>
-    <string name="keywords_fingerprint_settings" msgid="239222512315619538">"izigxivizo zeminwe"</string>
+    <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+    <skip />
     <string name="keywords_display_auto_brightness" msgid="4130320471533951796">"fiphalisa isikrini, isikrini esithintwayo, ibhethri, ukukhanya okuhlakaniphile, ukukhanya okuguqukayo"</string>
     <string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"fiphalisa isikrini, lala, ibhethri, isikhathi sokuvala, ukunakwa, isiboniso, ukungasebenzi kwesikrini"</string>
     <string name="keywords_auto_rotate" msgid="5620879898668211494">"zungezisa, phenya, ukupendukisa, i-portrait, i-landscape, umumo, okuqondile, okuvundlile"</string>
@@ -3103,6 +3093,8 @@
     <string name="sound_settings_summary_silent" msgid="5074529767435584948">"Ukukhala kusethelwe ukuthula"</string>
     <string name="sound_settings_example_summary" msgid="2404914514266523165">"Ivolumu yokukhalisa kokungu-80%"</string>
     <string name="media_volume_option_title" msgid="2811531786073003825">"Ivolumu yabezindaba"</string>
+    <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+    <skip />
     <string name="call_volume_option_title" msgid="1265865226974255384">"Ivolumi yocingo"</string>
     <string name="alarm_volume_option_title" msgid="8219324421222242421">"Ivolumu ye-alamu"</string>
     <string name="ring_volume_option_title" msgid="6767101703671248309">"Ivolumu yokukhala"</string>
@@ -4220,10 +4212,8 @@
     <string name="zen_suggestion_title" msgid="798067603460192693">"Buyekeza okuthi ungaphazamisi"</string>
     <string name="zen_suggestion_summary" msgid="5928686804697233014">"Misa isikhashana izikhangiso ukuze uhlale ugxilile"</string>
     <string name="disabled_low_ram_device" msgid="3751578499721173344">"Lesi sici asitholakali kule divayisi"</string>
-    <!-- no translation found for disabled_feature (2102058661071271076) -->
-    <skip />
-    <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
-    <skip />
+    <string name="disabled_feature" msgid="2102058661071271076">"Lesi sici asitholakali"</string>
+    <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Izokwehlisa le foni"</string>
     <string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Phoqa izikali ezigcwele ze-GNSS"</string>
     <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Landelela onke ama-constellation nezimvamisa ngomjikelezo ongenawo umsebenzi"</string>
     <string name="allow_background_activity_starts" msgid="4121456477541603005">"Vumela ukuqala komsebenzi ongemuva"</string>
@@ -4429,6 +4419,5 @@
     <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> iziteshi zokwazisa. Thepha ukuze uphathe konke."</string>
     <string name="media_output_panel_title" msgid="6197092814295528184">"Shintsha okukhiphayo"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Manje idlala ku-<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
-    <skip />
+    <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Okubhalisile nalo mhlinzeki kungakhanselwa. Okubhaliselwe okwenzeka ngokuvamile ngeke kuze kukhanselwe. Ukuze uthole olunye ulwazi, hlola nomhlizeki wakho."</string>
 </resources>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 03e40aa..7e0ba10 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -931,6 +931,14 @@
         <item>IPSec VPN with certificates and hybrid authentication</item>
     </string-array>
 
+    <!-- VPN proxy settings. -->
+    <string-array name="vpn_proxy_settings">
+        <!-- No HTTP proxy is used for the current VPN [CHAR LIMIT=25] -->
+        <item>None</item>
+        <!-- Manual HTTP proxy settings are used for the current VPN [CHAR LIMIT=25] -->
+        <item>Manual</item>
+    </string-array>
+
     <!-- Match this with the constants in LegacyVpnInfo. --> <skip />
     <!-- Status for a VPN network. [CHAR LIMIT=100] -->
     <string-array name="vpn_states">
@@ -1268,7 +1276,7 @@
         <item>NV</item>
     </string-array>
     <!-- Values for CDMA subscription-->
-    <string-array name="cdma_subscription_values">
+    <string-array name="cdma_subscription_values" translatable="false">
         <item>"0"</item>
         <item>"1"</item>
     </string-array>
@@ -1351,10 +1359,23 @@
         <item>LTE / GSM / UMTS</item>
     </string-array>
 
-    <string-array name="preferred_network_mode_values_world_mode">
+    <string-array name="preferred_network_mode_values_world_mode" translatable="false">
         <item>"10"</item>
         <item>"8"</item>
         <item>"9"</item>
     </string-array>
 
+    <!-- WiFi calling mode array -->
+    <string-array name="wifi_calling_mode_summaries" translatable="false">
+         <item>@string/wifi_calling_mode_wifi_preferred_summary</item>
+         <item>@string/wifi_calling_mode_cellular_preferred_summary</item>
+         <item>@string/wifi_calling_mode_wifi_only_summary</item>
+    </string-array>
+
+    <!-- WiFi calling mode array without wifi only mode -->
+    <string-array name="wifi_calling_mode_summaries_without_wifi_only" translatable="false">
+         <item>@string/wifi_calling_mode_wifi_preferred_summary</item>
+         <item>@string/wifi_calling_mode_cellular_preferred_summary</item>
+    </string-array>
+
 </resources>
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index c7bf1c7..e099cf0 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -132,6 +132,11 @@
         <attr name="aspectRatio" format="float" />
     </declare-styleable>
 
+    <declare-styleable name="ListWithEntrySummaryPreference">
+        <!-- Summaries of entry -->
+        <attr name="entrySummaries" format="reference" />
+    </declare-styleable>
+
     <!-- For UsageView -->
     <declare-styleable name="UsageView">
         <attr name="android:colorAccent" />
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 7b55a2b..0afd288 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -56,7 +56,7 @@
     <color name="material_blue_700">#3367D6</color>
     <color name="material_grey_100">#f5f5f5</color>
     <color name="material_grey_200">#ffffff</color>
-    <color name="switch_bar_background">#ff80868B</color>
+    <color name="switch_bar_background">#757575</color>
 
     <color name="message_text_incoming">#ffffffff</color>
     <color name="message_text_outgoing">#ff323232</color>
@@ -124,6 +124,11 @@
     <color name="face_anim_particle_color_4">#fffdd835</color> <!-- Material Yellow 600 -->
     <color name="face_anim_particle_error">#ff9e9e9e</color> <!-- Material Gray 500 -->
 
+    <!-- notification settings -->
+    <color name="notification_block_color">#ffff0000</color>
+    <color name="notification_silence_color">#fbbc04</color>
+    <color name="notification_alert_color">#30a751</color>
+
     <!-- launcher icon color -->
     <color name="icon_launcher_setting_color">@*android:color/accent_device_default_light</color>
 
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 4ac0db8..f5b6e95 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -68,6 +68,9 @@
     <dimen name="notification_app_icon_size">64dp</dimen>
     <dimen name="notification_app_icon_badge_size">20dp</dimen>
     <dimen name="notification_app_icon_badge_margin">4dp</dimen>
+    <dimen name="notification_importance_toggle_size">48dp</dimen>
+    <dimen name="notification_importance_toggle_marginTop">8dp</dimen>
+    <dimen name="notification_importance_toggle_marginBottom">16dp</dimen>
     <dimen name="zen_schedule_rule_checkbox_padding">7dp</dimen>
     <dimen name="zen_schedule_day_margin">17dp</dimen>
 
@@ -279,6 +282,15 @@
 
     <dimen name="password_requirement_textsize">14sp</dimen>
 
+    <!-- Visible vertical space we want to show below password edittext field when ime is shown.
+         The unit is sp as it is related to the text size of password requirement item. -->
+    <dimen name="visible_vertical_space_below_password">20sp</dimen>
+
+    <!-- Select dialog -->
+    <dimen name="select_dialog_padding_start">20dp</dimen>
+    <dimen name="select_dialog_item_margin_start">12dp</dimen>
+    <dimen name="select_dialog_summary_padding_bottom">8dp</dimen>
+
     <!-- Padding between the donut and the storage summary. -->
     <dimen name="storage_summary_padding_end">16dp</dimen>
     <!-- Text size of the big number in the donut. -->
@@ -331,7 +343,8 @@
     <dimen name="homepage_card_icon_size">24dp</dimen>
     <dimen name="homepage_card_vertical_margin">8dp</dimen>
     <dimen name="homepage_card_side_margin">4dp</dimen>
-    <dimen name="homepage_card_padding_start">16dp</dimen>
+    <dimen name="homepage_card_icon_padding_start">14dp</dimen>
+    <dimen name="homepage_card_text_padding_start">16dp</dimen>
     <dimen name="homepage_card_padding_end">16dp</dimen>
     <dimen name="homepage_full_card_padding_end">12dp</dimen>
     <dimen name="homepage_half_card_padding_top">12dp</dimen>
@@ -369,13 +382,13 @@
     <dimen name="homepage_condition_half_card_padding_top">12dp</dimen>
     <dimen name="homepage_condition_half_card_title_margin_top">12dp</dimen>
     <dimen name="homepage_condition_half_card_summary_margin_bottom">12dp</dimen>
-    <dimen name="homepage_condition_full_card_padding_start">12dp</dimen>
+    <dimen name="homepage_condition_full_card_padding_start">24dp</dimen>
     <dimen name="homepage_condition_full_card_padding_end">16dp</dimen>
     <dimen name="homepage_condition_full_card_padding_top">12dp</dimen>
     <dimen name="homepage_condition_full_card_padding_bottom">12dp</dimen>
     <dimen name="homepage_condition_header_padding_top">10dp</dimen>
     <dimen name="homepage_condition_header_padding_bottom">10dp</dimen>
-    <dimen name="homepage_condition_header_icons_margin_start">16dp</dimen>
+    <dimen name="homepage_condition_header_icons_margin_start">14dp</dimen>
     <dimen name="homepage_condition_header_indicator_padding_top">4dp</dimen>
     <dimen name="homepage_condition_header_indicator_padding_start">16dp</dimen>
     <dimen name="homepage_condition_header_indicator_padding_end">16dp</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 0d6eaeb..e4d0d11 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2157,6 +2157,10 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device">Sharing Wi\u2011Fi with this device\u2026</string>
     <!-- Hint for Wi-Fi DPP handshake running [CHAR LIMIT=NONE]  -->
     <string name="wifi_dpp_connecting">Connecting\u2026</string>
+    <!-- Title for the fragment to show that the QR code is for sharing Wi-Fi hotspot network [CHAR LIMIT=50] -->
+    <string name="wifi_dpp_share_hotspot">Share hotspot</string>
+    <!-- Hint for the user to share Wi-Fi hotspot network [CHAR LIMIT=NONE] -->
+    <string name="wifi_dpp_scan_qr_code_to_share_hotspot">Scan this QR code with another device to join hotspot \u201c<xliff:g id="ssid" example="OfficeWifi">%1$s</xliff:g>\u201d</string>
      <!-- Label for the try again button [CHAR LIMIT=20]-->
     <string name="retry">Retry</string>
     <!-- Label for the check box to share a network with other users on the same device -->
@@ -2221,6 +2225,14 @@
 
     <!-- Button label to connect to a Wi-Fi network -->
     <string name="wifi_connect">Connect</string>
+    <!-- Turned on notification for Wi-Fi [CHAR LIMIT=40] -->
+    <string name="wifi_turned_on_message">Wi\u2011Fi turned on</string>
+    <!-- Connected to notification for Wi-Fi [CHAR LIMIT=NONE] -->
+    <string name="wifi_connected_to_message">@string/bluetooth_connected_summary</string>
+    <!-- Button label to connecting progress to a Wi-Fi network [CHAR LIMIT=20] -->
+    <string name="wifi_connecting">Connecting\u2026</string>
+    <!-- Button label to disconnect to a Wi-Fi network [CHAR LIMIT=NONE] -->
+    <string name="wifi_disconnect">@string/bluetooth_device_context_disconnect</string>
     <!-- Failured notification for connect -->
     <string name="wifi_failed_connect_message">Failed to connect to network</string>
     <!-- Button label to delete a Wi-Fi network -->
@@ -2266,6 +2278,10 @@
 
     <!-- Wifi saved access points.  Used as a label under the shortcut icon that goes to Wifi saved access points. [CHAR LIMIT=20] -->
     <string name="wifi_saved_access_points_label">Saved networks</string>
+    <!-- Tab title for showing subscribed WiFi access points. [CHAR LIMIT=20] -->
+    <string name="wifi_subscribed_access_points_tab">Subscriptions</string>
+    <!-- Tab title for showing saved WiFi access points. -->
+    <string name="wifi_saved_access_points_tab">@string/wifi_access_points</string>
     <!-- Wifi Advanced settings.  Used as a label under the shortcut icon that goes to Wifi advanced settings. [CHAR LIMIT=20] -->
     <string name="wifi_advanced_settings_label">IP settings</string>
     <!-- Error message for users that aren't allowed to see or modify WiFi advanced settings [CHAR LIMIT=NONE] -->
@@ -2374,8 +2390,6 @@
     <string name="wifi_hotspot_configure_ap_text_summary">AndroidAP WPA2 PSK hotspot</string>
     <!-- Default access point SSID used for tethering -->
     <string name="wifi_tether_configure_ssid_default">AndroidHotspot</string>
-    <!-- Summary text when hotspot is disabled because airplane mode is on [CHAR LIMIT=80]-->
-    <string name="wifi_tether_disabled_by_airplane">Unavailable because airplane mode is turned on</string>
 
     <!-- Do not translate. Used for diagnostic screens, precise translation is not necessary
          Wi-Fi Testing on the diagnostic screen-->
@@ -2472,7 +2486,7 @@
     <!-- Title of WFC preference item [CHAR LIMIT=30] -->
     <string name="wifi_calling_mode_title">Calling preference</string>
     <!-- Title of WFC preference selection dialog [CHAR LIMIT=30] -->
-    <string name="wifi_calling_mode_dialog_title">Wi-Fi calling mode</string>
+    <string name="wifi_calling_mode_dialog_title">Calling preference</string>
     <!-- Title of WFC roaming preference item [CHAR LIMIT=45] -->
     <string name="wifi_calling_roaming_mode_title">Roaming preference</string>
     <!-- Summary of WFC roaming preference item [CHAR LIMIT=NONE]-->
@@ -2480,32 +2494,40 @@
     <!-- WFC mode dialog [CHAR LIMIT=45] -->
     <string name="wifi_calling_roaming_mode_dialog_title">Roaming preference</string>
     <string-array name="wifi_calling_mode_choices">
-        <item>Wi-Fi preferred</item>
-        <item>Mobile preferred</item>
-        <item>Wi-Fi only</item>
+        <item>@*android:string/wfc_mode_wifi_preferred_summary</item>
+        <item>@*android:string/wfc_mode_cellular_preferred_summary</item>
+        <item>@*android:string/wfc_mode_wifi_only_summary</item>
     </string-array>
     <string-array name="wifi_calling_mode_choices_v2">
         <item>Wi-Fi</item>
         <item>Mobile</item>
         <item>Wi-Fi only</item>
     </string-array>
-    <string-array name="wifi_calling_mode_values">
+    <string-array name="wifi_calling_mode_values" translatable="false">
         <item>"2"</item>
         <item>"1"</item>
         <item>"0"</item>
     </string-array>
     <string-array name="wifi_calling_mode_choices_without_wifi_only">
-        <item>Wi-Fi preferred</item>
-        <item>Mobile preferred</item>
+        <item>@*android:string/wfc_mode_wifi_preferred_summary</item>
+        <item>@*android:string/wfc_mode_cellular_preferred_summary</item>
     </string-array>
     <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
         <item>Wi-Fi</item>
         <item>Mobile</item>
     </string-array>
-    <string-array name="wifi_calling_mode_values_without_wifi_only">
+    <string-array name="wifi_calling_mode_values_without_wifi_only" translatable="false">
         <item>"2"</item>
         <item>"1"</item>
     </string-array>
+
+    <!-- Summary of WFC preference item on the WFC preference selection dialog. [CHAR LIMIT=70]-->
+    <string name="wifi_calling_mode_wifi_preferred_summary">If Wi\u2011Fi is unavailable, use mobile network</string>
+    <!-- Summary of WFC preference item on the WFC preference selection dialog. [CHAR LIMIT=70]-->
+    <string name="wifi_calling_mode_cellular_preferred_summary">If mobile network is unavailable, use Wi\u2011Fi</string>
+    <!-- Summary of WFC preference item on the WFC preference selection dialog. [CHAR LIMIT=70]-->
+    <string name="wifi_calling_mode_wifi_only_summary">Call over Wi\u2011Fi. If Wi\u2011Fi is lost, call will end.</string>
+
     <!-- Wi-Fi Calling settings. Text displayed when Wi-Fi Calling is off -->
     <string name="wifi_calling_off_explanation">When Wi-Fi calling is on, your phone can route calls via Wi-Fi networks or your carrier\u2019s network, depending on your preference and which signal is stronger. Before turning on this feature, check with your carrier regarding fees and other details.<xliff:g id="additional_text" example="Learn More">%1$s</xliff:g></string>
     <!-- Wi-Fi Calling settings. Additional text displayed when Wi-Fi Calling is off. Default empty. [CHAR LIMIT=NONE] -->
@@ -3000,14 +3022,14 @@
     <string name="status_prl_version">PRL version</string>
     <!-- About phone screen, title for MEID for multi-sim devices -->
     <string name="meid_multi_sim">MEID (sim slot %1$d)</string>
-    <!-- The status text when both Wi-Fi scanning and Bluetooth scanning are on. [CHAR LIMIT=120] -->
-    <string name="scanning_status_text_wifi_on_ble_on">Both Wi\u2011Fi and Bluetooth are allowed to determine location</string>
-    <!-- The status text when Wi-Fi scanning is on and Bluetooth scanning are off. [CHAR LIMIT=120] -->
-    <string name="scanning_status_text_wifi_on_ble_off">Only Wi\u2011Fi is allowed to determine location</string>
-    <!-- The status text when Wi-Fi scanning is off and Bluetooth scanning are on. [CHAR LIMIT=120] -->
-    <string name="scanning_status_text_wifi_off_ble_on">Only Bluetooth is allowed to determine location</string>
-    <!-- The status text when both Wi-Fi scanning and Bluetooth scanning are off. [CHAR LIMIT=120] -->
-    <string name="scanning_status_text_wifi_off_ble_off">Neither Wi\u2011Fi nor Bluetooth is allowed to determine location</string>
+    <!-- The status text when both Wi-Fi scanning and Bluetooth scanning are on. [CHAR LIMIT=100] -->
+    <string name="scanning_status_text_wifi_on_ble_on">Both Wi\u2011Fi and Bluetooth scanning are on</string>
+    <!-- The status text when Wi-Fi scanning is on and Bluetooth scanning are off. [CHAR LIMIT=100] -->
+    <string name="scanning_status_text_wifi_on_ble_off">Wi\u2011Fi scanning is on, Bluetooth scanning is off</string>
+    <!-- The status text when Wi-Fi scanning is off and Bluetooth scanning are on. [CHAR LIMIT=100] -->
+    <string name="scanning_status_text_wifi_off_ble_on">Bluetooth scanning is on, Wi\u2011Fi scanning is off</string>
+    <!-- The status text when both Wi-Fi scanning and Bluetooth scanning are off. [CHAR LIMIT=100] -->
+    <string name="scanning_status_text_wifi_off_ble_off">Both Wi\u2011Fi and Bluetooth scanning are off</string>
     <!-- About phone, status item title.  The phone MEID number of the current LTE/CDMA device. [CHAR LIMIT=30] -->
     <string name="status_meid_number">MEID</string>
     <!-- About phone, status item title.  The ICCID of the current LTE device. [CHAR LIMIT=30] -->
@@ -3559,10 +3581,10 @@
     <string name="reset_network_title">Reset Wi-Fi, mobile &amp; Bluetooth</string>
     <!-- SD card & phone storage settings screen, message on screen after user selects Reset network settings [CHAR LIMIT=NONE] -->
     <string name="reset_network_desc">This will reset all network settings, including:\n\n<li>Wi\u2011Fi</li>\n<li>Mobile data</li>\n<li>Bluetooth</li>"</string>
-    <!-- SD card & phone storage settings screen, title for the checkbox to let user decide whether erase eSIM data together [CHAR LIMIT=NONE] -->
-    <string name="reset_esim_title">Also reset eSIM</string>
+    <!-- SD card & phone storage settings screen, title for the checkbox to let user decide whether erase eSIM data together [CHAR LIMIT=30] -->
+    <string name="reset_esim_title">Erase eSIMs</string>
     <!-- SD card & phone storage settings screen, message for the checkbox to let user decide whether erase eSIM data together [CHAR LIMIT=NONE] -->
-    <string name="reset_esim_desc">Erase all eSIMs on the phone. You\u2019ll have to contact your carrier to redownload your eSIMs. This will not cancel your mobile service plan.</string>
+    <string name="reset_esim_desc">You\u2019ll have to contact your carrier to download replacement eSIMs. This won\u2019t cancel any mobile service plans.</string>
     <!-- SD card & phone storage settings screen, button on screen after user selects Reset network settings -->
     <string name="reset_network_button_text">Reset settings</string>
     <!-- SD card & phone storage settings screen, message on screen after user selects Reset settings button -->
@@ -3611,12 +3633,6 @@
     <string name="erase_external_storage_description" product="nosdcard">Erase all the data on the internal USB storage, such as music or photos</string>
     <!-- SD card & phone storage settings screen, description for check box to erase USB storage [CHAR LIMIT=NONE] -->
     <string name="erase_external_storage_description" product="default">Erase all the data on the SD card, such as music or photos</string>
-    <!-- SD card & phone storage settings screen, label for check box to erase all the carriers information on the embedded SIM card [CHAR LIMIT=30] -->
-    <string name="erase_esim_storage">Erase eSIM</string>
-    <!-- SD card & phone storage settings screen, description for check box to erase eSIMs for default devices [CHAR LIMIT=NONE] -->
-    <string name="erase_esim_storage_description" product="default">Erase all eSIMs on the phone. This will not cancel your mobile service plan.</string>
-    <!-- SD card & phone storage settings screen, description for check box to erase eSIMs for tablets [CHAR LIMIT=NONE] -->
-    <string name="erase_esim_storage_description" product="tablet">Erase all eSIMs on the tablet. This will not cancel your mobile service plan.</string>
     <!-- SD card & phone storage settings screen, button on screen after user selects Factory data reset -->
     <string name="master_clear_button_text" product="tablet">Erase all data</string>
     <!-- SD card & phone storage settings screen, button on screen after user selects Factory data reset -->
@@ -3732,13 +3748,25 @@
     <string name="location_app_level_permissions">App permission</string>
     <!-- Summary for app permission on Location settings page when location is off [CHAR LIMIT=NONE] -->
     <string name="location_app_permission_summary_location_off">Location is off</string>
-    <!-- Summary for Location settings when location is on, explaining how many apps have location permission [CHAR LIMIT=NONE]-->
+    <!--
+    Summary for Location settings when location is on, explaining how many apps have unlimited
+    location permission.
+
+    "Unlimited access" means the app can access the device location even when it's not being used
+    (on background), while "limited" means the app can only access the device location when the user
+    is using it (foreground only).
+
+    Please note that the distinction between singular and plural of this sentence only depends on
+    the quantity of "background_location_app_count" ("has" vs "have"). The quantity of
+    "total_location_app_count" is almost always greater than 1, so "apps" is always in plural form.
+
+    [CHAR LIMIT=NONE]-->
     <plurals name="location_app_permission_summary_location_on">
         <item quantity="one">
             <xliff:g id="background_location_app_count">%1$d</xliff:g>
             of
             <xliff:g id="total_location_app_count">%2$d</xliff:g>
-            app has unlimited access</item>
+            apps has unlimited access</item>
         <item quantity="other">
             <xliff:g id="background_location_app_count">%1$d</xliff:g>
             of
@@ -3749,8 +3777,12 @@
     <string name="location_category_recent_location_access">Recent location access</string>
     <!-- [CHAR LIMIT=30] Location settings screen, button to bring the user to view the details of recent location access -->
     <string name="location_recent_location_access_view_details">View details</string>
-    <!-- Location settings screen, displayed when there's no recent app accessing location -->
+    <!-- Location settings screen, displayed when there's no recent app accessing location
+      (for TV) [CHAR LIMIT=100] -->
     <string name="location_no_recent_apps">No apps have requested location recently</string>
+    <!-- Location settings screen, displayed when there's no recent app accessing location
+      (for phones and tablets) [CHAR LIMIT=100] -->
+    <string name="location_no_recent_accesses">No apps recently accessed location</string>
     <!-- [CHAR LIMIT=30] Location settings screen, recent location requests high battery use-->
     <string name="location_high_battery_use">High battery use</string>
     <!-- [CHAR LIMIT=30] Location settings screen, recent location requests low battery use-->
@@ -5218,8 +5250,8 @@
     <string name="battery_tip_high_usage_title" product="tablet">Tablet used more than usual</string>
     <!-- Title for the battery high usage tip [CHAR LIMIT=NONE] -->
     <string name="battery_tip_high_usage_title" product="device">Device used more than usual</string>
-    <!-- Summary for the battery high usage tip, which presents battery may run out soon [CHAR LIMIT=NONE] -->
-    <string name="battery_tip_high_usage_summary">Battery may run out soon</string>
+    <!-- Summary for the battery high usage tip, which presents battery may run out earlier [CHAR LIMIT=NONE] -->
+    <string name="battery_tip_high_usage_summary">Battery may run out earlier than usual</string>
     <!-- Message for battery tip dialog to show the status about the battery [CHAR LIMIT=NONE] -->
     <string name="battery_tip_dialog_message" product="default">Your phone has been used more than usual. Your battery may run out sooner than expected.\n\nTop <xliff:g id="number">%1$d</xliff:g> apps you used since full charge:</string>
     <!-- Message for battery tip dialog to show the status about the battery [CHAR LIMIT=NONE] -->
@@ -5583,6 +5615,12 @@
     <!-- Battery saver: Title for battery saver schedule screen [CHAR_LIMIT=40] -->
     <string name="battery_saver_schedule_settings_title">Set a schedule</string>
 
+    <!-- Battery Saver: Title for sticky battery saver preference [CHAR_LIMIT=60] -->
+    <string name="battery_saver_sticky_title">Keep battery saver on</string>
+
+    <!-- Battery Saver: Description for sticky battery saver preference [CHAR_LIMIT=NONE] -->
+    <string name="battery_saver_sticky_description">Battery saver will stay on even after device is fully charged</string>
+
     <!-- Battery saver: Label for seekbar to change battery saver threshold [CHAR_LIMIT=40] -->
     <string name="battery_saver_seekbar_title"><xliff:g id="percent">%1$s</xliff:g></string>
 
@@ -5602,9 +5640,9 @@
     <string name="battery_saver_turn_on_automatically_pct">at <xliff:g id="percent">%1$s</xliff:g> battery</string>
 
     <!-- [CHAR_LIMIT=40] Battery percentage: Title -->
-    <string name="battery_info">Battery Information</string>
+    <string name="battery_percentage">Battery percentage</string>
     <!-- [CHAR_LIMIT=NONE] Battery percentage: Description for preference -->
-    <string name="battery_info_description">Show percentage and time left before charge is needed</string>
+    <string name="battery_percentage_description">Show battery percentage in status bar</string>
 
     <!-- Process Stats strings -->
     <skip />
@@ -7001,7 +7039,7 @@
     <!-- Title for setting tile leading to Apps & Notification settings [CHAR LIMIT=40]-->
     <string name="app_and_notification_dashboard_title">Apps &amp; notifications</string>
     <!-- Summary for Apps & Notification settings, explaining a few important settings under it [CHAR LIMIT=NONE]-->
-    <string name="app_and_notification_dashboard_summary">Permissions, default apps</string>
+    <string name="app_and_notification_dashboard_summary">Assistant, recent apps, default apps</string>
     <!-- Toast shown when an app in the work profile attempts to open notification settings. The apps in the work profile cannot access notification settings. [CHAR LIMIT=NONE] -->
     <string name="notification_settings_work_profile">Notification access is not available for apps in the work profile.</string>
     <!-- Title for setting tile leading to account settings [CHAR LIMIT=40]-->
@@ -7147,6 +7185,9 @@
     <string name="keywords_ring_vibration">haptics, vibrate, phone, call, sensitivity, ring</string>
     <!-- List of synonyms for notification vibration setting (changes whether your phone vibrates when it shows a notification), used to match in settings search [CHAR LIMIT=NONE] -->
     <string name="keywords_notification_vibration">haptics, vibrate, sensitivity</string>
+    <!-- Battery Saver: Search terms for sticky battery saver preference [CHAR_LIMIT=NONE] -->
+    <string name="keywords_battery_saver_sticky">battery saver, sticky, persist, power saver, battery</string>
+
 
     <!-- NFC Wi-Fi pairing/setup strings-->
 
@@ -7193,6 +7234,9 @@
     <!-- Sound: Title for the option managing media volume. [CHAR LIMIT=30] -->
     <string name="media_volume_option_title">Media volume</string>
 
+    <!-- Sound: Title for the option managing remote media volume. [CHAR LIMIT=30] -->
+    <string name="remote_media_volume_option_title">Cast volume</string>
+
     <!-- Sound: Title for the option managing call volume. [CHAR LIMIT=30] -->
     <string name="call_volume_option_title">Call volume</string>
 
@@ -7737,7 +7781,7 @@
      summary on the channel page-->
 
     <!-- [CHAR LIMIT=100] Notification Importance title: min importance level title -->
-    <string name="notification_importance_min_title">Low</string>
+    <string name="notification_importance_min_title">Minimize</string>
 
     <!-- [CHAR LIMIT=100] Notification Importance title: low importance level title -->
     <string name="notification_importance_low_title">Medium</string>
@@ -7746,7 +7790,16 @@
     <string name="notification_importance_default_title">High</string>
 
     <!-- [CHAR LIMIT=100] Notification Importance title: high importance level title -->
-    <string name="notification_importance_high_title">Urgent</string>
+    <string name="notification_importance_high_title">Pop on screen</string>
+
+    <!-- [CHAR LIMIT=100] Notification Importance title -->
+    <string name="notification_block_title">Block</string>
+
+    <!-- [CHAR LIMIT=100] Notification Importance title -->
+    <string name="notification_silence_title">Show silently</string>
+
+    <!-- [CHAR LIMIT=100] Notification Importance title -->
+    <string name="notification_alert_title">Alert</string>
 
     <!-- [CHAR LIMIT=40] Notification importance title. This setting controls how notifications in older apps may alert the user (eg, sound, visual, vibrate). -->
     <string name="allow_interruption">Allow interruptions</string>
@@ -9204,10 +9257,7 @@
     <string name="condition_expand_hide">Hide</string>
 
     <!-- Title of condition that hotspot is on [CHAR LIMIT=30] -->
-    <string name="condition_hotspot_title">Hotspot</string>
-
-    <!-- Summary of condition that hotspot is on [CHAR LIMIT=NONE] -->
-    <string name="condition_hotspot_summary"><xliff:g name="ap_name" example="AndroidAP">%1$s</xliff:g> on</string>
+    <string name="condition_hotspot_title">Hotspot is active</string>
 
     <!-- Title of condition that airplane mode is on [CHAR LIMIT=30] -->
     <string name="condition_airplane_title">Airplane mode is on</string>
@@ -9795,8 +9845,11 @@
     <!-- Title for settings suggestion for double twist for camera [CHAR LIMIT=60] -->
     <string name="double_twist_for_camera_suggestion_title">Take selfies faster</string>
 
-    <!-- Title text for swipe up to switch apps [CHAR LIMIT=60] -->
-    <string name="swipe_up_to_switch_apps_title">Swipe up on Home button</string>
+    <!-- Title text for system navigation [CHAR LIMIT=60] [DO NOT TRANSLATE] -->
+    <string name="system_navigation_title" translatable="false">System navigation</string>
+
+    <!-- Title text for swipe up to switch apps [CHAR LIMIT=60] [DO NOT TRANSLATE] -->
+    <string name="swipe_up_to_switch_apps_title" translatable="false">2-button navigation</string>
     <!-- Summary text for swipe up to switch apps  [CHAR LIMIT=250] -->
     <string name="swipe_up_to_switch_apps_summary">To switch apps, swipe up on the Home button. Swipe up again to see all apps. Works from any screen. You’ll no longer have an Overview button on the bottom right of your screen.</string>
     <!-- Title for settings suggestion for swipe up to switch apps [CHAR LIMIT=60] -->
@@ -9804,6 +9857,16 @@
     <!-- Summary for settings suggestion for swipe up to switch apps [CHAR LIMIT=60] -->
     <string name="swipe_up_to_switch_apps_suggestion_summary">Turn on the new gesture to switch apps</string>
 
+    <!-- Title text for edge to edge navigation [CHAR LIMIT=60] [DO NOT TRANSLATE] -->
+    <string name="edge_to_edge_navigation_title" translatable="false">Fully gestural navigation</string>
+    <!-- Summary text for edge to edge navigation  [CHAR LIMIT=None] [DO NOT TRANSLATE] -->
+    <string name="edge_to_edge_navigation_summary" translatable="false">To go Home, swipe up from the bottom of the screen. To go Back, swipe from either the left or right edge of the screen. To switch apps, start swiping up from the bottom of the screen and hold before releasing.</string>
+
+    <!-- Title text for 3-button navigation [CHAR LIMIT=60] [DO NOT TRANSLATE] -->
+    <string name="legacy_navigation_title" translatable="false">3-button navigation</string>
+    <!-- Summary text for 3-button navigation  [CHAR LIMIT=250] [DO NOT TRANSLATE] -->
+    <string name="legacy_navigation_summary" translatable="false">Classic Android navigation mode where going Home, switching apps, and going Back are accessible via buttons.</string>
+
     <!-- Preference and settings suggestion title text for ambient display double tap (phone) [CHAR LIMIT=60]-->
     <string name="ambient_display_title" product="default">Double-tap to check phone</string>
     <!-- Preference and settings suggestion title text for ambient display double tap (tablet) [CHAR LIMIT=60]-->
@@ -9823,8 +9886,6 @@
 
     <!-- Preference and settings suggestion title text for display wake-up gesture [CHAR LIMIT=60]-->
     <string name="ambient_display_wake_screen_title">Wake up display</string>
-    <!-- Summary text for ambient display wake-up gesture [CHAR LIMIT=NONE]-->
-    <string name="ambient_display_wake_screen_summary"></string>
 
     <!-- Summary text for ambient display (phone) [CHAR LIMIT=NONE]-->
     <string name="ambient_display_pickup_summary" product="default">To check time, notifications, and other info, pick up your phone.</string>
@@ -10640,6 +10701,9 @@
     <!-- Title for the Volume dialog (settings panel) with all volume streams[CHAR LIMIT=50] -->
     <string name="volume_connectivity_panel_title">Volume</string>
 
+    <!-- Subtitle explaining that mobile data cannot be used while airplane mode is on [CHAR LIMIT=50] -->
+    <string name="mobile_data_ap_mode_disabled">Unavailable during airplane mode</string>
+
     <!-- UI debug setting: force desktop mode [CHAR LIMIT=50] -->
     <string name="force_desktop_mode">Force desktop mode</string>
     <!-- UI debug setting: force desktop mode summary [CHAR LIMIT=NONE] -->
@@ -10690,8 +10754,8 @@
 
     <!-- Summary for the accessibility usage preference in the Privacy page.  [CHAR LIMIT=NONE] -->
     <plurals name="accessibility_usage_summary">
-        <item quantity="one">1 service has full access to your device</item>
-        <item quantity="other"><xliff:g id="service_count">%1$d</xliff:g> services have full access to your device</item>
+        <item quantity="one">1 app has full access to your device</item>
+        <item quantity="other"><xliff:g id="service_count">%1$d</xliff:g> apps have full access to your device</item>
     </plurals>
 
     <!-- Title for notification channel slice. [CHAR LIMIT=NONE] -->
@@ -10711,6 +10775,22 @@
     <!-- Summary for represent which device is playing media [CHAR LIMIT=NONE] -->
     <string name="media_output_panel_summary_of_playing_device">Currently playing on <xliff:g id="device_name" example="Bose headphone">%1$s</xliff:g></string>
 
+    <!-- Label for the title on wfc disclaimer fragment. [CHAR LIMIT=40] -->
+    <string name="wfc_disclaimer_title_text">Important information</string>
+
+    <!-- Label for the agree button on wfc disclaimer fragment. [CHAR LIMIT=30] -->
+    <string name="wfc_disclaimer_agree_button_text">CONTINUE</string>
+
+    <!-- Label for the disagree button on wfc disclaimer fragment. [CHAR LIMIT=30] -->
+    <string name="wfc_disclaimer_disagree_text">NO THANKS</string>
+
     <!-- Message for forget passpoint dialog [CHAR LIMIT=none] -->
-    <string name="forget_passpoint_dialog_message">Your subscription with this provider may be cancelled. Recurring subscriptions will not be cancelled. For more information, check with your provider.</string>
+    <string name="forget_passpoint_dialog_message">You may lose access to any remaining time or data. Check with your provider before removing.</string>
+
+    <!-- Keywords for Content Capture feature [CHAR_LIMIT=32] -->
+    <string name="keywords_content_capture">content capture</string>
+    <!-- Title of the 'Content Capture' feature toggle in the Settings -> Privacy screen [CHAR LIMIT=none]-->
+    <string name="content_capture">Content Capture</string>
+    <!-- Description of the 'Content Capture' feature toggle in the Settings -> Privacy screen [CHAR LIMIT=NONE]-->
+    <string name="content_capture_summary">Allow Android to save information seen on your screen or heard in video or audio content. Android makes helpful suggestions based on your device activity.</string>
 </resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index a778f76..8fde9a0 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -303,6 +303,11 @@
         <item name="android:textSize">16sp</item>
     </style>
 
+    <style name="TextAppearance.DialogMessage"
+           parent="@*android:style/TextAppearance.DeviceDefault.Body1">
+        <item name="android:textSize">16sp</item>
+    </style>
+
     <style name="SuggestionCardText">
         <item name="android:textAlignment">viewStart</item>
     </style>
@@ -443,7 +448,7 @@
     <style name="ConditionFullCardBorderlessButton"
            parent="@style/ConditionCardBorderlessButton">
         <item name="android:textAlignment">viewStart</item>
-        <item name="android:paddingStart">50dp</item>
+        <item name="android:paddingStart">62dp</item>
         <item name="android:paddingEnd">50dp</item>
     </style>
 
@@ -479,8 +484,8 @@
     </style>
 
     <style name="SliceViewStyle">
-        <!-- 4dp start padding for the start icon -->
-        <item name="android:paddingStart">4dp</item>
+        <!-- 2dp start padding for the start icon -->
+        <item name="android:paddingStart">2dp</item>
 
         <!-- End margin of content without end items is 24dp.
              android:paddingEnd = 24 - 16(contentEndPadding) -->
@@ -492,8 +497,8 @@
     <style name="SliceRowStyle">
         <item name="titleItemEndPadding">0dp</item>
 
-        <!-- Padding between content and the start icon is 12dp. -->
-        <item name="contentStartPadding">12dp</item>
+        <!-- Padding between content and the start icon is 14dp. -->
+        <item name="contentStartPadding">14dp</item>
         <!-- Padding between content and end items is 16dp. -->
         <item name="contentEndPadding">16dp</item>
 
@@ -503,9 +508,9 @@
         <item name="endItemEndPadding">8dp</item>
 
         <!-- Both side margins of bottom divider are 12dp.
-             bottomDividerStartPadding = 12 - 4(android:paddingStart)
+             bottomDividerStartPadding = 12 - 2(android:paddingStart)
              bottomDividerEndPadding = 12 - 8(android:paddingEnd) -->
-        <item name="bottomDividerStartPadding">8dp</item>
+        <item name="bottomDividerStartPadding">10dp</item>
         <item name="bottomDividerEndPadding">4dp</item>
 
         <item name="actionDividerHeight">32dp</item>
@@ -515,4 +520,17 @@
         <!-- Padding between content and the start icon is 8dp. -->
         <item name="contentStartPadding">8dp</item>
     </style>
+
+    <style name="DisclaimerPositiveButton" parent="@style/SudGlifButton.Primary">
+        <item name="android:layout_margin">16dp</item>
+        <item name="android:paddingStart">8dp</item>
+        <item name="android:paddingEnd">8dp</item>
+    </style>
+
+    <style name="DisclaimerNegativeButton" parent="@style/SudGlifButton.Secondary">
+        <item name="android:layout_margin">16dp</item>
+        <item name="android:paddingStart">8dp</item>
+        <item name="android:paddingEnd">8dp</item>
+    </style>
+
 </resources>
diff --git a/res/values/themes.xml b/res/values/themes.xml
index 991e376..a8ae506 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -128,8 +128,11 @@
         <!-- Redefine the ActionBar style for contentInsetStart -->
         <item name="android:actionBarStyle">@style/Widget.ActionBar</item>
 
-        <!-- copied from Theme.DeviceDefault.Light.Dialog.Alert -->
+        <!-- copied from Theme.DeviceDefault.Dialog.Alert -->
         <item name="dialogCornerRadius">@*android:dimen/config_dialogCornerRadius</item>
+        <item name="android:windowTitleStyle">@*android:style/DialogWindowTitle.DeviceDefault</item>
+        <item name="android:textAppearanceMedium">@style/TextAppearance.DialogMessage</item>
+        <item name="buttonBarButtonStyle">@*android:style/Widget.DeviceDefault.Button.ButtonBar.AlertDialog</item>
     </style>
 
     <style name="Theme.ConfirmDeviceCredentials" parent="Theme.SubSettings">
diff --git a/res/xml/app_notification_settings.xml b/res/xml/app_notification_settings.xml
index 54d6fe7..faad649 100644
--- a/res/xml/app_notification_settings.xml
+++ b/res/xml/app_notification_settings.xml
@@ -61,7 +61,7 @@
             android:order="1001"
             settings:restrictedSwitchSummary="@string/enabled_by_admin" />
         <com.android.settingslib.RestrictedSwitchPreference
-            android:key="bubble"
+            android:key="bubble_pref"
             android:title="@string/notification_bubbles_title"
             android:order="1002"
             settings:restrictedSwitchSummary="@string/enabled_by_admin" />
diff --git a/res/xml/battery_saver_settings.xml b/res/xml/battery_saver_settings.xml
index 89f7eab..ae9d14d 100644
--- a/res/xml/battery_saver_settings.xml
+++ b/res/xml/battery_saver_settings.xml
@@ -26,6 +26,13 @@
         android:title="@string/battery_saver_schedule_settings_title"
         settings:controller="com.android.settings.fuelgauge.batterysaver.BatterySaverSchedulePreferenceController"/>
 
+    <SwitchPreference
+        android:key="battery_saver_sticky"
+        android:title="@string/battery_saver_sticky_title"
+        android:summary="@string/battery_saver_sticky_description"
+        settings:keywords="@string/keywords_battery_saver_sticky"
+        settings:controller="com.android.settings.fuelgauge.batterysaver.BatterySaverStickyPreferenceController"/>
+
     <com.android.settings.widget.TwoStateButtonPreference
         android:key="battery_saver"
         android:title="@string/battery_saver"
diff --git a/res/xml/channel_notification_settings.xml b/res/xml/channel_notification_settings.xml
index 94a2cdb..3158819 100644
--- a/res/xml/channel_notification_settings.xml
+++ b/res/xml/channel_notification_settings.xml
@@ -25,11 +25,6 @@
         android:order="1"
         android:layout="@layout/settings_entity_header" />
 
-    <com.android.settingslib.widget.LayoutPreference
-        android:key="block"
-        android:order="2"
-        android:layout="@layout/styled_switch_bar" />
-
     <!-- Importance toggle -->
     <com.android.settingslib.RestrictedSwitchPreference
         android:key="allow_sound"
@@ -38,10 +33,23 @@
         android:summary="@string/allow_interruption_summary" />
 
     <!-- Importance -->
-    <com.android.settings.RestrictedListPreference
+    <com.android.settings.notification.ImportancePreference
         android:key="importance"
-        android:order="10"
-        android:title="@string/notification_importance_title" />
+        android:order="4"
+        android:title="@string/notification_importance_title"
+        settings:allowDividerBelow="true"/>
+
+    <com.android.settingslib.RestrictedSwitchPreference
+        android:key="min_importance"
+        android:order="5"
+        settings:allowDividerAbove="true"
+        android:title="@string/notification_importance_min_title"/>
+
+    <com.android.settingslib.RestrictedSwitchPreference
+        android:key="high_importance"
+        android:order="6"
+        settings:allowDividerAbove="true"
+        android:title="@string/notification_importance_high_title"/>
 
     <PreferenceCategory
         android:key="channel_advanced"
@@ -87,7 +95,7 @@
             settings:restrictedSwitchSummary="@string/enabled_by_admin"/>
 
         <com.android.settingslib.RestrictedSwitchPreference
-            android:key="bubble"
+            android:key="bubble_pref"
             android:title="@string/notification_bubbles_title"
             android:order="16"
             settings:restrictedSwitchSummary="@string/enabled_by_admin" />
@@ -113,6 +121,7 @@
 
     <com.android.settings.notification.NotificationFooterPreference
         android:key="block_desc"
-        android:order="110"/>
+        android:order="110"
+        settings:allowDividerAbove="false"/>
 
 </PreferenceScreen>
diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml
index 0f4c1d3..91fe656 100644
--- a/res/xml/display_settings.xml
+++ b/res/xml/display_settings.xml
@@ -20,7 +20,7 @@
     android:key="display_settings_screen"
     android:title="@string/display_settings"
     settings:keywords="@string/keywords_display"
-    settings:initialExpandedChildrenCount="4">
+    settings:initialExpandedChildrenCount="5">
 
     <com.android.settingslib.RestrictedPreference
         android:key="brightness"
@@ -57,6 +57,15 @@
             android:targetClass="@string/config_wallpaper_picker_class" />
     </com.android.settingslib.RestrictedPreference>
 
+    <ListPreference
+        android:key="dark_ui_mode"
+        android:title="@string/dark_ui_mode"
+        android:dialogTitle="@string/dark_ui_mode_title"
+        android:entries="@array/dark_ui_mode_entries"
+        android:entryValues="@array/dark_ui_mode_values"
+        settings:keywords="@string/keywords_dark_ui_mode"
+        settings:controller="com.android.settings.display.DarkUIPreferenceController" />
+
     <!-- Cross-listed item, if you change this, also change it in power_usage_summary.xml -->
     <com.android.settings.display.TimeoutListPreference
         android:key="screen_timeout"
@@ -136,15 +145,6 @@
         android:summary="@string/tap_to_wake_summary" />
 
     <ListPreference
-        android:key="dark_ui_mode"
-        android:title="@string/dark_ui_mode"
-        android:dialogTitle="@string/dark_ui_mode_title"
-        android:entries="@array/dark_ui_mode_entries"
-        android:entryValues="@array/dark_ui_mode_values"
-        settings:keywords="@string/keywords_dark_ui_mode"
-        settings:controller="com.android.settings.display.DarkUIPreferenceController" />
-
-    <ListPreference
         android:key="theme"
         android:title="@string/device_theme"
         android:summary="@string/summary_placeholder" />
diff --git a/res/xml/firmware_version.xml b/res/xml/firmware_version.xml
index 2914ef1..75336ce 100644
--- a/res/xml/firmware_version.xml
+++ b/res/xml/firmware_version.xml
@@ -68,6 +68,7 @@
         android:title="@string/build_number"
         android:summary="@string/summary_placeholder"
         settings:enableCopying="true"
+        settings:allowDynamicSummaryInSlice="true"
         settings:controller="com.android.settings.deviceinfo.firmwareversion.SimpleBuildNumberPreferenceController"/>
 
 </PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/gestures.xml b/res/xml/gestures.xml
index b1250ec..f705630 100644
--- a/res/xml/gestures.xml
+++ b/res/xml/gestures.xml
@@ -52,10 +52,10 @@
         settings:controller="com.android.settings.gestures.DoubleTwistPreferenceController" />
 
     <Preference
-        android:key="gesture_swipe_up_input_summary"
-        android:title="@string/swipe_up_to_switch_apps_title"
-        android:fragment="com.android.settings.gestures.SwipeUpGestureSettings"
-        settings:controller="com.android.settings.gestures.SwipeUpPreferenceController" />
+        android:key="gesture_system_navigation_input_summary"
+        android:title="@string/system_navigation_title"
+        android:fragment="com.android.settings.gestures.SystemNavigationGestureSettings"
+        settings:controller="com.android.settings.gestures.SystemNavigationLegacyPreferenceController" />
 
     <Preference
         android:key="gesture_tap_screen_input_summary"
diff --git a/res/xml/language_and_input.xml b/res/xml/language_and_input.xml
index b04bdf8..e3690a9 100644
--- a/res/xml/language_and_input.xml
+++ b/res/xml/language_and_input.xml
@@ -94,7 +94,8 @@
 
     <com.android.settings.widget.WorkOnlyCategory
         android:key="language_and_input_for_work_category"
-        android:title="@string/language_and_input_for_work_category_title">
+        android:title="@string/language_and_input_for_work_category_title"
+        settings:searchable="false">
 
         <Preference
             android:key="virtual_keyboards_for_work_pref"
diff --git a/res/xml/mobile_network_list.xml b/res/xml/mobile_network_list.xml
index 5bffa2f..c2baf46 100644
--- a/res/xml/mobile_network_list.xml
+++ b/res/xml/mobile_network_list.xml
@@ -16,15 +16,20 @@
 
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
     android:key="mobile_network_list_screen"
     android:title="@string/network_settings_title">
 
     <Preference
         android:key="add_more"
+        settings:isPreferenceVisible="false"
         android:title="@string/mobile_network_list_add_more"
         android:icon="@drawable/ic_menu_add"
         android:order="100" >
-        <intent android:action="android.telephony.euicc.action.PROVISION_EMBEDDED_SUBSCRIPTION" />
+        <intent android:action="android.telephony.euicc.action.PROVISION_EMBEDDED_SUBSCRIPTION">
+            <extra android:name="android.telephony.euicc.extra.FORCE_PROVISION"
+                   android:value="true"/>
+        </intent>
     </Preference>
 
 </PreferenceScreen>
diff --git a/res/xml/my_device_info.xml b/res/xml/my_device_info.xml
index 83bf5c4..bc498d2 100644
--- a/res/xml/my_device_info.xml
+++ b/res/xml/my_device_info.xml
@@ -115,6 +115,7 @@
         android:title="@string/status_imei"
         settings:keywords="@string/keywords_imei_info"
         android:summary="@string/summary_placeholder"
+        settings:allowDynamicSummaryInSlice="true"
         settings:controller="com.android.settings.deviceinfo.imei.ImeiInfoPreferenceController"/>
 
     <!-- Android version -->
diff --git a/res/xml/network_and_internet_v2.xml b/res/xml/network_and_internet_v2.xml
index fd29c41..44c3121 100644
--- a/res/xml/network_and_internet_v2.xml
+++ b/res/xml/network_and_internet_v2.xml
@@ -22,6 +22,7 @@
 
     <PreferenceCategory
         android:key="multi_network_header"
+        android:title="@string/summary_placeholder"
         settings:allowDividerBelow="true"
         android:order="-40"
         settings:controller="com.android.settings.network.MultiNetworkHeaderController"/>
@@ -79,7 +80,7 @@
         settings:useAdminDisabledSummary="true" />
 
     <com.android.settings.datausage.DataSaverPreference
-        android:key="restrict_background"
+        android:key="restrict_background_parent_entry"
         android:title="@string/data_saver_title"
         android:icon="@drawable/ic_settings_data_usage"
         android:order="10"
diff --git a/res/xml/power_usage_summary.xml b/res/xml/power_usage_summary.xml
index 9be0b7d..94ead86 100644
--- a/res/xml/power_usage_summary.xml
+++ b/res/xml/power_usage_summary.xml
@@ -50,8 +50,8 @@
 
     <SwitchPreference
         android:key="battery_percentage"
-        android:title="@string/battery_info"
-        android:summary="@string/battery_info_description"
+        android:title="@string/battery_percentage"
+        android:summary="@string/battery_percentage_description"
         settings:controller="com.android.settings.display.BatteryPercentagePreferenceController" />
 
 
diff --git a/res/xml/privacy_dashboard_settings.xml b/res/xml/privacy_dashboard_settings.xml
index 48034a84..d2d9e35 100644
--- a/res/xml/privacy_dashboard_settings.xml
+++ b/res/xml/privacy_dashboard_settings.xml
@@ -62,6 +62,13 @@
         android:summary="@string/summary_placeholder"
         settings:searchable="false"/>
 
+    <!-- Content Capture -->
+    <SwitchPreference
+        android:key="content_capture"
+        android:title="@string/content_capture"
+        android:summary="@string/content_capture_summary"
+        settings:controller="com.android.settings.privacy.EnableContentCapturePreferenceController"/>
+
     <!-- Privacy Service -->
     <PreferenceCategory
         android:key="privacy_services"/>
diff --git a/res/xml/security_lockscreen_settings.xml b/res/xml/security_lockscreen_settings.xml
index 6833922..611d33f 100644
--- a/res/xml/security_lockscreen_settings.xml
+++ b/res/xml/security_lockscreen_settings.xml
@@ -60,12 +60,6 @@
             settings:controller="com.android.settings.display.AmbientDisplayAlwaysOnPreferenceController" />
 
         <Preference
-            android:key="ambient_display_wake_screen"
-            android:title="@string/ambient_display_wake_screen_title"
-            android:fragment="com.android.settings.gestures.WakeScreenGestureSettings"
-            settings:controller="com.android.settings.gestures.WakeScreenGesturePreferenceController" />
-
-        <Preference
             android:key="ambient_display_tap"
             android:title="@string/ambient_display_tap_screen_title"
             android:fragment="com.android.settings.gestures.TapScreenGestureSettings"
diff --git a/res/xml/single_choice_list_item_2.xml b/res/xml/single_choice_list_item_2.xml
new file mode 100644
index 0000000..ca80f44
--- /dev/null
+++ b/res/xml/single_choice_list_item_2.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:paddingStart="@dimen/select_dialog_padding_start"
+    android:paddingEnd="?android:attr/dialogPreferredPadding"
+    android:orientation="horizontal"
+    android:descendantFocusability="blocksDescendants">
+
+    <RadioButton
+        android:id="@+id/radio"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_vertical"
+        android:clickable="false" />
+
+    <LinearLayout
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:orientation="vertical"
+        android:layout_marginStart="@dimen/select_dialog_item_margin_start"
+        android:layout_gravity="center_vertical">
+
+        <TextView
+            android:id="@+id/title"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:textColor="?android:attr/textColorAlertDialogListItem"
+            android:ellipsize="marquee" />
+
+        <TextView
+            android:id="@+id/summary"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:paddingBottom="@dimen/select_dialog_summary_padding_bottom"
+            android:textAppearance="?android:attr/textAppearanceListItemSecondary"
+            android:textColor="?android:attr/textColorSecondary"
+            android:maxLines="10" />
+
+    </LinearLayout>
+</LinearLayout>
diff --git a/res/xml/sound_settings.xml b/res/xml/sound_settings.xml
index ee8613d..57bee1f 100644
--- a/res/xml/sound_settings.xml
+++ b/res/xml/sound_settings.xml
@@ -22,6 +22,15 @@
     settings:keywords="@string/keywords_sounds"
     settings:initialExpandedChildrenCount="9">
 
+    <!-- Remote volume -->
+    <com.android.settings.notification.RemoteVolumeSeekBarPreference
+        android:key="remote_volume"
+        android:icon="@drawable/ic_volume_remote"
+        android:title="@string/remote_media_volume_option_title"
+        android:order="-185"
+        settings:allowDynamicSummaryInSlice="true"
+        settings:controller="com.android.settings.notification.RemoteVolumePreferenceController"/>
+
     <!-- Media volume -->
     <com.android.settings.notification.VolumeSeekBarPreference
         android:key="media_volume"
@@ -32,7 +41,7 @@
         settings:controller="com.android.settings.notification.MediaVolumePreferenceController"/>
 
     <!-- Media output switcher -->
-    <ListPreference
+    <Preference
         android:key="media_output"
         android:title="@string/media_output_title"
         android:dialogTitle="@string/media_output_title"
diff --git a/res/xml/special_access.xml b/res/xml/special_access.xml
index 05f4a81..9be01f9 100644
--- a/res/xml/special_access.xml
+++ b/res/xml/special_access.xml
@@ -53,7 +53,7 @@
         android:key="zen_access"
         android:title="@string/manage_zen_access_title"
         android:fragment="com.android.settings.notification.ZenAccessSettings"
-        settings:controller="com.android.settings.applications.specialaccess.ZenAccessController" />
+        settings:controller="com.android.settings.applications.specialaccess.zenaccess.ZenAccessController" />
 
     <Preference
         android:key="write_settings_apps"
diff --git a/res/xml/swipe_up_gesture_settings.xml b/res/xml/swipe_up_gesture_settings.xml
deleted file mode 100644
index cc1db16..0000000
--- a/res/xml/swipe_up_gesture_settings.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  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.
-  -->
-
-<PreferenceScreen
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:key="gesture_swipe_up_screen"
-    android:title="@string/swipe_up_to_switch_apps_title">
-
-    <com.android.settings.widget.VideoPreference
-        android:key="gesture_swipe_up_video"
-        app:animation="@raw/gesture_swipe_up"
-        app:preview="@drawable/gesture_swipe_up" />
-
-    <SwitchPreference
-        android:key="gesture_swipe_up"
-        android:title="@string/swipe_up_to_switch_apps_title"
-        android:summary="@string/swipe_up_to_switch_apps_summary"
-        app:keywords="@string/keywords_gesture"
-        app:controller="com.android.settings.gestures.SwipeUpPreferenceController"
-        app:allowDividerAbove="true" />
-
-</PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/system_navigation_gesture_settings.xml b/res/xml/system_navigation_gesture_settings.xml
new file mode 100644
index 0000000..97aacb8
--- /dev/null
+++ b/res/xml/system_navigation_gesture_settings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  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.
+  -->
+
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:key="gesture_system_navigation_screen"
+    android:title="@string/system_navigation_title">
+
+    <com.android.settings.widget.VideoPreference
+        android:key="gesture_swipe_up_video"
+        app:animation="@raw/gesture_swipe_up"
+        app:preview="@drawable/gesture_swipe_up" />
+
+    <com.android.settings.widget.RadioButtonPreference
+        android:key="gesture_edge_to_edge"
+        android:title="@string/edge_to_edge_navigation_title"
+        android:summary="@string/edge_to_edge_navigation_summary"
+        app:keywords="@string/keywords_gesture"
+        app:controller="com.android.settings.gestures.SystemNavigationEdgeToEdgePreferenceController"
+        app:allowDividerAbove="true" />
+
+    <com.android.settings.widget.RadioButtonPreference
+        android:key="gesture_swipe_up"
+        android:title="@string/swipe_up_to_switch_apps_title"
+        android:summary="@string/swipe_up_to_switch_apps_summary"
+        app:keywords="@string/keywords_gesture"
+        app:controller="com.android.settings.gestures.SystemNavigationSwipeUpPreferenceController" />
+
+    <com.android.settings.widget.RadioButtonPreference
+        android:key="gesture_legacy"
+        android:title="@string/legacy_navigation_title"
+        android:summary="@string/legacy_navigation_summary"
+        app:keywords="@string/keywords_gesture"
+        app:controller="com.android.settings.gestures.SystemNavigationLegacyPreferenceController" />
+
+</PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/top_level_settings.xml b/res/xml/top_level_settings.xml
index 64b620a..367f426 100644
--- a/res/xml/top_level_settings.xml
+++ b/res/xml/top_level_settings.xml
@@ -18,8 +18,7 @@
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:key="top_level_settings"
-    android:title="@string/settings_label_launcher">
+    android:key="top_level_settings">
 
     <Preference
         android:key="top_level_network"
diff --git a/res/xml/wake_screen_gesture_settings.xml b/res/xml/wake_screen_gesture_settings.xml
deleted file mode 100644
index 7bcb2e9..0000000
--- a/res/xml/wake_screen_gesture_settings.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  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.
-  -->
-
-<PreferenceScreen
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:key="gesture_wake_screen_screen"
-    android:title="@string/ambient_display_wake_screen_title">
-
-    <com.android.settings.widget.VideoPreference
-        android:key="gesture_wake_screen_video"
-        app:animation="@raw/gesture_ambient_wake_screen"
-        app:preview="@drawable/gesture_ambient_wake_screen" />
-
-    <SwitchPreference
-        android:key="gesture_wake_screen"
-        android:title="@string/ambient_display_wake_screen_title"
-        android:summary="@string/ambient_display_wake_screen_summary"
-        app:keywords="@string/keywords_gesture"
-        app:controller="com.android.settings.gestures.WakeScreenGesturePreferenceController"
-        app:allowDividerAbove="true" />
-
-</PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/wifi_calling_settings.xml b/res/xml/wifi_calling_settings.xml
index 0adb1e8..0276bdb 100644
--- a/res/xml/wifi_calling_settings.xml
+++ b/res/xml/wifi_calling_settings.xml
@@ -15,24 +15,27 @@
 -->
 
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+                  xmlns:settings="http://schemas.android.com/apk/res-auto"
                   android:key="wifi_calling_settings"
                   android:title="@string/wifi_calling_settings_title">
 
-    <ListPreference
+    <com.android.settings.wifi.calling.ListWithEntrySummaryPreference
             android:key="wifi_calling_mode"
             android:title="@string/wifi_calling_mode_title"
             android:summary="@string/wifi_calling_mode_title"
             android:entries="@array/wifi_calling_mode_choices"
             android:entryValues="@array/wifi_calling_mode_values"
-            android:dialogTitle="@string/wifi_calling_mode_dialog_title" />
+            android:dialogTitle="@string/wifi_calling_mode_dialog_title"
+            settings:entrySummaries="@array/wifi_calling_mode_summaries" />
 
-    <ListPreference
+    <com.android.settings.wifi.calling.ListWithEntrySummaryPreference
             android:key="wifi_calling_roaming_mode"
             android:title="@string/wifi_calling_roaming_mode_title"
             android:summary="@string/wifi_calling_roaming_mode_summary"
             android:entries="@array/wifi_calling_mode_choices_v2"
             android:entryValues="@array/wifi_calling_mode_values"
-            android:dialogTitle="@string/wifi_calling_roaming_mode_dialog_title" />
+            android:dialogTitle="@string/wifi_calling_roaming_mode_dialog_title"
+            settings:entrySummaries="@array/wifi_calling_mode_summaries" />
 
     <Preference
             android:key="emergency_address_key"
diff --git a/res/xml/wifi_display_saved_access_points.xml b/res/xml/wifi_display_saved_access_points.xml
index 98b4dec..b3a8d55 100644
--- a/res/xml/wifi_display_saved_access_points.xml
+++ b/res/xml/wifi_display_saved_access_points.xml
@@ -21,8 +21,13 @@
     android:title="@string/wifi_saved_access_points_label">
 
     <PreferenceCategory
+        android:key="subscribed_access_points_category"
+        android:title="@string/wifi_subscribed_access_points_tab"
+        settings:controller="com.android.settings.wifi.savedaccesspoints.SubscribedAccessPointsPreferenceController"/>
+
+    <PreferenceCategory
         android:key="saved_access_points_category"
-        android:layout="@layout/preference_category_no_label"
+        android:title="@string/wifi_saved_access_points_tab"
         settings:controller="com.android.settings.wifi.savedaccesspoints.SavedAccessPointsPreferenceController"/>
 
 </PreferenceScreen>
diff --git a/res/xml/wifi_network_details_fragment.xml b/res/xml/wifi_network_details_fragment.xml
index 7c542d8..8979efc 100644
--- a/res/xml/wifi_network_details_fragment.xml
+++ b/res/xml/wifi_network_details_fragment.xml
@@ -26,6 +26,11 @@
         android:order="-10000"
         settings:allowDividerBelow="true"/>
 
+    <com.android.settings.datausage.DataUsageSummaryPreference
+        android:key="status_header"
+        android:selectable="false"
+        settings:isPreferenceVisible="false"/>
+
     <!-- Buttons -->
     <com.android.settingslib.widget.ActionButtonsPreference
         android:key="buttons"
diff --git a/res/xml/wifi_tether_settings.xml b/res/xml/wifi_tether_settings.xml
index 6c5e3c4..81e60a2 100644
--- a/res/xml/wifi_tether_settings.xml
+++ b/res/xml/wifi_tether_settings.xml
@@ -23,7 +23,7 @@
     settings:searchable="false"
     settings:initialExpandedChildrenCount="3">
 
-    <com.android.settings.widget.ValidatedEditTextPreference
+    <com.android.settings.wifi.tether.WifiTetherSsidPreference
         android:key="wifi_tether_network_name"
         android:title="@string/wifi_hotspot_name_title"
         android:summary="@string/summary_placeholder"/>
diff --git a/src/com/android/settings/MasterClear.java b/src/com/android/settings/MasterClear.java
index 58bc58c..c78115d 100644
--- a/src/com/android/settings/MasterClear.java
+++ b/src/com/android/settings/MasterClear.java
@@ -326,8 +326,6 @@
 
         if (showWipeEuicc()) {
             if (showWipeEuiccCheckbox()) {
-                TextView title = mContentView.findViewById(R.id.erase_esim_title);
-                title.setText(R.string.erase_esim_storage);
                 mEsimStorageContainer.setVisibility(View.VISIBLE);
                 mEsimStorageContainer.setOnClickListener(new View.OnClickListener() {
                     @Override
diff --git a/src/com/android/settings/RadioInfo.java b/src/com/android/settings/RadioInfo.java
index 0af12fd..495d35c 100644
--- a/src/com/android/settings/RadioInfo.java
+++ b/src/com/android/settings/RadioInfo.java
@@ -457,6 +457,13 @@
         imsWfcProvisionedSwitch = (Switch) findViewById(R.id.wfc_provisioned_switch);
         eabProvisionedSwitch = (Switch) findViewById(R.id.eab_provisioned_switch);
 
+        if (!ImsManager.isImsSupportedOnDevice(phone.getContext())) {
+            imsVolteProvisionedSwitch.setVisibility(View.GONE);
+            imsVtProvisionedSwitch.setVisibility(View.GONE);
+            imsWfcProvisionedSwitch.setVisibility(View.GONE);
+            eabProvisionedSwitch.setVisibility(View.GONE);
+        }
+
         cbrsDataSwitch = (Switch) findViewById(R.id.cbrs_data_switch);
         cbrsDataSwitch.setVisibility(isCbrsSupported() ? View.VISIBLE : View.GONE);
 
@@ -631,8 +638,10 @@
                 R.string.radioInfo_menu_viewFDN).setOnMenuItemClickListener(mViewFDNCallback);
         menu.add(1, MENU_ITEM_VIEW_SDN, 0,
                 R.string.radioInfo_menu_viewSDN).setOnMenuItemClickListener(mViewSDNCallback);
-        menu.add(1, MENU_ITEM_GET_IMS_STATUS,
-                0, R.string.radioInfo_menu_getIMS).setOnMenuItemClickListener(mGetImsStatus);
+        if (ImsManager.isImsSupportedOnDevice(phone.getContext())) {
+            menu.add(1, MENU_ITEM_GET_IMS_STATUS,
+                    0, R.string.radioInfo_menu_getIMS).setOnMenuItemClickListener(mGetImsStatus);
+        }
         menu.add(1, MENU_ITEM_TOGGLE_DATA,
                 0, R.string.radio_info_data_connection_disable).setOnMenuItemClickListener(mToggleData);
         return true;
@@ -1384,6 +1393,9 @@
     }
 
     private void updateImsProvisionedState() {
+        if (!ImsManager.isImsSupportedOnDevice(phone.getContext())) {
+            return;
+        }
         log("updateImsProvisionedState isImsVolteProvisioned()=" + isImsVolteProvisioned());
         //delightful hack to prevent on-checked-changed calls from
         //actually forcing the ims provisioning to its transient/current value.
diff --git a/src/com/android/settings/ResetNetwork.java b/src/com/android/settings/ResetNetwork.java
index bd45f9b..5d7dd99 100644
--- a/src/com/android/settings/ResetNetwork.java
+++ b/src/com/android/settings/ResetNetwork.java
@@ -213,8 +213,6 @@
         mInitiateButton.setOnClickListener(mInitiateListener);
         if (showEuiccSettings(getContext())) {
             mEsimContainer.setVisibility(View.VISIBLE);
-            TextView title = mContentView.findViewById(R.id.erase_esim_title);
-            title.setText(R.string.reset_esim_title);
             mEsimContainer.setOnClickListener(new OnClickListener() {
                 @Override
                 public void onClick(View v) {
diff --git a/src/com/android/settings/ResetNetworkConfirm.java b/src/com/android/settings/ResetNetworkConfirm.java
index 7c21b55..72e1919 100644
--- a/src/com/android/settings/ResetNetworkConfirm.java
+++ b/src/com/android/settings/ResetNetworkConfirm.java
@@ -157,20 +157,9 @@
                      SubscriptionManager.getPhoneId(mSubId)).factoryReset();
             restoreDefaultApn(context);
             esimFactoryReset(context, context.getPackageName());
-            // There has been issues when Sms raw table somehow stores orphan
-            // fragments. They lead to garbled message when new fragments come
-            // in and combied with those stale ones. In case this happens again,
-            // user can reset all network settings which will clean up this table.
-            cleanUpSmsRawTable(context);
         }
     };
 
-    private void cleanUpSmsRawTable(Context context) {
-        ContentResolver resolver = context.getContentResolver();
-        Uri uri = Uri.withAppendedPath(Telephony.Sms.CONTENT_URI, "raw/permanentDelete");
-        resolver.delete(uri, null, null);
-    }
-
     @VisibleForTesting
     void esimFactoryReset(Context context, String packageName) {
         if (mEraseEsim) {
diff --git a/src/com/android/settings/RestrictedListPreference.java b/src/com/android/settings/RestrictedListPreference.java
index 2e9ec14..bd3cd17 100644
--- a/src/com/android/settings/RestrictedListPreference.java
+++ b/src/com/android/settings/RestrictedListPreference.java
@@ -157,8 +157,8 @@
         return null;
     }
 
-    protected ListAdapter createListAdapter() {
-        return new RestrictedArrayAdapter(getContext(), getEntries(),
+    protected ListAdapter createListAdapter(Context context) {
+        return new RestrictedArrayAdapter(context, getEntries(),
                 getSelectedValuePos());
     }
 
@@ -172,10 +172,9 @@
     @Override
     protected void onPrepareDialogBuilder(Builder builder,
             DialogInterface.OnClickListener listener) {
-        builder.setAdapter(createListAdapter(), listener);
+        builder.setAdapter(createListAdapter(builder.getContext()), listener);
     }
 
-
     public class RestrictedArrayAdapter extends ArrayAdapter<CharSequence> {
         private final int mSelectedIndex;
         public RestrictedArrayAdapter(Context context, CharSequence[] objects, int selectedIndex) {
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index fac4253..97ff613 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -159,6 +159,7 @@
     public static class WebViewAppPickerActivity extends SettingsActivity { /* empty */ }
     public static class AdvancedConnectedDeviceActivity extends SettingsActivity { /* empty */ }
     public static class BluetoothDeviceDetailActivity extends SettingsActivity { /* empty */ }
+    public static class WifiCallingDisclaimerActivity extends SettingsActivity { /* empty */ }
 
     // Top level categories for new IA
     public static class NetworkDashboardActivity extends SettingsActivity {}
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 541ca3a..001e65b 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -50,6 +50,8 @@
 import com.android.internal.util.ArrayUtils;
 import com.android.settings.Settings.WifiSettingsActivity;
 import com.android.settings.applications.manageapplications.ManageApplications;
+import com.android.settings.backup.BackupSettingsHelper;
+import com.android.settings.backup.UserBackupSettingsActivity;
 import com.android.settings.core.OnActivityResultListener;
 import com.android.settings.core.SettingsBaseActivity;
 import com.android.settings.core.SubSettingLauncher;
@@ -630,6 +632,12 @@
                 showDev, isAdmin)
                 || somethingChanged;
 
+        // Enable/disable backup settings depending on whether backup is activated for the user.
+        boolean isBackupActive = new BackupSettingsHelper(this).isBackupServiceActive();
+        somethingChanged = setTileEnabled(changedList, new ComponentName(packageName,
+                UserBackupSettingsActivity.class.getName()), isBackupActive, isAdmin)
+                || somethingChanged;
+
         somethingChanged = setTileEnabled(changedList, new ComponentName(packageName,
                         Settings.WifiDisplaySettingsActivity.class.getName()),
                 WifiDisplaySettings.isAvailable(this), isAdmin)
diff --git a/src/com/android/settings/accessibility/BalanceSeekBar.java b/src/com/android/settings/accessibility/BalanceSeekBar.java
index e18a593..b108e18 100644
--- a/src/com/android/settings/accessibility/BalanceSeekBar.java
+++ b/src/com/android/settings/accessibility/BalanceSeekBar.java
@@ -28,6 +28,8 @@
 import android.util.AttributeSet;
 import android.widget.SeekBar;
 
+import androidx.annotation.VisibleForTesting;
+
 import com.android.settings.R;
 
 /**
@@ -37,14 +39,13 @@
  * Updates Settings.System for balance on progress changed.
  */
 public class BalanceSeekBar extends SeekBar {
-    private static final String TAG = "BalanceSeekBar";
     private final Context mContext;
     private final Object mListenerLock = new Object();
     private OnSeekBarChangeListener mOnSeekBarChangeListener;
     private final OnSeekBarChangeListener mProxySeekBarListener = new OnSeekBarChangeListener() {
         @Override
         public void onStopTrackingTouch(SeekBar seekBar) {
-            synchronized(mListenerLock) {
+            synchronized (mListenerLock) {
                 if (mOnSeekBarChangeListener != null) {
                     mOnSeekBarChangeListener.onStopTrackingTouch(seekBar);
                 }
@@ -53,7 +54,7 @@
 
         @Override
         public void onStartTrackingTouch(SeekBar seekBar) {
-            synchronized(mListenerLock) {
+            synchronized (mListenerLock) {
                 if (mOnSeekBarChangeListener != null) {
                     mOnSeekBarChangeListener.onStartTrackingTouch(seekBar);
                 }
@@ -79,7 +80,7 @@
 
             // after adjusting the seekbar, notify downstream listener.
             // note that progress may have been adjusted in the code above to mCenter.
-            synchronized(mListenerLock) {
+            synchronized (mListenerLock) {
                 if (mOnSeekBarChangeListener != null) {
                     mOnSeekBarChangeListener.onProgressChanged(seekBar, progress, fromUser);
                 }
@@ -88,7 +89,8 @@
     };
 
     // Percentage of max to be used as a snap to threshold
-    private static final float SNAP_TO_PERCENTAGE = 0.03f;
+    @VisibleForTesting
+    static final float SNAP_TO_PERCENTAGE = 0.03f;
     private final Paint mCenterMarkerPaint;
     private final Rect mCenterMarkerRect;
     // changed in setMax()
@@ -122,7 +124,7 @@
 
     @Override
     public void setOnSeekBarChangeListener(OnSeekBarChangeListener listener) {
-        synchronized(mListenerLock) {
+        synchronized (mListenerLock) {
             mOnSeekBarChangeListener = listener;
         }
     }
@@ -148,5 +150,10 @@
         canvas.restore();
         super.onDraw(canvas);
     }
+
+    @VisibleForTesting
+    OnSeekBarChangeListener getProxySeekBarListener() {
+        return mProxySeekBarListener;
+    }
 }
 
diff --git a/src/com/android/settings/accessibility/BalanceSeekBarPreference.java b/src/com/android/settings/accessibility/BalanceSeekBarPreference.java
index a40282c..b03c8ab 100644
--- a/src/com/android/settings/accessibility/BalanceSeekBarPreference.java
+++ b/src/com/android/settings/accessibility/BalanceSeekBarPreference.java
@@ -34,7 +34,9 @@
 
 /** A slider preference that directly controls audio balance **/
 public class BalanceSeekBarPreference extends SeekBarPreference {
-    private static final String TAG = "BalanceSeekBarPreference";
+    private static final int BALANCE_CENTER_VALUE = 100;
+    private static final int BALANCE_MAX_VALUE = 200;
+
     private final Context mContext;
     private BalanceSeekBar mSeekBar;
     private ImageView mIconView;
@@ -62,9 +64,9 @@
         final float balance = Settings.System.getFloatForUser(
                 mContext.getContentResolver(), Settings.System.MASTER_BALANCE,
                 0.f /* default */, UserHandle.USER_CURRENT);
-        // Rescale balance to range 0-200 centered at 100.
-        mSeekBar.setMax(200);
-        mSeekBar.setProgress((int)(balance * 100.f) + 100);
+        // Rescale balance to range 0-BALANCE_MAX_VALUE centered at BALANCE_MAX_VALUE / 2.
+        mSeekBar.setMax(BALANCE_MAX_VALUE);
+        mSeekBar.setProgress((int) (balance * 100.f) + BALANCE_CENTER_VALUE);
         mSeekBar.setEnabled(isEnabled());
     }
 }
diff --git a/src/com/android/settings/accounts/AvatarViewMixin.java b/src/com/android/settings/accounts/AvatarViewMixin.java
index 3ce8c0a..9e762c7 100644
--- a/src/com/android/settings/accounts/AvatarViewMixin.java
+++ b/src/com/android/settings/accounts/AvatarViewMixin.java
@@ -17,6 +17,7 @@
 package com.android.settings.accounts;
 
 import android.accounts.Account;
+import android.app.ActivityManager;
 import android.app.settings.SettingsEnums;
 import android.content.ContentResolver;
 import android.content.Context;
@@ -64,11 +65,13 @@
     private final Context mContext;
     private final ImageView mAvatarView;
     private final MutableLiveData<Bitmap> mAvatarImage;
+    private final ActivityManager mActivityManager;
 
     private String mAccountName;
 
     public AvatarViewMixin(SettingsHomepageActivity activity, ImageView avatarView) {
         mContext = activity.getApplicationContext();
+        mActivityManager = mContext.getSystemService(ActivityManager.class);
         mAvatarView = avatarView;
         mAvatarView.setOnClickListener(v -> {
             Intent intent;
@@ -114,7 +117,11 @@
     @OnLifecycleEvent(Lifecycle.Event.ON_START)
     public void onStart() {
         if (!mContext.getResources().getBoolean(R.bool.config_show_avatar_in_homepage)) {
-            Log.d(TAG, "Feature disabled. Skipping");
+            Log.d(TAG, "Feature disabled by config. Skipping");
+            return;
+        }
+        if (mActivityManager.isLowRamDevice()) {
+            Log.d(TAG, "Feature disabled on low ram device. Skipping");
             return;
         }
         if (hasAccount()) {
diff --git a/src/com/android/settings/applications/RecentAppsPreferenceController.java b/src/com/android/settings/applications/RecentAppsPreferenceController.java
index c0d18c6..be86dd5 100644
--- a/src/com/android/settings/applications/RecentAppsPreferenceController.java
+++ b/src/com/android/settings/applications/RecentAppsPreferenceController.java
@@ -25,6 +25,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
+import android.icu.text.RelativeDateTimeFormatter;
 import android.os.PowerManager;
 import android.os.UserHandle;
 import android.util.ArrayMap;
@@ -224,7 +225,8 @@
                 .setIcon(mIconDrawableFactory.getBadgedIcon(appEntry.info))
                 .setTitle(appEntry.label)
                 .setSummary(StringUtil.formatRelativeTime(mContext,
-                        System.currentTimeMillis() - stat.getLastTimeUsed(), false))
+                        System.currentTimeMillis() - stat.getLastTimeUsed(), false,
+                        RelativeDateTimeFormatter.Style.SHORT))
                 .setOnClickListener(v ->
                         AppInfoBase.startAppInfoFragment(AppInfoDashboardFragment.class,
                                 R.string.application_info_label, pkgName, appEntry.info.uid,
diff --git a/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBase.java b/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBase.java
index ca8dda3..0663e2a 100644
--- a/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBase.java
+++ b/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBase.java
@@ -14,12 +14,12 @@
 
 package com.android.settings.applications.appinfo;
 
+import android.app.role.RoleControllerManager;
 import android.app.role.RoleManager;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.Intent;
 import android.os.UserManager;
-import android.permission.PermissionControllerManager;
 import android.text.TextUtils;
 
 import androidx.preference.Preference;
@@ -58,14 +58,14 @@
 
         mRoleManager = context.getSystemService(RoleManager.class);
 
-        final PermissionControllerManager permissionControllerManager =
-                mContext.getSystemService(PermissionControllerManager.class);
+        final RoleControllerManager roleControllerManager =
+                mContext.getSystemService(RoleControllerManager.class);
         final Executor executor = mContext.getMainExecutor();
-        permissionControllerManager.isRoleVisible(mRoleName, executor, visible -> {
+        roleControllerManager.isRoleVisible(mRoleName, executor, visible -> {
             mRoleVisible = visible;
             refreshAvailability();
         });
-        permissionControllerManager.isApplicationQualifiedForRole(mRoleName, mPackageName, executor,
+        roleControllerManager.isApplicationQualifiedForRole(mRoleName, mPackageName, executor,
                 qualified -> {
                     mAppQualified = qualified;
                     refreshAvailability();
diff --git a/src/com/android/settings/applications/appinfo/DrawOverlayDetails.java b/src/com/android/settings/applications/appinfo/DrawOverlayDetails.java
index d0b26a5..0f90c69 100644
--- a/src/com/android/settings/applications/appinfo/DrawOverlayDetails.java
+++ b/src/com/android/settings/applications/appinfo/DrawOverlayDetails.java
@@ -15,22 +15,13 @@
  */
 package com.android.settings.applications.appinfo;
 
-import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
-
-import android.app.ActivityManager;
 import android.app.AppOpsManager;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
 import android.os.Bundle;
-import android.provider.Settings;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.view.Window;
-import android.view.WindowManager;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.appcompat.app.AlertDialog;
@@ -55,16 +46,11 @@
     private static final String KEY_APP_OPS_SETTINGS_SWITCH = "app_ops_settings_switch";
     private static final String LOG_TAG = "DrawOverlayDetails";
 
-    private static final int[] APP_OPS_OP_CODE = {
-            AppOpsManager.OP_SYSTEM_ALERT_WINDOW
-    };
-
     // Use a bridge to get the overlay details but don't initialize it to connect with all state.
     // TODO: Break out this functionality into its own class.
     private AppStateOverlayBridge mOverlayBridge;
     private AppOpsManager mAppOpsManager;
     private SwitchPreference mSwitchPref;
-    private Intent mSettingsIntent;
     private OverlayState mOverlayState;
 
     @Override
@@ -82,18 +68,15 @@
 
         // find preferences
         addPreferencesFromResource(R.xml.draw_overlay_permissions_details);
-        mSwitchPref = (SwitchPreference) findPreference(KEY_APP_OPS_SETTINGS_SWITCH);
+        mSwitchPref = findPreference(KEY_APP_OPS_SETTINGS_SWITCH);
 
         // install event listeners
         mSwitchPref.setOnPreferenceChangeListener(this);
-
-        mSettingsIntent = new Intent(Intent.ACTION_MAIN)
-                .setAction(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
     }
 
     // Override here so we don't have an empty screen
     @Override
-    public View onCreateView (LayoutInflater inflater,
+    public View onCreateView(LayoutInflater inflater,
             ViewGroup container,
             Bundle savedInstanceState) {
         // if we don't have a package info, show a page saying this is unsupported
@@ -104,21 +87,6 @@
     }
 
     @Override
-    public void onResume() {
-        super.onResume();
-        getActivity().getWindow().addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
-    }
-
-    @Override
-    public void onPause() {
-        super.onPause();
-        Window window = getActivity().getWindow();
-        WindowManager.LayoutParams attrs = window.getAttributes();
-        attrs.privateFlags &= ~SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
-        window.setAttributes(attrs);
-    }
-
-    @Override
     public void onDestroy() {
         super.onDestroy();
         mOverlayBridge.release();
@@ -164,7 +132,9 @@
 
     @Override
     protected boolean refreshUi() {
-        if (mPackageInfo == null) return true;
+        if (mPackageInfo == null) {
+            return true;
+        }
 
         mOverlayState = mOverlayBridge.getOverlayInfo(mPackageName,
                 mPackageInfo.applicationInfo.uid);
@@ -174,9 +144,6 @@
         // you cannot ask a user to grant you a permission you did not have!
         mSwitchPref.setEnabled(mOverlayState.permissionDeclared && mOverlayState.controlEnabled);
 
-        ResolveInfo resolveInfo = mPm.resolveActivityAsUser(mSettingsIntent,
-                PackageManager.GET_META_DATA, mUserId);
-
         return true;
     }
 
diff --git a/src/com/android/settings/applications/defaultapps/DefaultEmergencyPicker.java b/src/com/android/settings/applications/defaultapps/DefaultEmergencyPicker.java
index f088967..32cc9a8 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultEmergencyPicker.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultEmergencyPicker.java
@@ -17,9 +17,7 @@
 package com.android.settings.applications.defaultapps;
 
 import android.app.role.RoleManager;
-import android.app.role.RoleManagerCallback;
 import android.app.settings.SettingsEnums;
-import android.content.ContentResolver;
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageInfo;
@@ -27,7 +25,6 @@
 import android.content.pm.ResolveInfo;
 import android.os.AsyncTask;
 import android.os.Process;
-import android.provider.Settings;
 import android.text.TextUtils;
 import android.util.Log;
 
@@ -100,18 +97,13 @@
         final String previousValue = getDefaultKey();
 
         if (!TextUtils.isEmpty(key) && !TextUtils.equals(key, previousValue)) {
-            getContext().getSystemService(RoleManager.class)
-                      .addRoleHolderAsUser(
-                              RoleManager.ROLE_EMERGENCY, key, 0, Process.myUserHandle(),
-                              AsyncTask.THREAD_POOL_EXECUTOR, new RoleManagerCallback() {
-                                  @Override
-                                  public void onSuccess() {}
-
-                                  @Override
-                                  public void onFailure() {
-                                      Log.e(TAG, "Failed to set emergency default app.");
-                                  }
-                              });
+            getContext().getSystemService(RoleManager.class).addRoleHolderAsUser(
+                    RoleManager.ROLE_EMERGENCY, key, 0, Process.myUserHandle(),
+                    AsyncTask.THREAD_POOL_EXECUTOR, successful -> {
+                        if (!successful) {
+                            Log.e(TAG, "Failed to set emergency default app.");
+                        }
+                    });
             return true;
         }
         return false;
diff --git a/src/com/android/settings/applications/specialaccess/zenaccess/OWNERS b/src/com/android/settings/applications/specialaccess/zenaccess/OWNERS
new file mode 100644
index 0000000..9b5f41e
--- /dev/null
+++ b/src/com/android/settings/applications/specialaccess/zenaccess/OWNERS
@@ -0,0 +1,2 @@
+beverlyt@google.com
+juliacr@google.com
\ No newline at end of file
diff --git a/src/com/android/settings/applications/specialaccess/ZenAccessController.java b/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java
similarity index 94%
rename from src/com/android/settings/applications/specialaccess/ZenAccessController.java
rename to src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java
index 5ae2bd3..88d444d 100644
--- a/src/com/android/settings/applications/specialaccess/ZenAccessController.java
+++ b/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.settings.applications.specialaccess;
+package com.android.settings.applications.specialaccess.zenaccess;
 
 import android.app.ActivityManager;
 import android.content.Context;
diff --git a/src/com/android/settings/backup/BackupSettingsHelper.java b/src/com/android/settings/backup/BackupSettingsHelper.java
index fa77154..b836e55 100644
--- a/src/com/android/settings/backup/BackupSettingsHelper.java
+++ b/src/com/android/settings/backup/BackupSettingsHelper.java
@@ -209,7 +209,7 @@
     }
 
     /** Checks if backup service is enabled for this user. */
-    private boolean isBackupServiceActive() {
+    public boolean isBackupServiceActive() {
         boolean backupOkay;
         try {
             backupOkay = mBackupManager.isBackupServiceActive(UserHandle.myUserId());
diff --git a/src/com/android/settings/biometrics/BiometricEnrollActivity.java b/src/com/android/settings/biometrics/BiometricEnrollActivity.java
index b650c6c..1b41240 100644
--- a/src/com/android/settings/biometrics/BiometricEnrollActivity.java
+++ b/src/com/android/settings/biometrics/BiometricEnrollActivity.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.biometrics;
 
-import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
-
 import android.app.settings.SettingsEnums;
 import android.content.Intent;
 import android.content.pm.PackageManager;
@@ -25,8 +23,11 @@
 
 import com.android.settings.biometrics.face.FaceEnrollIntroduction;
 import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroduction;
+import com.android.settings.biometrics.fingerprint.SetupFingerprintEnrollIntroduction;
 import com.android.settings.core.InstrumentedActivity;
 
+import com.google.android.setupcompat.util.WizardManagerHelper;
+
 /**
  * Trampoline activity launched by the {@code android.settings.BIOMETRIC_ENROLL} action which
  * shows the user an appropriate enrollment flow depending on the device's biometric hardware.
@@ -40,20 +41,38 @@
         super.onCreate(savedInstanceState);
 
         final PackageManager pm = getApplicationContext().getPackageManager();
-        final Intent intent = new Intent();
+        Intent intent = null;
 
         // This logic may have to be modified on devices with multiple biometrics.
         if (pm.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) {
-            intent.setClassName(SETTINGS_PACKAGE_NAME,
-                    FingerprintEnrollIntroduction.class.getName());
+            intent = getFingerprintEnrollIntent();
         } else if (pm.hasSystemFeature(PackageManager.FEATURE_FACE)) {
-            intent.setClassName(SETTINGS_PACKAGE_NAME, FaceEnrollIntroduction.class.getName());
+            intent = getFaceEnrollIntent();
         }
 
-        startActivity(intent);
+        if (intent != null) {
+            intent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
+            startActivity(intent);
+        }
         finish();
     }
 
+    private Intent getFingerprintEnrollIntent() {
+        if (WizardManagerHelper.isAnySetupWizard(getIntent())) {
+            Intent intent = new Intent(this, SetupFingerprintEnrollIntroduction.class);
+            WizardManagerHelper.copyWizardManagerExtras(getIntent(), intent);
+            return intent;
+        } else {
+            return new Intent(this, FingerprintEnrollIntroduction.class);
+        }
+    }
+
+    private Intent getFaceEnrollIntent() {
+        Intent intent = new Intent(this, FaceEnrollIntroduction.class);
+        WizardManagerHelper.copyWizardManagerExtras(getIntent(), intent);
+        return intent;
+    }
+
     @Override
     public int getMetricsCategory() {
         return SettingsEnums.BIOMETRIC_ENROLL_ACTIVITY;
diff --git a/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java b/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java
index e8cf809..097ffe2 100644
--- a/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java
@@ -21,14 +21,19 @@
 import android.os.Bundle;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.os.storage.StorageManager;
 import android.view.View;
 import android.widget.TextView;
 
+import com.android.internal.widget.LockPatternUtils;
 import com.android.settings.R;
 import com.android.settings.password.ChooseLockGeneric;
+import com.android.settings.password.ChooseLockGeneric.ChooseLockGenericFragment;
 import com.android.settings.password.ChooseLockSettingsHelper;
+import com.android.settings.password.SetupChooseLockGeneric;
 
 import com.google.android.setupcompat.template.FooterButton;
+import com.google.android.setupcompat.util.WizardManagerHelper;
 import com.google.android.setupdesign.span.LinkSpan;
 
 /**
@@ -199,28 +204,39 @@
     }
 
     protected Intent getChooseLockIntent() {
-        return new Intent(this, ChooseLockGeneric.class);
+        if (WizardManagerHelper.isAnySetupWizard(getIntent())) {
+            // Default to PIN lock in setup wizard
+            Intent intent = new Intent(this, SetupChooseLockGeneric.class);
+            if (StorageManager.isFileEncryptedNativeOrEmulated()) {
+                intent.putExtra(
+                        LockPatternUtils.PASSWORD_TYPE_KEY,
+                        DevicePolicyManager.PASSWORD_QUALITY_NUMERIC);
+                intent.putExtra(ChooseLockGenericFragment.EXTRA_SHOW_OPTIONS_BUTTON, true);
+            }
+            WizardManagerHelper.copyWizardManagerExtras(getIntent(), intent);
+            return intent;
+        } else {
+            return new Intent(this, ChooseLockGeneric.class);
+        }
     }
 
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-        final boolean isResultFinished = resultCode == RESULT_FINISHED;
-        final int result = isResultFinished ? RESULT_OK : RESULT_SKIP;
         if (requestCode == BIOMETRIC_FIND_SENSOR_REQUEST) {
-            if (isResultFinished || resultCode == RESULT_SKIP) {
-                setResult(result, data);
+            if (resultCode == RESULT_FINISHED || resultCode == RESULT_SKIP) {
+                setResult(resultCode, data);
                 finish();
                 return;
             }
         } else if (requestCode == CHOOSE_LOCK_GENERIC_REQUEST) {
-            if (isResultFinished) {
+            if (resultCode == RESULT_FINISHED) {
                 updatePasswordQuality();
                 mToken = data.getByteArrayExtra(
                         ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN);
                 overridePendingTransition(R.anim.sud_slide_next_in, R.anim.sud_slide_next_out);
                 return;
             } else {
-                setResult(result, data);
+                setResult(resultCode, data);
                 finish();
             }
         } else if (requestCode == CONFIRM_REQUEST) {
@@ -228,7 +244,7 @@
                 mToken = data.getByteArrayExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN);
                 overridePendingTransition(R.anim.sud_slide_next_in, R.anim.sud_slide_next_out);
             } else {
-                setResult(result, data);
+                setResult(resultCode, data);
                 finish();
             }
         } else if (requestCode == LEARN_MORE_REQUEST) {
@@ -241,6 +257,11 @@
         finish();
     }
 
+    protected void onSkipButtonClick(View view) {
+        setResult(RESULT_SKIP);
+        finish();
+    }
+
     @Override
     protected void initViews() {
         super.initViews();
diff --git a/src/com/android/settings/biometrics/face/FaceEnrollAccessibilityToggle.java b/src/com/android/settings/biometrics/face/FaceEnrollAccessibilityToggle.java
index 49f4f7f..2db654b 100644
--- a/src/com/android/settings/biometrics/face/FaceEnrollAccessibilityToggle.java
+++ b/src/com/android/settings/biometrics/face/FaceEnrollAccessibilityToggle.java
@@ -58,9 +58,14 @@
             a.recycle();
         }
         mSwitch = findViewById(R.id.toggle);
+        mSwitch.setChecked(false);
     }
 
     public boolean isChecked() {
         return mSwitch.isChecked();
     }
+
+    public void setChecked(boolean checked) {
+        mSwitch.setChecked(checked);
+    }
 }
diff --git a/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java b/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
index e45817d..c7966f2 100644
--- a/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
@@ -36,6 +36,7 @@
 
 import com.google.android.setupcompat.template.FooterBarMixin;
 import com.google.android.setupcompat.template.FooterButton;
+import com.google.android.setupcompat.util.WizardManagerHelper;
 import com.google.android.setupdesign.span.LinkSpan;
 
 public class FaceEnrollIntroduction extends BiometricEnrollIntroduction {
@@ -52,6 +53,7 @@
         final LinearLayout accessibilityLayout = findViewById(R.id.accessibility_layout);
         final Button accessibilityButton = findViewById(R.id.accessibility_button);
         accessibilityButton.setOnClickListener(view -> {
+            mSwitchDiversity.setChecked(true);
             accessibilityButton.setVisibility(View.INVISIBLE);
             accessibilityLayout.setVisibility(View.VISIBLE);
         });
@@ -59,14 +61,25 @@
         mSwitchDiversity = findViewById(R.id.toggle_diversity);
 
         mFooterBarMixin = getLayout().getMixin(FooterBarMixin.class);
-        mFooterBarMixin.setSecondaryButton(
-                new FooterButton.Builder(this)
-                        .setText(R.string.security_settings_face_enroll_introduction_cancel)
-                        .setListener(this::onCancelButtonClick)
-                        .setButtonType(FooterButton.ButtonType.SKIP)
-                        .setTheme(R.style.SudGlifButton_Secondary)
-                        .build()
-        );
+        if (WizardManagerHelper.isAnySetupWizard(getIntent())) {
+            mFooterBarMixin.setSecondaryButton(
+                    new FooterButton.Builder(this)
+                            .setText(R.string.skip_label)
+                            .setListener(this::onSkipButtonClick)
+                            .setButtonType(FooterButton.ButtonType.SKIP)
+                            .setTheme(R.style.SudGlifButton_Secondary)
+                            .build()
+            );
+        } else {
+            mFooterBarMixin.setSecondaryButton(
+                    new FooterButton.Builder(this)
+                            .setText(R.string.security_settings_face_enroll_introduction_cancel)
+                            .setListener(this::onCancelButtonClick)
+                            .setButtonType(FooterButton.ButtonType.CANCEL)
+                            .setTheme(R.style.SudGlifButton_Secondary)
+                            .build()
+            );
+        }
 
         mFooterBarMixin.setPrimaryButton(
                 new FooterButton.Builder(this)
@@ -165,7 +178,8 @@
         } else {
             intent.setClass(this, FaceEnrollEnrolling.class);
         }
-        intent.putExtra(EXTRA_KEY_REQUIRE_DIVERSITY, mSwitchDiversity.isChecked());
+        intent.putExtra(EXTRA_KEY_REQUIRE_DIVERSITY, !mSwitchDiversity.isChecked());
+        WizardManagerHelper.copyWizardManagerExtras(getIntent(), intent);
         return intent;
     }
 
diff --git a/src/com/android/settings/biometrics/face/FaceSettings.java b/src/com/android/settings/biometrics/face/FaceSettings.java
index 490580d..ea5a303 100644
--- a/src/com/android/settings/biometrics/face/FaceSettings.java
+++ b/src/com/android/settings/biometrics/face/FaceSettings.java
@@ -156,6 +156,9 @@
 
     @Override
     protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
+        if (!isAvailable(context)) {
+            return null;
+        }
         final List<AbstractPreferenceController> controllers =
                 buildPreferenceControllers(context, getSettingsLifecycle());
         // There's no great way of doing this right now :/
@@ -197,7 +200,11 @@
                 @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(
                         Context context) {
-                    return buildPreferenceControllers(context, null /* lifecycle */);
+                    if (isAvailable(context)) {
+                        return buildPreferenceControllers(context, null /* lifecycle */);
+                    } else {
+                        return null;
+                    }
                 }
 
                 @Override
diff --git a/src/com/android/settings/core/FeatureFlags.java b/src/com/android/settings/core/FeatureFlags.java
index f2ffe22..fbb2ae3 100644
--- a/src/com/android/settings/core/FeatureFlags.java
+++ b/src/com/android/settings/core/FeatureFlags.java
@@ -23,8 +23,10 @@
     public static final String AUDIO_SWITCHER_SETTINGS = "settings_audio_switcher";
     public static final String HEARING_AID_SETTINGS = "settings_bluetooth_hearing_aid";
     public static final String MOBILE_NETWORK_V2 = "settings_mobile_network_v2";
-    public static final String WIFI_MAC_RANDOMIZATION = "settings_wifi_mac_randomization";
     public static final String NETWORK_INTERNET_V2 = "settings_network_and_internet_v2";
     public static final String SLICE_INJECTION = "settings_slice_injection";
     public static final String MAINLINE_MODULE = "settings_mainline_module";
+    public static final String WIFI_DETAILS_SAVED_SCREEN = "settings_wifi_details_saved_screen";
+    public static final String WIFI_DETAILS_DATAUSAGE_HEADER =
+            "settings_wifi_details_datausage_header";
 }
diff --git a/src/com/android/settings/core/HideNonSystemOverlayMixin.java b/src/com/android/settings/core/HideNonSystemOverlayMixin.java
new file mode 100644
index 0000000..59cef3b
--- /dev/null
+++ b/src/com/android/settings/core/HideNonSystemOverlayMixin.java
@@ -0,0 +1,64 @@
+/*
+ * 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.settings.core;
+
+import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
+
+import static androidx.lifecycle.Lifecycle.Event.ON_START;
+import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
+
+import android.app.Activity;
+import android.view.Window;
+import android.view.WindowManager;
+
+import androidx.lifecycle.LifecycleObserver;
+import androidx.lifecycle.OnLifecycleEvent;
+
+
+/**
+ * A mixin that adds window flag to prevent non-system overlays showing on top of Settings
+ * activities.
+ */
+public class HideNonSystemOverlayMixin implements LifecycleObserver {
+
+    private final Activity mActivity;
+
+    public HideNonSystemOverlayMixin(Activity activity) {
+        mActivity = activity;
+    }
+
+    @OnLifecycleEvent(ON_START)
+    public void onStart() {
+        if (mActivity == null) {
+            return;
+        }
+        mActivity.getWindow().addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
+        android.util.EventLog.writeEvent(0x534e4554, "120484087", -1, "");
+    }
+
+
+    @OnLifecycleEvent(ON_STOP)
+    public void onStop() {
+        if (mActivity == null) {
+            return;
+        }
+        final Window window = mActivity.getWindow();
+        final WindowManager.LayoutParams attrs = window.getAttributes();
+        attrs.privateFlags &= ~SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
+        window.setAttributes(attrs);
+    }
+}
diff --git a/src/com/android/settings/core/SettingsBaseActivity.java b/src/com/android/settings/core/SettingsBaseActivity.java
index 294e754..cd13654 100644
--- a/src/com/android/settings/core/SettingsBaseActivity.java
+++ b/src/com/android/settings/core/SettingsBaseActivity.java
@@ -32,7 +32,6 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.Window;
-import android.view.WindowManager.LayoutParams;
 import android.widget.Toolbar;
 
 import androidx.fragment.app.FragmentActivity;
@@ -59,8 +58,8 @@
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-
         final long startTime = System.currentTimeMillis();
+        getLifecycle().addObserver(new HideNonSystemOverlayMixin(this));
 
         final TypedArray theme = getTheme().obtainStyledAttributes(android.R.styleable.Theme);
         if (!theme.getBoolean(android.R.styleable.Theme_windowNoTitle, false)) {
diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java
index 7abd98d..ba64a80 100644
--- a/src/com/android/settings/core/gateway/SettingsGateway.java
+++ b/src/com/android/settings/core/gateway/SettingsGateway.java
@@ -82,7 +82,7 @@
 import com.android.settings.gestures.DoubleTwistGestureSettings;
 import com.android.settings.gestures.PickupGestureSettings;
 import com.android.settings.gestures.SwipeToNotificationSettings;
-import com.android.settings.gestures.SwipeUpGestureSettings;
+import com.android.settings.gestures.SystemNavigationGestureSettings;
 import com.android.settings.inputmethod.AvailableVirtualKeyboardFragment;
 import com.android.settings.inputmethod.KeyboardLayoutPickerFragment;
 import com.android.settings.inputmethod.PhysicalKeyboardFragment;
@@ -135,6 +135,7 @@
 import com.android.settings.wifi.WifiAPITest;
 import com.android.settings.wifi.WifiInfo;
 import com.android.settings.wifi.WifiSettings;
+import com.android.settings.wifi.calling.WifiCallingDisclaimerFragment;
 import com.android.settings.wifi.calling.WifiCallingSettings;
 import com.android.settings.wifi.p2p.WifiP2pSettings;
 import com.android.settings.wifi.savedaccesspoints.SavedAccessPointsWifiSettings;
@@ -201,7 +202,7 @@
             DoubleTapScreenSettings.class.getName(),
             PickupGestureSettings.class.getName(),
             DoubleTwistGestureSettings.class.getName(),
-            SwipeUpGestureSettings.class.getName(),
+            SystemNavigationGestureSettings.class.getName(),
             CryptKeeperSettings.class.getName(),
             DataUsageSummary.class.getName(),
             DreamSettings.class.getName(),
@@ -260,6 +261,7 @@
             ConnectedDeviceDashboardFragment.class.getName(),
             UsbDetailsFragment.class.getName(),
             AppAndNotificationDashboardFragment.class.getName(),
+            WifiCallingDisclaimerFragment.class.getName(),
             AccountDashboardFragment.class.getName(),
             EnterprisePrivacySettings.class.getName(),
             WebViewAppPicker.class.getName(),
diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreference.java b/src/com/android/settings/datausage/DataUsageSummaryPreference.java
index 481538d..93df2f1 100644
--- a/src/com/android/settings/datausage/DataUsageSummaryPreference.java
+++ b/src/com/android/settings/datausage/DataUsageSummaryPreference.java
@@ -69,6 +69,8 @@
     private boolean mDefaultTextColorSet;
     private int mDefaultTextColor;
     private int mNumPlans;
+    /** The specified un-initialized value for cycle time */
+    private final long CYCLE_TIME_UNINITIAL_VALUE = 0;
     /** The ending time of the billing cycle in milliseconds since epoch. */
     private long mCycleEndTimeMs;
     /** The time of the last update in standard milliseconds since the epoch */
@@ -94,6 +96,7 @@
     /** WiFi only mode */
     private boolean mWifiMode;
     private String mUsagePeriod;
+    private boolean mSingleWifi;    // Shows only one specified WiFi network usage
 
     public DataUsageSummaryPreference(Context context, AttributeSet attrs) {
         super(context, attrs);
@@ -142,9 +145,10 @@
         notifyChanged();
     }
 
-    void setWifiMode(boolean isWifiMode, String usagePeriod) {
+    void setWifiMode(boolean isWifiMode, String usagePeriod, boolean isSingleWifi) {
         mWifiMode = isWifiMode;
         mUsagePeriod = usagePeriod;
+        mSingleWifi = isSingleWifi;
         notifyChanged();
     }
 
@@ -171,7 +175,16 @@
         Button launchButton = (Button) holder.findViewById(R.id.launch_mdp_app_button);
         TextView limitInfo = (TextView) holder.findViewById(R.id.data_limits);
 
-        if (mWifiMode) {
+        if (mWifiMode && mSingleWifi) {
+            updateCycleTimeText(holder);
+
+            usageTitle.setVisibility(View.GONE);
+            launchButton.setVisibility(View.GONE);
+            carrierInfo.setVisibility(View.GONE);
+
+            limitInfo.setVisibility(TextUtils.isEmpty(mLimitInfoText) ? View.GONE : View.VISIBLE);
+            limitInfo.setText(mLimitInfoText);
+        } else if (mWifiMode) {
             usageTitle.setText(R.string.data_usage_wifi_title);
             usageTitle.setVisibility(View.VISIBLE);
             TextView cycleTime = (TextView) holder.findViewById(R.id.cycle_left_time);
@@ -265,6 +278,13 @@
     private void updateCycleTimeText(PreferenceViewHolder holder) {
         TextView cycleTime = (TextView) holder.findViewById(R.id.cycle_left_time);
 
+        // Takes zero as a special case which value is never set.
+        if (mCycleEndTimeMs == CYCLE_TIME_UNINITIAL_VALUE) {
+            cycleTime.setVisibility(View.GONE);
+            return;
+        }
+
+        cycleTime.setVisibility(View.VISIBLE);
         long millisLeft = mCycleEndTimeMs - System.currentTimeMillis();
         if (millisLeft <= 0) {
             cycleTime.setText(getContext().getString(R.string.billing_cycle_none_left));
diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java
index 353c5ee..a06bb77 100644
--- a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java
+++ b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java
@@ -65,10 +65,10 @@
     private final EntityHeaderController mEntityHeaderController;
     private final Lifecycle mLifecycle;
     private final PreferenceFragmentCompat mFragment;
-    private final DataUsageController mDataUsageController;
-    private final DataUsageInfoController mDataInfoController;
+    protected final DataUsageController mDataUsageController;
+    protected final DataUsageInfoController mDataInfoController;
     private final NetworkTemplate mDefaultTemplate;
-    private final NetworkPolicyEditor mPolicyEditor;
+    protected final NetworkPolicyEditor mPolicyEditor;
     private final int mDataUsageTemplate;
     private final boolean mHasMobileData;
     private final SubscriptionManager mSubscriptionManager;
@@ -200,11 +200,13 @@
         if (DataUsageUtils.hasSim(mActivity)) {
             info = mDataUsageController.getDataUsageInfo(mDefaultTemplate);
             mDataInfoController.updateDataLimit(info, mPolicyEditor.getPolicy(mDefaultTemplate));
-            summaryPreference.setWifiMode(/* isWifiMode */ false, /* usagePeriod */ null);
+            summaryPreference.setWifiMode(/* isWifiMode */ false,
+                    /* usagePeriod */ null, /* isSingleWifi */ false);
         } else {
             info = mDataUsageController.getDataUsageInfo(
                     NetworkTemplate.buildTemplateWifiWildcard());
-            summaryPreference.setWifiMode(/* isWifiMode */ true, /* usagePeriod */ info.period);
+            summaryPreference.setWifiMode(/* isWifiMode */ true, /* usagePeriod */
+                    info.period, /* isSingleWifi */ false);
             summaryPreference.setLimitInfo(null);
             summaryPreference.setUsageNumbers(info.usageLevel,
                     /* dataPlanSize */ -1L,
diff --git a/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceController.java b/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceController.java
new file mode 100644
index 0000000..8b6d10a
--- /dev/null
+++ b/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceController.java
@@ -0,0 +1,72 @@
+/*
+ * 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.settings.datausage;
+
+import android.app.Activity;
+import android.net.NetworkTemplate;
+import android.telephony.SubscriptionManager;
+import android.text.format.Formatter;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceFragmentCompat;
+
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.net.DataUsageController;
+
+/**
+ *  The controller displays a data usage chart for the specified Wi-Fi network.
+ */
+public class WifiDataUsageSummaryPreferenceController extends DataUsageSummaryPreferenceController {
+    final String mNetworkId;
+
+    public WifiDataUsageSummaryPreferenceController(Activity activity,
+            Lifecycle lifecycle, PreferenceFragmentCompat fragment, CharSequence networkId) {
+        super(activity, lifecycle, fragment, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+
+        if (networkId == null) {
+            mNetworkId = null;
+        } else {
+            mNetworkId = String.valueOf(networkId);
+        }
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        if (preference == null) {
+            return;
+        }
+
+        final DataUsageSummaryPreference mPreference = (DataUsageSummaryPreference) preference;
+        // TODO(b/126299427): Currently gets data usage of whole Wi-Fi networks, but should get
+        //  specified one.
+        final NetworkTemplate template = NetworkTemplate.buildTemplateWifi(mNetworkId);
+        final DataUsageController.DataUsageInfo info = mDataUsageController.getDataUsageInfo(
+                template);
+        mDataInfoController.updateDataLimit(info, mPolicyEditor.getPolicy(template));
+
+        mPreference.setWifiMode(/* isWifiMode */ true, /* usagePeriod */
+                info.period, /* isSingleWifi */ true);
+        mPreference.setChartEnabled(true);
+        // Treats Wi-Fi network as unlimited network, which has same usage level and limited level.
+        mPreference.setUsageNumbers(info.usageLevel, info.usageLevel, /* hasMobileData */ false);
+
+        // TODO(b/126142293): Passpoint Wi-Fi should have limit of data usage and time remaining
+        mPreference.setProgress(100);
+        mPreference.setLabels(Formatter.formatFileSize(mContext, /* sizeBytes */ 0),
+                DataUsageUtils.formatDataUsage(mContext, info.usageLevel));
+    }
+}
diff --git a/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java b/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
index f13af94..855a988 100644
--- a/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
@@ -16,12 +16,8 @@
 
 package com.android.settings.deviceinfo;
 
-import static android.content.Context.CLIPBOARD_SERVICE;
-
 import android.app.Activity;
 import android.app.settings.SettingsEnums;
-import android.content.ClipData;
-import android.content.ClipboardManager;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
@@ -79,11 +75,7 @@
 
     @Override
     public CharSequence getSummary() {
-        try {
-            return BidiFormatter.getInstance().unicodeWrap(Build.DISPLAY);
-        } catch (Exception e) {
-            return mContext.getText(R.string.device_info_default);
-        }
+        return BidiFormatter.getInstance().unicodeWrap(Build.DISPLAY);
     }
 
     @Override
@@ -99,29 +91,7 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return AVAILABLE;
-    }
-
-    @Override
-    public boolean isSliceable() {
-        return true;
-    }
-
-    @Override
-    public boolean isCopyableSlice() {
-        return true;
-    }
-
-    @Override
-    public void copy() {
-        final ClipboardManager clipboard = (ClipboardManager) mContext.getSystemService(
-                CLIPBOARD_SERVICE);
-        final ClipData clip = ClipData.newPlainText("text", getSummary());
-        clipboard.setPrimaryClip(clip);
-
-        final String toast = mContext.getString(R.string.copyable_slice_toast,
-                mContext.getText(R.string.build_number));
-        Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
+        return AVAILABLE_UNSEARCHABLE;
     }
 
     @Override
diff --git a/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceController.java
index c7d4459..36f1a43 100644
--- a/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceController.java
@@ -16,10 +16,16 @@
 
 package com.android.settings.deviceinfo.firmwareversion;
 
+import static android.content.Context.CLIPBOARD_SERVICE;
+
+import android.content.ClipData;
+import android.content.ClipboardManager;
 import android.content.Context;
 import android.os.Build;
 import android.text.BidiFormatter;
+import android.widget.Toast;
 
+import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
 
 public class SimpleBuildNumberPreferenceController extends BasePreferenceController {
@@ -38,4 +44,26 @@
     public CharSequence getSummary() {
         return BidiFormatter.getInstance().unicodeWrap(Build.DISPLAY);
     }
+
+    @Override
+    public boolean isSliceable() {
+        return true;
+    }
+
+    @Override
+    public boolean isCopyableSlice() {
+        return true;
+    }
+
+    @Override
+    public void copy() {
+        final ClipboardManager clipboard = (ClipboardManager) mContext.getSystemService(
+                CLIPBOARD_SERVICE);
+        final ClipData clip = ClipData.newPlainText("text", getSummary());
+        clipboard.setPrimaryClip(clip);
+
+        final String toast = mContext.getString(R.string.copyable_slice_toast,
+                mContext.getText(R.string.build_number));
+        Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
+    }
 }
diff --git a/src/com/android/settings/fuelgauge/BatteryInfo.java b/src/com/android/settings/fuelgauge/BatteryInfo.java
index 1f11f5a..c851a71 100644
--- a/src/com/android/settings/fuelgauge/BatteryInfo.java
+++ b/src/com/android/settings/fuelgauge/BatteryInfo.java
@@ -47,6 +47,7 @@
     public long averageTimeToDischarge = Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN;
     public String batteryPercentString;
     public String statusLabel;
+    public String suggestionLabel;
     private boolean mCharging;
     private BatteryStats mStats;
     private static final String LOG_TAG = "BatteryInfo";
@@ -247,6 +248,7 @@
         final int status = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_STATUS,
                 BatteryManager.BATTERY_STATUS_UNKNOWN);
         info.discharging = false;
+        info.suggestionLabel = null;
         if (chargeTime > 0 && status != BatteryManager.BATTERY_STATUS_FULL) {
             info.remainingTimeUs = chargeTime;
             CharSequence timeString = StringUtil.formatElapsedTime(context,
@@ -282,8 +284,11 @@
                     info.batteryPercentString,
                     estimate.isBasedOnUsage && !shortString
             );
+            info.suggestionLabel = PowerUtil.getBatteryTipStringFormatted(
+                    context, PowerUtil.convertUsToMs(drainTimeUs));
         } else {
             info.remainingLabel = null;
+            info.suggestionLabel = null;
             info.chargeLabel = info.batteryPercentString;
         }
     }
diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceController.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceController.java
new file mode 100644
index 0000000..b14fec9
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceController.java
@@ -0,0 +1,41 @@
+package com.android.settings.fuelgauge.batterysaver;
+
+import android.content.Context;
+import android.provider.Settings;
+import androidx.preference.Preference;
+import androidx.preference.SwitchPreference;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.core.PreferenceControllerMixin;
+
+public class BatterySaverStickyPreferenceController extends BasePreferenceController implements
+        PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
+
+    public static final String LOW_POWER_STICKY_AUTO_DISABLE_ENABLED =
+            "low_power_sticky_auto_disable_enabled";
+
+    public BatterySaverStickyPreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        int setting = Settings.System.getInt(mContext.getContentResolver(),
+                LOW_POWER_STICKY_AUTO_DISABLE_ENABLED, 1);
+
+        ((SwitchPreference) preference).setChecked(setting == 0);
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        boolean keepActive = (Boolean) newValue;
+        Settings.System.putInt(mContext.getContentResolver(),
+                LOW_POWER_STICKY_AUTO_DISABLE_ENABLED,
+                keepActive ? 0 : 1);
+        return true;
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+}
diff --git a/src/com/android/settings/fuelgauge/batterytip/AnomalyInfo.java b/src/com/android/settings/fuelgauge/batterytip/AnomalyInfo.java
index 063cfec..fc15706 100644
--- a/src/com/android/settings/fuelgauge/batterytip/AnomalyInfo.java
+++ b/src/com/android/settings/fuelgauge/batterytip/AnomalyInfo.java
@@ -20,7 +20,7 @@
 import android.util.Log;
 
 /**
- * Model class to parse and store anomaly info from westworld
+ * Model class to parse and store anomaly info from statsd.
  */
 public class AnomalyInfo {
     private static final String TAG = "AnomalyInfo";
@@ -38,4 +38,4 @@
         autoRestriction = parser.getBoolean(KEY_AUTO_RESTRICTION, false);
     }
 
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetector.java b/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetector.java
index 21cc28a..ca9141d 100644
--- a/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetector.java
+++ b/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetector.java
@@ -62,6 +62,6 @@
         }
 
         return new LowBatteryTip(
-                state, powerSaveModeOn, mBatteryInfo.remainingLabel);
+                state, powerSaveModeOn, mBatteryInfo.suggestionLabel);
     }
 }
diff --git a/src/com/android/settings/gestures/SwipeUpPreferenceController.java b/src/com/android/settings/gestures/SwipeUpPreferenceController.java
deleted file mode 100644
index 5e882c4..0000000
--- a/src/com/android/settings/gestures/SwipeUpPreferenceController.java
+++ /dev/null
@@ -1,97 +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.settings.gestures;
-
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.os.UserManager;
-import android.provider.Settings;
-import android.text.TextUtils;
-
-import com.android.internal.R;
-
-public class SwipeUpPreferenceController extends GesturePreferenceController {
-
-    private final int ON = 1;
-    private final int OFF = 0;
-
-    private static final String ACTION_QUICKSTEP = "android.intent.action.QUICKSTEP_SERVICE";
-    private static final String PREF_KEY_VIDEO = "gesture_swipe_up_video";
-    private final UserManager mUserManager;
-
-    public SwipeUpPreferenceController(Context context, String key) {
-        super(context, key);
-        mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
-    }
-
-    static boolean isGestureAvailable(Context context) {
-        if (!context.getResources().getBoolean(R.bool.config_swipe_up_gesture_setting_available)) {
-            return false;
-        }
-
-        final ComponentName recentsComponentName = ComponentName.unflattenFromString(
-                context.getString(R.string.config_recentsComponentName));
-        if (recentsComponentName == null) {
-            return false;
-        }
-        final Intent quickStepIntent = new Intent(ACTION_QUICKSTEP)
-                .setPackage(recentsComponentName.getPackageName());
-        if (context.getPackageManager().resolveService(quickStepIntent,
-                PackageManager.MATCH_SYSTEM_ONLY) == null) {
-            return false;
-        }
-        return true;
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        return isGestureAvailable(mContext) ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
-    }
-
-    @Override
-    public boolean isSliceable() {
-        return TextUtils.equals(getPreferenceKey(), "gesture_swipe_up");
-    }
-
-    @Override
-    protected String getVideoPrefKey() {
-        return PREF_KEY_VIDEO;
-    }
-
-    @Override
-    public boolean setChecked(boolean isChecked) {
-        setSwipeUpPreference(mContext, mUserManager, isChecked ? ON : OFF);
-        return true;
-    }
-
-    public static void setSwipeUpPreference(Context context, UserManager userManager,
-            int enabled) {
-        Settings.Secure.putInt(context.getContentResolver(),
-                Settings.Secure.SWIPE_UP_TO_SWITCH_APPS_ENABLED, enabled);
-    }
-
-    @Override
-    public boolean isChecked() {
-        final int defaultValue = mContext.getResources()
-                .getBoolean(R.bool.config_swipe_up_gesture_default) ? ON : OFF;
-        final int swipeUpEnabled = Settings.Secure.getInt(mContext.getContentResolver(),
-                Settings.Secure.SWIPE_UP_TO_SWITCH_APPS_ENABLED, defaultValue);
-        return swipeUpEnabled != OFF;
-    }
-}
diff --git a/src/com/android/settings/gestures/SystemNavigationEdgeToEdgePreferenceController.java b/src/com/android/settings/gestures/SystemNavigationEdgeToEdgePreferenceController.java
new file mode 100644
index 0000000..129cf90
--- /dev/null
+++ b/src/com/android/settings/gestures/SystemNavigationEdgeToEdgePreferenceController.java
@@ -0,0 +1,48 @@
+/*
+ * 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.settings.gestures;
+
+import android.content.Context;
+import android.text.TextUtils;
+
+import com.android.settings.widget.RadioButtonPreference;
+
+public class SystemNavigationEdgeToEdgePreferenceController extends
+        SystemNavigationPreferenceController {
+    static final String PREF_KEY_EDGE_TO_EDGE = "gesture_edge_to_edge";
+
+    public SystemNavigationEdgeToEdgePreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    public boolean isSliceable() {
+        return TextUtils.equals(PREF_KEY_EDGE_TO_EDGE, getPreferenceKey());
+    }
+
+    @Override
+    public void onRadioButtonClicked(RadioButtonPreference preference) {
+        setSwipeUpEnabled(mContext, true);
+        setEdgeToEdgeGestureEnabled(mContext, true);
+        selectRadioButtonInGroup(PREF_KEY_EDGE_TO_EDGE, mPreferenceScreen);
+    }
+
+    @Override
+    public boolean isChecked() {
+        return isEdgeToEdgeEnabled(mContext);
+    }
+}
diff --git a/src/com/android/settings/gestures/SwipeUpGestureSettings.java b/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
similarity index 85%
rename from src/com/android/settings/gestures/SwipeUpGestureSettings.java
rename to src/com/android/settings/gestures/SystemNavigationGestureSettings.java
index a125643..ea5454b 100644
--- a/src/com/android/settings/gestures/SwipeUpGestureSettings.java
+++ b/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
@@ -32,12 +32,12 @@
 import java.util.List;
 
 @SearchIndexable
-public class SwipeUpGestureSettings extends DashboardFragment {
+public class SystemNavigationGestureSettings extends DashboardFragment {
 
-    private static final String TAG = "SwipeUpGesture";
+    private static final String TAG = "SystemNavigationGesture";
 
     public static final String PREF_KEY_SUGGESTION_COMPLETE =
-            "pref_swipe_up_suggestion_complete";
+            "pref_system_navigation_suggestion_complete";
 
     @Override
     public void onAttach(Context context) {
@@ -60,7 +60,7 @@
 
     @Override
     protected int getPreferenceScreenResId() {
-        return R.xml.swipe_up_gesture_settings;
+        return R.xml.system_navigation_gesture_settings;
     }
 
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
@@ -69,13 +69,13 @@
                 public List<SearchIndexableResource> getXmlResourcesToIndex(
                         Context context, boolean enabled) {
                     final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.swipe_up_gesture_settings;
+                    sir.xmlResId = R.xml.system_navigation_gesture_settings;
                     return Arrays.asList(sir);
                 }
 
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
-                    return SwipeUpPreferenceController.isGestureAvailable(context);
+                    return SystemNavigationPreferenceController.isGestureAvailable(context);
                 }
             };
 }
diff --git a/src/com/android/settings/gestures/SystemNavigationLegacyPreferenceController.java b/src/com/android/settings/gestures/SystemNavigationLegacyPreferenceController.java
new file mode 100644
index 0000000..f9c95a8
--- /dev/null
+++ b/src/com/android/settings/gestures/SystemNavigationLegacyPreferenceController.java
@@ -0,0 +1,48 @@
+/*
+ * 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.settings.gestures;
+
+import android.content.Context;
+import android.text.TextUtils;
+
+import com.android.settings.widget.RadioButtonPreference;
+
+public class SystemNavigationLegacyPreferenceController extends
+        SystemNavigationPreferenceController {
+    static final String PREF_KEY_LEGACY = "gesture_legacy";
+
+    public SystemNavigationLegacyPreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    public boolean isSliceable() {
+        return TextUtils.equals(PREF_KEY_LEGACY, getPreferenceKey());
+    }
+
+    @Override
+    public void onRadioButtonClicked(RadioButtonPreference preference) {
+        setEdgeToEdgeGestureEnabled(mContext, false);
+        setSwipeUpEnabled(mContext, false);
+        selectRadioButtonInGroup(PREF_KEY_LEGACY, mPreferenceScreen);
+    }
+
+    @Override
+    public boolean isChecked() {
+        return !isEdgeToEdgeEnabled(mContext) && !isSwipeUpEnabled(mContext);
+    }
+}
diff --git a/src/com/android/settings/gestures/SystemNavigationPreferenceController.java b/src/com/android/settings/gestures/SystemNavigationPreferenceController.java
new file mode 100644
index 0000000..a11754e
--- /dev/null
+++ b/src/com/android/settings/gestures/SystemNavigationPreferenceController.java
@@ -0,0 +1,207 @@
+/*
+ * 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.settings.gestures;
+
+import static android.os.UserHandle.USER_SYSTEM;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.om.IOverlayManager;
+import android.content.pm.PackageManager;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.provider.Settings;
+import android.text.TextUtils;
+import android.view.View;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.widget.RadioButtonPreference;
+
+public abstract class SystemNavigationPreferenceController extends GesturePreferenceController
+        implements RadioButtonPreference.OnClickListener {
+
+    private static final int OFF = 0;
+    private static final int ON = 1;
+
+    private static final String HIDE_BACK_BUTTON = "quickstepcontroller_hideback";
+    private static final String HIDE_HOME_BUTTON = "quickstepcontroller_hidehome";
+    private static final String HIDE_NAVBAR_DIVIDER = "hide_navigationbar_divider";
+    private static final String SHOW_HANDLE = "quickstepcontroller_showhandle";
+    private static final String ENABLE_CLICK_THROUGH = "quickstepcontroller_clickthrough";
+    private static final String ENABLE_LAUNCHER_SWIPE_TO_HOME = "SWIPE_HOME";
+    private static final String ENABLE_COLOR_ADAPT_FOR_HANDLE = "navbar_color_adapt_enable";
+    private static final String ENABLE_ASSISTANT_GESTURE = "ENABLE_ASSISTANT_GESTURE";
+    private static final String PROTOTYPE_ENABLED = "prototype_enabled";
+
+    private static final int EDGE_SENSITIVITY_WIDTH = 32;
+    private static final String EDGE_SENSITIVITY_KEY = "quickstepcontroller_edge_width_sensitivity";
+
+    private static final String GESTURES_MATCH_MAP_OFF = "000000";
+    private static final String GESTURES_MATCH_MAP_ON = "071133";
+    private static final String GESTURES_MATCH_MAP_KEY = "quickstepcontroller_gesture_match_map";
+
+    private static final String OVERLAY_NAVBAR_TYPE_INSET =
+            "com.android.internal.experiment.navbar.type.inset";
+    private static final String OVERLAY_NAVBAR_TYPE_FLOATING =
+            "com.android.internal.experiment.navbar.type.floating";
+
+    private static final String ACTION_QUICKSTEP = "android.intent.action.QUICKSTEP_SERVICE";
+    private static final String PREF_KEY_VIDEO = "gesture_swipe_up_video";
+
+    private static final String[] RADIO_BUTTONS_IN_GROUP = {
+            SystemNavigationLegacyPreferenceController.PREF_KEY_LEGACY,
+            SystemNavigationSwipeUpPreferenceController.PREF_KEY_SWIPE_UP,
+            SystemNavigationEdgeToEdgePreferenceController.PREF_KEY_EDGE_TO_EDGE,
+    };
+
+    protected PreferenceScreen mPreferenceScreen;
+
+    public SystemNavigationPreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return isGestureAvailable(mContext) ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreferenceScreen = screen;
+
+        Preference preference = screen.findPreference(getPreferenceKey());
+        if (preference != null && preference instanceof RadioButtonPreference) {
+            RadioButtonPreference radioPreference = (RadioButtonPreference) preference;
+            radioPreference.setOnClickListener(this);
+            radioPreference.setAppendixVisibility(View.GONE);
+        }
+    }
+
+    @Override
+    public boolean setChecked(boolean isChecked) {
+        if (!isChecked || mPreferenceScreen == null) {
+            return false;
+        }
+        Preference preference = mPreferenceScreen.findPreference(getPreferenceKey());
+        if (preference != null && preference instanceof RadioButtonPreference) {
+            onRadioButtonClicked((RadioButtonPreference) preference);
+        }
+        return true;
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        if (isEdgeToEdgeEnabled(mContext)) {
+            return mContext.getText(R.string.edge_to_edge_navigation_title);
+        } else if (isSwipeUpEnabled(mContext)) {
+            return mContext.getText(R.string.swipe_up_to_switch_apps_title);
+        } else {
+            return mContext.getText(R.string.legacy_navigation_title);
+        }
+    }
+
+    @Override
+    protected String getVideoPrefKey() {
+        return PREF_KEY_VIDEO;
+    }
+
+    static boolean isGestureAvailable(Context context) {
+        if (!context.getResources().getBoolean(
+                com.android.internal.R.bool.config_swipe_up_gesture_setting_available)) {
+            return false;
+        }
+
+        final ComponentName recentsComponentName = ComponentName.unflattenFromString(
+                context.getString(com.android.internal.R.string.config_recentsComponentName));
+        if (recentsComponentName == null) {
+            return false;
+        }
+        final Intent quickStepIntent = new Intent(ACTION_QUICKSTEP)
+                .setPackage(recentsComponentName.getPackageName());
+        if (context.getPackageManager().resolveService(quickStepIntent,
+                PackageManager.MATCH_SYSTEM_ONLY) == null) {
+            return false;
+        }
+        return true;
+    }
+
+    static void selectRadioButtonInGroup(String preferenceKey, PreferenceScreen screen) {
+        if (screen == null) {
+            return;
+        }
+        for (String key : RADIO_BUTTONS_IN_GROUP) {
+            ((RadioButtonPreference) screen.findPreference(key)).setChecked(
+                    TextUtils.equals(key, preferenceKey));
+        }
+    }
+
+    static void setEdgeToEdgeGestureEnabled(Context context, boolean enable) {
+        // TODO(b/127366543): replace all of this with a single switch
+        setBooleanGlobalSetting(context, HIDE_BACK_BUTTON, enable);
+        setBooleanGlobalSetting(context, HIDE_HOME_BUTTON, enable);
+        setBooleanGlobalSetting(context, HIDE_NAVBAR_DIVIDER, enable);
+        setBooleanGlobalSetting(context, SHOW_HANDLE, enable);
+        setBooleanGlobalSetting(context, ENABLE_CLICK_THROUGH, enable);
+        setBooleanGlobalSetting(context, ENABLE_LAUNCHER_SWIPE_TO_HOME, enable);
+        setBooleanGlobalSetting(context, ENABLE_COLOR_ADAPT_FOR_HANDLE, enable);
+        setBooleanGlobalSetting(context, ENABLE_ASSISTANT_GESTURE, enable);
+        setBooleanGlobalSetting(context, PROTOTYPE_ENABLED, enable);
+        Settings.Global.putInt(context.getContentResolver(), EDGE_SENSITIVITY_KEY,
+                EDGE_SENSITIVITY_WIDTH);
+        Settings.Global.putString(context.getContentResolver(), GESTURES_MATCH_MAP_KEY,
+                enable ? GESTURES_MATCH_MAP_ON : GESTURES_MATCH_MAP_OFF);
+
+        IOverlayManager overlayManager = IOverlayManager.Stub
+                .asInterface(ServiceManager.getService(Context.OVERLAY_SERVICE));
+        if (overlayManager != null) {
+            try {
+                overlayManager.setEnabled(OVERLAY_NAVBAR_TYPE_FLOATING, false, USER_SYSTEM);
+                overlayManager.setEnabled(OVERLAY_NAVBAR_TYPE_INSET, enable, USER_SYSTEM);
+            } catch (RemoteException e) {
+                throw e.rethrowFromSystemServer();
+            }
+        }
+    }
+
+    static void setBooleanGlobalSetting(Context context, String name, boolean flag) {
+        Settings.Global.putInt(context.getContentResolver(), name, flag ? ON : OFF);
+    }
+
+    static void setSwipeUpEnabled(Context context, boolean enabled) {
+        Settings.Secure.putInt(context.getContentResolver(),
+                Settings.Secure.SWIPE_UP_TO_SWITCH_APPS_ENABLED, enabled ? ON : OFF);
+    }
+
+    static boolean isSwipeUpEnabled(Context context) {
+        if (isEdgeToEdgeEnabled(context)) {
+            return false;
+        }
+        final int defaultSwipeUpValue = context.getResources()
+                .getBoolean(com.android.internal.R.bool.config_swipe_up_gesture_default) ? ON : OFF;
+        return Settings.Secure.getInt(context.getContentResolver(),
+                Settings.Secure.SWIPE_UP_TO_SWITCH_APPS_ENABLED, defaultSwipeUpValue) == ON;
+    }
+
+    static boolean isEdgeToEdgeEnabled(Context context) {
+        return Settings.Global.getInt(context.getContentResolver(), PROTOTYPE_ENABLED, OFF) == ON;
+    }
+}
diff --git a/src/com/android/settings/gestures/SystemNavigationSwipeUpPreferenceController.java b/src/com/android/settings/gestures/SystemNavigationSwipeUpPreferenceController.java
new file mode 100644
index 0000000..25fafdb
--- /dev/null
+++ b/src/com/android/settings/gestures/SystemNavigationSwipeUpPreferenceController.java
@@ -0,0 +1,48 @@
+/*
+ * 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.settings.gestures;
+
+import android.content.Context;
+import android.text.TextUtils;
+
+import com.android.settings.widget.RadioButtonPreference;
+
+public class SystemNavigationSwipeUpPreferenceController extends
+        SystemNavigationPreferenceController {
+    static final String PREF_KEY_SWIPE_UP = "gesture_swipe_up";
+
+    public SystemNavigationSwipeUpPreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    public boolean isSliceable() {
+        return TextUtils.equals(PREF_KEY_SWIPE_UP, getPreferenceKey());
+    }
+
+    @Override
+    public void onRadioButtonClicked(RadioButtonPreference preference) {
+        setEdgeToEdgeGestureEnabled(mContext, false);
+        setSwipeUpEnabled(mContext, true);
+        selectRadioButtonInGroup(PREF_KEY_SWIPE_UP, mPreferenceScreen);
+    }
+
+    @Override
+    public boolean isChecked() {
+        return isSwipeUpEnabled(mContext);
+    }
+}
diff --git a/src/com/android/settings/gestures/WakeScreenGestureSettings.java b/src/com/android/settings/gestures/WakeScreenGestureSettings.java
deleted file mode 100644
index b8a782a..0000000
--- a/src/com/android/settings/gestures/WakeScreenGestureSettings.java
+++ /dev/null
@@ -1,65 +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.settings.gestures;
-
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.provider.SearchIndexableResource;
-
-import com.android.settings.R;
-import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settingslib.search.SearchIndexable;
-
-import java.util.Arrays;
-import java.util.List;
-
-@SearchIndexable
-public class WakeScreenGestureSettings extends DashboardFragment {
-
-    private static final String TAG = "WakeScreenGestureSettings";
-
-    public static final String PREF_KEY_SUGGESTION_COMPLETE =
-            "pref_wake_screen_gesture_suggestion_complete";
-
-    @Override
-    public int getMetricsCategory() {
-        return SettingsEnums.SETTINGS_GESTURE_WAKE_SCREEN;
-    }
-
-    @Override
-    protected String getLogTag() {
-        return TAG;
-    }
-
-    @Override
-    protected int getPreferenceScreenResId() {
-        return R.xml.wake_screen_gesture_settings;
-    }
-
-    public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.wake_screen_gesture_settings;
-                    return Arrays.asList(sir);
-                }
-            };
-
-}
diff --git a/src/com/android/settings/homepage/SettingsHomepageActivity.java b/src/com/android/settings/homepage/SettingsHomepageActivity.java
index 9e869a9..9b83f88 100644
--- a/src/com/android/settings/homepage/SettingsHomepageActivity.java
+++ b/src/com/android/settings/homepage/SettingsHomepageActivity.java
@@ -17,6 +17,7 @@
 package com.android.settings.homepage;
 
 import android.animation.LayoutTransition;
+import android.app.ActivityManager;
 import android.app.settings.SettingsEnums;
 import android.os.Bundle;
 import android.view.View;
@@ -53,7 +54,10 @@
         final AvatarViewMixin avatarViewMixin = new AvatarViewMixin(this, avatarView);
         getLifecycle().addObserver(avatarViewMixin);
 
-        showFragment(new ContextualCardsFragment(), R.id.contextual_cards_content);
+        if (!getSystemService(ActivityManager.class).isLowRamDevice()) {
+            // Only allow contextual feature on high ram devices.
+            showFragment(new ContextualCardsFragment(), R.id.contextual_cards_content);
+        }
         showFragment(new TopLevelSettings(), R.id.main_content);
         ((FrameLayout) findViewById(R.id.main_content))
                 .getLayoutTransition().enableTransitionType(LayoutTransition.CHANGING);
diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImpl.java b/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImpl.java
index 12590ff..ce7777a 100644
--- a/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImpl.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImpl.java
@@ -139,7 +139,7 @@
         final String action = mContext.getString(R.string.config_settingsintelligence_log_action);
         if (!TextUtils.isEmpty(action)) {
             intent.setAction(action);
-            mContext.sendBroadcastAsUser(intent, UserHandle.ALL);
+            mContext.sendBroadcastAsUser(intent, UserHandle.CURRENT);
         }
     }
 
@@ -165,6 +165,7 @@
                 com.android.settings.intelligence.ContextualCardProto.ContextualCard.newBuilder()
                         .setSliceUri(card.getSliceUri().toString())
                         .setCardName(card.getName())
+                        .setCardScore(card.getRankingScore())
                         .build()));
         return builder.build().toByteArray();
     }
diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java b/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java
index ea6ac43..ff2ee91 100644
--- a/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java
@@ -26,7 +26,6 @@
 import android.net.Uri;
 import android.os.Handler;
 import android.os.Looper;
-import android.text.format.DateUtils;
 import android.util.Log;
 
 import androidx.annotation.NonNull;
@@ -50,7 +49,6 @@
     @VisibleForTesting
     static final int DEFAULT_CARD_COUNT = 4;
     static final int CARD_CONTENT_LOADER_ID = 1;
-    static final long CARD_CONTENT_LOADER_TIMEOUT_MS = DateUtils.SECOND_IN_MILLIS;
 
     private static final String TAG = "ContextualCardLoader";
     private static final long ELIGIBILITY_CHECKER_TIMEOUT_MS = 250;
@@ -69,7 +67,8 @@
 
     @VisibleForTesting
     Uri mNotifyUri;
-    private Context mContext;
+
+    private final Context mContext;
 
     ContextualCardLoader(Context context) {
         super(context);
diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCardManager.java b/src/com/android/settings/homepage/contextualcards/ContextualCardManager.java
index 3b8aacd..8f7e84a 100644
--- a/src/com/android/settings/homepage/contextualcards/ContextualCardManager.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardManager.java
@@ -24,6 +24,8 @@
 
 import android.content.Context;
 import android.os.Bundle;
+import android.provider.Settings;
+import android.text.format.DateUtils;
 import android.util.ArrayMap;
 import android.util.Log;
 import android.widget.BaseAdapter;
@@ -62,8 +64,12 @@
 public class ContextualCardManager implements ContextualCardLoader.CardContentLoaderListener,
         ContextualCardUpdateListener, LifecycleObserver, OnSaveInstanceState {
 
-    private static final String KEY_CONTEXTUAL_CARDS = "key_contextual_cards";
+    @VisibleForTesting
+    static final long CARD_CONTENT_LOADER_TIMEOUT_MS = DateUtils.SECOND_IN_MILLIS;
+    @VisibleForTesting
+    static final String KEY_GLOBAL_CARD_LOADER_TIMEOUT = "global_card_loader_timeout_key";
 
+    private static final String KEY_CONTEXTUAL_CARDS = "key_contextual_cards";
     private static final String TAG = "ContextualCardManager";
 
     //The list for Settings Custom Card
@@ -103,13 +109,13 @@
         }
     }
 
-    void loadContextualCards(ContextualCardsFragment fragment) {
+    void loadContextualCards(LoaderManager loaderManager) {
         mStartTime = System.currentTimeMillis();
         final CardContentLoaderCallbacks cardContentLoaderCallbacks =
                 new CardContentLoaderCallbacks(mContext);
         cardContentLoaderCallbacks.setListener(this);
         // Use the cached data when navigating back to the first page and upon screen rotation.
-        LoaderManager.getInstance(fragment).initLoader(CARD_CONTENT_LOADER_ID, null /* bundle */,
+        loaderManager.initLoader(CARD_CONTENT_LOADER_ID, null /* bundle */,
                 cardContentLoaderCallbacks);
     }
 
@@ -201,7 +207,8 @@
         }
 
         //only log homepage display upon a fresh launch
-        if (loadTime <= ContextualCardLoader.CARD_CONTENT_LOADER_TIMEOUT_MS) {
+        final long timeoutLimit = getCardLoaderTimeout(mContext);
+        if (loadTime <= timeoutLimit) {
             onContextualCardUpdated(cards.stream()
                     .collect(groupingBy(ContextualCard::getCardType)));
         }
@@ -239,6 +246,14 @@
         return getCardsWithSuggestionViewType(result);
     }
 
+    @VisibleForTesting
+    long getCardLoaderTimeout(Context context) {
+        // Return the timeout limit if Settings.Global has the KEY_GLOBAL_CARD_LOADER_TIMEOUT key,
+        // else return default timeout.
+        return Settings.Global.getLong(mContext.getContentResolver(),
+                KEY_GLOBAL_CARD_LOADER_TIMEOUT, CARD_CONTENT_LOADER_TIMEOUT_MS);
+    }
+
     private List<ContextualCard> getCardsWithSuggestionViewType(List<ContextualCard> cards) {
         // Shows as half cards if 2 suggestion type of cards are next to each other.
         // Shows as full card if 1 suggestion type of card lives alone.
diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCardsFragment.java b/src/com/android/settings/homepage/contextualcards/ContextualCardsFragment.java
index e598e4c..72ddb50 100644
--- a/src/com/android/settings/homepage/contextualcards/ContextualCardsFragment.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardsFragment.java
@@ -19,16 +19,19 @@
 import static com.android.settings.homepage.contextualcards.ContextualCardsAdapter.SPAN_COUNT;
 
 import android.app.settings.SettingsEnums;
+import android.content.Context;
 import android.os.Bundle;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
+import androidx.loader.app.LoaderManager;
 import androidx.recyclerview.widget.GridLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
 import com.android.settings.R;
 import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.overlay.FeatureFactory;
 
 public class ContextualCardsFragment extends InstrumentedFragment {
 
@@ -42,14 +45,19 @@
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        mContextualCardManager = new ContextualCardManager(getContext(), getSettingsLifecycle(),
+        final Context context = getContext();
+        if (savedInstanceState == null) {
+            FeatureFactory.getFactory(context).getSlicesFeatureProvider().newUiSession();
+        }
+        mContextualCardManager = new ContextualCardManager(context, getSettingsLifecycle(),
                 savedInstanceState);
+
     }
 
     @Override
     public void onStart() {
         super.onStart();
-        mContextualCardManager.loadContextualCards(this);
+        mContextualCardManager.loadContextualCards(LoaderManager.getInstance(this));
     }
 
     @Override
diff --git a/src/com/android/settings/homepage/contextualcards/EligibleCardChecker.java b/src/com/android/settings/homepage/contextualcards/EligibleCardChecker.java
index 5423ce3..fe68d02 100644
--- a/src/com/android/settings/homepage/contextualcards/EligibleCardChecker.java
+++ b/src/com/android/settings/homepage/contextualcards/EligibleCardChecker.java
@@ -51,6 +51,9 @@
 
     @VisibleForTesting
     boolean isCardEligibleToDisplay(ContextualCard card) {
+        if (card.getRankingScore() < 0) {
+            return false;
+        }
         if (card.isCustomCard()) {
             return true;
         }
diff --git a/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionController.java b/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionController.java
index fe5bc93..3557e49 100644
--- a/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionController.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionController.java
@@ -97,7 +97,7 @@
                 .setName(mAppContext.getPackageName() + "/"
                         + mAppContext.getText(R.string.condition_hotspot_title))
                 .setTitleText(mAppContext.getText(R.string.condition_hotspot_title).toString())
-                .setSummaryText(getSummary().toString())
+                .setSummaryText(getSsid().toString())
                 .setIconDrawable(mAppContext.getDrawable(R.drawable.ic_hotspot))
                 .setViewType(ConditionContextualCardRenderer.VIEW_TYPE_HALF_WIDTH)
                 .build();
@@ -113,10 +113,6 @@
         mAppContext.unregisterReceiver(mReceiver);
     }
 
-    public CharSequence getSummary() {
-        return mAppContext.getString(R.string.condition_hotspot_summary, getSsid());
-    }
-
     private CharSequence getSsid() {
         WifiConfiguration wifiConfig = mWifiManager.getWifiApConfiguration();
         if (wifiConfig == null) {
diff --git a/src/com/android/settings/homepage/contextualcards/deviceinfo/BatteryInfoSlice.java b/src/com/android/settings/homepage/contextualcards/deviceinfo/BatteryInfoSlice.java
deleted file mode 100644
index 6c7f930..0000000
--- a/src/com/android/settings/homepage/contextualcards/deviceinfo/BatteryInfoSlice.java
+++ /dev/null
@@ -1,139 +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.settings.homepage.contextualcards.deviceinfo;
-
-import android.app.PendingIntent;
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.net.Uri;
-import android.os.PowerManager;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.core.graphics.drawable.IconCompat;
-import androidx.slice.Slice;
-import androidx.slice.builders.ListBuilder;
-import androidx.slice.builders.SliceAction;
-
-import com.android.settings.R;
-import com.android.settings.SubSettings;
-import com.android.settings.Utils;
-import com.android.settings.fuelgauge.BatteryInfo;
-import com.android.settings.fuelgauge.PowerUsageSummary;
-import com.android.settings.slices.CustomSliceRegistry;
-import com.android.settings.slices.CustomSliceable;
-import com.android.settings.slices.SliceBuilderUtils;
-
-/**
- * Utility class to build a Battery Slice, and handle all associated actions.
- */
-public class BatteryInfoSlice implements CustomSliceable {
-    private static final String TAG = "BatteryInfoSlice";
-
-    private final Context mContext;
-
-    private BatteryInfo mBatteryInfo;
-    private boolean mIsBatteryInfoLoading;
-
-    public BatteryInfoSlice(Context context) {
-        mContext = context;
-    }
-
-    @Override
-    public Slice getSlice() {
-        if (mBatteryInfo == null) {
-            mIsBatteryInfoLoading = true;
-            loadBatteryInfo();
-        }
-        final IconCompat icon = IconCompat.createWithResource(mContext,
-                R.drawable.ic_settings_battery);
-        final CharSequence title = mContext.getText(R.string.power_usage_summary_title);
-        final SliceAction primarySliceAction = SliceAction.createDeeplink(getPrimaryAction(), icon,
-                ListBuilder.ICON_IMAGE, title);
-        final Slice slice = new ListBuilder(mContext, CustomSliceRegistry.BATTERY_INFO_SLICE_URI,
-                ListBuilder.INFINITY)
-                .setAccentColor(Utils.getColorAccentDefaultColor(mContext))
-                .setHeader(new ListBuilder.HeaderBuilder().setTitle(title))
-                .addRow(new ListBuilder.RowBuilder()
-                        .setTitle(getBatteryPercentString(), mIsBatteryInfoLoading)
-                        .setSubtitle(getSummary(), mIsBatteryInfoLoading)
-                        .setPrimaryAction(primarySliceAction))
-                .build();
-        mBatteryInfo = null;
-        mIsBatteryInfoLoading = false;
-        return slice;
-    }
-
-    @Override
-    public Uri getUri() {
-        return CustomSliceRegistry.BATTERY_INFO_SLICE_URI;
-    }
-
-    @Override
-    public void onNotifyChange(Intent intent) {
-
-    }
-
-    @Override
-    public Intent getIntent() {
-        final String screenTitle = mContext.getText(R.string.power_usage_summary_title).toString();
-        return SliceBuilderUtils.buildSearchResultPageIntent(mContext,
-                PowerUsageSummary.class.getName(), "" /* key */, screenTitle,
-                SettingsEnums.SLICE)
-                .setClassName(mContext.getPackageName(), SubSettings.class.getName())
-                .setData(CustomSliceRegistry.BATTERY_INFO_SLICE_URI);
-    }
-
-    @Override
-    public IntentFilter getIntentFilter() {
-        final IntentFilter intentFilter = new IntentFilter();
-        intentFilter.addAction(PowerManager.ACTION_POWER_SAVE_MODE_CHANGED);
-        intentFilter.addAction(Intent.ACTION_POWER_CONNECTED);
-        intentFilter.addAction(Intent.ACTION_POWER_DISCONNECTED);
-        intentFilter.addAction(Intent.ACTION_BATTERY_LEVEL_CHANGED);
-        return intentFilter;
-    }
-
-    @VisibleForTesting
-    void loadBatteryInfo() {
-        BatteryInfo.getBatteryInfo(mContext, info -> {
-            mBatteryInfo = info;
-            mContext.getContentResolver().notifyChange(getUri(), null);
-        }, true);
-    }
-
-    @VisibleForTesting
-    CharSequence getBatteryPercentString() {
-        return mBatteryInfo == null ? null : mBatteryInfo.batteryPercentString;
-    }
-
-    @VisibleForTesting
-    CharSequence getSummary() {
-        if (mBatteryInfo == null) {
-            return null;
-        }
-        return mBatteryInfo.remainingLabel == null ? mBatteryInfo.statusLabel
-                : mBatteryInfo.remainingLabel;
-    }
-
-    private PendingIntent getPrimaryAction() {
-        final Intent intent = getIntent();
-        return PendingIntent.getActivity(mContext, 0 /* requestCode */,
-                intent, 0 /* flags */);
-    }
-}
\ No newline at end of file
diff --git a/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java b/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java
index 95412a8..99fe219 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java
@@ -16,11 +16,14 @@
 
 package com.android.settings.homepage.contextualcards.slices;
 
+import android.annotation.ColorInt;
 import android.app.PendingIntent;
 import android.app.settings.SettingsEnums;
 import android.bluetooth.BluetoothAdapter;
 import android.content.Context;
 import android.content.Intent;
+import android.graphics.PorterDuff;
+import android.graphics.PorterDuffColorFilter;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.os.Bundle;
@@ -87,6 +90,9 @@
 
     @Override
     public Slice getSlice() {
+        // Reload theme for switching dark mode on/off
+        mContext.getTheme().applyStyle(R.style.Theme_Settings_Home, true /* force */);
+
         final IconCompat icon = IconCompat.createWithResource(mContext,
                 com.android.internal.R.drawable.ic_settings_bluetooth);
         final CharSequence title = mContext.getText(R.string.bluetooth_devices);
@@ -98,7 +104,7 @@
                 ListBuilder.ICON_IMAGE, title);
         final ListBuilder listBuilder =
                 new ListBuilder(mContext, getUri(), ListBuilder.INFINITY)
-                        .setAccentColor(Utils.getColorAccentDefaultColor(mContext));
+                        .setAccentColor(COLOR_NOT_TINTED);
 
         // Get row builders by Bluetooth devices.
         final List<ListBuilder.RowBuilder> rows = getBluetoothRowBuilder();
@@ -179,14 +185,9 @@
         final Collection<CachedBluetoothDevice> cachedDevices =
                 bluetoothManager.getCachedDeviceManager().getCachedDevicesCopy();
 
-        /**
-         * TODO(b/114807655): Contextual Home Page - Connected Device
-         * It's under discussion for including available media devices and currently connected
-         * devices from Bluetooth. Will update the devices list or remove TODO later.
-         */
-        // Get available media device list and sort them.
+        // Get all connected devices and sort them.
         return cachedDevices.stream()
-                .filter(device -> device.isConnected() && device.isConnectedA2dpDevice())
+                .filter(device -> device.getDevice().isConnected())
                 .sorted(COMPARATOR).collect(Collectors.toList());
     }
 
@@ -212,13 +213,23 @@
     IconCompat getBluetoothDeviceIcon(CachedBluetoothDevice device) {
         final Pair<Drawable, String> pair = BluetoothUtils
                 .getBtClassDrawableWithDescription(mContext, device);
+        final Drawable drawable = pair.first;
 
-        if (pair.first != null) {
-            return Utils.createIconWithDrawable(pair.first);
-        } else {
+        // Use default bluetooth icon if can't get icon.
+        if (drawable == null) {
             return IconCompat.createWithResource(mContext,
-                com.android.internal.R.drawable.ic_settings_bluetooth);
+                    com.android.internal.R.drawable.ic_settings_bluetooth);
         }
+
+        // Tint icon: Accent color for connected state; Disable color for busy state.
+        @ColorInt int color = Utils.getColorAccentDefaultColor(mContext);
+        if (device.isBusy()) {
+            color = Utils.getDisabled(mContext,
+                    Utils.getColorAttrDefaultColor(mContext, android.R.attr.colorControlNormal));
+        }
+        drawable.setColorFilter(new PorterDuffColorFilter(color, PorterDuff.Mode.SRC_IN));
+
+        return Utils.createIconWithDrawable(drawable);
     }
 
     private List<ListBuilder.RowBuilder> getBluetoothRowBuilder() {
@@ -226,18 +237,29 @@
         final List<ListBuilder.RowBuilder> bluetoothRows = new ArrayList<>();
         final List<CachedBluetoothDevice> bluetoothDevices = getConnectedBluetoothDevices();
         for (CachedBluetoothDevice bluetoothDevice : bluetoothDevices) {
-            bluetoothRows.add(new ListBuilder.RowBuilder()
+            final ListBuilder.RowBuilder rowBuilder = new ListBuilder.RowBuilder()
                     .setTitleItem(getBluetoothDeviceIcon(bluetoothDevice), ListBuilder.ICON_IMAGE)
                     .setTitle(bluetoothDevice.getName())
-                    .setSubtitle(bluetoothDevice.getConnectionSummary())
-                    .setPrimaryAction(buildBluetoothDeviceAction(bluetoothDevice))
-                    .addEndItem(buildBluetoothDetailDeepLinkAction(bluetoothDevice)));
+                    .setSubtitle(bluetoothDevice.getConnectionSummary());
+
+            if (bluetoothDevice.isConnectedA2dpDevice()) {
+                // For available media devices, the primary action is to activate audio stream and
+                // add setting icon to the end to link detail page.
+                rowBuilder.setPrimaryAction(buildMediaBluetoothAction(bluetoothDevice));
+                rowBuilder.addEndItem(buildBluetoothDetailDeepLinkAction(bluetoothDevice));
+            } else {
+                // For other devices, the primary action is to link detail page.
+                rowBuilder.setPrimaryAction(buildBluetoothDetailDeepLinkAction(bluetoothDevice));
+            }
+
+            bluetoothRows.add(rowBuilder);
         }
 
         return bluetoothRows;
     }
 
-    private SliceAction buildBluetoothDeviceAction(CachedBluetoothDevice bluetoothDevice) {
+    @VisibleForTesting
+    SliceAction buildMediaBluetoothAction(CachedBluetoothDevice bluetoothDevice) {
         // Send broadcast to activate available media device.
         final Intent intent = new Intent(getUri().toString())
                 .setClass(mContext, SliceBroadcastReceiver.class)
@@ -250,10 +272,11 @@
                 bluetoothDevice.getName());
     }
 
-    private SliceAction buildBluetoothDetailDeepLinkAction(CachedBluetoothDevice bluetoothDevice) {
+    @VisibleForTesting
+    SliceAction buildBluetoothDetailDeepLinkAction(CachedBluetoothDevice bluetoothDevice) {
         return SliceAction.createDeeplink(
                 getBluetoothDetailIntent(bluetoothDevice),
-                IconCompat.createWithResource(mContext, R.drawable.ic_settings_24dp),
+                IconCompat.createWithResource(mContext, R.drawable.ic_settings_accent),
                 ListBuilder.ICON_IMAGE,
                 bluetoothDevice.getName());
     }
diff --git a/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java b/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java
index 48e9f1e..b9170a9 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java
@@ -139,6 +139,8 @@
 
         switch (holder.getItemViewType()) {
             case VIEW_TYPE_DEFERRED_SETUP:
+                // Deferred setup is never dismissible.
+                break;
             case VIEW_TYPE_HALF_WIDTH:
                 initDismissalActions(holder, card, R.id.content);
                 break;
diff --git a/src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelper.java b/src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelper.java
index ef0a67d..ee63536 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelper.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelper.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.homepage.contextualcards.slices;
 
+import android.animation.LayoutTransition;
 import android.content.Context;
 import android.view.View;
 
@@ -94,6 +95,7 @@
         public SliceViewHolder(View view) {
             super(view);
             sliceView = view.findViewById(R.id.slice_view);
+            sliceView.getLayoutTransition().enableTransitionType(LayoutTransition.CHANGING);
         }
     }
 }
diff --git a/src/com/android/settings/location/RecentLocationAccessPreferenceController.java b/src/com/android/settings/location/RecentLocationAccessPreferenceController.java
index 44d600e..a76d381 100644
--- a/src/com/android/settings/location/RecentLocationAccessPreferenceController.java
+++ b/src/com/android/settings/location/RecentLocationAccessPreferenceController.java
@@ -74,6 +74,7 @@
         mController = AppEntitiesHeaderController.newInstance(mContext, view)
                 .setHeaderTitleRes(R.string.location_category_recent_location_access)
                 .setHeaderDetailsRes(R.string.location_recent_location_access_view_details)
+                .setHeaderEmptyRes(R.string.location_no_recent_accesses)
                 .setHeaderDetailsClickListener((View v) -> {
                     final Intent intent = new Intent(Intent.ACTION_REVIEW_PERMISSION_USAGE);
                     intent.putExtra(Intent.EXTRA_PERMISSION_NAME,
@@ -100,14 +101,20 @@
                         .setIcon(access.icon)
                         .setTitle(access.label)
                         .setSummary(access.contentDescription)
+                        .setOnClickListener((v) -> {
+                            final Intent intent = new Intent(Intent.ACTION_MANAGE_APP_PERMISSION);
+                            intent.putExtra(Intent.EXTRA_PERMISSION_NAME,
+                                    Manifest.permission_group.LOCATION);
+                            intent.putExtra(Intent.EXTRA_PACKAGE_NAME, access.packageName);
+                            intent.putExtra(Intent.EXTRA_USER, access.userHandle);
+                            mContext.startActivity(intent);
+                        })
                         .build();
                 mController.setAppEntity(i, appEntityInfo);
             }
             for (; i < MAXIMUM_APP_COUNT; i++) {
                 mController.removeAppEntity(i);
             }
-        } else {
-            // If there's no item to display, add a "No recent apps" item.
         }
         mController.apply();
     }
diff --git a/src/com/android/settings/media/MediaDeviceUpdateWorker.java b/src/com/android/settings/media/MediaDeviceUpdateWorker.java
index 7416018..d1e55e4 100644
--- a/src/com/android/settings/media/MediaDeviceUpdateWorker.java
+++ b/src/com/android/settings/media/MediaDeviceUpdateWorker.java
@@ -70,7 +70,7 @@
 
     @Override
     public void close() {
-
+        mLocalMediaManager = null;
     }
 
     @Override
diff --git a/src/com/android/settings/media/MediaOutputSlice.java b/src/com/android/settings/media/MediaOutputSlice.java
index d52b441..e76bc88 100644
--- a/src/com/android/settings/media/MediaOutputSlice.java
+++ b/src/com/android/settings/media/MediaOutputSlice.java
@@ -20,13 +20,11 @@
 
 import android.annotation.ColorInt;
 import android.app.PendingIntent;
+import android.bluetooth.BluetoothAdapter;
 import android.content.Context;
 import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.graphics.drawable.Drawable;
 import android.net.Uri;
-import android.os.UserHandle;
-import android.util.IconDrawableFactory;
+import android.text.TextUtils;
 import android.util.Log;
 
 import androidx.annotation.VisibleForTesting;
@@ -58,37 +56,53 @@
 
     private MediaDeviceUpdateWorker mWorker;
     private String mPackageName;
-    private IconDrawableFactory mIconDrawableFactory;
 
     public MediaOutputSlice(Context context) {
         mContext = context;
         mPackageName = getUri().getQueryParameter(MEDIA_PACKAGE_NAME);
-        mIconDrawableFactory = IconDrawableFactory.newInstance(mContext);
     }
 
     @VisibleForTesting
-    void init(String packageName, MediaDeviceUpdateWorker worker, IconDrawableFactory factory) {
+    void init(String packageName, MediaDeviceUpdateWorker worker) {
         mPackageName = packageName;
         mWorker = worker;
-        mIconDrawableFactory = factory;
     }
 
     @Override
     public Slice getSlice() {
-        final PackageManager pm = mContext.getPackageManager();
+        final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
+        if (!adapter.isEnabled()) {
+            Log.d(TAG, "getSlice() Bluetooth is off");
+            return null;
+        }
+
+        if (getWorker() == null) {
+            Log.d(TAG, "getSlice() Can not get worker through uri!");
+            return null;
+        }
 
         final List<MediaDevice> devices = getMediaDevices();
-        final CharSequence title = Utils.getApplicationLabel(mContext, mPackageName);
-        final CharSequence summary =
-                mContext.getString(R.string.media_output_panel_summary_of_playing_device,
-                        getConnectedDeviceName());
-
-        final Drawable drawable =
-                Utils.getBadgedIcon(mIconDrawableFactory, pm, mPackageName, UserHandle.myUserId());
-        final IconCompat icon = Utils.createIconWithDrawable(drawable);
-
         @ColorInt final int color = Utils.getColorAccentDefaultColor(mContext);
-        final SliceAction primarySliceAction = SliceAction.createDeeplink(getPrimaryAction(), icon,
+
+        final MediaDevice connectedDevice = getWorker().getCurrentConnectedMediaDevice();
+        final ListBuilder listBuilder = buildActiveDeviceHeader(color, connectedDevice);
+
+        for (MediaDevice device : devices) {
+            if (!TextUtils.equals(connectedDevice.getId(), device.getId())) {
+                listBuilder.addRow(getMediaDeviceRow(device));
+            }
+        }
+
+        return listBuilder.build();
+    }
+
+    private ListBuilder buildActiveDeviceHeader(@ColorInt int color, MediaDevice device) {
+        final String title = device.getName();
+        final IconCompat icon = IconCompat.createWithResource(mContext, device.getIcon());
+
+        final PendingIntent broadcastAction =
+                getBroadcastIntent(mContext, device.getId(), device.hashCode());
+        final SliceAction primarySliceAction = SliceAction.createDeeplink(broadcastAction, icon,
                 ListBuilder.ICON_IMAGE, title);
 
         final ListBuilder listBuilder = new ListBuilder(mContext, MEDIA_OUTPUT_SLICE_URI,
@@ -97,41 +111,27 @@
                 .addRow(new ListBuilder.RowBuilder()
                         .setTitleItem(icon, ListBuilder.ICON_IMAGE)
                         .setTitle(title)
-                        .setSubtitle(summary)
+                        .setSubtitle(device.getSummary())
                         .setPrimaryAction(primarySliceAction));
 
-        for (MediaDevice device : devices) {
-            listBuilder.addRow(getMediaDeviceRow(device));
-        }
-
-        return listBuilder.build();
+        return listBuilder;
     }
 
     private MediaDeviceUpdateWorker getWorker() {
         if (mWorker == null) {
             mWorker = (MediaDeviceUpdateWorker) SliceBackgroundWorker.getInstance(getUri());
-            mWorker.setPackageName(mPackageName);
+            if (mWorker != null) {
+                mWorker.setPackageName(mPackageName);
+            }
         }
         return mWorker;
     }
 
     private List<MediaDevice> getMediaDevices() {
-        List<MediaDevice> devices = getWorker().getMediaDevices();
+        final List<MediaDevice> devices = getWorker().getMediaDevices();
         return devices;
     }
 
-    private String getConnectedDeviceName() {
-        final MediaDevice device = getWorker().getCurrentConnectedMediaDevice();
-        return device != null ? device.getName() : "";
-    }
-
-    private PendingIntent getPrimaryAction() {
-        final PackageManager pm = mContext.getPackageManager();
-        final Intent launchIntent = pm.getLaunchIntentForPackage(mPackageName);
-        final Intent intent = launchIntent;
-        return PendingIntent.getActivity(mContext, 0  /* requestCode */, intent, 0  /* flags */);
-    }
-
     private ListBuilder.RowBuilder getMediaDeviceRow(MediaDevice device) {
         final String title = device.getName();
         final PendingIntent broadcastAction =
@@ -141,7 +141,8 @@
                 .setTitleItem(deviceIcon, ListBuilder.ICON_IMAGE)
                 .setPrimaryAction(SliceAction.create(broadcastAction, deviceIcon,
                         ListBuilder.ICON_IMAGE, title))
-                .setTitle(title);
+                .setTitle(title)
+                .setSubtitle(device.getSummary());
 
         return rowBuilder;
     }
diff --git a/src/com/android/settings/network/MobileNetworkListController.java b/src/com/android/settings/network/MobileNetworkListController.java
index 7de6cdd..79715e3 100644
--- a/src/com/android/settings/network/MobileNetworkListController.java
+++ b/src/com/android/settings/network/MobileNetworkListController.java
@@ -24,14 +24,10 @@
 import android.provider.Settings;
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
+import android.telephony.euicc.EuiccManager;
 import android.util.ArrayMap;
 
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.LifecycleObserver;
-import androidx.lifecycle.OnLifecycleEvent;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.R;
 import com.android.settings.network.telephony.MobileNetworkActivity;
 import com.android.settingslib.core.AbstractPreferenceController;
@@ -39,6 +35,12 @@
 import java.util.List;
 import java.util.Map;
 
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleObserver;
+import androidx.lifecycle.OnLifecycleEvent;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
 /**
  * This populates the entries on a page which lists all available mobile subscriptions. Each entry
  * has the name of the subscription with some subtext giving additional detail, and clicking on the
@@ -48,6 +50,9 @@
         LifecycleObserver, SubscriptionsChangeListener.SubscriptionsChangeListenerClient {
     private static final String TAG = "MobileNetworkListCtlr";
 
+    @VisibleForTesting
+    static final String KEY_ADD_MORE = "add_more";
+
     private SubscriptionManager mSubscriptionManager;
     private SubscriptionsChangeListener mChangeListener;
     private PreferenceScreen mPreferenceScreen;
@@ -76,6 +81,8 @@
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
         mPreferenceScreen = screen;
+        final EuiccManager euiccManager = mContext.getSystemService(EuiccManager.class);
+        mPreferenceScreen.findPreference(KEY_ADD_MORE).setVisible(euiccManager.isEnabled());
         update();
     }
 
@@ -93,7 +100,7 @@
         final List<SubscriptionInfo> subscriptions = SubscriptionUtil.getAvailableSubscriptions(
                 mSubscriptionManager);
         for (SubscriptionInfo info : subscriptions) {
-            int subId = info.getSubscriptionId();
+            final int subId = info.getSubscriptionId();
             Preference pref = existingPreferences.remove(subId);
             if (pref == null) {
                 pref = new Preference(mPreferenceScreen.getContext());
diff --git a/src/com/android/settings/network/MobileNetworkSummaryController.java b/src/com/android/settings/network/MobileNetworkSummaryController.java
index dd282c6..56735ab 100644
--- a/src/com/android/settings/network/MobileNetworkSummaryController.java
+++ b/src/com/android/settings/network/MobileNetworkSummaryController.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.network;
 
-import static android.telephony.TelephonyManager.MultiSimVariants.UNKNOWN;
-
 import static androidx.lifecycle.Lifecycle.Event.ON_PAUSE;
 import static androidx.lifecycle.Lifecycle.Event.ON_RESUME;
 
@@ -25,10 +23,10 @@
 import android.content.Intent;
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
 import android.telephony.euicc.EuiccManager;
 
 import com.android.settings.R;
+import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settings.network.telephony.MobileNetworkActivity;
 import com.android.settings.widget.AddPreference;
 import com.android.settingslib.Utils;
@@ -43,14 +41,14 @@
 import androidx.preference.PreferenceScreen;
 
 public class MobileNetworkSummaryController extends AbstractPreferenceController implements
-        SubscriptionsChangeListener.SubscriptionsChangeListenerClient, LifecycleObserver {
+        SubscriptionsChangeListener.SubscriptionsChangeListenerClient, LifecycleObserver,
+        PreferenceControllerMixin {
     private static final String TAG = "MobileNetSummaryCtlr";
 
     private static final String KEY = "mobile_network_list";
 
     private SubscriptionManager mSubscriptionManager;
     private SubscriptionsChangeListener mChangeListener;
-    private TelephonyManager mTelephonyMgr;
     private EuiccManager mEuiccManager;
     private AddPreference mPreference;
 
@@ -72,10 +70,11 @@
     public MobileNetworkSummaryController(Context context, Lifecycle lifecycle) {
         super(context);
         mSubscriptionManager = context.getSystemService(SubscriptionManager.class);
-        mTelephonyMgr = mContext.getSystemService(TelephonyManager.class);
         mEuiccManager = mContext.getSystemService(EuiccManager.class);
-        mChangeListener = new SubscriptionsChangeListener(context, this);
-        lifecycle.addObserver(this);
+        if (lifecycle != null) {
+          mChangeListener = new SubscriptionsChangeListener(context, this);
+          lifecycle.addObserver(this);
+        }
     }
 
     @OnLifecycleEvent(ON_RESUME)
@@ -116,51 +115,47 @@
 
     private void startAddSimFlow() {
         final Intent intent = new Intent(EuiccManager.ACTION_PROVISION_EMBEDDED_SUBSCRIPTION);
+        intent.putExtra(EuiccManager.EXTRA_FORCE_PROVISION, true);
         mContext.startActivity(intent);
     }
 
-    private boolean shouldShowAddButton() {
-        // The add button should only show up if the device is in multi-sim mode and the eSIM
-        // manager is enabled.
-        return mTelephonyMgr.getMultiSimConfiguration() != UNKNOWN && mEuiccManager.isEnabled();
-    }
-
     private void update() {
         if (mPreference == null) {
             return;
         }
-        final boolean showAddButton = shouldShowAddButton();
         refreshSummary(mPreference);
-        if (!showAddButton) {
-            mPreference.setOnAddClickListener(null);
-        } else {
-            mPreference.setAddWidgetEnabled(!mChangeListener.isAirplaneModeOn());
-            mPreference.setOnAddClickListener(p -> {
-                startAddSimFlow();
-            });
-        }
-        final List<SubscriptionInfo> subs = SubscriptionUtil.getAvailableSubscriptions(
-                mSubscriptionManager);
         mPreference.setOnPreferenceClickListener(null);
+        mPreference.setOnAddClickListener(null);
         mPreference.setFragment(null);
         mPreference.setEnabled(!mChangeListener.isAirplaneModeOn());
+
+        final List<SubscriptionInfo> subs = SubscriptionUtil.getAvailableSubscriptions(
+                mSubscriptionManager);
+
         if (subs.isEmpty()) {
-            if (showAddButton) {
-                mPreference.setEnabled(false);
-            } else if (mEuiccManager.isEnabled()) {
+            if (mEuiccManager.isEnabled()) {
                 mPreference.setOnPreferenceClickListener((Preference pref) -> {
                     startAddSimFlow();
                     return true;
                 });
             }
-        } else if (subs.size() == 1) {
-            mPreference.setOnPreferenceClickListener((Preference pref) -> {
-                final Intent intent = new Intent(mContext, MobileNetworkActivity.class);
-                mContext.startActivity(intent);
-                return true;
-            });
         } else {
-            mPreference.setFragment(MobileNetworkListFragment.class.getCanonicalName());
+            // We have one or more existing subscriptions, so we want the plus button if eSIM is
+            // supported.
+            if (mEuiccManager.isEnabled()) {
+                mPreference.setAddWidgetEnabled(!mChangeListener.isAirplaneModeOn());
+                mPreference.setOnAddClickListener(p -> startAddSimFlow());
+            }
+
+            if (subs.size() == 1) {
+                mPreference.setOnPreferenceClickListener((Preference pref) -> {
+                    final Intent intent = new Intent(mContext, MobileNetworkActivity.class);
+                    mContext.startActivity(intent);
+                    return true;
+                });
+            } else {
+                mPreference.setFragment(MobileNetworkListFragment.class.getCanonicalName());
+            }
         }
     }
 
diff --git a/src/com/android/settings/network/NetworkDashboardFragment.java b/src/com/android/settings/network/NetworkDashboardFragment.java
index 7672c2e..8c686a5 100644
--- a/src/com/android/settings/network/NetworkDashboardFragment.java
+++ b/src/com/android/settings/network/NetworkDashboardFragment.java
@@ -168,7 +168,12 @@
                 public List<SearchIndexableResource> getXmlResourcesToIndex(
                         Context context, boolean enabled) {
                     final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.network_and_internet;
+                    if (FeatureFlagPersistent.isEnabled(context,
+                            FeatureFlags.NETWORK_INTERNET_V2)) {
+                        sir.xmlResId = R.xml.network_and_internet_v2;
+                    } else {
+                        sir.xmlResId = R.xml.network_and_internet;
+                    }
                     return Arrays.asList(sir);
                 }
 
diff --git a/src/com/android/settings/network/TopLevelNetworkEntryPreferenceController.java b/src/com/android/settings/network/TopLevelNetworkEntryPreferenceController.java
index 567e52e..1136736 100644
--- a/src/com/android/settings/network/TopLevelNetworkEntryPreferenceController.java
+++ b/src/com/android/settings/network/TopLevelNetworkEntryPreferenceController.java
@@ -22,6 +22,7 @@
 import android.text.TextUtils;
 
 import com.android.settings.R;
+import com.android.settings.Utils;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.wifi.WifiMasterSwitchPreferenceController;
 
@@ -45,7 +46,7 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return AVAILABLE_UNSEARCHABLE;
+        return Utils.isDemoUser(mContext) ? UNSUPPORTED_ON_DEVICE : AVAILABLE_UNSEARCHABLE;
     }
 
     @Override
diff --git a/src/com/android/settings/network/telephony/MobileDataSlice.java b/src/com/android/settings/network/telephony/MobileDataSlice.java
index 6efd8c3..5a5d6a2 100644
--- a/src/com/android/settings/network/telephony/MobileDataSlice.java
+++ b/src/com/android/settings/network/telephony/MobileDataSlice.java
@@ -74,8 +74,27 @@
         final IconCompat icon = IconCompat.createWithResource(mContext,
                 R.drawable.ic_network_cell);
         final String title = mContext.getText(R.string.mobile_data_settings_title).toString();
-        final CharSequence summary = getSummary();
         @ColorInt final int color = Utils.getColorAccentDefaultColor(mContext);
+
+        // Return a Slice without the mobile data toggle when airplane mode is on.
+        if (isAirplaneModeEnabled()) {
+            final CharSequence summary = mContext.getText(R.string.mobile_data_ap_mode_disabled);
+            // Intent does nothing, but we have to pass an intent to the Row.
+            final PendingIntent intent = PendingIntent.getActivity(mContext, 0 /* requestCode */,
+                    new Intent(), 0 /* flags */);
+            final SliceAction deadAction =
+                    SliceAction.create(intent, icon, ListBuilder.ICON_IMAGE, title);
+            final ListBuilder listBuilder = new ListBuilder(mContext, getUri(),
+                    ListBuilder.INFINITY)
+                    .setAccentColor(color)
+                    .addRow(new ListBuilder.RowBuilder()
+                            .setTitle(title)
+                            .setSubtitle(summary)
+                            .setPrimaryAction(deadAction));
+            return listBuilder.build();
+        }
+
+        final CharSequence summary = getSummary();
         final PendingIntent toggleAction = getBroadcastIntent(mContext);
         final PendingIntent primaryAction = getPrimaryAction();
         final SliceAction primarySliceAction = SliceAction.createDeeplink(primaryAction, icon,
@@ -101,11 +120,6 @@
 
     @Override
     public void onNotifyChange(Intent intent) {
-        // Don't make a change if we are in Airplane Mode.
-        if (isAirplaneModeEnabled()) {
-            return;
-        }
-
         final boolean newState = intent.getBooleanExtra(EXTRA_TOGGLE_STATE,
                     isMobileDataEnabled());
 
diff --git a/src/com/android/settings/network/telephony/NetworkSelectSettings.java b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
index 088bfbf..47db875 100644
--- a/src/com/android/settings/network/telephony/NetworkSelectSettings.java
+++ b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
@@ -27,7 +27,7 @@
 import android.telephony.CarrierConfigManager;
 import android.telephony.CellIdentity;
 import android.telephony.CellInfo;
-import android.telephony.NetworkRegistrationState;
+import android.telephony.NetworkRegistrationInfo;
 import android.telephony.ServiceState;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
@@ -304,7 +304,7 @@
      * Config the connected network operator preference when the page was created. When user get
      * into this page, the device might or might not have data connection.
      * - If the device has data:
-     * 1. use {@code ServiceState#getNetworkRegistrationStates()} to get the currently
+     * 1. use {@code ServiceState#getNetworkRegistrationInfoList()} to get the currently
      * registered cellIdentity, wrap it into a CellInfo;
      * 2. set the signal strength level as strong;
      * 3. use {@link TelephonyManager#getNetworkOperatorName()} to get the title of the
@@ -317,8 +317,9 @@
         if (mTelephonyManager.getDataState() == mTelephonyManager.DATA_CONNECTED) {
             // Try to get the network registration states
             ServiceState ss = mTelephonyManager.getServiceState();
-            List<NetworkRegistrationState> networkList =
-                    ss.getNetworkRegistrationStates(AccessNetworkConstants.TransportType.WWAN);
+            List<NetworkRegistrationInfo> networkList =
+                    ss.getNetworkRegistrationInfoListForTransportType(
+                            AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
             if (networkList == null || networkList.size() == 0) {
                 // Remove the connected network operators category
                 mConnectedPreferenceCategory.setVisible(false);
diff --git a/src/com/android/settings/nfc/SecureNfcPreferenceController.java b/src/com/android/settings/nfc/SecureNfcPreferenceController.java
index cbff3ea..12dbd57 100644
--- a/src/com/android/settings/nfc/SecureNfcPreferenceController.java
+++ b/src/com/android/settings/nfc/SecureNfcPreferenceController.java
@@ -52,12 +52,12 @@
 
     @Override
     public boolean isChecked() {
-        return mNfcAdapter.isNfcSecureEnabled();
+        return mNfcAdapter.isSecureNfcEnabled();
     }
 
     @Override
     public boolean setChecked(boolean isChecked) {
-        return mNfcAdapter.setNfcSecure(isChecked);
+        return mNfcAdapter.enableSecureNfc(isChecked);
     }
 
     @Override
@@ -66,7 +66,7 @@
         if (mNfcAdapter == null) {
             return UNSUPPORTED_ON_DEVICE;
         }
-        return mNfcAdapter.deviceSupportsNfcSecure()
+        return mNfcAdapter.isSecureNfcSupported()
                 ? AVAILABLE
                 : UNSUPPORTED_ON_DEVICE;
     }
diff --git a/src/com/android/settings/notification/AppNotificationSettings.java b/src/com/android/settings/notification/AppNotificationSettings.java
index 5553dd7..3ccca00 100644
--- a/src/com/android/settings/notification/AppNotificationSettings.java
+++ b/src/com/android/settings/notification/AppNotificationSettings.java
@@ -33,7 +33,6 @@
 
 import com.android.internal.widget.LockPatternUtils;
 import com.android.settings.R;
-import com.android.settings.widget.MasterCheckBoxPreference;
 import com.android.settingslib.RestrictedSwitchPreference;
 import com.android.settingslib.core.AbstractPreferenceController;
 
@@ -138,6 +137,10 @@
                 context, mImportanceListener, mBackend));
         mControllers.add(new ImportancePreferenceController(
                 context, mImportanceListener, mBackend));
+        mControllers.add(new MinImportancePreferenceController(
+                context, mImportanceListener, mBackend));
+        mControllers.add(new HighImportancePreferenceController(
+                context, mImportanceListener, mBackend));
         mControllers.add(new SoundPreferenceController(context, this,
                 mImportanceListener, mBackend));
         mControllers.add(new LightsPreferenceController(context, mBackend));
diff --git a/src/com/android/settings/notification/BubblePreferenceController.java b/src/com/android/settings/notification/BubblePreferenceController.java
index e61de4b..5b3be44 100644
--- a/src/com/android/settings/notification/BubblePreferenceController.java
+++ b/src/com/android/settings/notification/BubblePreferenceController.java
@@ -30,7 +30,7 @@
         implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
 
     private static final String TAG = "BubblePrefContr";
-    private static final String KEY = "bubble";
+    private static final String KEY = "bubble_pref";
     private static final int SYSTEM_WIDE_ON = 1;
     private static final int SYSTEM_WIDE_OFF = 0;
 
diff --git a/src/com/android/settings/notification/ChannelNotificationSettings.java b/src/com/android/settings/notification/ChannelNotificationSettings.java
index f92e529..850fde2 100644
--- a/src/com/android/settings/notification/ChannelNotificationSettings.java
+++ b/src/com/android/settings/notification/ChannelNotificationSettings.java
@@ -94,9 +94,12 @@
     protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
         mControllers = new ArrayList<>();
         mControllers.add(new HeaderPreferenceController(context, this));
-        mControllers.add(new BlockPreferenceController(context, mImportanceListener, mBackend));
         mControllers.add(new ImportancePreferenceController(
                 context, mImportanceListener, mBackend));
+        mControllers.add(new MinImportancePreferenceController(
+                context, mImportanceListener, mBackend));
+        mControllers.add(new HighImportancePreferenceController(
+                context, mImportanceListener, mBackend));
         mControllers.add(new AllowSoundPreferenceController(
                 context, mImportanceListener, mBackend));
         mControllers.add(new SoundPreferenceController(context, this,
diff --git a/src/com/android/settings/notification/HighImportancePreferenceController.java b/src/com/android/settings/notification/HighImportancePreferenceController.java
new file mode 100644
index 0000000..fe843fd
--- /dev/null
+++ b/src/com/android/settings/notification/HighImportancePreferenceController.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.settings.notification;
+
+import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
+import static android.app.NotificationManager.IMPORTANCE_HIGH;
+
+import android.app.NotificationChannel;
+import android.content.Context;
+
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.RestrictedSwitchPreference;
+
+import androidx.preference.Preference;
+
+public class HighImportancePreferenceController extends NotificationPreferenceController
+        implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener  {
+
+    private static final String KEY_IMPORTANCE = "high_importance";
+    private NotificationSettingsBase.ImportanceListener mImportanceListener;
+
+    public HighImportancePreferenceController(Context context,
+            NotificationSettingsBase.ImportanceListener importanceListener,
+            NotificationBackend backend) {
+        super(context, backend);
+        mImportanceListener = importanceListener;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_IMPORTANCE;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        if (!super.isAvailable()) {
+            return false;
+        }
+        if (mChannel == null) {
+            return false;
+        }
+        if (isDefaultChannel()) {
+           return false;
+        }
+        return mChannel.getImportance() >= IMPORTANCE_DEFAULT;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        if (mAppRow!= null && mChannel != null) {
+            preference.setEnabled(mAdmin == null && isChannelConfigurable());
+
+            RestrictedSwitchPreference pref = (RestrictedSwitchPreference) preference;
+            pref.setChecked(mChannel.getImportance() >= IMPORTANCE_HIGH);
+        }
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        if (mChannel != null) {
+            final boolean checked = (boolean) newValue;
+
+            mChannel.setImportance(checked ? IMPORTANCE_HIGH : IMPORTANCE_DEFAULT);
+            mChannel.lockFields(NotificationChannel.USER_LOCKED_IMPORTANCE);
+            saveChannel();
+            mImportanceListener.onImportanceChanged();
+        }
+        return true;
+    }
+}
diff --git a/src/com/android/settings/notification/ImportancePreference.java b/src/com/android/settings/notification/ImportancePreference.java
new file mode 100644
index 0000000..b8f3e45
--- /dev/null
+++ b/src/com/android/settings/notification/ImportancePreference.java
@@ -0,0 +1,172 @@
+/*
+ * 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.settings.notification;
+
+import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
+import static android.app.NotificationManager.IMPORTANCE_HIGH;
+import static android.app.NotificationManager.IMPORTANCE_LOW;
+import static android.app.NotificationManager.IMPORTANCE_MIN;
+import static android.app.NotificationManager.IMPORTANCE_NONE;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.GradientDrawable;
+import android.graphics.drawable.LayerDrawable;
+import android.util.ArrayMap;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.ImageButton;
+
+import com.android.settingslib.R;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
+public class ImportancePreference extends Preference {
+
+    boolean mIsBlockable = true;
+    boolean mIsConfigurable = true;
+    int mImportance;
+    ImageButton blockButton;
+    ImageButton silenceButton;
+    ImageButton alertButton;
+    ArrayMap<ImageButton, Integer> mImageButtons = new ArrayMap<>();
+    Context mContext;
+
+    public ImportancePreference(Context context, AttributeSet attrs,
+            int defStyleAttr, int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+        init(context);
+    }
+
+    public ImportancePreference(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        init(context);
+    }
+
+    public ImportancePreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        init(context);
+    }
+
+    public ImportancePreference(Context context) {
+        super(context);
+        init(context);
+    }
+
+    private void init(Context context) {
+        mContext = context;
+        setLayoutResource(R.layout.notif_importance_preference);
+    }
+
+    public void setImportance(int importance) {
+        mImportance = importance;
+    }
+
+    public void setBlockable(boolean blockable) {
+        mIsBlockable = blockable;
+    }
+
+    public void setConfigurable(boolean configurable) {
+        mIsConfigurable = configurable;
+    }
+
+    @Override
+    public void onBindViewHolder(PreferenceViewHolder holder) {
+        super.onBindViewHolder(holder);
+
+        View blockView = holder.itemView.findViewById(R.id.block);
+        View alertView = holder.itemView.findViewById(R.id.alert);
+        View silenceView = holder.itemView.findViewById(R.id.silence);
+        if (!mIsBlockable) {
+            blockView.setVisibility(View.GONE);
+            if (mImportance == IMPORTANCE_NONE) {
+                mImportance = IMPORTANCE_LOW;
+                callChangeListener(IMPORTANCE_LOW);
+            }
+
+        }
+        blockButton = blockView.findViewById(R.id.block_icon);
+        silenceButton = silenceView.findViewById(R.id.silence_icon);
+        alertButton = alertView.findViewById(R.id.alert_icon);
+        mImageButtons.put(blockButton, mContext.getColor(R.color.notification_block_color));
+        mImageButtons.put(silenceButton, mContext.getColor(R.color.notification_silence_color));
+        mImageButtons.put(alertButton, mContext.getColor(R.color.notification_alert_color));
+
+        switch (mImportance) {
+            case IMPORTANCE_NONE:
+                colorizeImageButton(blockButton.getId());
+                if (!mIsConfigurable) {
+                    alertView.setVisibility(View.GONE);
+                    silenceView.setVisibility(View.GONE);
+                }
+                break;
+            case IMPORTANCE_MIN:
+            case IMPORTANCE_LOW:
+                colorizeImageButton(silenceButton.getId());
+                if (!mIsConfigurable) {
+                    alertView.setVisibility(View.GONE);
+                    blockView.setVisibility(View.GONE);
+                }
+                break;
+            case IMPORTANCE_HIGH:
+            default:
+                colorizeImageButton(alertButton.getId());
+                if (!mIsConfigurable) {
+                    blockView.setVisibility(View.GONE);
+                    silenceView.setVisibility(View.GONE);
+                }
+                break;
+        }
+
+        blockButton.setOnClickListener(v -> {
+            callChangeListener(IMPORTANCE_NONE);
+            colorizeImageButton(blockButton.getId());
+        });
+        silenceButton.setOnClickListener(v -> {
+            callChangeListener(IMPORTANCE_LOW);
+            colorizeImageButton(silenceButton.getId());
+        });
+        alertButton.setOnClickListener(v -> {
+            callChangeListener(IMPORTANCE_DEFAULT);
+            colorizeImageButton(alertButton.getId());
+        });
+    }
+
+    private void colorizeImageButton(int buttonId) {
+        if (mImageButtons != null) {
+            for (int i = 0; i < mImageButtons.size(); i++) {
+                final ImageButton imageButton = mImageButtons.keyAt(i);
+                final int color = mImageButtons.valueAt(i);
+                if (imageButton != null) {
+                    LayerDrawable drawable = (LayerDrawable) imageButton.getDrawable();
+                    Drawable foreground = drawable.findDrawableByLayerId(R.id.fore);
+                    GradientDrawable background =
+                            (GradientDrawable) drawable.findDrawableByLayerId(R.id.back);
+                    if (buttonId == imageButton.getId()) {
+                        foreground.setTint(Color.WHITE);
+                        background.setColor(color);
+                    } else {
+                        foreground.setTint(color);
+                        background.setColor(Color.TRANSPARENT);
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/src/com/android/settings/notification/ImportancePreferenceController.java b/src/com/android/settings/notification/ImportancePreferenceController.java
index 4c20a46..0955571 100644
--- a/src/com/android/settings/notification/ImportancePreferenceController.java
+++ b/src/com/android/settings/notification/ImportancePreferenceController.java
@@ -18,21 +18,15 @@
 
 import static android.app.NotificationChannel.USER_LOCKED_SOUND;
 import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
-import static android.app.NotificationManager.IMPORTANCE_HIGH;
-import static android.app.NotificationManager.IMPORTANCE_MIN;
-import static android.app.NotificationManager.IMPORTANCE_UNSPECIFIED;
 
 import android.app.NotificationChannel;
-import android.app.NotificationManager;
 import android.content.Context;
 import android.media.RingtoneManager;
 
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-import com.android.settings.RestrictedListPreference;
 import com.android.settings.core.PreferenceControllerMixin;
 
+import androidx.preference.Preference;
+
 public class ImportancePreferenceController extends NotificationPreferenceController
         implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener  {
 
@@ -53,44 +47,33 @@
 
     @Override
     public boolean isAvailable() {
-        if (!super.isAvailable()) {
+        if (mAppRow == null) {
             return false;
         }
         if (mChannel == null) {
             return false;
         }
-        return !isDefaultChannel();
+        if (isDefaultChannel()) {
+            return false;
+        }
+        return true;
     }
 
     @Override
     public void updateState(Preference preference) {
         if (mAppRow!= null && mChannel != null) {
             preference.setEnabled(mAdmin == null && isChannelConfigurable());
-            preference.setSummary(getImportanceSummary(mChannel));
-
-            int importances = IMPORTANCE_HIGH - IMPORTANCE_MIN + 1;
-            CharSequence[] entries = new CharSequence[importances];
-            CharSequence[] values = new CharSequence[importances];
-
-            int index = 0;
-            for (int i = IMPORTANCE_HIGH; i >= IMPORTANCE_MIN; i--) {
-                NotificationChannel channel = new NotificationChannel("", "", i);
-                entries[index] = getImportanceSummary(channel);
-                values[index] = String.valueOf(i);
-                index++;
-            }
-
-            RestrictedListPreference pref = (RestrictedListPreference) preference;
-            pref.setEntries(entries);
-            pref.setEntryValues(values);
-            pref.setValue(String.valueOf(mChannel.getImportance()));
+            ImportancePreference pref = (ImportancePreference) preference;
+            pref.setBlockable(isChannelBlockable());
+            pref.setConfigurable(isChannelConfigurable());
+            pref.setImportance(mChannel.getImportance());
         }
     }
 
     @Override
     public boolean onPreferenceChange(Preference preference, Object newValue) {
         if (mChannel != null) {
-            final int importance = Integer.parseInt((String) newValue);
+            final int importance = (Integer) newValue;
 
             // If you are moving from an importance level without sound to one with sound,
             // but the sound you had selected was "Silence",
@@ -111,39 +94,4 @@
         }
         return true;
     }
-
-    protected String getImportanceSummary(NotificationChannel channel) {
-        String summary = "";
-        int importance = channel.getImportance();
-        switch (importance) {
-            case IMPORTANCE_UNSPECIFIED:
-                summary = mContext.getString(R.string.notification_importance_unspecified);
-                break;
-            case NotificationManager.IMPORTANCE_MIN:
-                summary = mContext.getString(R.string.notification_importance_min);
-                break;
-            case NotificationManager.IMPORTANCE_LOW:
-                summary = mContext.getString(R.string.notification_importance_low);
-                break;
-            case NotificationManager.IMPORTANCE_DEFAULT:
-                if (SoundPreferenceController.hasValidSound(channel)) {
-                    summary = mContext.getString(R.string.notification_importance_default);
-                } else {
-                    summary = mContext.getString(R.string.notification_importance_low);
-                }
-                break;
-            case NotificationManager.IMPORTANCE_HIGH:
-            case NotificationManager.IMPORTANCE_MAX:
-                if (SoundPreferenceController.hasValidSound(channel)) {
-                    summary = mContext.getString(R.string.notification_importance_high);
-                } else {
-                    summary = mContext.getString(R.string.notification_importance_high_silent);
-                }
-                break;
-            default:
-                return "";
-        }
-
-        return summary;
-    }
 }
diff --git a/src/com/android/settings/notification/MinImportancePreferenceController.java b/src/com/android/settings/notification/MinImportancePreferenceController.java
new file mode 100644
index 0000000..771ac60
--- /dev/null
+++ b/src/com/android/settings/notification/MinImportancePreferenceController.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import static android.app.NotificationManager.IMPORTANCE_LOW;
+import static android.app.NotificationManager.IMPORTANCE_MIN;
+
+import android.app.NotificationChannel;
+import android.content.Context;
+
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.RestrictedSwitchPreference;
+
+import androidx.preference.Preference;
+
+public class MinImportancePreferenceController extends NotificationPreferenceController
+        implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener  {
+
+    private static final String KEY_IMPORTANCE = "min_importance";
+    private NotificationSettingsBase.ImportanceListener mImportanceListener;
+
+    public MinImportancePreferenceController(Context context,
+            NotificationSettingsBase.ImportanceListener importanceListener,
+            NotificationBackend backend) {
+        super(context, backend);
+        mImportanceListener = importanceListener;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_IMPORTANCE;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        if (!super.isAvailable()) {
+            return false;
+        }
+        if (mChannel == null) {
+            return false;
+        }
+        if (isDefaultChannel()) {
+            return false;
+        }
+        return mChannel.getImportance() <= IMPORTANCE_LOW;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        if (mAppRow!= null && mChannel != null) {
+            preference.setEnabled(mAdmin == null && isChannelConfigurable());
+
+            RestrictedSwitchPreference pref = (RestrictedSwitchPreference) preference;
+            pref.setChecked(mChannel.getImportance() == IMPORTANCE_MIN);
+        }
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        if (mChannel != null) {
+            final boolean checked = (boolean) newValue;
+
+            mChannel.setImportance(checked ? IMPORTANCE_MIN : IMPORTANCE_LOW);
+            mChannel.lockFields(NotificationChannel.USER_LOCKED_IMPORTANCE);
+            saveChannel();
+            mImportanceListener.onImportanceChanged();
+        }
+        return true;
+    }
+}
diff --git a/src/com/android/settings/notification/NotificationAssistantPicker.java b/src/com/android/settings/notification/NotificationAssistantPicker.java
index 7720e6f..868e0a9 100644
--- a/src/com/android/settings/notification/NotificationAssistantPicker.java
+++ b/src/com/android/settings/notification/NotificationAssistantPicker.java
@@ -20,12 +20,15 @@
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.pm.PackageItemInfo;
+import android.content.pm.PackageManager;
 import android.content.pm.ServiceInfo;
 import android.graphics.drawable.Drawable;
+import android.os.RemoteException;
 import android.provider.SearchIndexableResource;
 import android.provider.Settings;
 import android.service.notification.NotificationAssistantService;
 import android.text.TextUtils;
+import android.util.Log;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.R;
@@ -114,8 +117,12 @@
         List<CandidateInfo> list = new ArrayList<>();
         services.sort(new PackageItemInfo.DisplayNameComparator(mPm));
         for (ServiceInfo service : services) {
-            final ComponentName cn = new ComponentName(service.packageName, service.name);
-            list.add(new DefaultAppInfo(mContext, mPm, mUserId, cn));
+            if (mContext.getPackageManager().checkPermission(
+                    android.Manifest.permission.REQUEST_NOTIFICATION_ASSISTANT_SERVICE,
+                    service.packageName) == PackageManager.PERMISSION_GRANTED) {
+                final ComponentName cn = new ComponentName(service.packageName, service.name);
+                list.add(new DefaultAppInfo(mContext, mPm, mUserId, cn));
+            }
         }
         list.add(new CandidateNone(mContext));
         mCandidateInfos = list;
diff --git a/src/com/android/settings/notification/NotificationLockscreenPreference.java b/src/com/android/settings/notification/NotificationLockscreenPreference.java
index 8c04e16..b236014 100644
--- a/src/com/android/settings/notification/NotificationLockscreenPreference.java
+++ b/src/com/android/settings/notification/NotificationLockscreenPreference.java
@@ -27,7 +27,6 @@
 import android.view.View;
 import android.widget.CheckBox;
 import android.widget.CompoundButton;
-import android.widget.ListAdapter;
 import android.widget.ListView;
 
 import androidx.appcompat.app.AlertDialog;
@@ -78,7 +77,8 @@
             DialogInterface.OnClickListener innerListener) {
 
         mListener = new Listener(innerListener);
-        builder.setSingleChoiceItems(createListAdapter(), getSelectedValuePos(), mListener);
+        builder.setSingleChoiceItems(createListAdapter(builder.getContext()), getSelectedValuePos(),
+                mListener);
         mShowRemoteInput = getEntryValues().length == 3;
         mAllowRemoteInput = Settings.Secure.getInt(getContext().getContentResolver(),
                 Settings.Secure.LOCK_SCREEN_ALLOW_REMOTE_INPUT, 0) != 0;
@@ -117,11 +117,6 @@
     }
 
     @Override
-    protected ListAdapter createListAdapter() {
-        return new RestrictedArrayAdapter(getContext(), getEntries(), -1);
-    }
-
-    @Override
     protected void onDialogClosed(boolean positiveResult) {
         super.onDialogClosed(positiveResult);
         Settings.Secure.putInt(getContext().getContentResolver(),
diff --git a/src/com/android/settings/notification/NotificationPreferenceController.java b/src/com/android/settings/notification/NotificationPreferenceController.java
index 22f07be..3f535fb 100644
--- a/src/com/android/settings/notification/NotificationPreferenceController.java
+++ b/src/com/android/settings/notification/NotificationPreferenceController.java
@@ -111,6 +111,9 @@
     }
 
     protected boolean isChannelConfigurable() {
+        if (mAppRow != null && mAppRow.lockedImportance) {
+            return false;
+        }
         if (mChannel != null && mAppRow != null) {
             return !Objects.equals(mChannel.getId(), mAppRow.lockedChannelId);
         }
diff --git a/src/com/android/settings/notification/RemoteVolumePreferenceController.java b/src/com/android/settings/notification/RemoteVolumePreferenceController.java
new file mode 100644
index 0000000..37a493e
--- /dev/null
+++ b/src/com/android/settings/notification/RemoteVolumePreferenceController.java
@@ -0,0 +1,261 @@
+/*
+ * 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.settings.notification;
+
+import android.content.Context;
+import android.media.session.MediaController;
+import android.media.session.MediaSession;
+import android.media.session.MediaSessionManager;
+import android.net.Uri;
+import android.os.Looper;
+import android.text.TextUtils;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.lifecycle.OnLifecycleEvent;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.slices.SliceBackgroundWorker;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.volume.MediaSessions;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Objects;
+
+public class RemoteVolumePreferenceController extends
+    VolumeSeekBarPreferenceController {
+
+    private static final String KEY_REMOTE_VOLUME = "remote_volume";
+    @VisibleForTesting
+    static final int REMOTE_VOLUME = 100;
+
+    private MediaSessionManager mMediaSessionManager;
+    private MediaSessions mMediaSessions;
+    @VisibleForTesting
+    MediaSession.Token mActiveToken;
+    @VisibleForTesting
+    MediaController mMediaController;
+
+    @VisibleForTesting
+    MediaSessions.Callbacks mCallbacks = new MediaSessions.Callbacks() {
+        @Override
+        public void onRemoteUpdate(MediaSession.Token token, String name,
+                MediaController.PlaybackInfo pi) {
+            if (mActiveToken == null) {
+                updateToken(token);
+            }
+            if (Objects.equals(mActiveToken, token)) {
+                updatePreference(mPreference, mActiveToken, pi);
+            }
+        }
+
+        @Override
+        public void onRemoteRemoved(MediaSession.Token t) {
+            if (Objects.equals(mActiveToken, t)) {
+                updateToken(null);
+                if (mPreference != null) {
+                    mPreference.setVisible(false);
+                }
+            }
+        }
+
+        @Override
+        public void onRemoteVolumeChanged(MediaSession.Token token, int flags) {
+            if (Objects.equals(mActiveToken, token)) {
+                final MediaController.PlaybackInfo pi = mMediaController.getPlaybackInfo();
+                if (pi != null) {
+                    setSliderPosition(pi.getCurrentVolume());
+                }
+            }
+        }
+    };
+
+    public RemoteVolumePreferenceController(Context context) {
+        super(context, KEY_REMOTE_VOLUME);
+        mMediaSessionManager = context.getSystemService(MediaSessionManager.class);
+        mMediaSessions = new MediaSessions(context, Looper.getMainLooper(), mCallbacks);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        final List<MediaController> controllers = mMediaSessionManager.getActiveSessions(null);
+        for (MediaController mediaController : controllers) {
+            final MediaController.PlaybackInfo pi = mediaController.getPlaybackInfo();
+            if (isRemote(pi)) {
+                updateToken(mediaController.getSessionToken());
+                return AVAILABLE;
+            }
+        }
+
+        // No active remote media at this point
+        return CONDITIONALLY_UNAVAILABLE;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        if (mMediaController != null) {
+            updatePreference(mPreference, mActiveToken, mMediaController.getPlaybackInfo());
+        }
+    }
+
+    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
+    public void onResume() {
+        super.onResume();
+        mMediaSessions.init();
+    }
+
+    @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
+    public void onPause() {
+        super.onPause();
+        mMediaSessions.destroy();
+    }
+
+    @Override
+    public int getSliderPosition() {
+        if (mPreference != null) {
+            return mPreference.getProgress();
+        }
+        if (mMediaController == null) {
+            return 0;
+        }
+        final MediaController.PlaybackInfo playbackInfo = mMediaController.getPlaybackInfo();
+        return playbackInfo != null ? playbackInfo.getCurrentVolume() : 0;
+    }
+
+    @Override
+    public boolean setSliderPosition(int position) {
+        if (mPreference != null) {
+            mPreference.setProgress(position);
+        }
+        if (mMediaController == null) {
+            return false;
+        }
+        mMediaController.setVolumeTo(position, 0);
+        return true;
+    }
+
+    @Override
+    public int getMaxSteps() {
+        if (mPreference != null) {
+            return mPreference.getMax();
+        }
+        if (mMediaController == null) {
+            return 0;
+        }
+        final MediaController.PlaybackInfo playbackInfo = mMediaController.getPlaybackInfo();
+        return playbackInfo != null ? playbackInfo.getMaxVolume() : 0;
+    }
+
+    @Override
+    public boolean isSliceable() {
+        return TextUtils.equals(getPreferenceKey(), KEY_REMOTE_VOLUME);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_REMOTE_VOLUME;
+    }
+
+    @Override
+    public int getAudioStream() {
+        // This can be anything because remote volume controller doesn't rely on it.
+        return REMOTE_VOLUME;
+    }
+
+    @Override
+    public int getMuteIcon() {
+        return R.drawable.ic_volume_remote_mute;
+    }
+
+    public static boolean isRemote(MediaController.PlaybackInfo pi) {
+        return pi != null
+                && pi.getPlaybackType() == MediaController.PlaybackInfo.PLAYBACK_TYPE_REMOTE;
+    }
+
+    @Override
+    public Class<? extends SliceBackgroundWorker> getBackgroundWorkerClass() {
+        return RemoteVolumeSliceWorker.class;
+    }
+
+    private void updatePreference(VolumeSeekBarPreference seekBarPreference,
+            MediaSession.Token token, MediaController.PlaybackInfo playbackInfo) {
+        if (seekBarPreference == null || token == null || playbackInfo == null) {
+            return;
+        }
+
+        seekBarPreference.setMax(playbackInfo.getMaxVolume());
+        seekBarPreference.setVisible(true);
+        setSliderPosition(playbackInfo.getCurrentVolume());
+    }
+
+    private void updateToken(MediaSession.Token token) {
+        mActiveToken = token;
+        if (token != null) {
+            mMediaController = new MediaController(mContext, mActiveToken);
+        } else {
+            mMediaController = null;
+        }
+    }
+
+    /**
+     * Listener for background change to remote volume, which listens callback
+     * from {@code MediaSessions}
+     */
+    public static class RemoteVolumeSliceWorker extends SliceBackgroundWorker<Void> implements
+            MediaSessions.Callbacks {
+
+        private MediaSessions mMediaSessions;
+
+        public RemoteVolumeSliceWorker(Context context, Uri uri) {
+            super(context, uri);
+            mMediaSessions = new MediaSessions(context, Looper.getMainLooper(), this);
+        }
+
+        @Override
+        protected void onSlicePinned() {
+            mMediaSessions.init();
+        }
+
+        @Override
+        protected void onSliceUnpinned() {
+            mMediaSessions.destroy();
+        }
+
+        @Override
+        public void close() throws IOException {
+            mMediaSessions = null;
+        }
+
+        @Override
+        public void onRemoteUpdate(MediaSession.Token token, String name,
+                MediaController.PlaybackInfo pi) {
+            notifySliceChange();
+        }
+
+        @Override
+        public void onRemoteRemoved(MediaSession.Token t) {
+            notifySliceChange();
+        }
+
+        @Override
+        public void onRemoteVolumeChanged(MediaSession.Token token, int flags) {
+            notifySliceChange();
+        }
+    }
+}
diff --git a/src/com/android/settings/notification/RemoteVolumeSeekBarPreference.java b/src/com/android/settings/notification/RemoteVolumeSeekBarPreference.java
new file mode 100644
index 0000000..e99af6a
--- /dev/null
+++ b/src/com/android/settings/notification/RemoteVolumeSeekBarPreference.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.settings.notification;
+
+import android.content.Context;
+import android.util.AttributeSet;
+
+/**
+ * A slider preference that controls remote volume, which doesn't go through
+ * {@link android.media.AudioManager}
+ **/
+public class RemoteVolumeSeekBarPreference extends VolumeSeekBarPreference {
+
+    public RemoteVolumeSeekBarPreference(Context context, AttributeSet attrs, int defStyleAttr,
+            int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+    }
+
+    public RemoteVolumeSeekBarPreference(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+    }
+
+    public RemoteVolumeSeekBarPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public RemoteVolumeSeekBarPreference(Context context) {
+        super(context);
+    }
+
+    @Override
+    public void setStream(int stream) {
+        // Do nothing here, volume is not controlled by AudioManager
+    }
+
+    @Override
+    protected void init() {
+        if (mSeekBar == null) return;
+        updateIconView();
+        updateSuppressionText();
+    }
+}
diff --git a/src/com/android/settings/notification/SoundSettings.java b/src/com/android/settings/notification/SoundSettings.java
index e8b7ee0..eec0fb8 100644
--- a/src/com/android/settings/notification/SoundSettings.java
+++ b/src/com/android/settings/notification/SoundSettings.java
@@ -38,7 +38,6 @@
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.sound.HandsFreeProfileOutputPreferenceController;
-import com.android.settings.sound.MediaOutputPreferenceController;
 import com.android.settings.widget.PreferenceCategoryController;
 import com.android.settings.widget.UpdatableListPreferenceDialogFragment;
 import com.android.settingslib.core.AbstractPreferenceController;
@@ -77,7 +76,6 @@
 
     private RingtonePreference mRequestPreference;
     private UpdatableListPreferenceDialogFragment mDialogFragment;
-    private String mMediaOutputControllerKey;
     private String mHfpOutputControllerKey;
 
     @Override
@@ -132,8 +130,6 @@
         final int metricsCategory;
         if (mHfpOutputControllerKey.equals(preference.getKey())) {
             metricsCategory = SettingsEnums.DIALOG_SWITCH_HFP_DEVICES;
-        } else if (mMediaOutputControllerKey.equals(preference.getKey())) {
-            metricsCategory = SettingsEnums.DIALOG_SWITCH_A2DP_DEVICES;
         } else {
             metricsCategory = Instrumentable.METRICS_CATEGORY_UNKNOWN;
         }
@@ -184,10 +180,8 @@
         volumeControllers.add(use(RingVolumePreferenceController.class));
         volumeControllers.add(use(NotificationVolumePreferenceController.class));
         volumeControllers.add(use(CallVolumePreferenceController.class));
+        volumeControllers.add(use(RemoteVolumePreferenceController.class));
 
-        use(MediaOutputPreferenceController.class).setCallback(listPreference ->
-                onPreferenceDataChanged(listPreference));
-        mMediaOutputControllerKey = use(MediaOutputPreferenceController.class).getPreferenceKey();
         use(HandsFreeProfileOutputPreferenceController.class).setCallback(listPreference ->
                 onPreferenceDataChanged(listPreference));
         mHfpOutputControllerKey =
diff --git a/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java b/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java
index f1ce0af..cbf909f 100644
--- a/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java
+++ b/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java
@@ -130,17 +130,8 @@
     }
 
     private boolean isRampingRingerEnabled() {
-        String enableRampingRinger = DeviceConfig.getProperty(
-            DeviceConfig.Telephony.NAMESPACE,
-            DeviceConfig.Telephony.RAMPING_RINGER_ENABLED);
-        if (enableRampingRinger == null) {
-            return false;
-        }
-        try {
-            return Boolean.valueOf(enableRampingRinger);
-        } catch (Exception e) {
-            return false;
-        }
+        return DeviceConfig.getBoolean(DeviceConfig.Telephony.NAMESPACE,
+                DeviceConfig.Telephony.RAMPING_RINGER_ENABLED, false);
     }
 
 }
diff --git a/src/com/android/settings/notification/VolumeSeekBarPreference.java b/src/com/android/settings/notification/VolumeSeekBarPreference.java
index 13f6300..7f36791 100644
--- a/src/com/android/settings/notification/VolumeSeekBarPreference.java
+++ b/src/com/android/settings/notification/VolumeSeekBarPreference.java
@@ -40,8 +40,8 @@
 public class VolumeSeekBarPreference extends SeekBarPreference {
     private static final String TAG = "VolumeSeekBarPreference";
 
+    protected SeekBar mSeekBar;
     private int mStream;
-    private SeekBar mSeekBar;
     private SeekBarVolumizer mVolumizer;
     private Callback mCallback;
     private ImageView mIconView;
@@ -121,7 +121,7 @@
         init();
     }
 
-    private void init() {
+    protected void init() {
         if (mSeekBar == null) return;
         final SeekBarVolumizer.Callback sbvc = new SeekBarVolumizer.Callback() {
             @Override
@@ -158,7 +158,7 @@
         }
     }
 
-    private void updateIconView() {
+    protected void updateIconView() {
         if (mIconView == null) return;
         if (mIconResId != 0) {
             mIconView.setImageResource(mIconResId);
@@ -195,7 +195,7 @@
         updateSuppressionText();
     }
 
-    private void updateSuppressionText() {
+    protected void updateSuppressionText() {
         if (mSuppressionTextView != null && mSeekBar != null) {
             mSuppressionTextView.setText(mSuppressionText);
             final boolean showSuppression = !TextUtils.isEmpty(mSuppressionText);
diff --git a/src/com/android/settings/notification/ZenRulePreference.java b/src/com/android/settings/notification/ZenRulePreference.java
index 613eb1d..8bc602a 100644
--- a/src/com/android/settings/notification/ZenRulePreference.java
+++ b/src/com/android/settings/notification/ZenRulePreference.java
@@ -171,6 +171,9 @@
                 getSettingsActivity(rule, si);
         mIntent = AbstractZenModeAutomaticRulePreferenceController.getRuleIntent(action,
                 settingsActivity, mId);
+        if (mIntent.resolveActivity(mPm) == null) {
+            mIntent = null;
+        }
         setKey(mId);
     }
 
diff --git a/src/com/android/settings/panel/NfcPanel.java b/src/com/android/settings/panel/NfcPanel.java
index 8fa41d9..6a9c74d 100644
--- a/src/com/android/settings/panel/NfcPanel.java
+++ b/src/com/android/settings/panel/NfcPanel.java
@@ -1,3 +1,19 @@
+/*
+ * 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.settings.panel;
 
 import android.app.settings.SettingsEnums;
diff --git a/src/com/android/settings/panel/PanelFeatureProviderImpl.java b/src/com/android/settings/panel/PanelFeatureProviderImpl.java
index 6b096a1..67c300f 100644
--- a/src/com/android/settings/panel/PanelFeatureProviderImpl.java
+++ b/src/com/android/settings/panel/PanelFeatureProviderImpl.java
@@ -28,12 +28,14 @@
         switch (panelType) {
             case Settings.Panel.ACTION_INTERNET_CONNECTIVITY:
                 return InternetConnectivityPanel.create(context);
-            case Settings.Panel.ACTION_VOLUME:
-                return VolumePanel.create(context);
-            case Settings.Panel.ACTION_NFC:
-                return NfcPanel.create(context);
             case ACTION_MEDIA_OUTPUT:
                 return MediaOutputPanel.create(context, mediaPackageName);
+            case Settings.Panel.ACTION_NFC:
+                return NfcPanel.create(context);
+            case Settings.Panel.ACTION_WIFI:
+                return WifiPanel.create(context);
+            case Settings.Panel.ACTION_VOLUME:
+                return VolumePanel.create(context);
         }
 
         throw new IllegalStateException("No matching panel for: "  + panelType);
diff --git a/src/com/android/settings/panel/PanelSlicesAdapter.java b/src/com/android/settings/panel/PanelSlicesAdapter.java
index c1cb049..47ff631 100644
--- a/src/com/android/settings/panel/PanelSlicesAdapter.java
+++ b/src/com/android/settings/panel/PanelSlicesAdapter.java
@@ -94,6 +94,7 @@
             super(view);
             sliceView = view.findViewById(R.id.slice_view);
             sliceView.setMode(SliceView.MODE_LARGE);
+            sliceView.showTitleItems(true);
             mPanelContent = panelContent;
         }
 
diff --git a/src/com/android/settings/panel/SettingsPanelActivity.java b/src/com/android/settings/panel/SettingsPanelActivity.java
index 3819c80..8aee382 100644
--- a/src/com/android/settings/panel/SettingsPanelActivity.java
+++ b/src/com/android/settings/panel/SettingsPanelActivity.java
@@ -16,13 +16,11 @@
 
 package com.android.settings.panel;
 
-import static com.android.settingslib.media.MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT;
 import static com.android.settingslib.media.MediaOutputSliceConstants.EXTRA_PACKAGE_NAME;
 
 import android.app.settings.SettingsEnums;
 import android.content.Intent;
 import android.os.Bundle;
-import android.text.TextUtils;
 import android.util.Log;
 import android.view.Gravity;
 import android.view.MotionEvent;
@@ -75,15 +73,8 @@
             return;
         }
 
-        final String mediaPackageName =
-                callingIntent.getStringExtra(EXTRA_PACKAGE_NAME);
-
-        if (TextUtils.equals(ACTION_MEDIA_OUTPUT, callingIntent.getAction())
-                && TextUtils.isEmpty(mediaPackageName)) {
-            Log.e(TAG, "Missing EXTRA_PACKAGE_NAME, closing Panel Activity");
-            finish();
-            return;
-        }
+        // We will use it once media output switch panel support remote device.
+        final String mediaPackageName = callingIntent.getStringExtra(EXTRA_PACKAGE_NAME);
 
         setContentView(R.layout.settings_panel);
 
diff --git a/src/com/android/settings/panel/VolumePanel.java b/src/com/android/settings/panel/VolumePanel.java
index 20c2272..62eca53 100644
--- a/src/com/android/settings/panel/VolumePanel.java
+++ b/src/com/android/settings/panel/VolumePanel.java
@@ -19,6 +19,7 @@
 import static com.android.settings.slices.CustomSliceRegistry.VOLUME_ALARM_URI;
 import static com.android.settings.slices.CustomSliceRegistry.VOLUME_CALL_URI;
 import static com.android.settings.slices.CustomSliceRegistry.VOLUME_MEDIA_URI;
+import static com.android.settings.slices.CustomSliceRegistry.VOLUME_REMOTE_MEDIA_URI;
 import static com.android.settings.slices.CustomSliceRegistry.VOLUME_RINGER_URI;
 
 import android.app.settings.SettingsEnums;
@@ -52,6 +53,7 @@
     @Override
     public List<Uri> getSlices() {
         final List<Uri> uris = new ArrayList<>();
+        uris.add(VOLUME_REMOTE_MEDIA_URI);
         uris.add(VOLUME_MEDIA_URI);
         uris.add(VOLUME_CALL_URI);
         uris.add(VOLUME_RINGER_URI);
diff --git a/src/com/android/settings/panel/WifiPanel.java b/src/com/android/settings/panel/WifiPanel.java
new file mode 100644
index 0000000..6d83742
--- /dev/null
+++ b/src/com/android/settings/panel/WifiPanel.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.settings.panel;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+
+import com.android.settings.R;
+import com.android.settings.SubSettings;
+import com.android.settings.network.NetworkDashboardFragment;
+import com.android.settings.slices.CustomSliceRegistry;
+import com.android.settings.slices.SliceBuilderUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Panel data class for Wifi settings.
+ */
+public class WifiPanel implements PanelContent {
+
+    private final Context mContext;
+
+    public static WifiPanel create(Context context) {
+        return new WifiPanel(context);
+    }
+
+    private WifiPanel(Context context) {
+        mContext = context.getApplicationContext();
+    }
+
+    @Override
+    public CharSequence getTitle() {
+        return mContext.getText(R.string.wifi_settings);
+    }
+
+    @Override
+    public List<Uri> getSlices() {
+        final List<Uri> uris = new ArrayList<>();
+        uris.add(CustomSliceRegistry.WIFI_SLICE_URI);
+        return uris;
+    }
+
+    @Override
+    public Intent getSeeMoreIntent() {
+        final String screenTitle =
+                mContext.getText(R.string.network_dashboard_title).toString();
+        final Intent intent = SliceBuilderUtils.buildSearchResultPageIntent(mContext,
+                NetworkDashboardFragment.class.getName(),
+                null /* key */,
+                screenTitle,
+                SettingsEnums.SETTINGS_NETWORK_CATEGORY);
+        intent.setClassName(mContext.getPackageName(), SubSettings.class.getName());
+        return intent;
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.PANEL_WIFI;
+    }
+}
diff --git a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
index ec1e835..d3d5c49 100644
--- a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
+++ b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
@@ -198,7 +198,7 @@
         } else if (isManagedProfile && isInternalActivity()
                 && !lockPatternUtils.isSeparateProfileChallengeEnabled(mUserId)) {
             mCredentialMode = CREDENTIAL_MANAGED;
-            if (isBiometricAllowed(effectiveUserId)) {
+            if (isBiometricAllowed(effectiveUserId, mUserId)) {
                 showBiometricPrompt(bpBundle);
                 launchedBiometric = true;
             } else {
@@ -207,7 +207,7 @@
             }
         } else {
             mCredentialMode = CREDENTIAL_NORMAL;
-            if (isBiometricAllowed(effectiveUserId)) {
+            if (isBiometricAllowed(effectiveUserId, mUserId)) {
                 // Don't need to check if biometrics / pin/pattern/pass are enrolled. It will go to
                 // onAuthenticationError and do the right thing automatically.
                 showBiometricPrompt(bpBundle);
@@ -273,9 +273,10 @@
         return (disabledFeatures & DevicePolicyManager.KEYGUARD_DISABLE_BIOMETRICS) != 0;
     }
 
-    private boolean isBiometricAllowed(int effectiveUserId) {
+    private boolean isBiometricAllowed(int effectiveUserId, int realUserId) {
         return !isStrongAuthRequired(effectiveUserId)
-                && !isBiometricDisabledByAdmin(effectiveUserId);
+                && !isBiometricDisabledByAdmin(effectiveUserId)
+                && !mLockPatternUtils.hasPendingEscrowToken(realUserId);
     }
 
     private void showBiometricPrompt(Bundle bundle) {
@@ -304,9 +305,18 @@
     private void showConfirmCredentials() {
         mCCLaunched = true;
         boolean launched = false;
+        // The only difference between CREDENTIAL_MANAGED and CREDENTIAL_NORMAL is that for
+        // CREDENTIAL_MANAGED, we launch the real confirm credential activity with an explicit
+        // but dummy challenge value (0L). This will result in ConfirmLockPassword calling
+        // verifyTiedProfileChallenge() (if it's a profile with unified challenge), due to the
+        // difference between ConfirmLockPassword.startVerifyPassword() and
+        // ConfirmLockPassword.startCheckPassword(). Calling verifyTiedProfileChallenge() here is
+        // necessary when this is part of the turning on work profile flow, because it forces
+        // unlocking the work profile even before the profile is running.
+        // TODO: Remove the duplication of checkPassword and verifyPassword in ConfirmLockPassword,
+        // LockPatternChecker and LockPatternUtils. verifyPassword should be the only API to use,
+        // which optionally accepts a challenge.
         if (mCredentialMode == CREDENTIAL_MANAGED) {
-            // We set the challenge as 0L, so it will force to unlock managed profile when it
-            // unlocks primary profile screen lock, by calling verifyTiedProfileChallenge()
             launched = mChooseLockSettingsHelper
                     .launchConfirmationActivityWithExternalAndChallenge(
                             0 /* request code */, null /* title */, mTitle, mDetails,
diff --git a/src/com/android/settings/password/SetNewPasswordActivity.java b/src/com/android/settings/password/SetNewPasswordActivity.java
index d7445e6..4722c56 100644
--- a/src/com/android/settings/password/SetNewPasswordActivity.java
+++ b/src/com/android/settings/password/SetNewPasswordActivity.java
@@ -16,7 +16,7 @@
 
 package com.android.settings.password;
 
-import static android.Manifest.permission.REQUEST_SCREEN_LOCK_COMPLEXITY;
+import static android.Manifest.permission.REQUEST_PASSWORD_COMPLEXITY;
 import static android.app.admin.DevicePolicyManager.ACTION_SET_NEW_PARENT_PROFILE_PASSWORD;
 import static android.app.admin.DevicePolicyManager.ACTION_SET_NEW_PASSWORD;
 import static android.app.admin.DevicePolicyManager.EXTRA_PASSWORD_COMPLEXITY;
@@ -83,7 +83,7 @@
         if (ACTION_SET_NEW_PASSWORD.equals(mNewPasswordAction)
                 && getIntent().hasExtra(EXTRA_PASSWORD_COMPLEXITY)) {
             final boolean hasPermission = PasswordUtils.isCallingAppPermitted(
-                    this, activityToken, REQUEST_SCREEN_LOCK_COMPLEXITY);
+                    this, activityToken, REQUEST_PASSWORD_COMPLEXITY);
             if (hasPermission) {
                 mRequestedMinComplexity =
                         PasswordMetrics.sanitizeComplexityLevel(getIntent()
@@ -91,7 +91,7 @@
             } else {
                 PasswordUtils.crashCallingApplication(activityToken,
                         "Must have permission "
-                                + REQUEST_SCREEN_LOCK_COMPLEXITY + " to use extra "
+                                + REQUEST_PASSWORD_COMPLEXITY + " to use extra "
                                 + EXTRA_PASSWORD_COMPLEXITY);
                 finish();
                 return;
diff --git a/src/com/android/settings/password/SetupChooseLockGeneric.java b/src/com/android/settings/password/SetupChooseLockGeneric.java
index 7fbb211..346e771 100644
--- a/src/com/android/settings/password/SetupChooseLockGeneric.java
+++ b/src/com/android/settings/password/SetupChooseLockGeneric.java
@@ -16,7 +16,7 @@
 
 package com.android.settings.password;
 
-import static android.Manifest.permission.REQUEST_SCREEN_LOCK_COMPLEXITY;
+import static android.Manifest.permission.REQUEST_PASSWORD_COMPLEXITY;
 import static android.app.admin.DevicePolicyManager.EXTRA_PASSWORD_COMPLEXITY;
 
 import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_REQUESTED_MIN_COMPLEXITY;
@@ -82,10 +82,10 @@
         if(getIntent().hasExtra(EXTRA_KEY_REQUESTED_MIN_COMPLEXITY)) {
             IBinder activityToken = getActivityToken();
             boolean hasPermission = PasswordUtils.isCallingAppPermitted(
-                    this, activityToken, REQUEST_SCREEN_LOCK_COMPLEXITY);
+                    this, activityToken, REQUEST_PASSWORD_COMPLEXITY);
             if (!hasPermission) {
                 PasswordUtils.crashCallingApplication(activityToken,
-                        "Must have permission " + REQUEST_SCREEN_LOCK_COMPLEXITY
+                        "Must have permission " + REQUEST_PASSWORD_COMPLEXITY
                                 + " to use extra " + EXTRA_PASSWORD_COMPLEXITY);
                 finish();
                 return;
diff --git a/src/com/android/settings/print/PrintServiceSettingsFragment.java b/src/com/android/settings/print/PrintServiceSettingsFragment.java
index d120062..8d40175 100644
--- a/src/com/android/settings/print/PrintServiceSettingsFragment.java
+++ b/src/com/android/settings/print/PrintServiceSettingsFragment.java
@@ -143,6 +143,8 @@
     @Override
     public void onStart() {
         super.onStart();
+        initComponents();
+        updateUiForArguments();
         updateEmptyView();
         updateUiForServiceState();
     }
@@ -158,20 +160,9 @@
     @Override
     public void onStop() {
         super.onStop();
-    }
-
-    @Override
-    public void onViewCreated(View view, Bundle savedInstanceState) {
-        super.onViewCreated(view, savedInstanceState);
-        initComponents();
-        updateUiForArguments();
-    }
-
-    @Override
-    public void onDestroyView() {
-        super.onDestroyView();
         mSwitchBar.removeOnSwitchChangeListener(this);
         mSwitchBar.hide();
+        mPrintersAdapter.unregisterAdapterDataObserver(mDataObserver);
     }
 
     private void onPreferenceToggled(String preferenceKey, boolean enabled) {
diff --git a/src/com/android/settings/privacy/EnableContentCapturePreferenceController.java b/src/com/android/settings/privacy/EnableContentCapturePreferenceController.java
new file mode 100644
index 0000000..b3ea9a7
--- /dev/null
+++ b/src/com/android/settings/privacy/EnableContentCapturePreferenceController.java
@@ -0,0 +1,58 @@
+/*
+ * 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.settings.privacy;
+
+import android.content.Context;
+import android.os.IBinder;
+import android.os.ServiceManager;
+import android.os.UserHandle;
+import android.provider.Settings;
+import android.view.contentcapture.ContentCaptureManager;
+
+import com.android.settings.core.TogglePreferenceController;
+
+public class EnableContentCapturePreferenceController extends TogglePreferenceController {
+
+    private static final String KEY_SHOW_PASSWORD = "content_capture";
+    private static final int MY_USER_ID = UserHandle.myUserId();
+
+    public EnableContentCapturePreferenceController(Context context) {
+        super(context, KEY_SHOW_PASSWORD);
+    }
+
+    @Override
+    public boolean isChecked() {
+        boolean enabled = Settings.Secure.getIntForUser(mContext.getContentResolver(),
+                Settings.Secure.CONTENT_CAPTURE_ENABLED, 1, MY_USER_ID) == 1;
+        return enabled;
+    }
+
+    @Override
+    public boolean setChecked(boolean isChecked) {
+        Settings.Secure.putIntForUser(mContext.getContentResolver(),
+                Settings.Secure.CONTENT_CAPTURE_ENABLED, isChecked ? 1 : 0, MY_USER_ID);
+        return true;
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        // We cannot look for ContentCaptureManager, because it's not available if the service
+        // didn't whitelist Settings
+        IBinder service = ServiceManager.checkService(Context.CONTENT_CAPTURE_MANAGER_SERVICE);
+        return service != null ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+}
diff --git a/src/com/android/settings/privacy/PermissionBarChartPreferenceController.java b/src/com/android/settings/privacy/PermissionBarChartPreferenceController.java
index 453cdbf..704d1e5 100644
--- a/src/com/android/settings/privacy/PermissionBarChartPreferenceController.java
+++ b/src/com/android/settings/privacy/PermissionBarChartPreferenceController.java
@@ -167,7 +167,8 @@
             barViewInfos[index] = new BarViewInfo(
                     getPermissionGroupIcon(permissionGroupInfo.getName()),
                     permissionGroupInfo.getAppAccessCount(),
-                    R.string.storage_detail_apps);
+                    R.string.storage_detail_apps,
+                    getPermissionGroupLabel(permissionGroupInfo.getName()));
 
             // Set the click listener for each bar view.
             // The listener will navigate user to permission usage app.
@@ -194,6 +195,18 @@
         return icon;
     }
 
+    private CharSequence getPermissionGroupLabel(CharSequence permissionGroup) {
+        CharSequence label = null;
+        try {
+            label = mPackageManager.getPermissionGroupInfo(permissionGroup.toString(), 0)
+                    .loadLabel(mPackageManager);
+        } catch (PackageManager.NameNotFoundException e) {
+            Log.w(TAG, "Cannot find group label for " + permissionGroup, e);
+        }
+
+        return label;
+    }
+
     private boolean areSamePermissionGroups(List<RuntimePermissionUsageInfo> newUsageInfos) {
         if (newUsageInfos.size() != mOldUsageInfos.size()) {
             return false;
diff --git a/src/com/android/settings/search/SearchFeatureProvider.java b/src/com/android/settings/search/SearchFeatureProvider.java
index dcb4acc..896f6e5 100644
--- a/src/com/android/settings/search/SearchFeatureProvider.java
+++ b/src/com/android/settings/search/SearchFeatureProvider.java
@@ -39,7 +39,7 @@
  */
 public interface SearchFeatureProvider {
 
-    int REQUEST_CODE = 0;
+    int REQUEST_CODE = 501;
 
     /**
      * Ensures the caller has necessary privilege to launch search result page.
diff --git a/src/com/android/settings/search/actionbar/SearchMenuController.java b/src/com/android/settings/search/actionbar/SearchMenuController.java
index af7141e..25d0d30 100644
--- a/src/com/android/settings/search/actionbar/SearchMenuController.java
+++ b/src/com/android/settings/search/actionbar/SearchMenuController.java
@@ -33,6 +33,7 @@
 import com.android.settings.core.InstrumentedFragment;
 import com.android.settings.core.InstrumentedPreferenceFragment;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.SearchFeatureProvider;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
 import com.android.settingslib.core.lifecycle.events.OnCreateOptionsMenu;
 
@@ -93,7 +94,7 @@
 
             FeatureFactory.getFactory(context).getMetricsFeatureProvider()
                     .action(context, SettingsEnums.ACTION_SEARCH_RESULTS);
-            mHost.startActivityForResult(intent, 0 /* requestCode */);
+            mHost.startActivityForResult(intent, SearchFeatureProvider.REQUEST_CODE);
             return true;
         });
     }
diff --git a/src/com/android/settings/slices/CustomSliceManager.java b/src/com/android/settings/slices/CustomSliceManager.java
deleted file mode 100644
index c9e473a..0000000
--- a/src/com/android/settings/slices/CustomSliceManager.java
+++ /dev/null
@@ -1,133 +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.settings.slices;
-
-import android.content.Context;
-import android.net.Uri;
-import android.util.ArrayMap;
-
-import androidx.annotation.VisibleForTesting;
-
-import com.android.settings.flashlight.FlashlightSlice;
-import com.android.settings.homepage.contextualcards.deviceinfo.BatteryInfoSlice;
-import com.android.settings.homepage.contextualcards.deviceinfo.DataUsageSlice;
-import com.android.settings.homepage.contextualcards.deviceinfo.DeviceInfoSlice;
-import com.android.settings.homepage.contextualcards.deviceinfo.EmergencyInfoSlice;
-import com.android.settings.homepage.contextualcards.deviceinfo.StorageSlice;
-import com.android.settings.homepage.contextualcards.slices.BatteryFixSlice;
-import com.android.settings.homepage.contextualcards.slices.BluetoothDevicesSlice;
-import com.android.settings.homepage.contextualcards.slices.LowStorageSlice;
-import com.android.settings.homepage.contextualcards.slices.NotificationChannelSlice;
-import com.android.settings.location.LocationSlice;
-import com.android.settings.media.MediaOutputSlice;
-import com.android.settings.network.telephony.MobileDataSlice;
-import com.android.settings.wifi.slice.ContextualWifiSlice;
-import com.android.settings.wifi.slice.WifiSlice;
-
-import java.util.Map;
-import java.util.WeakHashMap;
-
-/**
- * Manages custom {@link androidx.slice.Slice Slices}, which are all Slices not backed by
- * preferences.
- */
-public class CustomSliceManager {
-
-    @VisibleForTesting
-    final Map<Uri, Class<? extends CustomSliceable>> mUriMap;
-
-    private final Context mContext;
-    private final Map<Uri, CustomSliceable> mSliceableCache;
-
-    public CustomSliceManager(Context context) {
-        mContext = context.getApplicationContext();
-        mUriMap = new ArrayMap<>();
-        mSliceableCache = new WeakHashMap<>();
-        addSlices();
-    }
-
-    /**
-     * Return a {@link CustomSliceable} associated to the Uri.
-     * <p>
-     * Do not change this method signature to accommodate for a special-case slicable - a context is
-     * the only thing that should be needed to create the object.
-     */
-    public CustomSliceable getSliceableFromUri(Uri uri) {
-        final Uri newUri = removeParameterFromUri(uri);
-        if (mSliceableCache.containsKey(newUri)) {
-            return mSliceableCache.get(newUri);
-        }
-
-        final Class clazz = mUriMap.get(newUri);
-        if (clazz == null) {
-            throw new IllegalArgumentException("No Slice found for uri: " + uri);
-        }
-
-        final CustomSliceable sliceable = CustomSliceable.createInstance(mContext, clazz);
-        mSliceableCache.put(newUri, sliceable);
-        return sliceable;
-    }
-
-    private Uri removeParameterFromUri(Uri uri) {
-        return uri != null ? uri.buildUpon().clearQuery().build() : null;
-    }
-
-    /**
-     * Return a {@link CustomSliceable} associated to the Action.
-     * <p>
-     * Do not change this method signature to accommodate for a special-case sliceable - a context
-     * is the only thing that should be needed to create the object.
-     */
-    public CustomSliceable getSliceableFromIntentAction(String action) {
-        return getSliceableFromUri(Uri.parse(action));
-    }
-
-    /**
-     * Returns {@code true} if {@param uri} is a valid Slice Uri handled by
-     * {@link CustomSliceManager}.
-     */
-    public boolean isValidUri(Uri uri) {
-        return mUriMap.containsKey(removeParameterFromUri(uri));
-    }
-
-    /**
-     * Returns {@code true} if {@param action} is a valid intent action handled by
-     * {@link CustomSliceManager}.
-     */
-    public boolean isValidAction(String action) {
-        return isValidUri(Uri.parse(action));
-    }
-
-    private void addSlices() {
-        mUriMap.put(CustomSliceRegistry.BATTERY_FIX_SLICE_URI, BatteryFixSlice.class);
-        mUriMap.put(CustomSliceRegistry.BATTERY_INFO_SLICE_URI, BatteryInfoSlice.class);
-        mUriMap.put(CustomSliceRegistry.BLUETOOTH_DEVICES_SLICE_URI, BluetoothDevicesSlice.class);
-        mUriMap.put(CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI, ContextualWifiSlice.class);
-        mUriMap.put(CustomSliceRegistry.DATA_USAGE_SLICE_URI, DataUsageSlice.class);
-        mUriMap.put(CustomSliceRegistry.DEVICE_INFO_SLICE_URI, DeviceInfoSlice.class);
-        mUriMap.put(CustomSliceRegistry.EMERGENCY_INFO_SLICE_URI, EmergencyInfoSlice.class);
-        mUriMap.put(CustomSliceRegistry.FLASHLIGHT_SLICE_URI, FlashlightSlice.class);
-        mUriMap.put(CustomSliceRegistry.LOCATION_SLICE_URI, LocationSlice.class);
-        mUriMap.put(CustomSliceRegistry.LOW_STORAGE_SLICE_URI, LowStorageSlice.class);
-        mUriMap.put(CustomSliceRegistry.MOBILE_DATA_SLICE_URI, MobileDataSlice.class);
-        mUriMap.put(CustomSliceRegistry.NOTIFICATION_CHANNEL_SLICE_URI,
-                NotificationChannelSlice.class);
-        mUriMap.put(CustomSliceRegistry.STORAGE_SLICE_URI, StorageSlice.class);
-        mUriMap.put(CustomSliceRegistry.WIFI_SLICE_URI, WifiSlice.class);
-        mUriMap.put(CustomSliceRegistry.MEDIA_OUTPUT_SLICE_URI, MediaOutputSlice.class);
-    }
-}
diff --git a/src/com/android/settings/slices/CustomSliceRegistry.java b/src/com/android/settings/slices/CustomSliceRegistry.java
index ab1b248..9d88bc5 100644
--- a/src/com/android/settings/slices/CustomSliceRegistry.java
+++ b/src/com/android/settings/slices/CustomSliceRegistry.java
@@ -24,11 +24,30 @@
 import android.content.ContentResolver;
 import android.net.Uri;
 import android.provider.SettingsSlicesContract;
+import android.util.ArrayMap;
 
+import androidx.annotation.VisibleForTesting;
+
+import com.android.settings.flashlight.FlashlightSlice;
 import com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController;
+import com.android.settings.homepage.contextualcards.deviceinfo.DataUsageSlice;
+import com.android.settings.homepage.contextualcards.deviceinfo.DeviceInfoSlice;
+import com.android.settings.homepage.contextualcards.deviceinfo.EmergencyInfoSlice;
+import com.android.settings.homepage.contextualcards.deviceinfo.StorageSlice;
+import com.android.settings.homepage.contextualcards.slices.BatteryFixSlice;
+import com.android.settings.homepage.contextualcards.slices.BluetoothDevicesSlice;
+import com.android.settings.homepage.contextualcards.slices.LowStorageSlice;
+import com.android.settings.homepage.contextualcards.slices.NotificationChannelSlice;
+import com.android.settings.location.LocationSlice;
+import com.android.settings.media.MediaOutputSlice;
+import com.android.settings.network.telephony.MobileDataSlice;
 import com.android.settings.wifi.calling.WifiCallingSliceHelper;
+import com.android.settings.wifi.slice.ContextualWifiSlice;
+import com.android.settings.wifi.slice.WifiSlice;
 import com.android.settingslib.media.MediaOutputSliceConstants;
 
+import java.util.Map;
+
 /**
  * A registry of custom slice Uris.
  */
@@ -53,15 +72,7 @@
             .appendEncodedPath(SettingsSlicesContract.PATH_SETTING_INTENT)
             .appendPath(BatteryTipPreferenceController.PREF_NAME)
             .build();
-    /**
-     * Backing Uri for the Battery info Slice.
-     */
-    public static final Uri BATTERY_INFO_SLICE_URI = new Uri.Builder()
-            .scheme(ContentResolver.SCHEME_CONTENT)
-            .authority(SettingsSliceProvider.SLICE_AUTHORITY)
-            .appendEncodedPath(SettingsSlicesContract.PATH_SETTING_INTENT)
-            .appendPath("battery_card")
-            .build();
+
     /**
      * Backing Uri for the Bluetooth Slice.
      */
@@ -219,6 +230,17 @@
             .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
             .appendPath("media_volume")
             .build();
+
+    /**
+     * Full {@link Uri} for the Remote Media Volume Slice.
+     */
+    public static final Uri VOLUME_REMOTE_MEDIA_URI = new Uri.Builder()
+            .scheme(ContentResolver.SCHEME_CONTENT)
+            .authority(SettingsSliceProvider.SLICE_AUTHORITY)
+            .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
+            .appendPath("remote_volume")
+            .build();
+
     /**
      * Full {@link Uri} for the Ringer volume Slice.
      */
@@ -276,4 +298,51 @@
             .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
             .appendPath(MediaOutputSliceConstants.KEY_MEDIA_OUTPUT)
             .build();
+
+    @VisibleForTesting
+    static final Map<Uri, Class<? extends CustomSliceable>> sUriToSlice;
+
+    static {
+        sUriToSlice = new ArrayMap<>();
+
+        sUriToSlice.put(BATTERY_FIX_SLICE_URI, BatteryFixSlice.class);
+        sUriToSlice.put(BLUETOOTH_DEVICES_SLICE_URI, BluetoothDevicesSlice.class);
+        sUriToSlice.put(CONTEXTUAL_WIFI_SLICE_URI, ContextualWifiSlice.class);
+        sUriToSlice.put(DATA_USAGE_SLICE_URI, DataUsageSlice.class);
+        sUriToSlice.put(DEVICE_INFO_SLICE_URI, DeviceInfoSlice.class);
+        sUriToSlice.put(EMERGENCY_INFO_SLICE_URI, EmergencyInfoSlice.class);
+        sUriToSlice.put(FLASHLIGHT_SLICE_URI, FlashlightSlice.class);
+        sUriToSlice.put(LOCATION_SLICE_URI, LocationSlice.class);
+        sUriToSlice.put(LOW_STORAGE_SLICE_URI, LowStorageSlice.class);
+        sUriToSlice.put(MOBILE_DATA_SLICE_URI, MobileDataSlice.class);
+        sUriToSlice.put(NOTIFICATION_CHANNEL_SLICE_URI, NotificationChannelSlice.class);
+        sUriToSlice.put(STORAGE_SLICE_URI, StorageSlice.class);
+        sUriToSlice.put(WIFI_SLICE_URI, WifiSlice.class);
+        sUriToSlice.put(MEDIA_OUTPUT_SLICE_URI, MediaOutputSlice.class);
+    }
+
+    public static Class<? extends CustomSliceable> getSliceClassByUri(Uri uri) {
+        return sUriToSlice.get(removeParameterFromUri(uri));
+    }
+
+    public static Uri removeParameterFromUri(Uri uri) {
+        return uri != null ? uri.buildUpon().clearQuery().build() : null;
+    }
+
+    /**
+     * Returns {@code true} if {@param uri} is a valid Slice Uri handled by
+     * {@link CustomSliceRegistry}.
+     */
+    public static boolean isValidUri(Uri uri) {
+        return sUriToSlice.containsKey(removeParameterFromUri(uri));
+    }
+
+    /**
+     * Returns {@code true} if {@param action} is a valid intent action handled by
+     * {@link CustomSliceRegistry}.
+     */
+    public static boolean isValidAction(String action) {
+        return isValidUri(Uri.parse(action));
+    }
+
 }
diff --git a/src/com/android/settings/slices/CustomSliceable.java b/src/com/android/settings/slices/CustomSliceable.java
index 0b97bed..93d08a2 100644
--- a/src/com/android/settings/slices/CustomSliceable.java
+++ b/src/com/android/settings/slices/CustomSliceable.java
@@ -19,7 +19,6 @@
 import android.app.PendingIntent;
 import android.content.Context;
 import android.content.Intent;
-import android.content.IntentFilter;
 import android.net.Uri;
 
 import androidx.slice.Slice;
@@ -106,16 +105,17 @@
     /**
      * Build an instance of a {@link CustomSliceable} which has a {@link Context}-only constructor.
      */
-    static CustomSliceable createInstance(Context context, Class<CustomSliceable> sliceableClass) {
+    static CustomSliceable createInstance(Context context,
+            Class<? extends CustomSliceable> sliceable) {
         try {
-            final Constructor<CustomSliceable> sliceable =
-                    sliceableClass.getConstructor(Context.class);
-            final Object[] params = new Object[]{context};
-            return sliceable.newInstance(params);
+            final Constructor<? extends CustomSliceable> constructor =
+                    sliceable.getConstructor(Context.class);
+            final Object[] params = new Object[]{context.getApplicationContext()};
+            return constructor.newInstance(params);
         } catch (NoSuchMethodException | InstantiationException |
                 IllegalArgumentException | InvocationTargetException | IllegalAccessException e) {
             throw new IllegalStateException(
-                    "Invalid sliceable class: " + sliceableClass, e);
+                    "Invalid sliceable class: " + sliceable, e);
         }
     }
 }
\ No newline at end of file
diff --git a/src/com/android/settings/slices/SettingsSliceProvider.java b/src/com/android/settings/slices/SettingsSliceProvider.java
index 397b2fc..3187d10 100644
--- a/src/com/android/settings/slices/SettingsSliceProvider.java
+++ b/src/com/android/settings/slices/SettingsSliceProvider.java
@@ -118,9 +118,6 @@
     private static final KeyValueListParser KEY_VALUE_LIST_PARSER = new KeyValueListParser(',');
 
     @VisibleForTesting
-    CustomSliceManager mCustomSliceManager;
-
-    @VisibleForTesting
     SlicesDatabaseAccessor mSlicesDatabaseAccessor;
 
     @VisibleForTesting
@@ -140,15 +137,15 @@
         mSlicesDatabaseAccessor = new SlicesDatabaseAccessor(getContext());
         mSliceDataCache = new ConcurrentHashMap<>();
         mSliceWeakDataCache = new WeakHashMap<>();
-        mCustomSliceManager = FeatureFactory.getFactory(
-                getContext()).getSlicesFeatureProvider().getCustomSliceManager(getContext());
         return true;
     }
 
     @Override
     public void onSlicePinned(Uri sliceUri) {
-        if (mCustomSliceManager.isValidUri(sliceUri)) {
-            final CustomSliceable sliceable = mCustomSliceManager.getSliceableFromUri(sliceUri);
+        if (CustomSliceRegistry.isValidUri(sliceUri)) {
+            final Context context = getContext();
+            final CustomSliceable sliceable = FeatureFactory.getFactory(context)
+                    .getSlicesFeatureProvider().getSliceableFromUri(context, sliceUri);
             final IntentFilter filter = sliceable.getIntentFilter();
             if (filter != null) {
                 registerIntentToUri(filter, sliceUri);
@@ -194,10 +191,11 @@
 
             // Before adding a slice to {@link CustomSliceManager}, please get approval
             // from the Settings team.
-            if (mCustomSliceManager.isValidUri(sliceUri)) {
-                final CustomSliceable sliceable = mCustomSliceManager.getSliceableFromUri(
-                        sliceUri);
-                return sliceable.getSlice();
+            if (CustomSliceRegistry.isValidUri(sliceUri)) {
+                final Context context = getContext();
+                return FeatureFactory.getFactory(context)
+                        .getSlicesFeatureProvider().getSliceableFromUri(context, sliceUri)
+                        .getSlice();
             }
 
             if (CustomSliceRegistry.WIFI_CALLING_URI.equals(sliceUri)) {
diff --git a/src/com/android/settings/slices/SliceBackgroundWorker.java b/src/com/android/settings/slices/SliceBackgroundWorker.java
index 559aa71..f19b1df 100644
--- a/src/com/android/settings/slices/SliceBackgroundWorker.java
+++ b/src/com/android/settings/slices/SliceBackgroundWorker.java
@@ -146,7 +146,7 @@
                 needNotify = true;
             }
         } else {
-            needNotify = !results.equals(mCachedResults);
+            needNotify = !areListsTheSame(results, mCachedResults);
         }
 
         if (needNotify) {
@@ -155,6 +155,10 @@
         }
     }
 
+    protected boolean areListsTheSame(List<E> a, List<E> b) {
+        return a.equals(b);
+    }
+
     /**
      * Notify that data was updated and attempt to sync changes to the Slice.
      */
diff --git a/src/com/android/settings/slices/SliceBroadcastReceiver.java b/src/com/android/settings/slices/SliceBroadcastReceiver.java
index b2ea583..9926a52 100644
--- a/src/com/android/settings/slices/SliceBroadcastReceiver.java
+++ b/src/com/android/settings/slices/SliceBroadcastReceiver.java
@@ -61,11 +61,10 @@
         final boolean isPlatformSlice = intent.getBooleanExtra(EXTRA_SLICE_PLATFORM_DEFINED,
                 false /* default */);
 
-        final CustomSliceManager mCustomSliceManager = FeatureFactory.getFactory(
-                context).getSlicesFeatureProvider().getCustomSliceManager(context);
-        if (mCustomSliceManager.isValidAction(action)) {
+        if (CustomSliceRegistry.isValidAction(action)) {
             final CustomSliceable sliceable =
-                    mCustomSliceManager.getSliceableFromIntentAction(action);
+                    CustomSliceable.createInstance(context,
+                            CustomSliceRegistry.getSliceClassByUri(Uri.parse(action)));
             sliceable.onNotifyChange(intent);
             return;
         }
diff --git a/src/com/android/settings/slices/SliceDeepLinkSpringBoard.java b/src/com/android/settings/slices/SliceDeepLinkSpringBoard.java
index f4afa16..2ff071e 100644
--- a/src/com/android/settings/slices/SliceDeepLinkSpringBoard.java
+++ b/src/com/android/settings/slices/SliceDeepLinkSpringBoard.java
@@ -23,7 +23,6 @@
 
 import com.android.settings.bluetooth.BluetoothSliceBuilder;
 import com.android.settings.notification.ZenModeSliceBuilder;
-import com.android.settings.overlay.FeatureFactory;
 
 public class SliceDeepLinkSpringBoard extends Activity {
 
@@ -45,11 +44,10 @@
             Intent launchIntent;
 
             // TODO (b/80263568) Avoid duplicating this list of Slice Uris.
-            final CustomSliceManager customSliceManager = FeatureFactory.getFactory(this)
-                    .getSlicesFeatureProvider().getCustomSliceManager(this);
-            if (customSliceManager.isValidUri(sliceUri)) {
+            if (CustomSliceRegistry.isValidUri(sliceUri)) {
                 final CustomSliceable sliceable =
-                        customSliceManager.getSliceableFromUri(sliceUri);
+                        CustomSliceable.createInstance(getApplicationContext(),
+                                CustomSliceRegistry.getSliceClassByUri(sliceUri));
                 launchIntent = sliceable.getIntent();
             } else if (CustomSliceRegistry.ZEN_MODE_SLICE_URI.equals(sliceUri)) {
                 launchIntent = ZenModeSliceBuilder.getIntent(this /* context */);
diff --git a/src/com/android/settings/slices/SlicesFeatureProvider.java b/src/com/android/settings/slices/SlicesFeatureProvider.java
index 1a9fd98..ae94f29 100644
--- a/src/com/android/settings/slices/SlicesFeatureProvider.java
+++ b/src/com/android/settings/slices/SlicesFeatureProvider.java
@@ -1,6 +1,7 @@
 package com.android.settings.slices;
 
 import android.content.Context;
+import android.net.Uri;
 
 import com.android.settings.network.telephony.Enhanced4gLteSliceHelper;
 import com.android.settings.wifi.calling.WifiCallingSliceHelper;
@@ -12,11 +13,23 @@
 
     boolean DEBUG = false;
 
-    SlicesIndexer getSliceIndexer(Context context);
-
     SliceDataConverter getSliceDataConverter(Context context);
 
     /**
+     * Starts a new UI session for the purpose of using Slices.
+     *
+     * A UI session is defined as an duration of time when user stays in a UI screen. Screen
+     * rotation does not break the continuation of session, going to a sub-page and coming out does
+     * not break the continuation either. Leaving the page and coming back breaks it.
+     */
+    void newUiSession();
+
+    /**
+     * Returns the token created in {@link #newUiSession}.
+     */
+    long getUiSessionToken();
+
+    /**
      * Asynchronous call to index the data used to build Slices.
      * If the data is already indexed, the data will not change.
      */
@@ -28,7 +41,14 @@
      */
     void indexSliceData(Context context);
 
-    CustomSliceManager getCustomSliceManager(Context context);
+
+    /**
+     * Return a {@link CustomSliceable} associated to the Uri.
+     * <p>
+     * Do not change this method signature to accommodate for a special-case sliceable - a context
+     * is the only thing that should be needed to create the object.
+     */
+    CustomSliceable getSliceableFromUri(Context context, Uri uri);
 
     /**
      * Gets new WifiCallingSliceHelper object
diff --git a/src/com/android/settings/slices/SlicesFeatureProviderImpl.java b/src/com/android/settings/slices/SlicesFeatureProviderImpl.java
index 508eb1c..297f2c1 100644
--- a/src/com/android/settings/slices/SlicesFeatureProviderImpl.java
+++ b/src/com/android/settings/slices/SlicesFeatureProviderImpl.java
@@ -17,27 +17,23 @@
 package com.android.settings.slices;
 
 import android.content.Context;
+import android.net.Uri;
+import android.os.SystemClock;
 
 import com.android.settings.network.telephony.Enhanced4gLteSliceHelper;
 import com.android.settings.wifi.calling.WifiCallingSliceHelper;
 import com.android.settingslib.utils.ThreadUtils;
 
+import java.util.Random;
+
 /**
  * Manages Slices in Settings.
  */
 public class SlicesFeatureProviderImpl implements SlicesFeatureProvider {
 
+    private long mUiSessionToken;
     private SlicesIndexer mSlicesIndexer;
     private SliceDataConverter mSliceDataConverter;
-    private CustomSliceManager mCustomSliceManager;
-
-    @Override
-    public SlicesIndexer getSliceIndexer(Context context) {
-        if (mSlicesIndexer == null) {
-            mSlicesIndexer = new SlicesIndexer(context.getApplicationContext());
-        }
-        return mSlicesIndexer;
-    }
 
     @Override
     public SliceDataConverter getSliceDataConverter(Context context) {
@@ -48,11 +44,13 @@
     }
 
     @Override
-    public CustomSliceManager getCustomSliceManager(Context context) {
-        if (mCustomSliceManager == null) {
-            mCustomSliceManager = new CustomSliceManager(context.getApplicationContext());
-        }
-        return mCustomSliceManager;
+    public void newUiSession() {
+        mUiSessionToken = SystemClock.elapsedRealtime();
+    }
+
+    @Override
+    public long getUiSessionToken() {
+        return mUiSessionToken;
     }
 
     @Override
@@ -76,4 +74,23 @@
     public Enhanced4gLteSliceHelper getNewEnhanced4gLteSliceHelper(Context context) {
         return new Enhanced4gLteSliceHelper(context);
     }
+
+    @Override
+    public CustomSliceable getSliceableFromUri(Context context, Uri uri) {
+        final Uri newUri = CustomSliceRegistry.removeParameterFromUri(uri);
+        final Class clazz = CustomSliceRegistry.getSliceClassByUri(newUri);
+        if (clazz == null) {
+            throw new IllegalArgumentException("No Slice found for uri: " + uri);
+        }
+
+        final CustomSliceable sliceable = CustomSliceable.createInstance(context, clazz);
+        return sliceable;
+    }
+
+    private SlicesIndexer getSliceIndexer(Context context) {
+        if (mSlicesIndexer == null) {
+            mSlicesIndexer = new SlicesIndexer(context.getApplicationContext());
+        }
+        return mSlicesIndexer;
+    }
 }
diff --git a/src/com/android/settings/slices/SlicesIndexer.java b/src/com/android/settings/slices/SlicesIndexer.java
index 1b3a25e..5f80047 100644
--- a/src/com/android/settings/slices/SlicesIndexer.java
+++ b/src/com/android/settings/slices/SlicesIndexer.java
@@ -84,7 +84,6 @@
         } finally {
             database.endTransaction();
         }
-        database.close();
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/sound/AudioSwitchPreferenceController.java b/src/com/android/settings/sound/AudioSwitchPreferenceController.java
index f77dfca..0da0f21 100644
--- a/src/com/android/settings/sound/AudioSwitchPreferenceController.java
+++ b/src/com/android/settings/sound/AudioSwitchPreferenceController.java
@@ -32,7 +32,6 @@
 import android.media.MediaRouter.Callback;
 import android.os.Handler;
 import android.os.Looper;
-import android.text.TextUtils;
 import android.util.FeatureFlagUtils;
 import android.util.Log;
 
@@ -40,7 +39,6 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
 import com.android.settings.bluetooth.Utils;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.core.FeatureFlags;
@@ -63,15 +61,11 @@
 /**
  * Abstract class for audio switcher controller to notify subclass
  * updating the current status of switcher entry. Subclasses must overwrite
- * {@link #setActiveBluetoothDevice(BluetoothDevice)} to set the
- * active device for corresponding profile.
  */
 public abstract class AudioSwitchPreferenceController extends BasePreferenceController
-        implements Preference.OnPreferenceChangeListener, BluetoothCallback,
-        LifecycleObserver, OnStart, OnStop {
+        implements BluetoothCallback, LifecycleObserver, OnStart, OnStop {
 
     private static final String TAG = "AudioSwitchPrefCtrl";
-    private static final int INVALID_INDEX = -1;
 
     protected final List<BluetoothDevice> mConnectedDevices;
     protected final AudioManager mAudioManager;
@@ -129,35 +123,6 @@
     }
 
     @Override
-    public boolean onPreferenceChange(Preference preference, Object newValue) {
-        final String address = (String) newValue;
-        if (!(preference instanceof ListPreference)) {
-            return false;
-        }
-
-        final ListPreference listPreference = (ListPreference) preference;
-        if (TextUtils.equals(address, mContext.getText(R.string.media_output_default_summary))) {
-            // Switch to default device which address is device name
-            mSelectedIndex = getDefaultDeviceIndex();
-            setActiveBluetoothDevice(null);
-            listPreference.setSummary(mContext.getText(R.string.media_output_default_summary));
-        } else {
-            // Switch to BT device which address is hardware address
-            final int connectedDeviceIndex = getConnectedDeviceIndex(address);
-            if (connectedDeviceIndex == INVALID_INDEX) {
-                return false;
-            }
-            final BluetoothDevice btDevice = mConnectedDevices.get(connectedDeviceIndex);
-            mSelectedIndex = connectedDeviceIndex;
-            setActiveBluetoothDevice(btDevice);
-            listPreference.setSummary(btDevice.getAliasName());
-        }
-        return true;
-    }
-
-    public abstract void setActiveBluetoothDevice(BluetoothDevice device);
-
-    @Override
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
         mPreference = screen.findPreference(mPreferenceKey);
@@ -185,6 +150,12 @@
     }
 
     @Override
+    public void onBluetoothStateChanged(int bluetoothState) {
+        // To handle the case that Bluetooth on and no connected devices
+        updateState(mPreference);
+    }
+
+    @Override
     public void onActiveDeviceChanged(CachedBluetoothDevice activeDevice, int bluetoothProfile) {
         updateState(mPreference);
     }
@@ -236,21 +207,15 @@
     }
 
     /**
-     * get A2dp connected device
+     * get A2dp devices on all states
+     * (STATE_DISCONNECTED, STATE_CONNECTING, STATE_CONNECTED,  STATE_DISCONNECTING)
      */
-    protected List<BluetoothDevice> getConnectedA2dpDevices() {
-        final List<BluetoothDevice> connectedDevices = new ArrayList<>();
+    protected List<BluetoothDevice> getConnectableA2dpDevices() {
         final A2dpProfile a2dpProfile = mProfileManager.getA2dpProfile();
         if (a2dpProfile == null) {
-            return connectedDevices;
+            return new ArrayList<>();
         }
-        final List<BluetoothDevice> devices = a2dpProfile.getConnectedDevices();
-        for (BluetoothDevice device : devices) {
-            if (device.isConnected()) {
-                connectedDevices.add(device);
-            }
-        }
-        return connectedDevices;
+        return a2dpProfile.getConnectableDevices();
     }
 
     /**
@@ -277,6 +242,31 @@
     }
 
     /**
+     * get hearing aid profile devices on all states
+     * (STATE_DISCONNECTED, STATE_CONNECTING, STATE_CONNECTED,  STATE_DISCONNECTING)
+     * exclude other devices with same hiSyncId.
+     */
+    protected List<BluetoothDevice> getConnectableHearingAidDevices() {
+        final List<BluetoothDevice> connectedDevices = new ArrayList<>();
+        final HearingAidProfile hapProfile = mProfileManager.getHearingAidProfile();
+        if (hapProfile == null) {
+            return connectedDevices;
+        }
+        final List<Long> devicesHiSyncIds = new ArrayList<>();
+        final List<BluetoothDevice> devices = hapProfile.getConnectableDevices();
+        for (BluetoothDevice device : devices) {
+            final long hiSyncId = hapProfile.getHiSyncId(device);
+            // device with same hiSyncId should not be shown in the UI.
+            // So do not add it into connectedDevices.
+            if (!devicesHiSyncIds.contains(hiSyncId)) {
+                devicesHiSyncIds.add(hiSyncId);
+                connectedDevices.add(device);
+            }
+        }
+        return connectedDevices;
+    }
+
+    /**
      * Find active hearing aid device
      */
     protected BluetoothDevice findActiveHearingAidDevice() {
@@ -306,52 +296,6 @@
      */
     public abstract BluetoothDevice findActiveDevice();
 
-    int getDefaultDeviceIndex() {
-        // Default device is after all connected devices.
-        return mConnectedDevices.size();
-    }
-
-    void setupPreferenceEntries(CharSequence[] mediaOutputs, CharSequence[] mediaValues,
-            BluetoothDevice activeDevice) {
-        // default to current device
-        mSelectedIndex = getDefaultDeviceIndex();
-        // default device is after all connected devices.
-        mediaOutputs[mSelectedIndex] = mContext.getText(R.string.media_output_default_summary);
-        // use default device name as address
-        mediaValues[mSelectedIndex] = mContext.getText(R.string.media_output_default_summary);
-        for (int i = 0, size = mConnectedDevices.size(); i < size; i++) {
-            final BluetoothDevice btDevice = mConnectedDevices.get(i);
-            mediaOutputs[i] = btDevice.getAliasName();
-            mediaValues[i] = btDevice.getAddress();
-            if (btDevice.equals(activeDevice)) {
-                // select the active connected device.
-                mSelectedIndex = i;
-            }
-        }
-    }
-
-    void setPreference(CharSequence[] mediaOutputs, CharSequence[] mediaValues,
-            Preference preference) {
-        final ListPreference listPreference = (ListPreference) preference;
-        listPreference.setEntries(mediaOutputs);
-        listPreference.setEntryValues(mediaValues);
-        listPreference.setValueIndex(mSelectedIndex);
-        listPreference.setSummary(mediaOutputs[mSelectedIndex]);
-        mAudioSwitchPreferenceCallback.onPreferenceDataChanged(listPreference);
-    }
-
-    private int getConnectedDeviceIndex(String hardwareAddress) {
-        if (mConnectedDevices != null) {
-            for (int i = 0, size = mConnectedDevices.size(); i < size; i++) {
-                final BluetoothDevice btDevice = mConnectedDevices.get(i);
-                if (TextUtils.equals(btDevice.getAddress(), hardwareAddress)) {
-                    return i;
-                }
-            }
-        }
-        return INVALID_INDEX;
-    }
-
     private void register() {
         mLocalBluetoothManager.getEventManager().registerCallback(this);
         mAudioManager.registerAudioDeviceCallback(mAudioManagerAudioDeviceCallback, mHandler);
diff --git a/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceController.java b/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceController.java
index a02c0b2..9157477 100644
--- a/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceController.java
+++ b/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceController.java
@@ -20,7 +20,9 @@
 
 import android.bluetooth.BluetoothDevice;
 import android.content.Context;
+import android.text.TextUtils;
 
+import androidx.preference.ListPreference;
 import androidx.preference.Preference;
 
 import com.android.settings.R;
@@ -32,14 +34,56 @@
  * This class allows switching between HFP-connected & HAP-connected BT devices
  * while in on-call state.
  */
-public class HandsFreeProfileOutputPreferenceController extends
-        AudioSwitchPreferenceController {
+public class HandsFreeProfileOutputPreferenceController extends AudioSwitchPreferenceController
+        implements Preference.OnPreferenceChangeListener {
+
+    private static final int INVALID_INDEX = -1;
 
     public HandsFreeProfileOutputPreferenceController(Context context, String key) {
         super(context, key);
     }
 
     @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        final String address = (String) newValue;
+        if (!(preference instanceof ListPreference)) {
+            return false;
+        }
+
+        final CharSequence defaultSummary = mContext.getText(R.string.media_output_default_summary);
+        final ListPreference listPreference = (ListPreference) preference;
+        if (TextUtils.equals(address, defaultSummary)) {
+            // Switch to default device which address is device name
+            mSelectedIndex = getDefaultDeviceIndex();
+            setActiveBluetoothDevice(null);
+            listPreference.setSummary(defaultSummary);
+        } else {
+            // Switch to BT device which address is hardware address
+            final int connectedDeviceIndex = getConnectedDeviceIndex(address);
+            if (connectedDeviceIndex == INVALID_INDEX) {
+                return false;
+            }
+            final BluetoothDevice btDevice = mConnectedDevices.get(connectedDeviceIndex);
+            mSelectedIndex = connectedDeviceIndex;
+            setActiveBluetoothDevice(btDevice);
+            listPreference.setSummary(btDevice.getAliasName());
+        }
+        return true;
+    }
+
+    private int getConnectedDeviceIndex(String hardwareAddress) {
+        if (mConnectedDevices != null) {
+            for (int i = 0, size = mConnectedDevices.size(); i < size; i++) {
+                final BluetoothDevice btDevice = mConnectedDevices.get(i);
+                if (TextUtils.equals(btDevice.getAddress(), hardwareAddress)) {
+                    return i;
+                }
+            }
+        }
+        return INVALID_INDEX;
+    }
+
+    @Override
     public void updateState(Preference preference) {
         if (preference == null) {
             // In case UI is not ready.
@@ -83,7 +127,41 @@
         setPreference(mediaOutputs, mediaValues, preference);
     }
 
-    @Override
+    int getDefaultDeviceIndex() {
+        // Default device is after all connected devices.
+        return mConnectedDevices.size();
+    }
+
+    void setupPreferenceEntries(CharSequence[] mediaOutputs, CharSequence[] mediaValues,
+            BluetoothDevice activeDevice) {
+        // default to current device
+        mSelectedIndex = getDefaultDeviceIndex();
+        // default device is after all connected devices.
+        final CharSequence defaultSummary = mContext.getText(R.string.media_output_default_summary);
+        mediaOutputs[mSelectedIndex] = defaultSummary;
+        // use default device name as address
+        mediaValues[mSelectedIndex] = defaultSummary;
+        for (int i = 0, size = mConnectedDevices.size(); i < size; i++) {
+            final BluetoothDevice btDevice = mConnectedDevices.get(i);
+            mediaOutputs[i] = btDevice.getAliasName();
+            mediaValues[i] = btDevice.getAddress();
+            if (btDevice.equals(activeDevice)) {
+                // select the active connected device.
+                mSelectedIndex = i;
+            }
+        }
+    }
+
+    void setPreference(CharSequence[] mediaOutputs, CharSequence[] mediaValues,
+            Preference preference) {
+        final ListPreference listPreference = (ListPreference) preference;
+        listPreference.setEntries(mediaOutputs);
+        listPreference.setEntryValues(mediaValues);
+        listPreference.setValueIndex(mSelectedIndex);
+        listPreference.setSummary(mediaOutputs[mSelectedIndex]);
+        mAudioSwitchPreferenceCallback.onPreferenceDataChanged(listPreference);
+    }
+
     public void setActiveBluetoothDevice(BluetoothDevice device) {
         if (!Utils.isAudioModeOngoingCall(mContext)) {
             return;
diff --git a/src/com/android/settings/sound/MediaOutputPreferenceController.java b/src/com/android/settings/sound/MediaOutputPreferenceController.java
index ce476ad..47810f7 100644
--- a/src/com/android/settings/sound/MediaOutputPreferenceController.java
+++ b/src/com/android/settings/sound/MediaOutputPreferenceController.java
@@ -16,13 +16,14 @@
 
 package com.android.settings.sound;
 
-import static android.bluetooth.IBluetoothHearingAid.HI_SYNC_ID_INVALID;
 import static android.media.AudioManager.STREAM_MUSIC;
 import static android.media.AudioSystem.DEVICE_OUT_REMOTE_SUBMIX;
 
 import android.bluetooth.BluetoothDevice;
 import android.content.Context;
+import android.content.Intent;
 import android.media.AudioManager;
+import android.text.TextUtils;
 
 import androidx.preference.Preference;
 
@@ -30,12 +31,16 @@
 import com.android.settingslib.Utils;
 import com.android.settingslib.bluetooth.A2dpProfile;
 import com.android.settingslib.bluetooth.HearingAidProfile;
+import com.android.settingslib.media.MediaOutputSliceConstants;
+
+import java.util.List;
 
 /**
- * This class which allows switching between A2dp-connected & HAP-connected BT devices.
- * A few conditions will disable this switcher:
- * - No available BT device(s)
- * - Media stream captured by cast device
+ * This class allows launching MediaOutputSlice to switch output device.
+ * Preference would hide only when
+ * - Bluetooth = OFF
+ * - Bluetooth = ON and Connected Devices = 0 and Previously Connected = 0
+ * - Media stream captured by remote device
  * - During a call.
  */
 public class MediaOutputPreferenceController extends AudioSwitchPreferenceController {
@@ -66,40 +71,22 @@
             return;
         }
 
-        mConnectedDevices.clear();
-        // Otherwise, list all of the A2DP connected device and display the active device.
-        if (mAudioManager.getMode() == AudioManager.MODE_NORMAL) {
-            mConnectedDevices.addAll(getConnectedA2dpDevices());
-            mConnectedDevices.addAll(getConnectedHearingAidDevices());
+        boolean deviceConnectable = false;
+        BluetoothDevice activeDevice = null;
+        // Show preference if there is connected or previously connected device
+        // Find active device and set its name as the preference's summary
+        List<BluetoothDevice> connectableA2dpDevices = getConnectableA2dpDevices();
+        List<BluetoothDevice> connectableHADevices = getConnectableHearingAidDevices();
+        if (mAudioManager.getMode() == AudioManager.MODE_NORMAL
+                && ((connectableA2dpDevices != null && !connectableA2dpDevices.isEmpty())
+                || (connectableHADevices != null && !connectableHADevices.isEmpty()))) {
+            deviceConnectable = true;
+            activeDevice = findActiveDevice();
         }
-
-        final int numDevices = mConnectedDevices.size();
-        mPreference.setVisible((numDevices == 0) ? false : true);
-        CharSequence[] mediaOutputs = new CharSequence[numDevices + 1];
-        CharSequence[] mediaValues = new CharSequence[numDevices + 1];
-
-        // Setup devices entries, select active connected device
-        setupPreferenceEntries(mediaOutputs, mediaValues, findActiveDevice());
-
-        // Display connected devices, default device and show the active device
-        setPreference(mediaOutputs, mediaValues, preference);
-    }
-
-    @Override
-    public void setActiveBluetoothDevice(BluetoothDevice device) {
-        if (mAudioManager.getMode() != AudioManager.MODE_NORMAL) {
-            return;
-        }
-        final HearingAidProfile hapProfile = mProfileManager.getHearingAidProfile();
-        final A2dpProfile a2dpProfile = mProfileManager.getA2dpProfile();
-        if (hapProfile != null && a2dpProfile != null && device == null) {
-            hapProfile.setActiveDevice(null);
-            a2dpProfile.setActiveDevice(null);
-        } else if (hapProfile != null && hapProfile.getHiSyncId(device) != HI_SYNC_ID_INVALID) {
-            hapProfile.setActiveDevice(device);
-        } else if (a2dpProfile != null) {
-            a2dpProfile.setActiveDevice(device);
-        }
+        mPreference.setVisible(deviceConnectable);
+        mPreference.setSummary((activeDevice == null) ?
+                mContext.getText(R.string.media_output_default_summary) :
+                activeDevice.getAliasName());
     }
 
     @Override
@@ -112,4 +99,34 @@
         }
         return activeDevice;
     }
+
+    /**
+     * Find active hearing aid device
+     */
+    @Override
+    protected BluetoothDevice findActiveHearingAidDevice() {
+        final HearingAidProfile hearingAidProfile = mProfileManager.getHearingAidProfile();
+
+        if (hearingAidProfile != null) {
+            List<BluetoothDevice> activeDevices = hearingAidProfile.getActiveDevices();
+            for (BluetoothDevice btDevice : activeDevices) {
+                if (btDevice != null) {
+                    return btDevice;
+                }
+            }
+        }
+        return null;
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        if (TextUtils.equals(preference.getKey(), getPreferenceKey())) {
+            final Intent intent = new Intent()
+                    .setAction(MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT)
+                    .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+            mContext.startActivity(intent);
+            return true;
+        }
+        return false;
+    }
 }
diff --git a/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java b/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java
index c097d41..f931fa4 100644
--- a/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java
+++ b/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java
@@ -38,9 +38,13 @@
         mUserCaps.updateAddUserCapabilities(mContext);
         final RestrictedSwitchPreference restrictedSwitchPreference =
                 (RestrictedSwitchPreference) preference;
-        restrictedSwitchPreference.setDisabledByAdmin(
-                mUserCaps.disallowAddUser() ? mUserCaps.getEnforcedAdmin() : null);
-        restrictedSwitchPreference.setVisible(mUserCaps.mUserSwitcherEnabled);
+        if (!isAvailable()) {
+            restrictedSwitchPreference.setVisible(false);
+        } else {
+            restrictedSwitchPreference.setDisabledByAdmin(
+                    mUserCaps.disallowAddUser() ? mUserCaps.getEnforcedAdmin() : null);
+            restrictedSwitchPreference.setVisible(mUserCaps.mUserSwitcherEnabled);
+        }
     }
 
     @Override
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index 5a83f34..98263e2 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -289,10 +289,8 @@
         }
         final PreferenceScreen screen = getPreferenceScreen();
 
-        if (mAddUserWhenLockedPreferenceController.isAvailable()) {
-            mAddUserWhenLockedPreferenceController.updateState(screen.findPreference(
-                    mAddUserWhenLockedPreferenceController.getPreferenceKey()));
-        }
+        mAddUserWhenLockedPreferenceController.updateState(screen.findPreference(
+                mAddUserWhenLockedPreferenceController.getPreferenceKey()));
 
         if (mShouldUpdateUserList) {
             updateUI();
diff --git a/src/com/android/settings/vpn2/ConfigDialog.java b/src/com/android/settings/vpn2/ConfigDialog.java
index de2755e..07e957d 100644
--- a/src/com/android/settings/vpn2/ConfigDialog.java
+++ b/src/com/android/settings/vpn2/ConfigDialog.java
@@ -18,6 +18,8 @@
 
 import android.content.Context;
 import android.content.DialogInterface;
+import android.net.Proxy;
+import android.net.ProxyInfo;
 import android.os.Bundle;
 import android.os.SystemProperties;
 import android.security.Credentials;
@@ -67,6 +69,9 @@
     private TextView mSearchDomains;
     private TextView mDnsServers;
     private TextView mRoutes;
+    private Spinner mProxySettings;
+    private TextView mProxyHost;
+    private TextView mProxyPort;
     private CheckBox mMppe;
     private TextView mL2tpSecret;
     private TextView mIpsecIdentifier;
@@ -105,6 +110,9 @@
         mSearchDomains = (TextView) mView.findViewById(R.id.search_domains);
         mDnsServers = (TextView) mView.findViewById(R.id.dns_servers);
         mRoutes = (TextView) mView.findViewById(R.id.routes);
+        mProxySettings = (Spinner) mView.findViewById(R.id.vpn_proxy_settings);
+        mProxyHost = (TextView) mView.findViewById(R.id.vpn_proxy_host);
+        mProxyPort = (TextView) mView.findViewById(R.id.vpn_proxy_port);
         mMppe = (CheckBox) mView.findViewById(R.id.mppe);
         mL2tpSecret = (TextView) mView.findViewById(R.id.l2tp_secret);
         mIpsecIdentifier = (TextView) mView.findViewById(R.id.ipsec_identifier);
@@ -128,6 +136,11 @@
         mSearchDomains.setText(mProfile.searchDomains);
         mDnsServers.setText(mProfile.dnsServers);
         mRoutes.setText(mProfile.routes);
+        if (mProfile.proxy != null) {
+            mProxyHost.setText(mProfile.proxy.getHost());
+            int port = mProfile.proxy.getPort();
+            mProxyPort.setText(port == 0 ? "" : Integer.toString(port));
+        }
         mMppe.setChecked(mProfile.mppe);
         mL2tpSecret.setText(mProfile.l2tpSecret);
         mIpsecIdentifier.setText(mProfile.ipsecIdentifier);
@@ -153,6 +166,9 @@
         mPassword.addTextChangedListener(this);
         mDnsServers.addTextChangedListener(this);
         mRoutes.addTextChangedListener(this);
+        mProxySettings.setOnItemSelectedListener(this);
+        mProxyHost.addTextChangedListener(this);
+        mProxyPort.addTextChangedListener(this);
         mIpsecSecret.addTextChangedListener(this);
         mIpsecUserCert.setOnItemSelectedListener(this);
         mShowOptions.setOnClickListener(this);
@@ -175,7 +191,8 @@
 
             // Switch to advanced view immediately if any advanced options are on
             if (!mProfile.searchDomains.isEmpty() || !mProfile.dnsServers.isEmpty() ||
-                    !mProfile.routes.isEmpty()) {
+                    !mProfile.routes.isEmpty() || (mProfile.proxy != null &&
+                    (!mProfile.proxy.getHost().isEmpty() || mProfile.proxy.getPort() != 0))) {
                 showAdvancedOptions();
             }
 
@@ -246,6 +263,8 @@
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
         if (parent == mType) {
             changeType(position);
+        } else if (parent == mProxySettings) {
+            updateProxyFieldsVisibility(position);
         }
         updateUiControls();
     }
@@ -271,6 +290,7 @@
      * These include:
      * "Always-on VPN" checkbox
      * Reason for "Always-on VPN" being disabled, when necessary
+     * Proxy info if manually configured
      * "Save account information" checkbox
      * "Save" and "Connect" buttons
      */
@@ -298,6 +318,13 @@
             mAlwaysOnInvalidReason.setVisibility(View.VISIBLE);
         }
 
+        // Show proxy fields if any proxy field is filled.
+        if (mProfile.proxy != null && (!mProfile.proxy.getHost().isEmpty() ||
+                mProfile.proxy.getPort() != 0)) {
+            mProxySettings.setSelection(VpnProfile.PROXY_MANUAL);
+            updateProxyFieldsVisibility(VpnProfile.PROXY_MANUAL);
+        }
+
         // Save account information
         if (mAlwaysOnVpn.isChecked()) {
             mSaveLogin.setChecked(true);
@@ -311,6 +338,11 @@
         getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(validate(mEditing));
     }
 
+    private void updateProxyFieldsVisibility(int position) {
+        final int visible = position == VpnProfile.PROXY_MANUAL ? View.VISIBLE : View.GONE;
+        mView.findViewById(R.id.vpn_proxy_fields).setVisibility(visible);
+    }
+
     private void showAdvancedOptions() {
         mView.findViewById(R.id.options).setVisibility(View.VISIBLE);
         mShowOptions.setVisibility(View.GONE);
@@ -361,6 +393,11 @@
                 !validateAddresses(mRoutes.getText().toString(), true)) {
             return false;
         }
+
+        if (!validateProxy()) {
+            return false;
+        }
+
         switch (mType.getSelectedItemPosition()) {
             case VpnProfile.TYPE_PPTP:
             case VpnProfile.TYPE_IPSEC_HYBRID_RSA:
@@ -435,6 +472,10 @@
         return mEditing;
     }
 
+    boolean hasProxy() {
+        return mProxySettings.getSelectedItemPosition() == VpnProfile.PROXY_MANUAL;
+    }
+
     VpnProfile getProfile() {
         // First, save common fields.
         VpnProfile profile = new VpnProfile(mProfile.key);
@@ -446,7 +487,16 @@
         profile.searchDomains = mSearchDomains.getText().toString().trim();
         profile.dnsServers = mDnsServers.getText().toString().trim();
         profile.routes = mRoutes.getText().toString().trim();
-
+        if (hasProxy()) {
+            String proxyHost = mProxyHost.getText().toString().trim();
+            String proxyPort = mProxyPort.getText().toString().trim();
+            // 0 is a last resort default, but the interface validates that the proxy port is
+            // present and non-zero.
+            int port = proxyPort.isEmpty() ? 0 : Integer.parseInt(proxyPort);
+            profile.proxy = new ProxyInfo(proxyHost, port, null);
+        } else {
+            profile.proxy = null;
+        }
         // Then, save type-specific fields.
         switch (profile.type) {
             case VpnProfile.TYPE_PPTP:
@@ -483,4 +533,15 @@
         profile.saveLogin = mSaveLogin.isChecked() || (mEditing && hasLogin);
         return profile;
     }
+
+    private boolean validateProxy() {
+        if (!hasProxy()) {
+            return true;
+        }
+
+        final String host = mProxyHost.getText().toString().trim();
+        final String port = mProxyPort.getText().toString().trim();
+        return Proxy.validate(host, port, "") == Proxy.PROXY_VALID;
+    }
+
 }
diff --git a/src/com/android/settings/widget/SingleTargetGearPreference.java b/src/com/android/settings/widget/SingleTargetGearPreference.java
index 48876fa..f6496ed 100644
--- a/src/com/android/settings/widget/SingleTargetGearPreference.java
+++ b/src/com/android/settings/widget/SingleTargetGearPreference.java
@@ -18,9 +18,10 @@
 
 import android.content.Context;
 import android.util.AttributeSet;
+import android.view.View;
 
-import androidx.core.content.res.TypedArrayUtils;
 import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
 
 import com.android.settings.R;
 
@@ -28,23 +29,38 @@
  * A preference with single target and a gear icon on the side.
  */
 public class SingleTargetGearPreference extends Preference {
-
-    public SingleTargetGearPreference(Context context, AttributeSet attrs,
-            int defStyleAttr, int defStyleRes) {
+    public SingleTargetGearPreference(Context context, AttributeSet attrs, int defStyleAttr,
+            int defStyleRes) {
         super(context, attrs, defStyleAttr, defStyleRes);
-        setWidgetLayoutResource(R.layout.preference_widget_gear_no_bg);
+        init();
     }
 
     public SingleTargetGearPreference(Context context, AttributeSet attrs, int defStyleAttr) {
-        this(context, attrs, defStyleAttr, 0 /* defStyleRes */);
+        super(context, attrs, defStyleAttr);
+        init();
     }
 
     public SingleTargetGearPreference(Context context, AttributeSet attrs) {
-        this(context, attrs, TypedArrayUtils.getAttr(context, R.attr.preferenceStyle,
-                android.R.attr.preferenceStyle));
+        super(context, attrs);
+        init();
     }
 
     public SingleTargetGearPreference(Context context) {
-        this(context, null /* attrs */);
+        super(context);
+        init();
     }
-}
\ No newline at end of file
+
+    private void init() {
+        setLayoutResource(R.layout.preference_single_target);
+        setWidgetLayoutResource(R.layout.preference_widget_gear_optional_background);
+    }
+
+    @Override
+    public void onBindViewHolder(PreferenceViewHolder holder) {
+        super.onBindViewHolder(holder);
+        final View divider = holder.findViewById(com.android.settingslib.R.id.two_target_divider);
+        if (divider != null) {
+            divider.setVisibility(View.INVISIBLE);
+        }
+    }
+}
diff --git a/src/com/android/settings/wifi/ButtonPreference.java b/src/com/android/settings/wifi/ButtonPreference.java
index 9a0abf6..5169d7a 100644
--- a/src/com/android/settings/wifi/ButtonPreference.java
+++ b/src/com/android/settings/wifi/ButtonPreference.java
@@ -49,6 +49,7 @@
     private ImageButton mImageButton;
     private Drawable mButtonIcon;
     private View.OnClickListener mClickListener;
+    private String mContentDescription;
 
     // Used for dummy pref.
     public ButtonPreference(Context context, AttributeSet attrs) {
@@ -57,6 +58,7 @@
         mImageButton = null;
         mButtonIcon = null;
         mClickListener = null;
+        mContentDescription = null;
     }
 
     public ButtonPreference(Context context) {
@@ -83,6 +85,7 @@
         if (mImageButton != null) {
             mImageButton.setImageDrawable(mButtonIcon);
             mImageButton.setOnClickListener(mClickListener);
+            mImageButton.setContentDescription(mContentDescription);
         }
         setButtonVisibility();
     }
@@ -96,9 +99,9 @@
     /**
      * Sets the drawable to be displayed in button.
      */
-    public ButtonPreference setButtonIcon(@DrawableRes int iconResId) {
+    public void setButtonIcon(@DrawableRes int iconResId) {
         if (iconResId == 0) {
-            return this;
+            return;
         }
 
         try {
@@ -107,17 +110,26 @@
         } catch (Resources.NotFoundException exception) {
             Log.e(TAG, "Resource does not exist: " + iconResId);
         }
-        return this;
     }
 
     /**
      * Register a callback to be invoked when button is clicked.
      */
-    public ButtonPreference setButtonOnClickListener(View.OnClickListener listener) {
+    public void setButtonOnClickListener(View.OnClickListener listener) {
         if (listener != mClickListener) {
             mClickListener = listener;
             notifyChanged();
         }
-        return this;
+    }
+
+    /**
+     * A content description briefly describes the button and is primarily used for accessibility
+     * support to determine how a button should be presented to the user.
+     */
+    public void setButtonContentDescription(String contentDescription) {
+        if (contentDescription != mContentDescription) {
+            mContentDescription = contentDescription;
+            notifyChanged();
+        }
     }
 }
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index e7db5db..0adbd8d 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -248,8 +248,8 @@
         mMeteredSettingsSpinner = mView.findViewById(R.id.metered_settings);
         mHiddenSettingsSpinner = mView.findViewById(R.id.hidden_settings);
         mPrivacySettingsSpinner = mView.findViewById(R.id.privacy_settings);
-        if (FeatureFlagUtils.isEnabled(mContext,
-                com.android.settings.core.FeatureFlags.WIFI_MAC_RANDOMIZATION)) {
+        if (mContext.getResources().getBoolean(
+                com.android.internal.R.bool.config_wifi_connected_mac_randomization_supported)) {
             View privacySettingsLayout = mView.findViewById(R.id.privacy_settings_fields);
             privacySettingsLayout.setVisibility(View.VISIBLE);
         }
@@ -265,11 +265,7 @@
             configureSecuritySpinner();
             mConfigUi.setSubmitButton(res.getString(R.string.wifi_save));
         } else {
-            if (!mAccessPoint.isPasspointConfig()) {
-                mConfigUi.setTitle(mAccessPoint.getSsid());
-            } else {
-                mConfigUi.setTitle(mAccessPoint.getConfigName());
-            }
+            mConfigUi.setTitle(mAccessPoint.getTitle());
 
             ViewGroup group = (ViewGroup) mView.findViewById(R.id.info);
 
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index c00fe24..a8fc34d 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -67,6 +67,7 @@
 import com.android.settings.widget.SwitchBarController;
 import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
 import com.android.settings.wifi.dpp.WifiDppUtils;
+import com.android.settings.wifi.savedaccesspoints.SavedAccessPointsWifiSettings;
 import com.android.settingslib.RestrictedLockUtils;
 import com.android.settingslib.RestrictedLockUtilsInternal;
 import com.android.settingslib.search.SearchIndexable;
@@ -247,6 +248,7 @@
             getContext().startActivity(
                     WifiDppUtils.getEnrolleeQrCodeScannerIntent(/* ssid */ null));
         });
+        mAddPreference.setButtonContentDescription(getString(R.string.wifi_dpp_scan_qr_code));
         mStatusMessagePreference = (LinkablePreference) findPreference(PREF_KEY_STATUS_MESSAGE);
 
         mUserBadgeCache = new AccessPointPreference.UserBadgeCache(getPackageManager());
@@ -483,7 +485,7 @@
         if (preference instanceof LongPressAccessPointPreference) {
             mSelectedAccessPoint =
                     ((LongPressAccessPointPreference) preference).getAccessPoint();
-            menu.setHeaderTitle(mSelectedAccessPoint.getSsid());
+            menu.setHeaderTitle(mSelectedAccessPoint.getTitle());
             if (mSelectedAccessPoint.isConnectable()) {
                 menu.add(Menu.NONE, MENU_ID_CONNECT, 0, R.string.wifi_menu_connect);
             }
@@ -967,8 +969,13 @@
     }
 
     private void launchNetworkDetailsFragment(ConnectedAccessPointPreference pref) {
+        final AccessPoint accessPoint = pref.getAccessPoint();
+        final Context context = getContext();
+        final CharSequence title = SavedAccessPointsWifiSettings.usingDetailsFragment(context) ?
+                accessPoint.getTitle() : context.getText(R.string.pref_title_network_details);
+
         new SubSettingLauncher(getContext())
-                .setTitleRes(R.string.pref_title_network_details)
+                .setTitleText(title)
                 .setDestination(WifiNetworkDetailsFragment.class.getName())
                 .setArguments(pref.getExtras())
                 .setSourceMetricsCategory(getMetricsCategory())
diff --git a/src/com/android/settings/wifi/calling/DisclaimerItem.java b/src/com/android/settings/wifi/calling/DisclaimerItem.java
new file mode 100644
index 0000000..6fd8b70
--- /dev/null
+++ b/src/com/android/settings/wifi/calling/DisclaimerItem.java
@@ -0,0 +1,137 @@
+/*
+ * 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.settings.wifi.calling;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.os.PersistableBundle;
+import android.telephony.CarrierConfigManager;
+import android.util.Log;
+
+import com.android.internal.annotations.VisibleForTesting;
+
+/**
+ * Interface to control disclaimer item from {@link WifiCallingDisclaimerFragment}.
+ */
+@VisibleForTesting
+public abstract class DisclaimerItem {
+    private static final String SHARED_PREFERENCES_NAME = "wfc_disclaimer_prefs";
+
+    protected final Context mContext;
+    protected final int mSubId;
+    private final CarrierConfigManager mCarrierConfigManager;
+
+    DisclaimerItem(Context context, int subId) {
+        mContext = context;
+        mSubId = subId;
+        mCarrierConfigManager = mContext.getSystemService(CarrierConfigManager.class);
+    }
+
+    /**
+     * Called by the {@link WifiCallingDisclaimerFragment} when a user has clicked the agree button.
+     */
+    void onAgreed() {
+        setBooleanSharedPrefs(getPrefKey(), true);
+    }
+
+    /**
+     * Checks whether the disclaimer item need to be displayed or not.
+     *
+     * @return Returns {@code true} if disclaimer item need to be displayed,
+     * {@code false} if not displayed.
+     */
+    boolean shouldShow() {
+        if (getBooleanSharedPrefs(getPrefKey(), false)) {
+            logd("shouldShow: false due to a user has already agreed.");
+            return false;
+        }
+        logd("shouldShow: true");
+        return true;
+    }
+
+    /**
+     * Gets the configuration values for a particular sub id.
+     *
+     * @return The {@link PersistableBundle} instance containing the config value for a
+     * particular phone id, or default values.
+     */
+    protected PersistableBundle getCarrierConfig() {
+        PersistableBundle config = mCarrierConfigManager.getConfigForSubId(mSubId);
+        if (config != null) {
+            return config;
+        }
+        // Return static default defined in CarrierConfigManager.
+        return CarrierConfigManager.getDefaultConfig();
+    }
+
+    protected void logd(String msg) {
+        Log.d(getName(), "[" + mSubId +  "] " + msg);
+    }
+
+    /**
+     * Gets a title id for disclaimer item.
+     *
+     * @return Title id for disclaimer item.
+     */
+    protected abstract int getTitleId();
+
+    /**
+     * Gets a message id for disclaimer item.
+     *
+     * @return Message id for disclaimer item.
+     */
+    protected abstract int getMessageId();
+
+    /**
+     * Gets a name of disclaimer item.
+     *
+     * @return Name of disclaimer item.
+     */
+    protected abstract String getName();
+
+    /**
+     * Gets a preference key to keep user's consent.
+     *
+     * @return Preference key to keep user's consent.
+     */
+    protected abstract String getPrefKey();
+
+    /**
+     * Gets the boolean value from shared preferences.
+     *
+     * @param key The key for the preference item.
+     * @param defValue Value to return if this preference does not exist.
+     * @return The boolean value of corresponding key, or defValue.
+     */
+    private boolean getBooleanSharedPrefs(String key, boolean defValue) {
+        SharedPreferences prefs = mContext.getSharedPreferences(SHARED_PREFERENCES_NAME,
+                Context.MODE_PRIVATE);
+        return prefs.getBoolean(key + mSubId, defValue);
+    }
+
+    /**
+     * Sets the boolean value to shared preferences.
+     *
+     * @param key The key for the preference item.
+     * @param value The value to be set for shared preferences.
+     */
+    private void setBooleanSharedPrefs(String key, boolean value) {
+        SharedPreferences prefs = mContext.getSharedPreferences(SHARED_PREFERENCES_NAME,
+                Context.MODE_PRIVATE);
+        prefs.edit().putBoolean(key + mSubId, value).apply();
+    }
+}
diff --git a/src/com/android/settings/wifi/calling/DisclaimerItemFactory.java b/src/com/android/settings/wifi/calling/DisclaimerItemFactory.java
new file mode 100644
index 0000000..6d8dc8f
--- /dev/null
+++ b/src/com/android/settings/wifi/calling/DisclaimerItemFactory.java
@@ -0,0 +1,57 @@
+/*
+ * 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.settings.wifi.calling;
+
+import android.content.Context;
+
+import com.android.internal.annotations.VisibleForTesting;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Factory class to create disclaimer items list.
+ */
+@VisibleForTesting
+public final class DisclaimerItemFactory {
+
+    /**
+     * Creates disclaimer items list.
+     *
+     * @param context The application context
+     * @param subId The subscription id.
+     * @return The {@link DisclaimerItem} list instance, if there are no items, return empty list.
+     */
+    public static List<DisclaimerItem> create(Context context, int subId) {
+        List<DisclaimerItem> itemList = getDisclaimerItemList(context, subId);
+        Iterator itr = itemList.iterator();
+        while (itr.hasNext()) {
+            DisclaimerItem item = (DisclaimerItem) itr.next();
+            if (!item.shouldShow()) {
+                itr.remove();
+            }
+        }
+        return itemList;
+    }
+
+    private static List<DisclaimerItem> getDisclaimerItemList(Context context, int subId) {
+        List<DisclaimerItem> itemList = new ArrayList<DisclaimerItem>();
+
+        return itemList;
+    }
+}
diff --git a/src/com/android/settings/wifi/calling/DisclaimerItemListAdapter.java b/src/com/android/settings/wifi/calling/DisclaimerItemListAdapter.java
new file mode 100644
index 0000000..4b5d19c
--- /dev/null
+++ b/src/com/android/settings/wifi/calling/DisclaimerItemListAdapter.java
@@ -0,0 +1,78 @@
+/*
+ * 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.settings.wifi.calling;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.R;
+
+import java.util.List;
+
+/**
+ * Adapter for disclaimer items list.
+ */
+public class DisclaimerItemListAdapter extends
+        RecyclerView.Adapter<DisclaimerItemListAdapter.DisclaimerItemViewHolder> {
+
+    private List<DisclaimerItem> mDisclaimerItemList;
+
+    public DisclaimerItemListAdapter(List<DisclaimerItem> list) {
+        mDisclaimerItemList = list;
+    }
+
+    @Override
+    public DisclaimerItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+        LayoutInflater inflater = (LayoutInflater) parent.getContext().getSystemService(
+                Context.LAYOUT_INFLATER_SERVICE);
+        View view = inflater.inflate(R.layout.wfc_simple_disclaimer_item, null, false);
+        return new DisclaimerItemViewHolder(view);
+    }
+
+    @Override
+    public void onBindViewHolder(DisclaimerItemViewHolder holder, int position) {
+        holder.titleView.setText(mDisclaimerItemList.get(position).getTitleId());
+        holder.descriptionView.setText(mDisclaimerItemList.get(position).getMessageId());
+    }
+
+    @Override
+    public int getItemCount() {
+        return mDisclaimerItemList.size();
+    }
+
+    public static class DisclaimerItemViewHolder extends RecyclerView.ViewHolder {
+        @VisibleForTesting
+        static final int ID_DISCLAIMER_ITEM_TITLE = R.id.disclaimer_title;
+        @VisibleForTesting
+        static final int ID_DISCLAIMER_ITEM_DESCRIPTION = R.id.disclaimer_desc;
+
+        public final TextView titleView;
+        public final TextView descriptionView;
+
+        public DisclaimerItemViewHolder(View itemView) {
+            super(itemView);
+            titleView = itemView.findViewById(ID_DISCLAIMER_ITEM_TITLE);
+            descriptionView = itemView.findViewById(ID_DISCLAIMER_ITEM_DESCRIPTION);
+        }
+    }
+}
diff --git a/src/com/android/settings/wifi/calling/ListWithEntrySummaryPreference.java b/src/com/android/settings/wifi/calling/ListWithEntrySummaryPreference.java
new file mode 100644
index 0000000..a44fcbe
--- /dev/null
+++ b/src/com/android/settings/wifi/calling/ListWithEntrySummaryPreference.java
@@ -0,0 +1,203 @@
+/*
+ * 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.settings.wifi.calling;
+
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.res.TypedArray;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.ListAdapter;
+import android.widget.RadioButton;
+import android.widget.TextView;
+import androidx.appcompat.app.AlertDialog.Builder;
+import com.android.settings.CustomListPreference;
+import com.android.settings.R;
+
+/**
+ * ListPreference contain the entry summary.
+ */
+public class ListWithEntrySummaryPreference extends CustomListPreference {
+    private static final String LOG_TAG = "ListWithEntrySummaryPreference";
+    private final Context mContext;
+    private CharSequence[] mSummaries;
+
+    /**
+     * ListWithEntrySummaryPreference constructor.
+     *
+     * @param context The context of view.
+     * @param attrs The attributes of the XML tag that is inflating the linear layout.
+     */
+    public ListWithEntrySummaryPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        mContext = context;
+
+        TypedArray array = context.obtainStyledAttributes(attrs,
+                R.styleable.ListWithEntrySummaryPreference, 0, 0);
+        mSummaries = array.getTextArray(R.styleable.ListWithEntrySummaryPreference_entrySummaries);
+        array.recycle();
+    }
+
+    /**
+     * Sets the summaries of mode items to be shown in the mode select dialog.
+     *
+     * @param summariesResId The summaries of mode items.
+     */
+    public void setEntrySummaries(int summariesResId) {
+        mSummaries = getContext().getResources().getTextArray(summariesResId);
+    }
+
+    /**
+     * Sets the summaries of mode items to be shown in the mode select dialog.
+     *
+     * @param summaries The summaries of mode items.
+     */
+    public void setEntrySummaries(CharSequence[] summaries) {
+        mSummaries = summaries;
+    }
+
+    private CharSequence getEntrySummary(int index) {
+        if (mSummaries == null) {
+            Log.w(LOG_TAG, "getEntrySummary : mSummaries is null");
+            return "";
+        }
+        return mSummaries[index];
+    }
+
+    @Override
+    protected void onPrepareDialogBuilder(Builder builder,
+            DialogInterface.OnClickListener listener) {
+        ListAdapter la = (ListAdapter) new SelectorAdapter(mContext,
+                R.xml.single_choice_list_item_2, this);
+        builder.setSingleChoiceItems(la, findIndexOfValue(getValue()), listener);
+        super.onPrepareDialogBuilder(builder, listener);
+    }
+
+    private static class SelectorAdapter extends ArrayAdapter<CharSequence> {
+        private final Context mContext;
+        private ListWithEntrySummaryPreference mSelector;
+
+        /**
+         * SelectorAdapter constructor.
+         *
+         * @param context The current context.
+         * @param rowResourceId The resource id of the XML tag that is inflating the linear layout.
+         * @param listPreference The instance of ListWithEntrySummaryPreference.
+         */
+        public SelectorAdapter(Context context, int rowResourceId,
+                ListWithEntrySummaryPreference listPreference) {
+            super(context, rowResourceId, listPreference.getEntryValues());
+            mContext = context;
+            mSelector = listPreference;
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            LayoutInflater inflater = LayoutInflater.from(mContext);
+            View row = inflater.inflate(R.xml.single_choice_list_item_2, parent, false);
+
+            TextView title = (TextView) row.findViewById(R.id.title);
+            title.setText(mSelector.getEntries()[position]);
+
+            TextView summary = (TextView) row.findViewById(R.id.summary);
+            summary.setText(mSelector.getEntrySummary(position));
+
+            RadioButton rb = (RadioButton) row.findViewById(R.id.radio);
+            if (position == mSelector.findIndexOfValue(mSelector.getValue())) {
+                rb.setChecked(true);
+            }
+
+            return row;
+        }
+    }
+
+    @Override
+    protected Parcelable onSaveInstanceState() {
+        final Parcelable superState = super.onSaveInstanceState();
+
+        final SavedState myState = new SavedState(superState);
+        myState.mEntries = getEntries();
+        myState.mEntryValues = getEntryValues();
+        myState.mSummaries = mSummaries;
+        return myState;
+    }
+
+    @Override
+    protected void onRestoreInstanceState(Parcelable state) {
+        if (state == null || !state.getClass().equals(SavedState.class)) {
+            // Didn't save state for us in onSaveInstanceState
+            super.onRestoreInstanceState(state);
+            return;
+        }
+
+        SavedState myState = (SavedState) state;
+        super.onRestoreInstanceState(myState.getSuperState());
+        setEntries(myState.mEntries);
+        setEntryValues(myState.mEntryValues);
+        mSummaries = myState.mSummaries;
+    }
+
+    /**
+     *  We save entries, entryValues and summaries into bundle.
+     *  At onCreate of fragment, dialog will be restored if it was open. In this case,
+     *  we need to restore entries, entryValues and summaries. Without those information,
+     *  crash when entering multi window during wfc modes dialog shown.
+     */
+    private static class SavedState extends BaseSavedState {
+        private CharSequence[] mEntries;
+        private CharSequence[] mEntryValues;
+        private CharSequence[] mSummaries;
+
+        public SavedState(Parcel source) {
+            super(source);
+            mEntries = source.readCharSequenceArray();
+            mEntryValues = source.readCharSequenceArray();
+            mSummaries = source.readCharSequenceArray();
+        }
+
+        @Override
+        public void writeToParcel(Parcel dest, int flags) {
+            super.writeToParcel(dest, flags);
+            dest.writeCharSequenceArray(mEntries);
+            dest.writeCharSequenceArray(mEntryValues);
+            dest.writeCharSequenceArray(mSummaries);
+        }
+
+        public SavedState(Parcelable superState) {
+            super(superState);
+        }
+
+        public static final Parcelable.Creator<SavedState> CREATOR =
+                new Parcelable.Creator<SavedState>() {
+            @Override
+            public SavedState createFromParcel(Parcel in) {
+                return new SavedState(in);
+            }
+
+            @Override
+            public SavedState[] newArray(int size) {
+                return new SavedState[size];
+            }
+        };
+    }
+}
diff --git a/src/com/android/settings/wifi/calling/WifiCallingDisclaimerFragment.java b/src/com/android/settings/wifi/calling/WifiCallingDisclaimerFragment.java
new file mode 100644
index 0000000..7763226
--- /dev/null
+++ b/src/com/android/settings/wifi/calling/WifiCallingDisclaimerFragment.java
@@ -0,0 +1,148 @@
+/*
+ * 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.settings.wifi.calling;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.telephony.SubscriptionManager;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+
+import androidx.recyclerview.widget.DividerItemDecoration;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.RecyclerView.OnScrollListener;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.settings.R;
+import com.android.settings.core.InstrumentedFragment;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Fragment for displaying disclaimers for WFC.
+ */
+public class WifiCallingDisclaimerFragment extends InstrumentedFragment
+        implements View.OnClickListener {
+    private static final String TAG = "WifiCallingDisclaimerFragment";
+
+    private static final String STATE_IS_SCROLL_TO_BOTTOM = "state_is_scroll_to_bottom";
+
+    private List<DisclaimerItem> mDisclaimerItemList = new ArrayList<DisclaimerItem>();
+    private Button mAgreeButton;
+    private Button mDisagreeButton;
+    private boolean mScrollToBottom;
+
+    @Override
+    public int getMetricsCategory() {
+        return MetricsEvent.WIFI_CALLING;
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        final Bundle args = getArguments();
+        final int subId = (args != null) ? args.getInt(WifiCallingSettingsForSub.EXTRA_SUB_ID)
+                : SubscriptionManager.DEFAULT_SUBSCRIPTION_ID;
+
+        mDisclaimerItemList = DisclaimerItemFactory.create(getActivity(), subId);
+        if (mDisclaimerItemList.isEmpty()) {
+            finish(Activity.RESULT_OK);
+            return;
+        }
+
+        if (savedInstanceState != null) {
+            mScrollToBottom = savedInstanceState.getBoolean(
+                    STATE_IS_SCROLL_TO_BOTTOM, mScrollToBottom);
+        }
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+
+        final View view = inflater.inflate(R.layout.wfc_disclaimer_fragment, container, false);
+
+        mAgreeButton = view.findViewById(R.id.agree_button);
+        mAgreeButton.setOnClickListener(this);
+        mDisagreeButton = view.findViewById(R.id.disagree_button);
+        mDisagreeButton.setOnClickListener(this);
+
+        final RecyclerView recyclerView = (RecyclerView) view.findViewById(
+                R.id.disclaimer_item_list);
+        recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
+        recyclerView.setAdapter(new DisclaimerItemListAdapter(mDisclaimerItemList));
+
+        RecyclerView.ItemDecoration itemDecoration =
+                new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL);
+        recyclerView.addItemDecoration(itemDecoration);
+
+        recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
+            @Override
+            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
+                super.onScrolled(recyclerView, dx, dy);
+                if (!recyclerView.canScrollVertically(1 /* scrolling down */)) {
+                    mScrollToBottom = true;
+                    updateButtonState();
+                    recyclerView.removeOnScrollListener(this);
+                }
+            }
+        });
+
+        return view;
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        updateButtonState();
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putBoolean(STATE_IS_SCROLL_TO_BOTTOM, mScrollToBottom);
+    }
+
+    private void updateButtonState() {
+        mAgreeButton.setEnabled(mScrollToBottom);
+    }
+
+    @Override
+    public void onClick(View v) {
+        if (v == mAgreeButton) {
+            for (DisclaimerItem item : mDisclaimerItemList) {
+                item.onAgreed();
+            }
+            finish(Activity.RESULT_OK);
+        } else if (v == mDisagreeButton) {
+            finish(Activity.RESULT_CANCELED);
+        }
+    }
+
+    @VisibleForTesting
+    void finish(int result) {
+        Activity activity = getActivity();
+        activity.setResult(result, null);
+        activity.finish();
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
index 79112c7..525b59b 100644
--- a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
+++ b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
@@ -40,7 +40,6 @@
 import android.widget.TextView;
 
 import androidx.appcompat.app.AlertDialog;
-import androidx.preference.ListPreference;
 import androidx.preference.Preference;
 import androidx.preference.Preference.OnPreferenceClickListener;
 import androidx.preference.PreferenceScreen;
@@ -54,6 +53,7 @@
 import com.android.settings.SettingsActivity;
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.Utils;
+import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.widget.SwitchBar;
 
 /**
@@ -70,9 +70,13 @@
     private static final String BUTTON_WFC_ROAMING_MODE = "wifi_calling_roaming_mode";
     private static final String PREFERENCE_EMERGENCY_ADDRESS = "emergency_address_key";
 
-    private static final int REQUEST_CHECK_WFC_EMERGENCY_ADDRESS = 1;
+    @VisibleForTesting
+    static final int REQUEST_CHECK_WFC_EMERGENCY_ADDRESS = 1;
+    @VisibleForTesting
+    static final int REQUEST_CHECK_WFC_DISCLAIMER = 2;
 
     public static final String EXTRA_LAUNCH_CARRIER_APP = "EXTRA_LAUNCH_CARRIER_APP";
+    public static final String EXTRA_SUB_ID = "EXTRA_SUB_ID";
 
     protected static final String FRAGMENT_BUNDLE_SUBID = "subId";
 
@@ -82,14 +86,15 @@
     //UI objects
     private SwitchBar mSwitchBar;
     private Switch mSwitch;
-    private ListPreference mButtonWfcMode;
-    private ListPreference mButtonWfcRoamingMode;
+    private ListWithEntrySummaryPreference mButtonWfcMode;
+    private ListWithEntrySummaryPreference mButtonWfcRoamingMode;
     private Preference mUpdateAddress;
     private TextView mEmptyView;
 
     private boolean mValidListener = false;
     private boolean mEditableWfcMode = true;
     private boolean mEditableWfcRoamingMode = true;
+    private boolean mUseWfcHomeModeForRoaming = false;
 
     private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
     private ImsManager mImsManager;
@@ -140,20 +145,17 @@
         }
     };
 
+    /*
+     * Launch carrier emergency address managemnent activity
+     */
     private final OnPreferenceClickListener mUpdateAddressListener =
-            new OnPreferenceClickListener() {
-                /*
-                 * Launch carrier emergency address managemnent activity
-                 */
-                @Override
-                public boolean onPreferenceClick(Preference preference) {
-                    Intent carrierAppIntent = getCarrierActivityIntent();
-                    if (carrierAppIntent != null) {
-                        carrierAppIntent.putExtra(EXTRA_LAUNCH_CARRIER_APP, LAUCH_APP_UPDATE);
-                        startActivity(carrierAppIntent);
-                    }
-                    return true;
+            preference -> {
+                Intent carrierAppIntent = getCarrierActivityIntent();
+                if (carrierAppIntent != null) {
+                    carrierAppIntent.putExtra(EXTRA_LAUNCH_CARRIER_APP, LAUCH_APP_UPDATE);
+                    startActivity(carrierAppIntent);
                 }
+                return true;
             };
 
     private final ProvisioningManager.Callback mProvisioningCallback =
@@ -173,11 +175,9 @@
     public void onActivityCreated(Bundle savedInstanceState) {
         super.onActivityCreated(savedInstanceState);
 
-        final SettingsActivity activity = (SettingsActivity) getActivity();
-
         mEmptyView = getView().findViewById(android.R.id.empty);
         setEmptyView(mEmptyView);
-        final Resources res = SubscriptionManager.getResourcesForSubId(getContext(), mSubId);
+        final Resources res = getResourcesForSubId();
         String emptyViewText = res.getString(R.string.wifi_calling_off_explanation,
                 res.getString(R.string.wifi_calling_off_explanation_2));
         mEmptyView.setText(emptyViewText);
@@ -264,13 +264,13 @@
         mTelephonyManager = ((TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE))
                 .createForSubscriptionId(mSubId);
 
-        mButtonWfcMode = (ListPreference) findPreference(BUTTON_WFC_MODE);
+        mButtonWfcMode = findPreference(BUTTON_WFC_MODE);
         mButtonWfcMode.setOnPreferenceChangeListener(this);
 
-        mButtonWfcRoamingMode = (ListPreference) findPreference(BUTTON_WFC_ROAMING_MODE);
+        mButtonWfcRoamingMode =  findPreference(BUTTON_WFC_ROAMING_MODE);
         mButtonWfcRoamingMode.setOnPreferenceChangeListener(this);
 
-        mUpdateAddress = (Preference) findPreference(PREFERENCE_EMERGENCY_ADDRESS);
+        mUpdateAddress = findPreference(PREFERENCE_EMERGENCY_ADDRESS);
         mUpdateAddress.setOnPreferenceClickListener(mUpdateAddressListener);
 
         mIntentFilter = new IntentFilter();
@@ -317,6 +317,9 @@
                         CarrierConfigManager.KEY_EDITABLE_WFC_MODE_BOOL);
                 mEditableWfcRoamingMode = b.getBoolean(
                         CarrierConfigManager.KEY_EDITABLE_WFC_ROAMING_MODE_BOOL);
+                mUseWfcHomeModeForRoaming = b.getBoolean(
+                        CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL,
+                        false);
                 isWifiOnlySupported = b.getBoolean(
                         CarrierConfigManager.KEY_CARRIER_WFC_SUPPORTS_WIFI_ONLY_BOOL, true);
             }
@@ -325,10 +328,14 @@
         if (!isWifiOnlySupported) {
             mButtonWfcMode.setEntries(R.array.wifi_calling_mode_choices_without_wifi_only);
             mButtonWfcMode.setEntryValues(R.array.wifi_calling_mode_values_without_wifi_only);
+            mButtonWfcMode.setEntrySummaries(R.array.wifi_calling_mode_summaries_without_wifi_only);
+
             mButtonWfcRoamingMode.setEntries(
                     R.array.wifi_calling_mode_choices_v2_without_wifi_only);
             mButtonWfcRoamingMode.setEntryValues(
                     R.array.wifi_calling_mode_values_without_wifi_only);
+            mButtonWfcRoamingMode.setEntrySummaries(
+                    R.array.wifi_calling_mode_summaries_without_wifi_only);
         }
 
 
@@ -414,14 +421,17 @@
             return;
         }
 
-        // Call address management activity before turning on WFC
-        Intent carrierAppIntent = getCarrierActivityIntent();
-        if (carrierAppIntent != null) {
-            carrierAppIntent.putExtra(EXTRA_LAUNCH_CARRIER_APP, LAUCH_APP_ACTIVATE);
-            startActivityForResult(carrierAppIntent, REQUEST_CHECK_WFC_EMERGENCY_ADDRESS);
-        } else {
-            updateWfcMode(true);
-        }
+        // Launch disclaimer fragment before turning on WFC
+        final Context context = getActivity();
+        final Bundle args = new Bundle();
+        args.putInt(EXTRA_SUB_ID, mSubId);
+        new SubSettingLauncher(context)
+                .setDestination(WifiCallingDisclaimerFragment.class.getName())
+                .setArguments(args)
+                .setTitleRes(R.string.wifi_calling_settings_title)
+                .setSourceMetricsCategory(getMetricsCategory())
+                .setResultListener(this, REQUEST_CHECK_WFC_DISCLAIMER)
+                .launch();
     }
 
     /*
@@ -474,12 +484,30 @@
 
         final Context context = getActivity();
 
-        if (requestCode == REQUEST_CHECK_WFC_EMERGENCY_ADDRESS) {
-            Log.d(TAG, "WFC emergency address activity result = " + resultCode);
+        Log.d(TAG, "WFC activity request = " + requestCode + " result = " + resultCode);
 
-            if (resultCode == Activity.RESULT_OK) {
-                updateWfcMode(true);
-            }
+        switch (requestCode) {
+            case REQUEST_CHECK_WFC_EMERGENCY_ADDRESS:
+                if (resultCode == Activity.RESULT_OK) {
+                    updateWfcMode(true);
+                }
+                break;
+            case REQUEST_CHECK_WFC_DISCLAIMER:
+                if (resultCode == Activity.RESULT_OK) {
+                    // Call address management activity before turning on WFC
+                    Intent carrierAppIntent = getCarrierActivityIntent();
+                    if (carrierAppIntent != null) {
+                        carrierAppIntent.putExtra(EXTRA_LAUNCH_CARRIER_APP, LAUCH_APP_ACTIVATE);
+                        startActivityForResult(carrierAppIntent,
+                                REQUEST_CHECK_WFC_EMERGENCY_ADDRESS);
+                    } else {
+                        updateWfcMode(true);
+                    }
+                }
+                break;
+            default:
+                Log.e(TAG, "Unexpected request: " + requestCode);
+                break;
         }
     }
 
@@ -499,7 +527,7 @@
                 // Don't show WFC (home) preference if it's not editable.
                 preferenceScreen.removePreference(mButtonWfcMode);
             }
-            if (mEditableWfcRoamingMode) {
+            if (mEditableWfcRoamingMode && !mUseWfcHomeModeForRoaming) {
                 preferenceScreen.addPreference(mButtonWfcRoamingMode);
             } else {
                 // Don't show WFC roaming preference if it's not editable.
@@ -528,10 +556,8 @@
                 mImsManager.setWfcMode(buttonMode, false);
                 mButtonWfcMode.setSummary(getWfcModeSummary(buttonMode));
                 mMetricsFeatureProvider.action(getActivity(), getMetricsCategory(), buttonMode);
-            }
-            if (!mEditableWfcRoamingMode) {
-                int currentWfcRoamingMode = mImsManager.getWfcMode(true);
-                if (buttonMode != currentWfcRoamingMode) {
+
+                if (mUseWfcHomeModeForRoaming) {
                     mImsManager.setWfcMode(buttonMode, true);
                     // mButtonWfcRoamingMode.setSummary is not needed; summary is selected value
                 }
@@ -568,4 +594,9 @@
         }
         return resId;
     }
+
+    @VisibleForTesting
+    Resources getResourcesForSubId() {
+        return SubscriptionManager.getResourcesForSubId(getContext(), mSubId, false);
+    }
 }
diff --git a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
index 01673e3..89565df 100644
--- a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
+++ b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
@@ -21,16 +21,12 @@
 
 import android.app.Activity;
 import android.app.AlertDialog;
-import android.app.KeyguardManager;
 import android.app.settings.SettingsEnums;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.graphics.drawable.Drawable;
-import android.hardware.biometrics.BiometricPrompt;
-import android.os.CancellationSignal;
-import android.os.Looper;
 import android.net.ConnectivityManager;
 import android.net.ConnectivityManager.NetworkCallback;
 import android.net.LinkAddress;
@@ -46,6 +42,7 @@
 import android.net.wifi.WifiManager;
 import android.os.Handler;
 import android.text.TextUtils;
+import android.util.FeatureFlagUtils;
 import android.util.Log;
 import android.widget.ImageView;
 import android.widget.Toast;
@@ -55,12 +52,14 @@
 import androidx.fragment.app.Fragment;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceFragmentCompat;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
 import com.android.settings.Utils;
 import com.android.settings.core.FeatureFlags;
 import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.datausage.WifiDataUsageSummaryPreferenceController;
 import com.android.settings.development.featureflags.FeatureFlagPersistent;
 import com.android.settings.widget.EntityHeaderController;
 import com.android.settings.wifi.WifiDialog;
@@ -154,6 +153,9 @@
     private Preference mDnsPref;
     private PreferenceCategory mIpv6Category;
     private Preference mIpv6AddressPref;
+    private Lifecycle mLifecycle;
+    Preference mDataUsageSummaryPref;
+    WifiDataUsageSummaryPreferenceController mSummaryHeaderController;
 
     private final IconInjector mIconInjector;
     private final IntentFilter mFilter;
@@ -266,6 +268,7 @@
         mFilter.addAction(WifiManager.RSSI_CHANGED_ACTION);
         mFilter.addAction(WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION);
 
+        mLifecycle = lifecycle;
         lifecycle.addObserver(this);
     }
 
@@ -317,6 +320,17 @@
 
     private void setupEntityHeader(PreferenceScreen screen) {
         LayoutPreference headerPref = screen.findPreference(KEY_HEADER);
+
+        if (usingDataUsageHeader(mContext)) {
+            headerPref.setVisible(false);
+            mDataUsageSummaryPref = screen.findPreference("status_header");
+            mDataUsageSummaryPref.setVisible(true);
+            mSummaryHeaderController =
+                new WifiDataUsageSummaryPreferenceController(mFragment.getActivity(),
+                        mLifecycle, (PreferenceFragmentCompat) mFragment, mAccessPoint.getSsid());
+            return;
+        }
+
         mEntityHeaderController =
                 EntityHeaderController.newInstance(
                         mFragment.getActivity(), mFragment,
@@ -327,7 +341,16 @@
                 mContext.getDrawable(R.drawable.ic_settings_widget_background));
         iconView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
 
-        mEntityHeaderController.setLabel(mAccessPoint.getSsidStr());
+        mEntityHeaderController.setLabel(mAccessPoint.getTitle());
+    }
+
+    private void refreshEntityHeader() {
+        if (usingDataUsageHeader(mContext)) {
+            mSummaryHeaderController.updateState(mDataUsageSummaryPref);
+        } else {
+            mEntityHeaderController.setSummary(mAccessPoint.getSettingsSummary())
+                    .done(mFragment.getActivity(), true /* rebind */);
+        }
     }
 
     @Override
@@ -364,9 +387,7 @@
         // MAC Address Pref
         mMacAddressPref.setSummary(mWifiConfig.getRandomizedMacAddress().toString());
 
-        // TODO(b/124700353): Change header to data usage chart
-        mEntityHeaderController.setSummary(mAccessPoint.getSettingsSummary())
-                .done(mFragment.getActivity(), true /* rebind */);
+        refreshEntityHeader();
 
         updateIpLayerInfo();
 
@@ -433,8 +454,7 @@
 
     private void refreshNetworkState() {
         mAccessPoint.update(mWifiConfig, mWifiInfo, mNetworkInfo);
-        mEntityHeaderController.setSummary(mAccessPoint.getSettingsSummary())
-                .done(mFragment.getActivity(), true /* rebind */);
+        refreshEntityHeader();
     }
 
     private void refreshRssiViews() {
@@ -447,7 +467,10 @@
         Drawable wifiIcon = mIconInjector.getIcon(mRssiSignalLevel);
 
         wifiIcon.setTintList(Utils.getColorAccent(mContext));
-        mEntityHeaderController.setIcon(wifiIcon).done(mFragment.getActivity(), true /* rebind */);
+        if (mEntityHeaderController != null) {
+            mEntityHeaderController.setIcon(wifiIcon).done(mFragment.getActivity(),
+                    true /* rebind */);
+        }
 
         Drawable wifiIconDark = wifiIcon.getConstantState().newDrawable().mutate();
         wifiIconDark.setTintList(Utils.getColorAttr(mContext, android.R.attr.colorControlNormal));
@@ -619,48 +642,16 @@
      * Share the wifi network with QR code.
      */
     private void shareNetwork() {
-        final KeyguardManager keyguardManager = (KeyguardManager) mContext.getSystemService(
-                Context.KEYGUARD_SERVICE);
-        if (keyguardManager.isKeyguardSecure()) {
-            // Show authentication screen to confirm credentials (pin, pattern or password) for
-            // the current user of the device.
-            final String title = mContext.getString(
-                    R.string.lockpassword_confirm_your_pattern_header);
-            final String description = String.format(
-                    mContext.getString(R.string.wifi_sharing_message),
-                    mAccessPoint.getSsidStr());
+        final String title = mContext.getString(
+                R.string.lockpassword_confirm_your_pattern_header);
+        final String description = String.format(
+                mContext.getString(R.string.wifi_sharing_message),
+                mAccessPoint.getSsidStr());
 
-            final BiometricPrompt.Builder builder = new BiometricPrompt.Builder(mContext)
-                    .setTitle(title)
-                    .setDescription(description);
-
-            if (keyguardManager.isDeviceSecure()) {
-                builder.setDeviceCredentialAllowed(true);
-            }
-
-            final BiometricPrompt bp = builder.build();
-            final Handler handler = new Handler(Looper.getMainLooper());
-            bp.authenticate(new CancellationSignal(),
-                    runnable -> handler.post(runnable),
-                    mAuthenticationCallback);
-        } else {
-            launchWifiDppConfiguratorActivity();
-        }
+        WifiDppUtils.showLockScreen(mContext, title, description,
+                () -> launchWifiDppConfiguratorActivity());
     }
 
-    private BiometricPrompt.AuthenticationCallback mAuthenticationCallback =
-            new BiometricPrompt.AuthenticationCallback() {
-        @Override
-        public void onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) {
-            launchWifiDppConfiguratorActivity();
-        }
-
-        @Override
-        public void onAuthenticationError(int errorCode, CharSequence errString) {
-            //Do nothing
-        }
-    };
-
     /**
      * Sign in to the captive portal found on this wifi network associated with this preference.
      */
@@ -706,4 +697,8 @@
             return mContext.getDrawable(Utils.getWifiIconResource(level)).mutate();
         }
     }
+
+    private boolean usingDataUsageHeader(Context context) {
+        return FeatureFlagUtils.isEnabled(context, FeatureFlags.WIFI_DETAILS_DATAUSAGE_HEADER);
+    }
 }
diff --git a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
index fd2e14a..7edd227 100644
--- a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
+++ b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
@@ -153,11 +153,11 @@
 
         controllers.add(mWifiDetailPreferenceController);
         controllers.add(new WifiMeteredPreferenceController(context, mAccessPoint.getConfig()));
-        WifiPrivacyPreferenceController preferenceController = new WifiPrivacyPreferenceController(
+        WifiPrivacyPreferenceController privacyController = new WifiPrivacyPreferenceController(
                 context);
-        preferenceController.setWifiConfiguration(mAccessPoint.getConfig());
-        preferenceController.setIsEphemeral(mAccessPoint.isEphemeral());
-        controllers.add(preferenceController);
+        privacyController.setWifiConfiguration(mAccessPoint.getConfig());
+        privacyController.setIsEphemeral(mAccessPoint.isEphemeral());
+        controllers.add(privacyController);
 
         return controllers;
     }
diff --git a/src/com/android/settings/wifi/details/WifiPrivacyPreferenceController.java b/src/com/android/settings/wifi/details/WifiPrivacyPreferenceController.java
index b79f2d4..a549e21 100644
--- a/src/com/android/settings/wifi/details/WifiPrivacyPreferenceController.java
+++ b/src/com/android/settings/wifi/details/WifiPrivacyPreferenceController.java
@@ -58,8 +58,9 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return FeatureFlagUtils.isEnabled(mContext, FeatureFlags.WIFI_MAC_RANDOMIZATION)
-                ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+        return mContext.getResources().getBoolean(
+                com.android.internal.R.bool.config_wifi_connected_mac_randomization_supported) ?
+                AVAILABLE : CONDITIONALLY_UNAVAILABLE;
     }
 
     @Override
diff --git a/src/com/android/settings/wifi/dpp/WifiDppAddDeviceFragment.java b/src/com/android/settings/wifi/dpp/WifiDppAddDeviceFragment.java
index 9e731ba..3a9308e 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppAddDeviceFragment.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppAddDeviceFragment.java
@@ -29,6 +29,7 @@
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.view.accessibility.AccessibilityEvent;
 import android.widget.Button;
 import android.widget.ImageView;
 import android.widget.ProgressBar;
@@ -99,6 +100,7 @@
 
         if (!isConfigurationChange) {
             mLatestStatusCode = WifiDppUtils.EASY_CONNECT_EVENT_SUCCESS;
+            changeFocusAndAnnounceChange(mButtonRight, mTitle);
         }
     }
 
@@ -168,15 +170,17 @@
             mButtonLeft.setVisibility(View.INVISIBLE);
         }
 
-        if (!isConfigurationChange) {
-            mLatestStatusCode = code;
-        }
-
         if (isGoingInitiator()) {
             mSummary.setText(R.string.wifi_dpp_sharing_wifi_with_this_device);
         }
+
         mProgressBar.setVisibility(isGoingInitiator() ? View.VISIBLE : View.INVISIBLE);
         mButtonRight.setVisibility(isGoingInitiator() ? View.INVISIBLE : View.VISIBLE);
+
+        if (!isConfigurationChange) {
+            mLatestStatusCode = code;
+            changeFocusAndAnnounceChange(mButtonRight, mSummary);
+        }
     }
 
     private boolean hasRetryButton(int code) {
@@ -277,6 +281,7 @@
             mButtonRight.setVisibility(View.INVISIBLE);
             startWifiDppConfiguratorInitiator();
             updateSummary();
+            mTitleSummaryContainer.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
         });
 
         if (savedInstanceState != null) {
@@ -288,6 +293,8 @@
             } else {
                 showErrorUi(mLatestStatusCode, /* isConfigurationChange */ true);
             }
+        } else {
+            changeFocusAndAnnounceChange(mButtonRight, mTitleSummaryContainer);
         }
     }
 
@@ -354,4 +361,17 @@
             mSummary.setText(getString(R.string.wifi_dpp_add_device_to_wifi, getSsid()));
         }
     }
+
+    /**
+     * This fragment will change UI display and text messages for events. To improve Talkback user
+     * experienience, using this method to focus on a right component and announce a changed text
+     * after an UI changing event.
+     *
+     * @param focusView The UI component which will be focused
+     * @param announceView The UI component's text will be talked
+     */
+    private void changeFocusAndAnnounceChange(View focusView, View announceView) {
+        focusView.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
+        announceView.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
+    }
 }
diff --git a/src/com/android/settings/wifi/dpp/WifiDppChooseSavedWifiNetworkFragment.java b/src/com/android/settings/wifi/dpp/WifiDppChooseSavedWifiNetworkFragment.java
index 72e845f..ddba933 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppChooseSavedWifiNetworkFragment.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppChooseSavedWifiNetworkFragment.java
@@ -23,6 +23,7 @@
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.view.accessibility.AccessibilityEvent;
 import android.widget.Button;
 import android.widget.ListView;
 
@@ -105,5 +106,11 @@
 
         mButtonRight = view.findViewById(R.id.button_right);
         mButtonRight.setVisibility(View.GONE);
+
+        if (savedInstanceState == null) {
+            // For Talkback to describe this fragment
+            mTitleSummaryContainer.sendAccessibilityEvent(
+                    AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
+        }
     }
 }
diff --git a/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java b/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java
index 0a2c09b..7308741 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java
@@ -75,6 +75,7 @@
     private static final String KEY_WIFI_PRESHARED_KEY = "key_wifi_preshared_key";
     private static final String KEY_WIFI_HIDDEN_SSID = "key_wifi_hidden_ssid";
     private static final String KEY_WIFI_NETWORK_ID = "key_wifi_network_id";
+    private static final String KEY_IS_HOTSPOT = "key_is_hotspot";
 
     private FragmentManager mFragmentManager;
 
@@ -104,14 +105,15 @@
 
             mWifiDppQrCode = WifiQrCode.getValidWifiDppQrCodeOrNull(qrCode);
 
-            String security = savedInstanceState.getString(KEY_WIFI_SECURITY);
-            String ssid = savedInstanceState.getString(KEY_WIFI_SSID);
-            String preSharedKey = savedInstanceState.getString(KEY_WIFI_PRESHARED_KEY);
-            boolean hiddenSsid = savedInstanceState.getBoolean(KEY_WIFI_HIDDEN_SSID);
-            int networkId = savedInstanceState.getInt(KEY_WIFI_NETWORK_ID);
+            final String security = savedInstanceState.getString(KEY_WIFI_SECURITY);
+            final String ssid = savedInstanceState.getString(KEY_WIFI_SSID);
+            final String preSharedKey = savedInstanceState.getString(KEY_WIFI_PRESHARED_KEY);
+            final boolean hiddenSsid = savedInstanceState.getBoolean(KEY_WIFI_HIDDEN_SSID);
+            final int networkId = savedInstanceState.getInt(KEY_WIFI_NETWORK_ID);
+            final boolean isHotspot = savedInstanceState.getBoolean(KEY_IS_HOTSPOT);
 
             mWifiNetworkConfig = WifiNetworkConfig.getValidConfigOrNull(security, ssid,
-                    preSharedKey, hiddenSsid, networkId);
+                    preSharedKey, hiddenSsid, networkId, isHotspot);
         } else {
             handleIntent(getIntent());
         }
@@ -361,6 +363,7 @@
             outState.putString(KEY_WIFI_PRESHARED_KEY, mWifiNetworkConfig.getPreSharedKey());
             outState.putBoolean(KEY_WIFI_HIDDEN_SSID, mWifiNetworkConfig.getHiddenSsid());
             outState.putInt(KEY_WIFI_NETWORK_ID, mWifiNetworkConfig.getNetworkId());
+            outState.putBoolean(KEY_IS_HOTSPOT, mWifiNetworkConfig.isHotspot());
         }
 
         super.onSaveInstanceState(outState);
@@ -393,7 +396,8 @@
                     wifiConfiguration.getPrintableSsid(),
                     wifiConfiguration.preSharedKey,
                     /* hiddenSsid */ false,
-                    wifiConfiguration.networkId);
+                    wifiConfiguration.networkId,
+                    /* isHotspot */ false);
             }
         }
 
diff --git a/src/com/android/settings/wifi/dpp/WifiDppQrCodeBaseFragment.java b/src/com/android/settings/wifi/dpp/WifiDppQrCodeBaseFragment.java
index fab495d..eafbe68 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppQrCodeBaseFragment.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppQrCodeBaseFragment.java
@@ -38,6 +38,7 @@
     private ImageView mDevicesCheckCircleGreenHeaderIcon;
     protected TextView mTitle;
     protected TextView mSummary;
+    protected View mTitleSummaryContainer;
 
     @Override
     public void onViewCreated(View view, Bundle savedInstanceState) {
@@ -48,6 +49,10 @@
                 view.findViewById(R.id.devices_check_circle_green_icon);
         mTitle = view.findViewById(android.R.id.title);
         mSummary = view.findViewById(android.R.id.summary);
+
+        // This is the LinearLayout which groups mTitle and mSummary for Talkback to announce the
+        // content in a way that reflects its natural groupings.
+        mTitleSummaryContainer =  view.findViewById(R.id.title_summary_container);
     }
 
     protected void setHeaderIconImageResource(int resId) {
diff --git a/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java b/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java
index daa41d9f..2cd5e23 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java
@@ -60,6 +60,14 @@
     public void onActivityCreated(Bundle savedInstanceState) {
         super.onActivityCreated(savedInstanceState);
 
+        // setTitle for Talkback
+        final WifiNetworkConfig wifiNetworkConfig = getWifiNetworkConfigFromHostActivity();
+        if (wifiNetworkConfig.isHotspot()) {
+            getActivity().setTitle(R.string.wifi_dpp_share_hotspot);
+        } else {
+            getActivity().setTitle(R.string.wifi_dpp_share_wifi);
+        }
+
         setHasOptionsMenu(true);
         final ActionBar actionBar = getActivity().getActionBar();
         if (actionBar != null) {
@@ -86,7 +94,8 @@
     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
         final WifiNetworkConfig wifiNetworkConfig = getWifiNetworkConfigFromHostActivity();
         MenuItem menuItem;
-        if (wifiNetworkConfig.isSupportWifiDpp(getActivity())) {
+        if (!wifiNetworkConfig.isHotspot() &&
+                wifiNetworkConfig.isSupportWifiDpp(getActivity())) {
             menuItem = menu.add(0, Menu.FIRST, 0, R.string.next_label);
             menuItem.setIcon(R.drawable.ic_scan_24dp);
             menuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
@@ -127,9 +136,15 @@
         setHeaderIconImageResource(R.drawable.ic_qrcode_24dp);
 
         final WifiNetworkConfig wifiNetworkConfig = getWifiNetworkConfigFromHostActivity();
-        mTitle.setText(R.string.wifi_dpp_share_wifi);
-        mSummary.setText(getString(R.string.wifi_dpp_scan_qr_code_with_another_device,
-                wifiNetworkConfig.getSsid()));
+        if (wifiNetworkConfig.isHotspot()) {
+            mTitle.setText(R.string.wifi_dpp_share_hotspot);
+            mSummary.setText(getString(R.string.wifi_dpp_scan_qr_code_to_share_hotspot,
+                    wifiNetworkConfig.getSsid()));
+        } else {
+            mTitle.setText(R.string.wifi_dpp_share_wifi);
+            mSummary.setText(getString(R.string.wifi_dpp_scan_qr_code_with_another_device,
+                    wifiNetworkConfig.getSsid()));
+        }
 
         mQrCode = wifiNetworkConfig.getQrCode();
         setQrCode();
diff --git a/src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragment.java b/src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragment.java
index a19069b..4535599 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragment.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragment.java
@@ -41,6 +41,7 @@
 import android.view.TextureView.SurfaceTextureListener;
 import android.view.View;
 import android.view.ViewGroup;
+import android.view.accessibility.AccessibilityEvent;
 import android.widget.ProgressBar;
 import android.widget.TextView;
 
@@ -174,6 +175,13 @@
     public void onActivityCreated(Bundle savedInstanceState) {
         super.onActivityCreated(savedInstanceState);
 
+        // setTitle for Talkback
+        if (mIsConfiguratorMode) {
+            getActivity().setTitle(R.string.wifi_dpp_add_device_to_network);
+        } else {
+            getActivity().setTitle(R.string.wifi_dpp_scan_qr_code);
+        }
+
         final ActionBar actionBar = getActivity().getActionBar();
         if (actionBar != null) {
             actionBar.setDisplayHomeAsUpEnabled(true);
@@ -380,6 +388,7 @@
     public void showErrorMessage(String message) {
         mErrorMessage.setVisibility(View.VISIBLE);
         mErrorMessage.setText(message);
+        mErrorMessage.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
 
         mHandler.removeMessages(MESSAGE_HIDE_ERROR_MESSAGE);
         mHandler.sendEmptyMessageDelayed(MESSAGE_HIDE_ERROR_MESSAGE,
@@ -410,6 +419,8 @@
                         mProgressBar.setVisibility(View.VISIBLE);
                         startWifiDppEnrolleeInitiator((WifiQrCode)msg.obj);
                         updateEnrolleeSummary();
+                        mSummary.sendAccessibilityEvent(
+                                AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
                     }
                     break;
 
diff --git a/src/com/android/settings/wifi/dpp/WifiDppUtils.java b/src/com/android/settings/wifi/dpp/WifiDppUtils.java
index 4d8cca5..fe7af27 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppUtils.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppUtils.java
@@ -16,11 +16,16 @@
 
 package com.android.settings.wifi.dpp;
 
+import android.app.KeyguardManager;
 import android.content.Context;
 import android.content.Intent;
+import android.hardware.biometrics.BiometricPrompt;
 import android.net.wifi.WifiConfiguration.KeyMgmt;
 import android.net.wifi.WifiConfiguration;
 import android.net.wifi.WifiManager;
+import android.os.CancellationSignal;
+import android.os.Handler;
+import android.os.Looper;
 import android.text.TextUtils;
 import android.util.FeatureFlagUtils;
 
@@ -70,6 +75,9 @@
     /** The data corresponding to {@code WifiConfiguration} networkId */
     public static final String EXTRA_WIFI_NETWORK_ID = "networkId";
 
+    /** The data to recognize if it's a Wi-Fi hotspot for configuration */
+    public static final String EXTRA_IS_HOTSPOT = "isHotspot";
+
     /** Used by {@link android.provider.Settings#ACTION_PROCESS_WIFI_EASY_CONNECT_URI} to
      * indicate test mode UI should be shown. Test UI does not make API calls. Value is a boolean.*/
     public static final String EXTRA_TEST = "test";
@@ -142,24 +150,12 @@
         return str.substring(begin, end+1);
     }
 
-    private static String getSecurityString(AccessPoint accessPoint) {
-        switch(accessPoint.getSecurity()) {
-            case AccessPoint.SECURITY_WEP:
-                return WifiQrCode.SECURITY_WEP;
-            case AccessPoint.SECURITY_PSK:
-                return WifiQrCode.SECURITY_WPA_PSK;
-            case AccessPoint.SECURITY_SAE:
-                return WifiQrCode.SECURITY_SAE;
-            default:
-                return WifiQrCode.SECURITY_NO_PASSWORD;
-        }
-    }
-
     static String getSecurityString(WifiConfiguration config) {
         if (config.allowedKeyManagement.get(KeyMgmt.SAE)) {
             return WifiQrCode.SECURITY_SAE;
         }
-        if (config.allowedKeyManagement.get(KeyMgmt.WPA_PSK)) {
+        if (config.allowedKeyManagement.get(KeyMgmt.WPA_PSK) ||
+                config.allowedKeyManagement.get(KeyMgmt.WPA2_PSK)) {
             return WifiQrCode.SECURITY_WPA_PSK;
         }
         return (config.wepKeys[0] == null) ?
@@ -171,6 +167,9 @@
      * security. It may return null if the security is not supported by QR code generator nor
      * scanner.
      *
+     * Do not use this method for Wi-Fi hotspot network, use
+     * {@code getHotspotConfiguratorIntentOrNull} instead.
+     *
      * @param context     The context to use for the content resolver
      * @param wifiManager An instance of {@link WifiManager}
      * @param accessPoint An instance of {@link AccessPoint}
@@ -187,15 +186,63 @@
             return null;
         }
 
-        final WifiConfiguration wifiConfig = accessPoint.getConfig();
-        final String ssid = removeFirstAndLastDoubleQuotes(wifiConfig.SSID);
-        final String security = getSecurityString(accessPoint);
-        String preSharedKey = wifiConfig.preSharedKey;
+        final WifiConfiguration wifiConfiguration = accessPoint.getConfig();
+        setConfiguratorIntentExtra(intent, wifiManager, wifiConfiguration);
+
+        if (wifiConfiguration.networkId == WifiConfiguration.INVALID_NETWORK_ID) {
+            throw new IllegalArgumentException("Invalid network ID");
+        } else {
+            intent.putExtra(EXTRA_WIFI_NETWORK_ID, wifiConfiguration.networkId);
+        }
+
+        return intent;
+    }
+
+    /**
+     * Returns an intent to launch QR code generator for the Wi-Fi hotspot. It may return null if
+     * the security is not supported by QR code generator.
+     *
+     * @param context The context to use for the content resolver
+     * @param wifiManager An instance of {@link WifiManager}
+     * @param wifiConfiguration {@link WifiConfiguration} of the Wi-Fi hotspot
+     * @return Intent for launching QR code generator
+     */
+    public static Intent getHotspotConfiguratorIntentOrNull(Context context,
+            WifiManager wifiManager, WifiConfiguration wifiConfiguration) {
+        final Intent intent = new Intent(context, WifiDppConfiguratorActivity.class);
+        if (isSupportHotspotConfiguratorQrCodeGenerator(wifiConfiguration)) {
+            intent.setAction(WifiDppConfiguratorActivity.ACTION_CONFIGURATOR_QR_CODE_GENERATOR);
+        } else {
+            return null;
+        }
+
+        setConfiguratorIntentExtra(intent, wifiManager, wifiConfiguration);
+
+        intent.putExtra(EXTRA_WIFI_NETWORK_ID, WifiConfiguration.INVALID_NETWORK_ID);
+        intent.putExtra(EXTRA_IS_HOTSPOT, true);
+
+        return intent;
+    }
+
+    /**
+     * Set all extra except {@code EXTRA_WIFI_NETWORK_ID} for the intent to
+     * launch configurator activity later.
+     *
+     * @param intent the target to set extra
+     * @param wifiManager an instance of {@code WifiManager}
+     * @param wifiConfiguration the Wi-Fi network for launching configurator activity
+     */
+    private static void setConfiguratorIntentExtra(Intent intent, WifiManager wifiManager,
+            WifiConfiguration wifiConfiguration) {
+        final String ssid = removeFirstAndLastDoubleQuotes(wifiConfiguration.SSID);
+        final String security = getSecurityString(wifiConfiguration);
+        String preSharedKey = wifiConfiguration.preSharedKey;
 
         if (preSharedKey != null) {
             // When the value of this key is read, the actual key is not returned, just a "*".
             // Call privileged system API to obtain actual key.
-            preSharedKey = removeFirstAndLastDoubleQuotes(getPresharedKey(wifiManager, wifiConfig));
+            preSharedKey = removeFirstAndLastDoubleQuotes(getPresharedKey(wifiManager,
+                    wifiConfiguration));
         }
 
         if (!TextUtils.isEmpty(ssid)) {
@@ -207,13 +254,6 @@
         if (!TextUtils.isEmpty(preSharedKey)) {
             intent.putExtra(EXTRA_WIFI_PRE_SHARED_KEY, preSharedKey);
         }
-        if (wifiConfig.networkId == WifiConfiguration.INVALID_NETWORK_ID) {
-            throw new IllegalArgumentException("Invalid network ID");
-        } else {
-            intent.putExtra(EXTRA_WIFI_NETWORK_ID, wifiConfig.networkId);
-        }
-
-        return intent;
     }
 
     /**
@@ -228,6 +268,54 @@
                 isSupportConfiguratorQrCodeGenerator(accessPoint);
     }
 
+    /**
+     * Shows authentication screen to confirm credentials (pin, pattern or password) for the current
+     * user of the device.
+     *
+     * @param context The {@code Context} used to get {@code KeyguardManager} service
+     * @param title The title on lock screen
+     * @param description The description on lock screen
+     * @param successRunnable The {@code Runnable} which will be executed if the user does not setup
+     *                        device security or if lock screen is unlocked
+     */
+    public static void showLockScreen(Context context, String title, String description,
+            Runnable successRunnable) {
+        final KeyguardManager keyguardManager = (KeyguardManager) context.getSystemService(
+                Context.KEYGUARD_SERVICE);
+
+        if (keyguardManager.isKeyguardSecure()) {
+            final BiometricPrompt.AuthenticationCallback authenticationCallback =
+                    new BiometricPrompt.AuthenticationCallback() {
+                        @Override
+                        public void onAuthenticationSucceeded(
+                                    BiometricPrompt.AuthenticationResult result) {
+                            successRunnable.run();
+                        }
+
+                        @Override
+                        public void onAuthenticationError(int errorCode, CharSequence errString) {
+                            //Do nothing
+                        }
+            };
+
+            final BiometricPrompt.Builder builder = new BiometricPrompt.Builder(context)
+                    .setTitle(title)
+                    .setDescription(description);
+
+            if (keyguardManager.isDeviceSecure()) {
+                builder.setDeviceCredentialAllowed(true);
+            }
+
+            final BiometricPrompt bp = builder.build();
+            final Handler handler = new Handler(Looper.getMainLooper());
+            bp.authenticate(new CancellationSignal(),
+                    runnable -> handler.post(runnable),
+                    authenticationCallback);
+        } else {
+            successRunnable.run();
+        }
+    }
+
     private static boolean isSupportConfiguratorQrCodeScanner(Context context,
             AccessPoint accessPoint) {
         if (!isWifiDppEnabled(context)) {
@@ -254,4 +342,13 @@
 
         return false;
     }
+
+    private static boolean isSupportHotspotConfiguratorQrCodeGenerator(
+            WifiConfiguration wifiConfiguration) {
+        // QR code generator produces QR code with ZXing's Wi-Fi network config format,
+        // it supports PSK and WEP and non security
+        // KeyMgmt.NONE is for WEP or non security
+        return wifiConfiguration.allowedKeyManagement.get(KeyMgmt.WPA2_PSK) ||
+                wifiConfiguration.allowedKeyManagement.get(KeyMgmt.NONE);
+    }
 }
diff --git a/src/com/android/settings/wifi/dpp/WifiNetworkConfig.java b/src/com/android/settings/wifi/dpp/WifiNetworkConfig.java
index a483073..fdc74d8 100644
--- a/src/com/android/settings/wifi/dpp/WifiNetworkConfig.java
+++ b/src/com/android/settings/wifi/dpp/WifiNetworkConfig.java
@@ -30,7 +30,6 @@
 import android.text.TextUtils;
 import android.util.Log;
 
-import androidx.annotation.Keep;
 import androidx.annotation.VisibleForTesting;
 
 /**
@@ -52,15 +51,17 @@
     private String mPreSharedKey;
     private boolean mHiddenSsid;
     private int mNetworkId;
+    private boolean mIsHotspot;
 
     @VisibleForTesting
     WifiNetworkConfig(String security, String ssid, String preSharedKey,
-            boolean hiddenSsid, int networkId) {
+            boolean hiddenSsid, int networkId, boolean isHotspot) {
         mSecurity = security;
         mSsid = ssid;
         mPreSharedKey = preSharedKey;
         mHiddenSsid = hiddenSsid;
         mNetworkId = networkId;
+        mIsHotspot = isHotspot;
     }
 
     public WifiNetworkConfig(WifiNetworkConfig config) {
@@ -69,6 +70,7 @@
         mPreSharedKey = config.mPreSharedKey;
         mHiddenSsid = config.mHiddenSsid;
         mNetworkId = config.mNetworkId;
+        mIsHotspot = config.mIsHotspot;
     }
 
     /**
@@ -86,23 +88,26 @@
      * android.settings.WIFI_DPP_CONFIGURATOR_QR_CODE_SCANNER
      */
     public static WifiNetworkConfig getValidConfigOrNull(Intent intent) {
-        String security = intent.getStringExtra(WifiDppUtils.EXTRA_WIFI_SECURITY);
-        String ssid = intent.getStringExtra(WifiDppUtils.EXTRA_WIFI_SSID);
-        String preSharedKey = intent.getStringExtra(WifiDppUtils.EXTRA_WIFI_PRE_SHARED_KEY);
-        boolean hiddenSsid = intent.getBooleanExtra(WifiDppUtils.EXTRA_WIFI_HIDDEN_SSID, false);
-        int networkId = intent.getIntExtra(WifiDppUtils.EXTRA_WIFI_NETWORK_ID,
+        final String security = intent.getStringExtra(WifiDppUtils.EXTRA_WIFI_SECURITY);
+        final String ssid = intent.getStringExtra(WifiDppUtils.EXTRA_WIFI_SSID);
+        final String preSharedKey = intent.getStringExtra(WifiDppUtils.EXTRA_WIFI_PRE_SHARED_KEY);
+        final boolean hiddenSsid = intent.getBooleanExtra(WifiDppUtils.EXTRA_WIFI_HIDDEN_SSID,
+                false);
+        final int networkId = intent.getIntExtra(WifiDppUtils.EXTRA_WIFI_NETWORK_ID,
                 WifiConfiguration.INVALID_NETWORK_ID);
+        final boolean isHotspot = intent.getBooleanExtra(WifiDppUtils.EXTRA_IS_HOTSPOT, false);
 
-        return getValidConfigOrNull(security, ssid, preSharedKey, hiddenSsid, networkId);
+        return getValidConfigOrNull(security, ssid, preSharedKey, hiddenSsid, networkId, isHotspot);
     }
 
     public static WifiNetworkConfig getValidConfigOrNull(String security, String ssid,
-            String preSharedKey, boolean hiddenSsid, int networkId) {
+            String preSharedKey, boolean hiddenSsid, int networkId, boolean isHotspot) {
         if (!isValidConfig(security, ssid, preSharedKey, hiddenSsid)) {
             return null;
         }
 
-        return new WifiNetworkConfig(security, ssid, preSharedKey, hiddenSsid, networkId);
+        return new WifiNetworkConfig(security, ssid, preSharedKey, hiddenSsid, networkId,
+                isHotspot);
     }
 
     public static boolean isValidConfig(WifiNetworkConfig config) {
@@ -174,31 +179,30 @@
         return barcode;
     }
 
-    @Keep
     public String getSecurity() {
         return mSecurity;
     }
 
-    @Keep
     public String getSsid() {
         return mSsid;
     }
 
-    @Keep
     public String getPreSharedKey() {
         return mPreSharedKey;
     }
 
-    @Keep
     public boolean getHiddenSsid() {
         return mHiddenSsid;
     }
 
-    @Keep
     public int getNetworkId() {
         return mNetworkId;
     }
 
+    public boolean isHotspot() {
+        return mIsHotspot;
+    }
+
     public void connect(Context context, WifiManager.ActionListener listener) {
         WifiConfiguration wifiConfiguration = getWifiConfigurationOrNull();
         if (wifiConfiguration == null) {
diff --git a/src/com/android/settings/wifi/dpp/WifiNetworkListFragment.java b/src/com/android/settings/wifi/dpp/WifiNetworkListFragment.java
index ce92f90..4688d76 100644
--- a/src/com/android/settings/wifi/dpp/WifiNetworkListFragment.java
+++ b/src/com/android/settings/wifi/dpp/WifiNetworkListFragment.java
@@ -218,7 +218,7 @@
             final WifiNetworkConfig networkConfig = WifiNetworkConfig.getValidConfigOrNull(
                     selectedAccessPoint.getSecurityString(/* concise */ true),
                     wifiConfig.getPrintableSsid(), wifiConfig.preSharedKey, /* hiddenSsid */ false,
-                    wifiConfig.networkId);
+                    wifiConfig.networkId, /* isHotspot */ false);
             if (mOnChooseNetworkListener != null) {
                 mOnChooseNetworkListener.onChooseNetwork(networkConfig);
             }
@@ -232,7 +232,8 @@
                                 /* ssid */ WifiNetworkConfig.FAKE_SSID,
                                 /* preSharedKey */ WifiNetworkConfig.FAKE_PASSWORD,
                                 /* hiddenSsid */ true,
-                                /* networkId */ WifiConfiguration.INVALID_NETWORK_ID));
+                                /* networkId */ WifiConfiguration.INVALID_NETWORK_ID,
+                                /* isHotspot*/ false));
             }
         } else {
             return super.onPreferenceTreeClick(preference);
diff --git a/src/com/android/settings/wifi/dpp/WifiQrCode.java b/src/com/android/settings/wifi/dpp/WifiQrCode.java
index 10971cf..8296a62 100644
--- a/src/com/android/settings/wifi/dpp/WifiQrCode.java
+++ b/src/com/android/settings/wifi/dpp/WifiQrCode.java
@@ -133,7 +133,7 @@
         password = removeBackSlash(password);
 
         mWifiNetworkConfig = WifiNetworkConfig.getValidConfigOrNull(security, ssid, password,
-                hiddenSsid, WifiConfiguration.INVALID_NETWORK_ID);
+                hiddenSsid, WifiConfiguration.INVALID_NETWORK_ID, /* isHotspot */ false);
 
         if (mWifiNetworkConfig == null) {
             throw new IllegalArgumentException("Invalid format");
diff --git a/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceController.java b/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceController.java
index 4155ef7..40e6e56 100644
--- a/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceController.java
+++ b/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceController.java
@@ -28,6 +28,7 @@
 
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.utils.PreferenceGroupChildrenCache;
+import com.android.settings.R;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
 import com.android.settingslib.core.lifecycle.events.OnStart;
 import com.android.settingslib.utils.ThreadUtils;
@@ -122,6 +123,12 @@
         final int accessPointsSize = accessPoints.size();
         for (int i = 0; i < accessPointsSize; ++i) {
             AccessPoint ap = accessPoints.get(i);
+
+            if (mHost != null && mHost.isSubscriptionsFeatureEnabled()
+                    && ap.isPasspointConfig()) {
+                continue;
+            }
+
             String key = ap.getKey();
             AccessPointPreference preference =
                     (AccessPointPreference) mChildrenCache.getCachedPreference(key);
@@ -139,6 +146,15 @@
 
         if (mPreferenceGroup.getPreferenceCount() < 1) {
             Log.w(TAG, "Saved networks activity loaded, but there are no saved networks!");
+            mPreferenceGroup.setVisible(false);
+        } else {
+            mPreferenceGroup.setVisible(true);
+        }
+
+        if (mHost != null && !mHost.isSubscriptionsFeatureEnabled()) {
+            mPreferenceGroup.setVisible(true);
+            mPreferenceGroup.setTitle(null);
+            mPreferenceGroup.setLayoutResource(R.layout.preference_category_no_label);
         }
     }
 }
diff --git a/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettings.java b/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettings.java
index 6a9e8a2..ea858f3 100644
--- a/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettings.java
+++ b/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettings.java
@@ -75,6 +75,8 @@
                 .getApplicationContext().getSystemService(Context.WIFI_SERVICE);
         use(SavedAccessPointsPreferenceController.class)
                 .setHost(this);
+        use(SubscribedAccessPointsPreferenceController.class)
+                .setHost(this);
     }
 
     @Override
@@ -172,10 +174,15 @@
                     Log.e(TAG, "Failed to remove Passpoint configuration for "
                             + mSelectedAccessPoint.getConfigName());
                 }
-                use(SavedAccessPointsPreferenceController.class)
-                        .postRefreshSavedAccessPoints();
+                if (isSubscriptionsFeatureEnabled()) {
+                    use(SubscribedAccessPointsPreferenceController.class)
+                            .postRefreshSubscribedAccessPoints();
+                } else {
+                    use(SavedAccessPointsPreferenceController.class)
+                            .postRefreshSavedAccessPoints();
+                }
             } else {
-                // mForgetListener will call initPreferences upon completion
+                // both onSuccess/onFailure will call postRefreshSavedAccessPoints
                 mWifiManager.forget(mSelectedAccessPoint.getConfig().networkId,
                         use(SavedAccessPointsPreferenceController.class));
             }
@@ -192,10 +199,11 @@
      * Checks if showing WifiNetworkDetailsFragment when clicking saved network item.
      */
     public static boolean usingDetailsFragment(Context context) {
-        if (FeatureFlagUtils.isEnabled(context, FeatureFlags.MOBILE_NETWORK_V2)
-                && FeatureFlagPersistent.isEnabled(context, FeatureFlags.NETWORK_INTERNET_V2)) {
-            return false;    // TODO(b/124695272): mark true when UI is ready.
-        }
-        return false;
+        return FeatureFlagUtils.isEnabled(context, FeatureFlags.WIFI_DETAILS_SAVED_SCREEN);
+    }
+
+    boolean isSubscriptionsFeatureEnabled() {
+        return FeatureFlagUtils.isEnabled(getContext(), FeatureFlags.MOBILE_NETWORK_V2)
+                && FeatureFlagPersistent.isEnabled(getContext(), FeatureFlags.NETWORK_INTERNET_V2);
     }
 }
diff --git a/src/com/android/settings/wifi/savedaccesspoints/SubscribedAccessPointsPreferenceController.java b/src/com/android/settings/wifi/savedaccesspoints/SubscribedAccessPointsPreferenceController.java
new file mode 100644
index 0000000..8d31c82
--- /dev/null
+++ b/src/com/android/settings/wifi/savedaccesspoints/SubscribedAccessPointsPreferenceController.java
@@ -0,0 +1,158 @@
+/*
+ * 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.settings.wifi.savedaccesspoints;
+
+
+import android.content.Context;
+import android.net.wifi.WifiManager;
+import android.util.Log;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceGroup;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.utils.PreferenceGroupChildrenCache;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.utils.ThreadUtils;
+import com.android.settingslib.wifi.AccessPoint;
+import com.android.settingslib.wifi.AccessPointPreference;
+import com.android.settingslib.wifi.AccessPointPreference.UserBadgeCache;
+import com.android.settingslib.wifi.WifiSavedConfigUtils;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Controller that manages a PreferenceGroup, which contains a list of subscribed access points.
+ */
+// TODO(b/127206629): Code refactor to avoid duplicated coding after removed feature flag.
+public class SubscribedAccessPointsPreferenceController extends BasePreferenceController implements
+        LifecycleObserver, OnStart, Preference.OnPreferenceClickListener,
+        WifiManager.ActionListener {
+
+    private static final String TAG = "SubscribedAPPrefCtrl";
+
+    private final WifiManager mWifiManager;
+    private final PreferenceGroupChildrenCache mChildrenCache;
+    private final UserBadgeCache mUserBadgeCache;
+    private PreferenceGroup mPreferenceGroup;
+    private SavedAccessPointsWifiSettings mHost;
+
+    public SubscribedAccessPointsPreferenceController(Context context,
+            String preferenceKey) {
+        super(context, preferenceKey);
+        mUserBadgeCache = new AccessPointPreference.UserBadgeCache(context.getPackageManager());
+        mWifiManager = context.getSystemService(WifiManager.class);
+        mChildrenCache = new PreferenceGroupChildrenCache();
+    }
+
+    public SubscribedAccessPointsPreferenceController setHost(SavedAccessPointsWifiSettings host) {
+        mHost = host;
+        return this;
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreferenceGroup = screen.findPreference(getPreferenceKey());
+    }
+
+    @Override
+    public void onStart() {
+        refreshSubscribedAccessPoints();
+    }
+
+    public void postRefreshSubscribedAccessPoints() {
+        ThreadUtils.postOnMainThread(() -> refreshSubscribedAccessPoints());
+    }
+
+    @Override
+    public boolean onPreferenceClick(Preference preference) {
+        if (mHost != null) {
+            mHost.showWifiDialog((AccessPointPreference) preference);
+        }
+        return false;
+    }
+
+    @Override
+    public void onSuccess() {
+        postRefreshSubscribedAccessPoints();
+    }
+
+    @Override
+    public void onFailure(int reason) {
+        postRefreshSubscribedAccessPoints();
+    }
+
+    @VisibleForTesting
+    void refreshSubscribedAccessPoints() {
+        if (mPreferenceGroup == null) {
+            Log.w(TAG, "PreferenceGroup is null, skipping.");
+            return;
+        }
+
+        if (mHost != null && !mHost.isSubscriptionsFeatureEnabled()) {
+            mPreferenceGroup.setVisible(false);
+            return;
+        }
+
+        final Context prefContext = mPreferenceGroup.getContext();
+
+        final List<AccessPoint> accessPoints =
+                WifiSavedConfigUtils.getAllConfigs(mContext, mWifiManager);
+        Collections.sort(accessPoints, SavedNetworkComparator.INSTANCE);
+        mChildrenCache.cacheRemoveAllPrefs(mPreferenceGroup);
+
+        final int accessPointsSize = accessPoints.size();
+        for (int i = 0; i < accessPointsSize; ++i) {
+            AccessPoint ap = accessPoints.get(i);
+            if (!ap.isPasspointConfig()) {
+                continue;
+            }
+
+            final String key = ap.getKey();
+            AccessPointPreference preference =
+                    (AccessPointPreference) mChildrenCache.getCachedPreference(key);
+            if (preference == null) {
+                preference = new AccessPointPreference(ap, prefContext, mUserBadgeCache, true);
+                preference.setKey(key);
+                preference.setIcon(null);
+                preference.setOnPreferenceClickListener(this);
+                mPreferenceGroup.addPreference(preference);
+            }
+            preference.setOrder(i);
+        }
+
+        mChildrenCache.removeCachedPrefs(mPreferenceGroup);
+
+        if (mPreferenceGroup.getPreferenceCount() < 1) {
+            Log.w(TAG, "Subscribed networks activity loaded,"
+                    + " but there are no subscribed networks!");
+            mPreferenceGroup.setVisible(false);
+        } else {
+            mPreferenceGroup.setVisible(true);
+        }
+    }
+}
diff --git a/src/com/android/settings/wifi/slice/ContextualWifiSlice.java b/src/com/android/settings/wifi/slice/ContextualWifiSlice.java
index fa8c267..4a799d1 100644
--- a/src/com/android/settings/wifi/slice/ContextualWifiSlice.java
+++ b/src/com/android/settings/wifi/slice/ContextualWifiSlice.java
@@ -25,6 +25,7 @@
 import androidx.annotation.VisibleForTesting;
 import androidx.slice.Slice;
 
+import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.slices.CustomSliceRegistry;
 import com.android.settings.slices.CustomSliceable;
 
@@ -35,7 +36,9 @@
 
     private static final String TAG = "ContextualWifiSlice";
     @VisibleForTesting
-    boolean mPreviouslyDisplayed;
+    static long sActiveUiSession = -1000;
+    @VisibleForTesting
+    static boolean sPreviouslyDisplayed;
 
     public ContextualWifiSlice(Context context) {
         super(context);
@@ -48,13 +51,19 @@
 
     @Override
     public Slice getSlice() {
-        if (!mPreviouslyDisplayed && !TextUtils.equals(getActiveSSID(), WifiSsid.NONE)) {
+        final long currentUiSession = FeatureFactory.getFactory(mContext)
+                .getSlicesFeatureProvider().getUiSessionToken();
+        if (currentUiSession != sActiveUiSession) {
+            sActiveUiSession = currentUiSession;
+            sPreviouslyDisplayed = false;
+        }
+        if (!sPreviouslyDisplayed && !TextUtils.equals(getActiveSSID(), WifiSsid.NONE)) {
             Log.d(TAG, "Wifi is connected, no point showing any suggestion.");
             return null;
         }
-        // Set mPreviouslyDisplayed to true - we will show *something* on the screen. So we should
+        // Set sPreviouslyDisplayed to true - we will show *something* on the screen. So we should
         // keep showing this card to keep UI stable, even if wifi connects to a network later.
-        mPreviouslyDisplayed = true;
+        sPreviouslyDisplayed = true;
 
         return super.getSlice();
     }
diff --git a/src/com/android/settings/wifi/slice/WifiSlice.java b/src/com/android/settings/wifi/slice/WifiSlice.java
index 8d20f7f..1c44204 100644
--- a/src/com/android/settings/wifi/slice/WifiSlice.java
+++ b/src/com/android/settings/wifi/slice/WifiSlice.java
@@ -32,6 +32,7 @@
 import android.graphics.drawable.ColorDrawable;
 import android.graphics.drawable.Drawable;
 import android.net.NetworkInfo;
+import android.net.NetworkInfo.State;
 import android.net.Uri;
 import android.net.wifi.WifiInfo;
 import android.net.wifi.WifiManager;
@@ -198,7 +199,7 @@
 
     private IconCompat getEndIcon(AccessPoint accessPoint) {
         if (accessPoint.isActive()) {
-            return IconCompat.createWithResource(mContext, R.drawable.ic_settings_accent);
+            return null;
         } else if (accessPoint.getSecurity() != AccessPoint.SECURITY_NONE) {
             return IconCompat.createWithResource(mContext, R.drawable.ic_friction_lock_closed);
         } else if (accessPoint.isMetered()) {
@@ -355,7 +356,6 @@
 
         @Override
         public void onConnectedChanged() {
-            notifySliceChange();
         }
 
         @Override
@@ -370,10 +370,43 @@
             final List<AccessPoint> resultList = new ArrayList<>();
             for (AccessPoint ap : accessPoints) {
                 if (ap.isReachable()) {
-                    resultList.add(ap);
+                    resultList.add(clone(ap));
+                    if (resultList.size() >= DEFAULT_EXPANDED_ROW_COUNT) {
+                        break;
+                    }
                 }
             }
             updateResults(resultList);
         }
+
+        private AccessPoint clone(AccessPoint accessPoint) {
+            final Bundle savedState = new Bundle();
+            accessPoint.saveWifiState(savedState);
+            return new AccessPoint(mContext, savedState);
+        }
+
+        @Override
+        protected boolean areListsTheSame(List<AccessPoint> a, List<AccessPoint> b) {
+            if (!a.equals(b)) {
+                return false;
+            }
+
+            // compare access point states one by one
+            final int listSize = a.size();
+            for (int i = 0; i < listSize; i++) {
+                if (getState(a.get(i)) != getState(b.get(i))) {
+                    return false;
+                }
+            }
+            return true;
+        }
+
+        private State getState(AccessPoint accessPoint) {
+            final NetworkInfo networkInfo = accessPoint.getNetworkInfo();
+            if (networkInfo != null) {
+                return networkInfo.getState();
+            }
+            return null;
+        }
     }
 }
diff --git a/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java
index 2ae6b58..8f6d489 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java
@@ -43,9 +43,6 @@
         implements PreferenceControllerMixin, LifecycleObserver, OnStart, OnStop {
 
     private static final String WIFI_TETHER_SETTINGS = "wifi_tether";
-    private static final IntentFilter AIRPLANE_INTENT_FILTER = new IntentFilter(
-            Intent.ACTION_AIRPLANE_MODE_CHANGED);
-    private static final int ID_NULL = -1;
 
     private final ConnectivityManager mConnectivityManager;
     private final String[] mWifiRegexs;
@@ -103,8 +100,6 @@
     @Override
     public void onStart() {
         if (mPreference != null) {
-            mContext.registerReceiver(mReceiver, AIRPLANE_INTENT_FILTER);
-            clearSummaryForAirplaneMode();
             if (mWifiTetherSoftApManager != null) {
                 mWifiTetherSoftApManager.registerSoftApCallback();
             }
@@ -114,7 +109,6 @@
     @Override
     public void onStop() {
         if (mPreference != null) {
-            mContext.unregisterReceiver(mReceiver);
             if (mWifiTetherSoftApManager != null) {
                 mWifiTetherSoftApManager.unRegisterSoftApCallback();
             }
@@ -146,19 +140,6 @@
                 });
     }
 
-    //
-    // Everything below is copied from WifiApEnabler
-    //
-    private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            String action = intent.getAction();
-            if (Intent.ACTION_AIRPLANE_MODE_CHANGED.equals(action)) {
-                clearSummaryForAirplaneMode(R.string.wifi_hotspot_off_subtext);
-            }
-        }
-    };
-
     @VisibleForTesting
     void handleWifiApStateChanged(int state, int reason) {
         switch (state) {
@@ -174,7 +155,6 @@
                 break;
             case WifiManager.WIFI_AP_STATE_DISABLED:
                 mPreference.setSummary(R.string.wifi_hotspot_off_subtext);
-                clearSummaryForAirplaneMode();
                 break;
             default:
                 if (reason == WifiManager.SAP_START_FAILURE_NO_CHANNEL) {
@@ -182,7 +162,6 @@
                 } else {
                     mPreference.setSummary(R.string.wifi_error);
                 }
-                clearSummaryForAirplaneMode();
         }
     }
 
@@ -194,21 +173,4 @@
                 BidiFormatter.getInstance().unicodeWrap(
                         (wifiConfig == null) ? s : wifiConfig.SSID)));
     }
-
-    private void clearSummaryForAirplaneMode() {
-        clearSummaryForAirplaneMode(ID_NULL);
-    }
-
-    private void clearSummaryForAirplaneMode(int defaultId) {
-        boolean isAirplaneMode = Settings.Global.getInt(mContext.getContentResolver(),
-                Settings.Global.AIRPLANE_MODE_ON, 0) != 0;
-        if (isAirplaneMode) {
-            mPreference.setSummary(R.string.wifi_tether_disabled_by_airplane);
-        } else if (defaultId != ID_NULL){
-            mPreference.setSummary(defaultId);
-        }
-    }
-    //
-    // Everything above is copied from WifiApEnabler
-    //
 }
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceController.java
index eb6a123..10f3e56 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceController.java
@@ -17,13 +17,18 @@
 package com.android.settings.wifi.tether;
 
 import android.content.Context;
+import android.content.Intent;
 import android.net.wifi.WifiConfiguration;
+import android.util.Log;
+import android.view.View;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.EditTextPreference;
 import androidx.preference.Preference;
 
+import com.android.settings.R;
 import com.android.settings.widget.ValidatedEditTextPreference;
+import com.android.settings.wifi.dpp.WifiDppUtils;
 
 public class WifiTetherSSIDPreferenceController extends WifiTetherBasePreferenceController
         implements ValidatedEditTextPreference.Validator {
@@ -56,6 +61,23 @@
             mSSID = DEFAULT_SSID;
         }
         ((ValidatedEditTextPreference) mPreference).setValidator(this);
+
+        if (mWifiManager.isWifiApEnabled() && config != null) {
+            final Intent intent = WifiDppUtils.getHotspotConfiguratorIntentOrNull(mContext,
+                    mWifiManager, config);
+
+            if (intent == null) {
+                Log.e(TAG, "Invalid security to share hotspot");
+                ((WifiTetherSsidPreference) mPreference).setButtonVisible(false);
+            } else {
+                ((WifiTetherSsidPreference) mPreference).setButtonOnClickListener(
+                        view -> shareHotspotNetwork(intent));
+                ((WifiTetherSsidPreference) mPreference).setButtonVisible(true);
+            }
+        } else {
+            ((WifiTetherSsidPreference) mPreference).setButtonVisible(false);
+        }
+
         updateSsidDisplay((EditTextPreference) mPreference);
     }
 
@@ -80,4 +102,19 @@
         preference.setText(mSSID);
         preference.setSummary(mSSID);
     }
+
+    private void shareHotspotNetwork(Intent intent) {
+        final String title = mContext.getString(
+                R.string.lockpassword_confirm_your_pattern_header);
+        final String description = String.format(
+                mContext.getString(R.string.wifi_sharing_message), mSSID);
+
+        WifiDppUtils.showLockScreen(mContext, title, description,
+                () -> mContext.startActivity(intent));
+    }
+
+    @VisibleForTesting
+    boolean isQrCodeButtonAvailable() {
+        return ((WifiTetherSsidPreference) mPreference).isQrCodeButtonAvailable();
+    }
 }
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSsidPreference.java b/src/com/android/settings/wifi/tether/WifiTetherSsidPreference.java
new file mode 100644
index 0000000..64014d9
--- /dev/null
+++ b/src/com/android/settings/wifi/tether/WifiTetherSsidPreference.java
@@ -0,0 +1,115 @@
+/*
+ * 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.settings.wifi.tether;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.drawable.Drawable;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.View;
+import android.widget.ImageButton;
+
+import androidx.annotation.DrawableRes;
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.R;
+import com.android.settings.widget.ValidatedEditTextPreference;
+
+/**
+ * Support a QR code share button for {@code EditTextPreference} that supports input validation.
+ */
+public class WifiTetherSsidPreference extends ValidatedEditTextPreference {
+    private static final String TAG = "WifiTetherSsidPreference";
+
+    private ImageButton mImageButton;
+    private Drawable mButtonIcon;
+    private View.OnClickListener mClickListener;
+    private boolean mVisible;
+
+    public WifiTetherSsidPreference(Context context, AttributeSet attrs,
+            int defStyleAttr, int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+
+        initialize();
+    }
+
+    public WifiTetherSsidPreference(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+
+        initialize();
+    }
+
+    public WifiTetherSsidPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+
+        initialize();
+    }
+
+    public WifiTetherSsidPreference(Context context) {
+        super(context);
+
+        initialize();
+    }
+
+    private void initialize() {
+        setWidgetLayoutResource(R.layout.wifi_button_preference_widget);
+    }
+
+    @Override
+    public void onBindViewHolder(PreferenceViewHolder holder) {
+        super.onBindViewHolder(holder);
+
+        if (mImageButton == null) {
+            mImageButton = (ImageButton) holder.findViewById(R.id.button_icon);
+
+            mImageButton.setContentDescription(
+                    getContext().getString(R.string.wifi_dpp_share_hotspot));
+            setButtonIcon(R.drawable.ic_qrcode_24dp);
+            mImageButton.setImageDrawable(mButtonIcon);
+        }
+
+        if (mVisible) {
+            mImageButton.setOnClickListener(mClickListener);
+            mImageButton.setVisibility(View.VISIBLE);
+        } else {
+            mImageButton.setVisibility(View.GONE);
+        }
+    }
+
+    public void setButtonOnClickListener(View.OnClickListener listener) {
+        mClickListener = listener;
+    }
+
+    public void setButtonVisible(boolean visible) {
+        mVisible = visible;
+    }
+
+    private void setButtonIcon(@DrawableRes int iconResId) {
+        try {
+            mButtonIcon = getContext().getDrawable(iconResId);
+        } catch (Resources.NotFoundException exception) {
+            Log.e(TAG, "Resource does not exist: " + iconResId);
+        }
+    }
+
+    @VisibleForTesting
+    boolean isQrCodeButtonAvailable() {
+        return mVisible && mClickListener != null;
+    }
+}
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java b/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java
index 8d87b32..0f31d19 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java
@@ -61,7 +61,6 @@
 
     static {
         WIFI_INTENT_FILTER = new IntentFilter(WifiManager.WIFI_AP_STATE_CHANGED_ACTION);
-        WIFI_INTENT_FILTER.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);
     }
 
     WifiTetherSwitchBarController(Context context, SwitchWidgetController switchBar) {
@@ -119,8 +118,6 @@
                 final int state = intent.getIntExtra(
                         WifiManager.EXTRA_WIFI_AP_STATE, WifiManager.WIFI_AP_STATE_FAILED);
                 handleWifiApStateChanged(state);
-            } else if (Intent.ACTION_AIRPLANE_MODE_CHANGED.equals(action)) {
-                updateWifiSwitch();
             }
         }
     };
@@ -154,13 +151,7 @@
     }
 
     private void updateWifiSwitch() {
-        boolean isAirplaneMode = Settings.Global.getInt(mContext.getContentResolver(),
-                Settings.Global.AIRPLANE_MODE_ON, 0) != 0;
-        if (!isAirplaneMode) {
-            mSwitchBar.setEnabled(!mDataSaverBackend.isDataSaverEnabled());
-        } else {
-            mSwitchBar.setEnabled(false);
-        }
+        mSwitchBar.setEnabled(!mDataSaverBackend.isDataSaverEnabled());
     }
 
     @Override
diff --git a/tests/robotests/assets/grandfather_invalid_base_preference_controller_constructor b/tests/robotests/assets/grandfather_invalid_base_preference_controller_constructor
index ce03d95..675108d 100644
--- a/tests/robotests/assets/grandfather_invalid_base_preference_controller_constructor
+++ b/tests/robotests/assets/grandfather_invalid_base_preference_controller_constructor
@@ -6,6 +6,7 @@
 com.android.settings.bluetooth.BluetoothDeviceNamePreferenceController
 com.android.settings.bluetooth.BluetoothDeviceRenamePreferenceController
 com.android.settings.datausage.DataUsageSummaryPreferenceController
+com.android.settings.datausage.WifiDataUsageSummaryPreferenceController
 com.android.settings.fuelgauge.RestrictAppPreferenceController
 com.android.settings.fuelgauge.batterysaver.BatterySaverButtonPreferenceController
 com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController
diff --git a/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarPreferenceTest.java b/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarPreferenceTest.java
new file mode 100644
index 0000000..ba7bd2c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarPreferenceTest.java
@@ -0,0 +1,65 @@
+/*
+ * 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.settings.accessibility;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.LinearLayout;
+
+import androidx.preference.PreferenceViewHolder;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class BalanceSeekBarPreferenceTest {
+    private static final int BALANCE_CENTER_VALUE = 100;
+    private static final int BALANCE_MAX_VALUE = 200;
+
+    private Context mContext;
+    private AttributeSet mAttrs;
+    private PreferenceViewHolder mHolder;
+    private BalanceSeekBar mSeekBar;
+    private BalanceSeekBarPreference mSeekBarPreference;
+
+    @Before
+    public void setUp() {
+        mContext = RuntimeEnvironment.application;
+        mSeekBarPreference = new BalanceSeekBarPreference(mContext, mAttrs);
+        LayoutInflater inflater = LayoutInflater.from(mContext);
+        final View view =
+                inflater.inflate(mSeekBarPreference.getLayoutResource(),
+                        new LinearLayout(mContext), false);
+        mHolder = PreferenceViewHolder.createInstanceForTests(view);
+        mSeekBar = (BalanceSeekBar) view.findViewById(com.android.internal.R.id.seekbar);
+    }
+
+    @Test
+    public void seekBarPreferenceOnBindViewHolder_shouldInitSeekBarValue() {
+        mSeekBarPreference.onBindViewHolder(mHolder);
+
+        assertThat(mSeekBar.getMax()).isEqualTo(BALANCE_MAX_VALUE);
+        assertThat(mSeekBar.getProgress()).isEqualTo(BALANCE_CENTER_VALUE);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarTest.java b/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarTest.java
new file mode 100644
index 0000000..e0dc681
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarTest.java
@@ -0,0 +1,120 @@
+/*
+ * 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.settings.accessibility;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.widget.SeekBar;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class BalanceSeekBarTest {
+    // Fix the maximum process value to 200 for testing the BalanceSeekBar.
+    // It affects the SeekBar value of center(100) and snapThreshold(200 * SNAP_TO_PERCENTAGE).
+    private static final int MAX_PROGRESS_VALUE = 200;
+
+    private Context mContext;
+    private AttributeSet mAttrs;
+    private BalanceSeekBar mSeekBar;
+    private BalanceSeekBar.OnSeekBarChangeListener mProxySeekBarListener;
+    private SeekBar.OnSeekBarChangeListener mockSeekBarChangeListener;
+
+    @Before
+    public void setUp() {
+        mContext = RuntimeEnvironment.application;
+        mSeekBar = new BalanceSeekBar(mContext, mAttrs);
+        mProxySeekBarListener = mSeekBar.getProxySeekBarListener();
+        mockSeekBarChangeListener = mock(SeekBar.OnSeekBarChangeListener.class);
+        mSeekBar.setOnSeekBarChangeListener(mockSeekBarChangeListener);
+    }
+
+    @Test
+    public void onStartTrackingTouch_shouldInvokeMethod() {
+        mProxySeekBarListener.onStartTrackingTouch(mSeekBar);
+
+        verify(mockSeekBarChangeListener, times(1)).onStartTrackingTouch(mSeekBar);
+    }
+
+    @Test
+    public void onStopTrackingTouch_shouldInvokeMethod() {
+        mProxySeekBarListener.onStopTrackingTouch(mSeekBar);
+
+        verify(mockSeekBarChangeListener, times(1)).onStopTrackingTouch(mSeekBar);
+    }
+
+    @Test
+    public void onProgressChanged_shouldInvokeMethod() {
+        // Assign the test value of SeekBar progress
+        mProxySeekBarListener.onProgressChanged(mSeekBar, MAX_PROGRESS_VALUE, true);
+
+        verify(mockSeekBarChangeListener, times(1)).onProgressChanged(eq(mSeekBar),
+                eq(MAX_PROGRESS_VALUE), eq(true));
+    }
+
+    @Test
+    public void setMaxTest_shouldSetValue() {
+        mSeekBar.setMax(MAX_PROGRESS_VALUE);
+
+        assertThat(getBalanceSeekBarCenter(mSeekBar)).isEqualTo(MAX_PROGRESS_VALUE / 2);
+        assertThat(getBalanceSeekBarSnapThreshold(mSeekBar)).isEqualTo(
+                MAX_PROGRESS_VALUE * BalanceSeekBar.SNAP_TO_PERCENTAGE);
+    }
+
+    @Test
+    public void setProgressTest_shouldSnapToCenter() {
+        // Assign the test value of SeekBar progress within the threshold (94-106 in this case).
+        final int progressWithinThreshold = 102;
+        mSeekBar.setMax(MAX_PROGRESS_VALUE);
+        mSeekBar.setProgress(progressWithinThreshold + 10); //set progress which is over threshold.
+        mProxySeekBarListener.onProgressChanged(mSeekBar, progressWithinThreshold, true);
+
+        assertThat(mSeekBar.getProgress()).isEqualTo(getBalanceSeekBarCenter(mSeekBar));
+    }
+
+    @Test
+    public void setProgressTest_shouldMaintainInputValue() {
+        // Assign the test value of SeekBar progress without the threshold.
+        final int progressWithoutThreshold = 107;
+        mSeekBar.setMax(MAX_PROGRESS_VALUE);
+        mSeekBar.setProgress(progressWithoutThreshold);
+        mProxySeekBarListener.onProgressChanged(mSeekBar, progressWithoutThreshold, true);
+
+        assertThat(mSeekBar.getProgress()).isEqualTo(progressWithoutThreshold);
+    }
+
+    // method to get the center from BalanceSeekBar for testing setMax().
+    private int getBalanceSeekBarCenter(BalanceSeekBar seekBar) {
+        return seekBar.getMax() / 2;
+    }
+
+    // method to get the snapThreshold from BalanceSeekBar for testing setMax().
+    private float getBalanceSeekBarSnapThreshold(BalanceSeekBar seekBar) {
+        return seekBar.getMax() * BalanceSeekBar.SNAP_TO_PERCENTAGE;
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accounts/AvatarViewMixinTest.java b/tests/robotests/src/com/android/settings/accounts/AvatarViewMixinTest.java
index 6a2348c..8c75e33 100644
--- a/tests/robotests/src/com/android/settings/accounts/AvatarViewMixinTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/AvatarViewMixinTest.java
@@ -27,6 +27,7 @@
 import static org.mockito.Mockito.verify;
 
 import android.accounts.Account;
+import android.app.ActivityManager;
 import android.content.ContentProvider;
 import android.content.ContentResolver;
 import android.content.Context;
@@ -55,6 +56,7 @@
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
 import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowActivityManager;
 import org.robolectric.shadows.ShadowContentResolver;
 import org.robolectric.shadows.ShadowPackageManager;
 
@@ -101,6 +103,19 @@
     }
 
     @Test
+    public void onStart_lowRamDevice_doNothing() {
+        final AvatarViewMixin mixin = spy(new AvatarViewMixin(mActivity, mImageView));
+
+        final ShadowActivityManager activityManager =
+                Shadow.extract(mContext.getSystemService(ActivityManager.class));
+        activityManager.setIsLowRamDevice(true);
+
+        mixin.onStart();
+
+        verify(mixin, never()).hasAccount();
+    }
+
+    @Test
     @Config(qualifiers = "mcc999",
             shadows = {
                     BatteryFixSliceTest.ShadowBatteryStatsHelperLoader.class,
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java
index 7b9bc25..81d52d2 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java
@@ -25,11 +25,11 @@
 import static org.robolectric.Shadows.shadowOf;
 
 import android.app.Activity;
+import android.app.role.RoleControllerManager;
 import android.app.role.RoleManager;
 import android.content.Context;
 import android.content.Intent;
 import android.os.UserManager;
-import android.permission.PermissionControllerManager;
 
 import androidx.preference.Preference;
 
@@ -63,7 +63,7 @@
     @Mock
     private RoleManager mRoleManager;
     @Mock
-    private PermissionControllerManager mPermissionControllerManager;
+    private RoleControllerManager mRoleControllerManager;
     @Mock
     private Preference mPreference;
 
@@ -77,8 +77,7 @@
         MockitoAnnotations.initMocks(this);
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.ROLE_SERVICE, mRoleManager);
-        shadowApplication.setSystemService(Context.PERMISSION_CONTROLLER_SERVICE,
-                mPermissionControllerManager);
+        shadowApplication.setSystemService(Context.ROLE_CONTROLLER_SERVICE, mRoleControllerManager);
         mActivity = Robolectric.setupActivity(Activity.class);
         mShadowUserManager = shadowOf(mActivity.getSystemService(UserManager.class));
         mController = new TestRolePreferenceController(mActivity);
@@ -87,7 +86,7 @@
 
     @Test
     public void constructor_callsIsApplicationQualifiedForRole() {
-        verify(mPermissionControllerManager).isApplicationQualifiedForRole(eq(TEST_ROLE_NAME), eq(
+        verify(mRoleControllerManager).isApplicationQualifiedForRole(eq(TEST_ROLE_NAME), eq(
                 TEST_PACKAGE_NAME), any(Executor.class), any(Consumer.class));
     }
 
@@ -154,7 +153,7 @@
     private void setRoleIsVisible(boolean visible) {
         final ArgumentCaptor<Consumer<Boolean>> callbackCaptor = ArgumentCaptor.forClass(
                 Consumer.class);
-        verify(mPermissionControllerManager).isRoleVisible(eq(TEST_ROLE_NAME), any(Executor.class),
+        verify(mRoleControllerManager).isRoleVisible(eq(TEST_ROLE_NAME), any(Executor.class),
                 callbackCaptor.capture());
         final Consumer<Boolean> callback = callbackCaptor.getValue();
         callback.accept(visible);
@@ -163,7 +162,7 @@
     private void setApplicationIsQualifiedForRole(boolean qualified) {
         final ArgumentCaptor<Consumer<Boolean>> callbackCaptor = ArgumentCaptor.forClass(
                 Consumer.class);
-        verify(mPermissionControllerManager).isApplicationQualifiedForRole(eq(TEST_ROLE_NAME), eq(
+        verify(mRoleControllerManager).isApplicationQualifiedForRole(eq(TEST_ROLE_NAME), eq(
                 TEST_PACKAGE_NAME), any(Executor.class), callbackCaptor.capture());
         final Consumer<Boolean> callback = callbackCaptor.getValue();
         callback.accept(qualified);
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultBrowserShortcutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultBrowserShortcutPreferenceControllerTest.java
index c2a3b4a..5940d72 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultBrowserShortcutPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultBrowserShortcutPreferenceControllerTest.java
@@ -18,8 +18,8 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import android.app.role.RoleControllerManager;
 import android.content.Context;
-import android.permission.PermissionControllerManager;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -34,15 +34,15 @@
 public class DefaultBrowserShortcutPreferenceControllerTest {
 
     @Mock
-    private PermissionControllerManager mPermissionControllerManager;
+    private RoleControllerManager mRoleControllerManager;
 
     private DefaultBrowserShortcutPreferenceController mController;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        ShadowApplication.getInstance().setSystemService(Context.PERMISSION_CONTROLLER_SERVICE,
-                mPermissionControllerManager);
+        ShadowApplication.getInstance().setSystemService(Context.ROLE_CONTROLLER_SERVICE,
+                mRoleControllerManager);
         mController = new DefaultBrowserShortcutPreferenceController(RuntimeEnvironment.application,
                 "Package1");
     }
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultEmergencyShortcutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultEmergencyShortcutPreferenceControllerTest.java
index 8466092..8dcf530 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultEmergencyShortcutPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultEmergencyShortcutPreferenceControllerTest.java
@@ -18,8 +18,8 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import android.app.role.RoleControllerManager;
 import android.content.Context;
-import android.permission.PermissionControllerManager;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -34,15 +34,15 @@
 public class DefaultEmergencyShortcutPreferenceControllerTest {
 
     @Mock
-    private PermissionControllerManager mPermissionControllerManager;
+    private RoleControllerManager mRoleControllerManager;
 
     private DefaultEmergencyShortcutPreferenceController mController;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        ShadowApplication.getInstance().setSystemService(Context.PERMISSION_CONTROLLER_SERVICE,
-                mPermissionControllerManager);
+        ShadowApplication.getInstance().setSystemService(Context.ROLE_CONTROLLER_SERVICE,
+                mRoleControllerManager);
         mController = new DefaultEmergencyShortcutPreferenceController(
                 RuntimeEnvironment.application, "Package1");
     }
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultHomeShortcutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultHomeShortcutPreferenceControllerTest.java
index c5cae3a..7071fec 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultHomeShortcutPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultHomeShortcutPreferenceControllerTest.java
@@ -18,8 +18,8 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import android.app.role.RoleControllerManager;
 import android.content.Context;
-import android.permission.PermissionControllerManager;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -34,15 +34,15 @@
 public class DefaultHomeShortcutPreferenceControllerTest {
 
     @Mock
-    private PermissionControllerManager mPermissionControllerManager;
+    private RoleControllerManager mRoleControllerManager;
 
     private DefaultHomeShortcutPreferenceController mController;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        ShadowApplication.getInstance().setSystemService(Context.PERMISSION_CONTROLLER_SERVICE,
-                mPermissionControllerManager);
+        ShadowApplication.getInstance().setSystemService(Context.ROLE_CONTROLLER_SERVICE,
+                mRoleControllerManager);
         mController = new DefaultHomeShortcutPreferenceController(RuntimeEnvironment.application,
                 "Package1");
     }
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultPhoneShortcutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultPhoneShortcutPreferenceControllerTest.java
index 4e7a800..d1b6aeb 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultPhoneShortcutPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultPhoneShortcutPreferenceControllerTest.java
@@ -18,8 +18,8 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import android.app.role.RoleControllerManager;
 import android.content.Context;
-import android.permission.PermissionControllerManager;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -37,15 +37,15 @@
     private static final String PREFERENCE_KEY = "default_phone_app";
 
     @Mock
-    private PermissionControllerManager mPermissionControllerManager;
+    private RoleControllerManager mRoleControllerManager;
 
     private DefaultPhoneShortcutPreferenceController mController;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        ShadowApplication.getInstance().setSystemService(Context.PERMISSION_CONTROLLER_SERVICE,
-                mPermissionControllerManager);
+        ShadowApplication.getInstance().setSystemService(Context.ROLE_CONTROLLER_SERVICE,
+                mRoleControllerManager);
         mController = new DefaultPhoneShortcutPreferenceController(RuntimeEnvironment.application,
                 TEST_PACKAGE_NAME);
     }
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultSmsShortcutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultSmsShortcutPreferenceControllerTest.java
index b31a10d..8626d2d 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultSmsShortcutPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultSmsShortcutPreferenceControllerTest.java
@@ -18,8 +18,8 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import android.app.role.RoleControllerManager;
 import android.content.Context;
-import android.permission.PermissionControllerManager;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -37,15 +37,15 @@
     private static final String PREFERENCE_KEY = "default_sms_app";
 
     @Mock
-    private PermissionControllerManager mPermissionControllerManager;
+    private RoleControllerManager mRoleControllerManager;
 
     private DefaultSmsShortcutPreferenceController mController;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        ShadowApplication.getInstance().setSystemService(Context.PERMISSION_CONTROLLER_SERVICE,
-                mPermissionControllerManager);
+        ShadowApplication.getInstance().setSystemService(Context.ROLE_CONTROLLER_SERVICE,
+                mRoleControllerManager);
         mController = new DefaultSmsShortcutPreferenceController(RuntimeEnvironment.application,
                 TEST_PACKAGE_NAME);
     }
diff --git a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultEmergencyPickerTest.java b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultEmergencyPickerTest.java
index 5d97f52..b7b046c 100644
--- a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultEmergencyPickerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultEmergencyPickerTest.java
@@ -19,7 +19,6 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.eq;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
@@ -27,15 +26,10 @@
 
 import android.app.Activity;
 import android.app.role.RoleManager;
-import android.app.role.RoleManagerCallback;
 import android.content.Context;
 import android.content.pm.PackageManager;
-import android.os.AsyncTask;
-import android.os.Process;
 import android.os.UserHandle;
 import android.os.UserManager;
-import android.provider.Settings;
-import android.util.Log;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -50,6 +44,7 @@
 
 import java.util.Arrays;
 import java.util.concurrent.Executor;
+import java.util.function.Consumer;
 
 @RunWith(RobolectricTestRunner.class)
 public class DefaultEmergencyPickerTest {
@@ -90,7 +85,7 @@
             eq(0),
             any(UserHandle.class),
             any(Executor.class),
-            any(RoleManagerCallback.class));
+            any(Consumer.class));
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/ZenAccessControllerTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessControllerTest.java
similarity index 96%
rename from tests/robotests/src/com/android/settings/applications/specialaccess/ZenAccessControllerTest.java
rename to tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessControllerTest.java
index 5bce86c..bcb4bb3 100644
--- a/tests/robotests/src/com/android/settings/applications/specialaccess/ZenAccessControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessControllerTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.settings.applications.specialaccess;
+package com.android.settings.applications.specialaccess.zenaccess;
 
 import static com.google.common.truth.Truth.assertThat;
 
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragmentTest.java
index 2a8aa8e..3fa0e4d 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragmentTest.java
@@ -80,7 +80,7 @@
         Context context = spy(RuntimeEnvironment.application);
         when(context.getApplicationContext()).thenReturn(context);
         when(NfcAdapter.getDefaultAdapter(context)).thenReturn(mNfcAdapter);
-        when(mNfcAdapter.deviceSupportsNfcSecure()).thenReturn(true);
+        when(mNfcAdapter.isSecureNfcSupported()).thenReturn(true);
         final List<String> niks =
                 AdvancedConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER
                         .getNonIndexableKeys(context);
diff --git a/tests/robotests/src/com/android/settings/core/HideNonSystemOverlayMixinTest.java b/tests/robotests/src/com/android/settings/core/HideNonSystemOverlayMixinTest.java
new file mode 100644
index 0000000..579cba0
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/core/HideNonSystemOverlayMixinTest.java
@@ -0,0 +1,78 @@
+/*
+ * 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.settings.core;
+
+import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.os.Bundle;
+import android.view.WindowManager;
+
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.android.settings.R;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.Robolectric;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.android.controller.ActivityController;
+
+@RunWith(RobolectricTestRunner.class)
+public class HideNonSystemOverlayMixinTest {
+
+    private ActivityController<TestActivity> mActivityController;
+
+    @Before
+    public void setUp() {
+        RuntimeEnvironment.application.setTheme(R.style.Theme_AppCompat);
+        mActivityController = Robolectric.buildActivity(TestActivity.class);
+    }
+
+    @Test
+    public void startActivity_shouldHideNonSystemOverlay() {
+        mActivityController.setup();
+        TestActivity activity = mActivityController.get();
+
+        // Activity start: HIDE_NON_SYSTEM_OVERLAY should be set.
+        final WindowManager.LayoutParams attrs = activity.getWindow().getAttributes();
+        assertThat(attrs.privateFlags & SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS)
+                .isNotEqualTo(0);
+    }
+
+    @Test
+    public void stopActivity_shouldUnhideNonSystemOverlay() {
+        mActivityController.setup().stop();
+        TestActivity activity = mActivityController.get();
+
+        final WindowManager.LayoutParams attrs = activity.getWindow().getAttributes();
+        assertThat(attrs.privateFlags & SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS)
+                .isEqualTo(0);
+    }
+
+    public static class TestActivity extends AppCompatActivity {
+        @Override
+        protected void onCreate(@Nullable Bundle savedInstanceState) {
+            super.onCreate(savedInstanceState);
+            getLifecycle().addObserver(new HideNonSystemOverlayMixin(this));
+        }
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
index 4347637..eab3dde 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
@@ -164,7 +164,8 @@
         verify(mSummaryPreference).setUsageInfo(info.cycleEnd, now - UPDATE_BACKOFF_MS,
                 CARRIER_NAME, 1 /* numPlans */, intent);
         verify(mSummaryPreference).setChartEnabled(true);
-        verify(mSummaryPreference).setWifiMode(false, null);
+        verify(mSummaryPreference).setWifiMode(false /* isWifiMode */, null /* usagePeriod */,
+                false /* isSingleWifi */);
     }
 
     @Test
@@ -188,7 +189,8 @@
         verify(mSummaryPreference).setUsageInfo(info.cycleEnd, now - UPDATE_BACKOFF_MS,
                 CARRIER_NAME, 0 /* numPlans */, intent);
         verify(mSummaryPreference).setChartEnabled(true);
-        verify(mSummaryPreference).setWifiMode(false, null);
+        verify(mSummaryPreference).setWifiMode(false /* isWifiMode */, null /* usagePeriod */,
+                false /* isSingleWifi */);
     }
 
     @Test
@@ -214,7 +216,8 @@
                 0 /* numPlans */,
                 null /* launchIntent */);
         verify(mSummaryPreference).setChartEnabled(true);
-        verify(mSummaryPreference).setWifiMode(false, null);
+        verify(mSummaryPreference).setWifiMode(false /* isWifiMode */, null /* usagePeriod */,
+                false /* isSingleWifi */);
     }
 
     @Test
@@ -240,7 +243,8 @@
                 0 /* numPlans */,
                 null /* launchIntent */);
         verify(mSummaryPreference).setChartEnabled(false);
-        verify(mSummaryPreference).setWifiMode(false, null);
+        verify(mSummaryPreference).setWifiMode(false /* isWifiMode */, null /* usagePeriod */,
+                false /* isSingleWifi */);
     }
 
     @Test
@@ -321,7 +325,8 @@
         verify(mSummaryPreference).setLimitInfo(captor.capture());
         CharSequence value = captor.getValue();
         assertThat(value.toString()).isEqualTo("1.00 MB data warning / 1.00 MB data limit");
-        verify(mSummaryPreference).setWifiMode(false, null);
+        verify(mSummaryPreference).setWifiMode(false /* isWifiMode */, null /* usagePeriod */,
+                false /* isSingleWifi */);
     }
 
     @Test
@@ -340,7 +345,8 @@
         when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_ABSENT);
         mController.updateState(mSummaryPreference);
 
-        verify(mSummaryPreference).setWifiMode(true, info.period);
+        verify(mSummaryPreference).setWifiMode(true /* isWifiMode */, info.period /* usagePeriod */,
+                false /* isSingleWifi */);
         verify(mSummaryPreference).setLimitInfo(null);
         verify(mSummaryPreference).setUsageNumbers(info.usageLevel, -1L, true);
         verify(mSummaryPreference).setChartEnabled(false);
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
index 525b82e..35e6b1d 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
@@ -488,7 +488,7 @@
                 new Intent());
         mSummaryPreference.setUsageNumbers(1000000L, -1L, true);
         final String cycleText = "The quick fox";
-        mSummaryPreference.setWifiMode(true, cycleText);
+        mSummaryPreference.setWifiMode(true /* isWifiMode */, cycleText, false /* isSingleWifi */);
         doReturn(200L).when(mSummaryPreference).getHistoricalUsageLevel();
 
         bindViewHolder();
@@ -524,7 +524,8 @@
     @Test
     public void testSetWifiMode_noUsageInfo_shouldDisableLaunchButton() {
         mSummaryPreference = spy(mSummaryPreference);
-        mSummaryPreference.setWifiMode(true, "Test cycle text");
+        mSummaryPreference.setWifiMode(true /* isWifiMode */, "Test cycle text",
+                false /* isSingleWifi */);
         doReturn(0L).when(mSummaryPreference).getHistoricalUsageLevel();
 
         bindViewHolder();
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java
index 8fae45c..18ddd8a 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java
@@ -16,18 +16,14 @@
 
 package com.android.settings.deviceinfo;
 
-import static android.content.Context.CLIPBOARD_SERVICE;
-
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Answers.RETURNS_DEEP_STUBS;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 
 import android.app.Activity;
-import android.content.ClipboardManager;
 import android.content.Context;
 import android.os.Process;
 import android.os.UserManager;
@@ -35,7 +31,6 @@
 
 import androidx.lifecycle.LifecycleOwner;
 import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
 
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.core.InstrumentedPreferenceFragment;
@@ -62,13 +57,8 @@
 public class BuildNumberPreferenceControllerTest {
 
     private static final String KEY_BUILD_NUMBER = "build_number";
-
-    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
-    private Activity mActivity;
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private InstrumentedPreferenceFragment mFragment;
-    @Mock(answer = RETURNS_DEEP_STUBS)
-    private PreferenceScreen mScreen;
 
     private ShadowUserManager mShadowUserManager;
 
@@ -200,14 +190,4 @@
         assertThat(activityResultHandled).isTrue();
         assertThat(DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(mContext)).isTrue();
     }
-
-    @Test
-    public void copy_shouldCopyBuildNumberToClipboard() {
-        mController.copy();
-
-        final ClipboardManager clipboard = (ClipboardManager) mContext.getSystemService(
-                CLIPBOARD_SERVICE);
-        final CharSequence data = clipboard.getPrimaryClip().getItemAt(0).getText();
-        assertThat(data.toString()).isEqualTo(mController.getSummary());
-    }
 }
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceControllerTest.java
new file mode 100644
index 0000000..3784f08
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceControllerTest.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.settings.deviceinfo.firmwareversion;
+
+import static android.content.Context.CLIPBOARD_SERVICE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.ClipboardManager;
+import android.content.Context;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class SimpleBuildNumberPreferenceControllerTest {
+
+    private SimpleBuildNumberPreferenceController mController;
+    private Context mContext;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+
+        mController = new SimpleBuildNumberPreferenceController(mContext, "test");
+    }
+
+    @Test
+    public void copy_shouldCopyBuildNumberToClipboard() {
+        mController.copy();
+
+        final ClipboardManager clipboard = (ClipboardManager) mContext.getSystemService(
+                CLIPBOARD_SERVICE);
+        final CharSequence data = clipboard.getPrimaryClip().getItemAt(0).getText();
+        assertThat(data.toString()).isEqualTo(mController.getSummary());
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
index 0103031..d5e0ed8 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
@@ -65,7 +65,9 @@
     private static final String STATUS_NOT_CHARGING = "Not charging";
     private static final long REMAINING_TIME_NULL = -1;
     private static final long REMAINING_TIME = 2;
+    // Strings are defined in frameworks/base/packages/SettingsLib/res/values/strings.xml
     private static final String ENHANCED_STRING_SUFFIX = "based on your usage";
+    private static final String EXTEND_PREFIX = "Extend battery life past";
     private static final long TEST_CHARGE_TIME_REMAINING = TimeUnit.MINUTES.toMicros(1);
     private static final String TEST_CHARGE_TIME_REMAINING_STRINGIFIED =
             "1 min left until fully charged";
@@ -148,8 +150,10 @@
 
         // We only add special mention for the long string
         assertThat(info.remainingLabel.toString()).contains(ENHANCED_STRING_SUFFIX);
+        assertThat(info.suggestionLabel).contains(EXTEND_PREFIX);
         // shortened string should not have extra text
         assertThat(info2.remainingLabel.toString()).doesNotContain(ENHANCED_STRING_SUFFIX);
+        assertThat(info2.suggestionLabel).contains(EXTEND_PREFIX);
     }
 
     @Test
@@ -169,6 +173,19 @@
                 mContext.getString(R.string.power_remaining_duration_only_shutdown_imminent));
         assertThat(info2.remainingLabel.toString()).isEqualTo(
                 mContext.getString(R.string.power_remaining_duration_only_shutdown_imminent));
+        assertThat(info2.suggestionLabel).contains(EXTEND_PREFIX);
+    }
+
+    @Test
+    public void getBatteryInfo_MoreThanOneDay_suggestionLabelIsCorrectString() {
+        Estimate estimate = new Estimate(Duration.ofDays(3).toMillis(),
+                true /* isBasedOnUsage */,
+                1000 /* averageDischargeTime */);
+        BatteryInfo info = BatteryInfo.getBatteryInfo(mContext, mDisChargingBatteryBroadcast,
+                mBatteryStats, estimate, SystemClock.elapsedRealtime() * 1000,
+                false /* shortString */);
+
+        assertThat(info.suggestionLabel).doesNotContain(EXTEND_PREFIX);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java
index 7999dc8..3509330 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java
@@ -94,13 +94,13 @@
     public void setChecked_on_setPowerSaveMode() {
         mController.setChecked(true);
 
-        verify(mPowerManager).setPowerSaveMode(true);
+        verify(mPowerManager).setPowerSaveModeEnabled(true);
     }
 
     @Test
     public void setChecked_off_unsetPowerSaveMode() {
         mController.setChecked(false);
 
-        verify(mPowerManager).setPowerSaveMode(false);
+        verify(mPowerManager).setPowerSaveModeEnabled(false);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceControllerTest.java
new file mode 100644
index 0000000..a441864
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceControllerTest.java
@@ -0,0 +1,63 @@
+/*
+ * 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.settings.fuelgauge.batterysaver;
+
+import static com.android.settings.fuelgauge.batterysaver.BatterySaverStickyPreferenceController.LOW_POWER_STICKY_AUTO_DISABLE_ENABLED;
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.provider.Settings;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class BatterySaverStickyPreferenceControllerTest {
+
+    private static final String PREF_KEY = "battery_saver_sticky";
+
+    private Context mContext;
+    private BatterySaverStickyPreferenceController mController;
+
+    @Before
+    public void setup() {
+        mContext = RuntimeEnvironment.application;
+        mController = new BatterySaverStickyPreferenceController(mContext, PREF_KEY);
+    }
+
+    private int getAutoDisableSetting() {
+        return Settings.System.getInt(mContext.getContentResolver(),
+                LOW_POWER_STICKY_AUTO_DISABLE_ENABLED,
+                1);
+    }
+
+    @Test
+    public void testOnPreferenceChange_turnOnKeepActive_autoDisableOff() {
+        mController.onPreferenceChange(null, true);
+        final int isOn = getAutoDisableSetting();
+        assertThat(isOn).isEqualTo(0);
+    }
+
+    @Test
+    public void testOnPreferenceChange_TurnOffKeepActive_autoDisableOff() {
+        mController.onPreferenceChange(null, false);
+        final int isOn = getAutoDisableSetting();
+        assertThat(isOn).isEqualTo(1);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/SystemNavigationEdgeToEdgePreferenceControllerTest.java
similarity index 61%
copy from tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java
copy to tests/robotests/src/com/android/settings/gestures/SystemNavigationEdgeToEdgePreferenceControllerTest.java
index e98bdc8..5e6cd55 100644
--- a/tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/SystemNavigationEdgeToEdgePreferenceControllerTest.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,17 +16,31 @@
 
 package com.android.settings.gestures;
 
+import static com.android.settings.gestures.SystemNavigationEdgeToEdgePreferenceController.PREF_KEY_EDGE_TO_EDGE;
+import static com.android.settings.gestures.SystemNavigationLegacyPreferenceController.PREF_KEY_LEGACY;
+import static com.android.settings.gestures.SystemNavigationSwipeUpPreferenceController.PREF_KEY_SWIPE_UP;
+
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.verify;
+
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.ResolveInfo;
 import android.content.pm.ServiceInfo;
+import android.provider.Settings;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
 
 import com.android.internal.R;
 import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settings.widget.RadioButtonPreference;
 
 import org.junit.After;
 import org.junit.Before;
@@ -40,14 +54,14 @@
 
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = SettingsShadowResources.class)
-public class SwipeUpPreferenceControllerTest {
+public class SystemNavigationEdgeToEdgePreferenceControllerTest {
 
     private Context mContext;
     private ShadowPackageManager mPackageManager;
-    private SwipeUpPreferenceController mController;
+
+    private SystemNavigationEdgeToEdgePreferenceController mController;
 
     private static final String ACTION_QUICKSTEP = "android.intent.action.QUICKSTEP_SERVICE";
-    private static final String KEY_SWIPE_UP = "gesture_swipe_up";
 
     @Before
     public void setUp() {
@@ -56,8 +70,12 @@
         SettingsShadowResources.overrideResource(R.bool.config_swipe_up_gesture_default, true);
 
         mContext = RuntimeEnvironment.application;
+        Settings.Global.putInt(mContext.getContentResolver(), "prototype_enabled", 1);
+
         mPackageManager = Shadows.shadowOf(mContext.getPackageManager());
-        mController = new SwipeUpPreferenceController(mContext, KEY_SWIPE_UP);
+
+        mController = new SystemNavigationEdgeToEdgePreferenceController(mContext,
+                PREF_KEY_EDGE_TO_EDGE);
     }
 
     @After
@@ -80,7 +98,8 @@
         info.serviceInfo.applicationInfo.flags = ApplicationInfo.FLAG_SYSTEM;
         mPackageManager.addResolveInfoForIntent(quickStepIntent, info);
 
-        assertThat(SwipeUpPreferenceController.isGestureAvailable(mContext)).isTrue();
+        assertThat(SystemNavigationEdgeToEdgePreferenceController.isGestureAvailable(mContext))
+                .isTrue();
     }
 
     @Test
@@ -94,12 +113,14 @@
                 .setPackage(recentsComponentName.getPackageName());
         mPackageManager.addResolveInfoForIntent(quickStepIntent, new ResolveInfo());
 
-        assertThat(SwipeUpPreferenceController.isGestureAvailable(mContext)).isFalse();
+        assertThat(SystemNavigationEdgeToEdgePreferenceController.isGestureAvailable(mContext))
+                .isFalse();
     }
 
     @Test
     public void testIsGestureAvailable_noMatchingServiceExists_shouldReturnFalse() {
-        assertThat(SwipeUpPreferenceController.isGestureAvailable(mContext)).isFalse();
+        assertThat(SystemNavigationEdgeToEdgePreferenceController.isGestureAvailable(mContext))
+                .isFalse();
     }
 
     @Test
@@ -109,35 +130,45 @@
 
     @Test
     public void testIsChecked_defaultIsFalse_shouldReturnFalse() {
-        SettingsShadowResources.overrideResource(R.bool.config_swipe_up_gesture_default, false);
+        Settings.Global.putInt(mContext.getContentResolver(), "prototype_enabled", 0);
         assertThat(mController.isChecked()).isFalse();
     }
 
     @Test
-    public void testIsChecked_setCheckedTrue_shouldReturnTrue() {
+    public void testIsChecked_radioButtonClicked_shouldReturnTrue() {
         // Set the setting to be enabled.
-        mController.setChecked(true);
+        mController.onRadioButtonClicked(null);
         assertThat(mController.isChecked()).isTrue();
     }
 
     @Test
-    public void testIsChecked_setCheckedFalse_shouldReturnFalse() {
-        // Set the setting to be disabled.
-        mController.setChecked(false);
-        assertThat(mController.isChecked()).isFalse();
+    public void testOnRadioButtonClicked_setsCorrectRadioButtonChecked() {
+        RadioButtonPreference radioLegacy = mock(RadioButtonPreference.class);
+        RadioButtonPreference radioSwipeUp = mock(RadioButtonPreference.class);
+        RadioButtonPreference radioEdgeToEdge = mock(RadioButtonPreference.class);
+        PreferenceScreen screen = mock(PreferenceScreen.class);
+
+        when(screen.findPreference(PREF_KEY_LEGACY)).thenReturn(radioLegacy);
+        when(screen.findPreference(PREF_KEY_SWIPE_UP)).thenReturn(radioSwipeUp);
+        when(screen.findPreference(PREF_KEY_EDGE_TO_EDGE)).thenReturn(radioEdgeToEdge);
+
+        mController.displayPreference(screen);
+        mController.onRadioButtonClicked(radioEdgeToEdge);
+
+        verify(radioLegacy, times(1)).setChecked(false);
+        verify(radioSwipeUp, times(1)).setChecked(false);
+        verify(radioEdgeToEdge, times(1)).setChecked(true);
     }
 
     @Test
     public void isSliceableCorrectKey_returnsTrue() {
-        final SwipeUpPreferenceController controller =
-                new SwipeUpPreferenceController(mContext, "gesture_swipe_up");
-        assertThat(controller.isSliceable()).isTrue();
+        assertThat(mController.isSliceable()).isTrue();
     }
 
     @Test
     public void isSliceableIncorrectKey_returnsFalse() {
-        final SwipeUpPreferenceController controller =
-                new SwipeUpPreferenceController(mContext, "bad_key");
+        final SystemNavigationEdgeToEdgePreferenceController controller =
+                new SystemNavigationEdgeToEdgePreferenceController(mContext, "bad_key");
         assertThat(controller.isSliceable()).isFalse();
     }
 }
diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/SystemNavigationLegacyPreferenceControllerTest.java
similarity index 63%
copy from tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java
copy to tests/robotests/src/com/android/settings/gestures/SystemNavigationLegacyPreferenceControllerTest.java
index e98bdc8..fe0a061 100644
--- a/tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/SystemNavigationLegacyPreferenceControllerTest.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,8 +16,17 @@
 
 package com.android.settings.gestures;
 
+import static com.android.settings.gestures.SystemNavigationEdgeToEdgePreferenceController.PREF_KEY_EDGE_TO_EDGE;
+import static com.android.settings.gestures.SystemNavigationLegacyPreferenceController.PREF_KEY_LEGACY;
+import static com.android.settings.gestures.SystemNavigationSwipeUpPreferenceController.PREF_KEY_SWIPE_UP;
+
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.verify;
+
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
@@ -25,8 +34,12 @@
 import android.content.pm.ResolveInfo;
 import android.content.pm.ServiceInfo;
 
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
 import com.android.internal.R;
 import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settings.widget.RadioButtonPreference;
 
 import org.junit.After;
 import org.junit.Before;
@@ -40,24 +53,25 @@
 
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = SettingsShadowResources.class)
-public class SwipeUpPreferenceControllerTest {
+public class SystemNavigationLegacyPreferenceControllerTest {
 
     private Context mContext;
     private ShadowPackageManager mPackageManager;
-    private SwipeUpPreferenceController mController;
+
+    private SystemNavigationLegacyPreferenceController mController;
 
     private static final String ACTION_QUICKSTEP = "android.intent.action.QUICKSTEP_SERVICE";
-    private static final String KEY_SWIPE_UP = "gesture_swipe_up";
 
     @Before
     public void setUp() {
         SettingsShadowResources.overrideResource(R.bool.config_swipe_up_gesture_setting_available,
                 true);
-        SettingsShadowResources.overrideResource(R.bool.config_swipe_up_gesture_default, true);
+        SettingsShadowResources.overrideResource(R.bool.config_swipe_up_gesture_default, false);
 
         mContext = RuntimeEnvironment.application;
         mPackageManager = Shadows.shadowOf(mContext.getPackageManager());
-        mController = new SwipeUpPreferenceController(mContext, KEY_SWIPE_UP);
+
+        mController = new SystemNavigationLegacyPreferenceController(mContext, PREF_KEY_LEGACY);
     }
 
     @After
@@ -80,7 +94,8 @@
         info.serviceInfo.applicationInfo.flags = ApplicationInfo.FLAG_SYSTEM;
         mPackageManager.addResolveInfoForIntent(quickStepIntent, info);
 
-        assertThat(SwipeUpPreferenceController.isGestureAvailable(mContext)).isTrue();
+        assertThat(SystemNavigationLegacyPreferenceController.isGestureAvailable(mContext))
+                .isTrue();
     }
 
     @Test
@@ -94,12 +109,14 @@
                 .setPackage(recentsComponentName.getPackageName());
         mPackageManager.addResolveInfoForIntent(quickStepIntent, new ResolveInfo());
 
-        assertThat(SwipeUpPreferenceController.isGestureAvailable(mContext)).isFalse();
+        assertThat(
+                SystemNavigationLegacyPreferenceController.isGestureAvailable(mContext)).isFalse();
     }
 
     @Test
     public void testIsGestureAvailable_noMatchingServiceExists_shouldReturnFalse() {
-        assertThat(SwipeUpPreferenceController.isGestureAvailable(mContext)).isFalse();
+        assertThat(
+                SystemNavigationLegacyPreferenceController.isGestureAvailable(mContext)).isFalse();
     }
 
     @Test
@@ -109,35 +126,46 @@
 
     @Test
     public void testIsChecked_defaultIsFalse_shouldReturnFalse() {
-        SettingsShadowResources.overrideResource(R.bool.config_swipe_up_gesture_default, false);
+        // Turn on the Swipe Up mode (2-buttons)
+        SettingsShadowResources.overrideResource(R.bool.config_swipe_up_gesture_default, true);
         assertThat(mController.isChecked()).isFalse();
     }
 
     @Test
-    public void testIsChecked_setCheckedTrue_shouldReturnTrue() {
+    public void testIsChecked_radioButtonClicked_shouldReturnTrue() {
         // Set the setting to be enabled.
-        mController.setChecked(true);
+        mController.onRadioButtonClicked(null);
         assertThat(mController.isChecked()).isTrue();
     }
 
     @Test
-    public void testIsChecked_setCheckedFalse_shouldReturnFalse() {
-        // Set the setting to be disabled.
-        mController.setChecked(false);
-        assertThat(mController.isChecked()).isFalse();
+    public void testOnRadioButtonClicked_setsCorrectRadioButtonChecked() {
+        RadioButtonPreference radioLegacy = mock(RadioButtonPreference.class);
+        RadioButtonPreference radioSwipeUp = mock(RadioButtonPreference.class);
+        RadioButtonPreference radioEdgeToEdge = mock(RadioButtonPreference.class);
+        PreferenceScreen screen = mock(PreferenceScreen.class);
+
+        when(screen.findPreference(PREF_KEY_LEGACY)).thenReturn(radioLegacy);
+        when(screen.findPreference(PREF_KEY_SWIPE_UP)).thenReturn(radioSwipeUp);
+        when(screen.findPreference(PREF_KEY_EDGE_TO_EDGE)).thenReturn(radioEdgeToEdge);
+
+        mController.displayPreference(screen);
+        mController.onRadioButtonClicked(radioLegacy);
+
+        verify(radioLegacy, times(1)).setChecked(true);
+        verify(radioSwipeUp, times(1)).setChecked(false);
+        verify(radioEdgeToEdge, times(1)).setChecked(false);
     }
 
     @Test
     public void isSliceableCorrectKey_returnsTrue() {
-        final SwipeUpPreferenceController controller =
-                new SwipeUpPreferenceController(mContext, "gesture_swipe_up");
-        assertThat(controller.isSliceable()).isTrue();
+        assertThat(mController.isSliceable()).isTrue();
     }
 
     @Test
     public void isSliceableIncorrectKey_returnsFalse() {
-        final SwipeUpPreferenceController controller =
-                new SwipeUpPreferenceController(mContext, "bad_key");
+        final SystemNavigationLegacyPreferenceController controller =
+                new SystemNavigationLegacyPreferenceController(mContext, "bad_key");
         assertThat(controller.isSliceable()).isFalse();
     }
 }
diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/SystemNavigationSwipeUpPreferenceControllerTest.java
similarity index 63%
rename from tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java
rename to tests/robotests/src/com/android/settings/gestures/SystemNavigationSwipeUpPreferenceControllerTest.java
index e98bdc8..97b4762 100644
--- a/tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/SystemNavigationSwipeUpPreferenceControllerTest.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,8 +16,17 @@
 
 package com.android.settings.gestures;
 
+import static com.android.settings.gestures.SystemNavigationEdgeToEdgePreferenceController.PREF_KEY_EDGE_TO_EDGE;
+import static com.android.settings.gestures.SystemNavigationLegacyPreferenceController.PREF_KEY_LEGACY;
+import static com.android.settings.gestures.SystemNavigationSwipeUpPreferenceController.PREF_KEY_SWIPE_UP;
+
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.verify;
+
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
@@ -25,8 +34,12 @@
 import android.content.pm.ResolveInfo;
 import android.content.pm.ServiceInfo;
 
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
 import com.android.internal.R;
 import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settings.widget.RadioButtonPreference;
 
 import org.junit.After;
 import org.junit.Before;
@@ -40,14 +53,14 @@
 
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = SettingsShadowResources.class)
-public class SwipeUpPreferenceControllerTest {
+public class SystemNavigationSwipeUpPreferenceControllerTest {
 
     private Context mContext;
     private ShadowPackageManager mPackageManager;
-    private SwipeUpPreferenceController mController;
+
+    private SystemNavigationSwipeUpPreferenceController mController;
 
     private static final String ACTION_QUICKSTEP = "android.intent.action.QUICKSTEP_SERVICE";
-    private static final String KEY_SWIPE_UP = "gesture_swipe_up";
 
     @Before
     public void setUp() {
@@ -57,7 +70,8 @@
 
         mContext = RuntimeEnvironment.application;
         mPackageManager = Shadows.shadowOf(mContext.getPackageManager());
-        mController = new SwipeUpPreferenceController(mContext, KEY_SWIPE_UP);
+
+        mController = new SystemNavigationSwipeUpPreferenceController(mContext, PREF_KEY_SWIPE_UP);
     }
 
     @After
@@ -80,7 +94,8 @@
         info.serviceInfo.applicationInfo.flags = ApplicationInfo.FLAG_SYSTEM;
         mPackageManager.addResolveInfoForIntent(quickStepIntent, info);
 
-        assertThat(SwipeUpPreferenceController.isGestureAvailable(mContext)).isTrue();
+        assertThat(SystemNavigationSwipeUpPreferenceController.isGestureAvailable(mContext))
+                .isTrue();
     }
 
     @Test
@@ -94,12 +109,14 @@
                 .setPackage(recentsComponentName.getPackageName());
         mPackageManager.addResolveInfoForIntent(quickStepIntent, new ResolveInfo());
 
-        assertThat(SwipeUpPreferenceController.isGestureAvailable(mContext)).isFalse();
+        assertThat(SystemNavigationSwipeUpPreferenceController.isGestureAvailable(mContext))
+                .isFalse();
     }
 
     @Test
     public void testIsGestureAvailable_noMatchingServiceExists_shouldReturnFalse() {
-        assertThat(SwipeUpPreferenceController.isGestureAvailable(mContext)).isFalse();
+        assertThat(SystemNavigationSwipeUpPreferenceController.isGestureAvailable(mContext))
+                .isFalse();
     }
 
     @Test
@@ -114,30 +131,40 @@
     }
 
     @Test
-    public void testIsChecked_setCheckedTrue_shouldReturnTrue() {
+    public void testIsChecked_radioButtonClicked_shouldReturnTrue() {
         // Set the setting to be enabled.
-        mController.setChecked(true);
+        mController.onRadioButtonClicked(null);
         assertThat(mController.isChecked()).isTrue();
     }
 
     @Test
-    public void testIsChecked_setCheckedFalse_shouldReturnFalse() {
-        // Set the setting to be disabled.
-        mController.setChecked(false);
-        assertThat(mController.isChecked()).isFalse();
+    public void testOnRadioButtonClicked_setsCorrectRadioButtonChecked() {
+        RadioButtonPreference radioLegacy = mock(RadioButtonPreference.class);
+        RadioButtonPreference radioSwipeUp = mock(RadioButtonPreference.class);
+        RadioButtonPreference radioEdgeToEdge = mock(RadioButtonPreference.class);
+        PreferenceScreen screen = mock(PreferenceScreen.class);
+
+        when(screen.findPreference(PREF_KEY_LEGACY)).thenReturn(radioLegacy);
+        when(screen.findPreference(PREF_KEY_SWIPE_UP)).thenReturn(radioSwipeUp);
+        when(screen.findPreference(PREF_KEY_EDGE_TO_EDGE)).thenReturn(radioEdgeToEdge);
+
+        mController.displayPreference(screen);
+        mController.onRadioButtonClicked(radioSwipeUp);
+
+        verify(radioLegacy, times(1)).setChecked(false);
+        verify(radioSwipeUp, times(1)).setChecked(true);
+        verify(radioEdgeToEdge, times(1)).setChecked(false);
     }
 
     @Test
     public void isSliceableCorrectKey_returnsTrue() {
-        final SwipeUpPreferenceController controller =
-                new SwipeUpPreferenceController(mContext, "gesture_swipe_up");
-        assertThat(controller.isSliceable()).isTrue();
+        assertThat(mController.isSliceable()).isTrue();
     }
 
     @Test
     public void isSliceableIncorrectKey_returnsFalse() {
-        final SwipeUpPreferenceController controller =
-                new SwipeUpPreferenceController(mContext, "bad_key");
+        final SystemNavigationSwipeUpPreferenceController controller =
+                new SystemNavigationSwipeUpPreferenceController(mContext, "bad_key");
         assertThat(controller.isSliceable()).isFalse();
     }
 }
diff --git a/tests/robotests/src/com/android/settings/gestures/WakeScreenGestureSettingsTest.java b/tests/robotests/src/com/android/settings/gestures/WakeScreenGestureSettingsTest.java
deleted file mode 100644
index f1d2fcc..0000000
--- a/tests/robotests/src/com/android/settings/gestures/WakeScreenGestureSettingsTest.java
+++ /dev/null
@@ -1,50 +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.settings.gestures;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.provider.SearchIndexableResource;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-public class WakeScreenGestureSettingsTest {
-
-    private WakeScreenGestureSettings mSettings;
-
-    @Before
-    public void setUp() {
-        mSettings = new WakeScreenGestureSettings();
-    }
-
-    @Test
-    public void testSearchIndexProvider_shouldIndexResource() {
-        final List<SearchIndexableResource> indexRes =
-                WakeScreenGestureSettings.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
-                        RuntimeEnvironment.application, true /* enabled */);
-
-        assertThat(indexRes).isNotNull();
-        assertThat(indexRes.get(0).xmlResId).isEqualTo(mSettings.getPreferenceScreenResId());
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImplTest.java
index 2db7f3f..0683bd8 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImplTest.java
@@ -57,7 +57,7 @@
         final Intent intent = new Intent();
         mImpl.sendBroadcast(intent);
 
-        verify(mContext, never()).sendBroadcastAsUser(intent, UserHandle.ALL);
+        verify(mContext, never()).sendBroadcastAsUser(intent, UserHandle.CURRENT);
     }
 
     @Test
@@ -66,7 +66,7 @@
         final Intent intent = new Intent();
         mImpl.sendBroadcast(intent);
 
-        verify(mContext).sendBroadcastAsUser(intent, UserHandle.ALL);
+        verify(mContext).sendBroadcastAsUser(intent, UserHandle.CURRENT);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
index 8b04ef3..40e6939 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
@@ -22,7 +22,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyList;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
@@ -87,6 +87,19 @@
     }
 
     @Test
+    public void isCardEligibleToDisplay_invalidRankingScore_returnFalse() {
+        final ContextualCard card = new ContextualCard.Builder()
+                .setName("test_card")
+                .setCardType(ContextualCard.CardType.SLICE)
+                .setSliceUri(CustomSliceRegistry.FLASHLIGHT_SLICE_URI)
+                .setRankingScore(-1)
+                .build();
+
+        assertThat(mEligibleCardChecker.isCardEligibleToDisplay(card))
+                .isFalse();
+    }
+
+    @Test
     public void isCardEligibleToDisplay_nullSlice_returnFalse() {
         doReturn(null).when(mEligibleCardChecker).bindSlice(Uri.parse(TEST_SLICE_URI));
 
@@ -108,7 +121,7 @@
     public void getDisplayableCards_twoEligibleCards_shouldShowAll() {
         final List<ContextualCard> cards = getContextualCardList().stream().limit(2)
                 .collect(Collectors.toList());
-        doReturn(cards).when(mContextualCardLoader).filterEligibleCards(any(List.class));
+        doReturn(cards).when(mContextualCardLoader).filterEligibleCards(anyList());
 
         final List<ContextualCard> result = mContextualCardLoader.getDisplayableCards(cards);
 
@@ -118,7 +131,7 @@
     @Test
     public void getDisplayableCards_fiveEligibleCardsNoLarge_shouldShowDefaultCardCount() {
         final List<ContextualCard> fiveCards = getContextualCardListWithNoLargeCard();
-        doReturn(fiveCards).when(mContextualCardLoader).filterEligibleCards(any(List.class));
+        doReturn(fiveCards).when(mContextualCardLoader).filterEligibleCards(anyList());
 
         final List<ContextualCard> result = mContextualCardLoader.getDisplayableCards(
                 fiveCards);
@@ -136,7 +149,7 @@
                 .setSliceUri(Uri.parse(
                         "content://com.android.settings.test.slices/action/gesture_pick_up"))
                 .build());
-        doReturn(cards).when(mContextualCardLoader).filterEligibleCards(any(List.class));
+        doReturn(cards).when(mContextualCardLoader).filterEligibleCards(anyList());
 
         final List<ContextualCard> result = mContextualCardLoader.getDisplayableCards(cards);
 
@@ -147,7 +160,7 @@
     public void getDisplayableCards_threeEligibleCardsTwoLarge_shouldShowTwoCards() {
         final List<ContextualCard> threeCards = getContextualCardList().stream().limit(3)
                 .collect(Collectors.toList());
-        doReturn(threeCards).when(mContextualCardLoader).filterEligibleCards(any(List.class));
+        doReturn(threeCards).when(mContextualCardLoader).filterEligibleCards(anyList());
 
         final List<ContextualCard> result = mContextualCardLoader.getDisplayableCards(
                 threeCards);
@@ -167,25 +180,26 @@
     public void getDisplayableCards_refreshCardUri_shouldLogContextualCardDisplay() {
         mContextualCardLoader.mNotifyUri = CardContentProvider.REFRESH_CARD_URI;
 
-        mContextualCardLoader.getDisplayableCards(new ArrayList<ContextualCard>());
+        mContextualCardLoader.getDisplayableCards(new ArrayList<>());
 
         verify(mFakeFeatureFactory.mContextualCardFeatureProvider).logContextualCardDisplay(
-                any(List.class), any(List.class));
+                anyList(), anyList());
     }
 
     @Test
     public void getDisplayableCards_deleteCardUri_shouldNotLogContextualCardDisplay() {
         mContextualCardLoader.mNotifyUri = CardContentProvider.DELETE_CARD_URI;
 
-        mContextualCardLoader.getDisplayableCards(new ArrayList<ContextualCard>());
+        mContextualCardLoader.getDisplayableCards(new ArrayList<>());
 
         verify(mFakeFeatureFactory.mContextualCardFeatureProvider, never())
-                .logContextualCardDisplay(any(List.class), any(List.class));
+                .logContextualCardDisplay(anyList(), anyList());
     }
 
     private ContextualCard getContextualCard(String sliceUri) {
         return new ContextualCard.Builder()
                 .setName("test_card")
+                .setRankingScore(0.5)
                 .setCardType(ContextualCard.CardType.SLICE)
                 .setSliceUri(Uri.parse(sliceUri))
                 .build();
@@ -215,11 +229,6 @@
                 .setSliceUri(Uri.parse(
                         "content://com.android.settings.test.slices/action/gesture_pick_up"))
                 .build());
-        cards.add(new ContextualCard.Builder()
-                .setName("test_battery")
-                .setCardType(ContextualCard.CardType.SLICE)
-                .setSliceUri(CustomSliceRegistry.BATTERY_INFO_SLICE_URI)
-                .build());
         return cards;
     }
 
@@ -248,11 +257,6 @@
                 .setSliceUri(Uri.parse(
                         "content://com.android.settings.test.slices/action/gesture_pick_up"))
                 .build());
-        cards.add(new ContextualCard.Builder()
-                .setName("test_battery")
-                .setCardType(ContextualCard.CardType.SLICE)
-                .setSliceUri(CustomSliceRegistry.BATTERY_INFO_SLICE_URI)
-                .build());
         return cards;
     }
 }
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java
index 1a0539c..8087716 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java
@@ -31,6 +31,7 @@
 
 import android.content.Context;
 import android.net.Uri;
+import android.provider.Settings;
 import android.util.ArrayMap;
 
 import com.android.settings.homepage.contextualcards.conditional.ConditionFooterContextualCard;
@@ -126,6 +127,24 @@
     }
 
     @Test
+    public void getCardLoaderTimeout_noConfiguredTimeout_shouldReturnDefaultTimeout() {
+        final long timeout = mManager.getCardLoaderTimeout(mContext);
+
+        assertThat(timeout).isEqualTo(ContextualCardManager.CARD_CONTENT_LOADER_TIMEOUT_MS);
+    }
+
+    @Test
+    public void getCardLoaderTimeout_hasConfiguredTimeout_shouldReturnConfiguredTimeout() {
+        final long configuredTimeout = 5000L;
+        Settings.Global.putLong(mContext.getContentResolver(),
+                ContextualCardManager.KEY_GLOBAL_CARD_LOADER_TIMEOUT, configuredTimeout);
+
+        final long timeout = mManager.getCardLoaderTimeout(mContext);
+
+        assertThat(timeout).isEqualTo(configuredTimeout);
+    }
+
+    @Test
     public void onFinishCardLoading_fastLoad_shouldCallOnContextualCardUpdated() {
         mManager.mStartTime = System.currentTimeMillis();
         final ContextualCardManager manager = spy(mManager);
@@ -441,7 +460,7 @@
         cards.add(new ContextualCard.Builder()
                 .setName("test_battery")
                 .setCardType(ContextualCard.CardType.SLICE)
-                .setSliceUri(CustomSliceRegistry.BATTERY_INFO_SLICE_URI)
+                .setSliceUri(CustomSliceRegistry.BATTERY_FIX_SLICE_URI)
                 .setViewType(VIEW_TYPE_FULL_WIDTH)
                 .build());
         return cards;
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionControllerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionControllerTest.java
new file mode 100644
index 0000000..8663d0b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionControllerTest.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.settings.homepage.contextualcards.conditional;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.net.wifi.WifiConfiguration;
+import android.net.wifi.WifiManager;
+
+import com.android.settings.homepage.contextualcards.ContextualCard;
+import com.android.settings.testutils.shadow.ShadowWifiManager;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {ShadowWifiManager.class})
+public class HotspotConditionControllerTest {
+
+    private static final String WIFI_AP_SSID = "Test Hotspot";
+
+    @Mock
+    private ConditionManager mConditionManager;
+
+    private Context mContext;
+    private HotspotConditionController mController;
+
+    @Before
+    public void setUp() {
+        mContext = RuntimeEnvironment.application;
+        mController = new HotspotConditionController(mContext, mConditionManager);
+    }
+
+    @Test
+    public void buildContextualCard_hasWifiAp_shouldHaveWifiApSsid() {
+        setupWifiApConfiguration();
+
+        final ContextualCard card = mController.buildContextualCard();
+
+        assertThat(card.getSummaryText()).isEqualTo(WIFI_AP_SSID);
+    }
+
+    @Test
+    public void buildContextualCard_noWifiAp_shouldHaveDefaultSsid() {
+        final ContextualCard card = mController.buildContextualCard();
+
+        assertThat(card.getSummaryText()).isEqualTo(
+                mContext.getText(com.android.internal.R.string.wifi_tether_configure_ssid_default));
+    }
+
+    private void setupWifiApConfiguration() {
+        final WifiConfiguration wifiApConfig = new WifiConfiguration();
+        wifiApConfig.SSID = WIFI_AP_SSID;
+        mContext.getSystemService(WifiManager.class).setWifiApConfiguration(wifiApConfig);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/deviceinfo/BatteryInfoSliceTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/deviceinfo/BatteryInfoSliceTest.java
deleted file mode 100644
index ff276d6..0000000
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/deviceinfo/BatteryInfoSliceTest.java
+++ /dev/null
@@ -1,75 +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.settings.homepage.contextualcards.deviceinfo;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-
-import android.content.Context;
-
-import androidx.core.graphics.drawable.IconCompat;
-import androidx.slice.Slice;
-import androidx.slice.SliceMetadata;
-import androidx.slice.SliceProvider;
-import androidx.slice.core.SliceAction;
-import androidx.slice.widget.SliceLiveData;
-
-import com.android.settings.R;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(RobolectricTestRunner.class)
-public class BatteryInfoSliceTest {
-
-    private Context mContext;
-    private BatteryInfoSlice mBatteryInfoSlice;
-
-    @Before
-    public void setUp() {
-        mContext = RuntimeEnvironment.application;
-
-        // Set-up specs for SliceMetadata.
-        SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
-
-        mBatteryInfoSlice = spy(new BatteryInfoSlice(mContext));
-    }
-
-    @Test
-    public void getSlice_shouldBeCorrectSliceContent() {
-        doNothing().when(mBatteryInfoSlice).loadBatteryInfo();
-        doReturn("10%").when(mBatteryInfoSlice).getBatteryPercentString();
-        doReturn("test").when(mBatteryInfoSlice).getSummary();
-
-        final Slice slice = mBatteryInfoSlice.getSlice();
-
-        final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
-        assertThat(metadata.getTitle()).isEqualTo(
-                mContext.getString(R.string.power_usage_summary_title));
-
-        final SliceAction primaryAction = metadata.getPrimaryAction();
-        final IconCompat expectedIcon = IconCompat.createWithResource(mContext,
-                R.drawable.ic_settings_battery);
-        assertThat(primaryAction.getIcon().toString()).isEqualTo(expectedIcon.toString());
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSliceTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSliceTest.java
index 77fc5d9..4a23c33 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSliceTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSliceTest.java
@@ -23,6 +23,7 @@
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -83,7 +84,7 @@
 
         // Mock the icon and detail intent of Bluetooth.
         mIcon = IconCompat.createWithResource(mContext,
-            com.android.internal.R.drawable.ic_settings_bluetooth);
+                com.android.internal.R.drawable.ic_settings_bluetooth);
         mDetailIntent = PendingIntent.getActivity(mContext, 0, new Intent("test action"), 0);
         doReturn(mIcon).when(mBluetoothDevicesSlice).getBluetoothDeviceIcon(any());
         doReturn(mDetailIntent).when(mBluetoothDevicesSlice).getBluetoothDetailIntent(any());
@@ -122,6 +123,27 @@
     }
 
     @Test
+    public void getSlice_hasMediaBluetoothDevice_shouldBuildMediaBluetoothAction() {
+        mockBluetoothDeviceList(1 /* deviceCount */);
+        doReturn(true).when(mBluetoothDeviceList.get(0)).isConnectedA2dpDevice();
+        doReturn(mBluetoothDeviceList).when(mBluetoothDevicesSlice).getConnectedBluetoothDevices();
+
+        mBluetoothDevicesSlice.getSlice();
+
+        verify(mBluetoothDevicesSlice).buildMediaBluetoothAction(any());
+    }
+
+    @Test
+    public void getSlice_noMediaBluetoothDevice_shouldNotBuildMediaBluetoothAction() {
+        mockBluetoothDeviceList(1 /* deviceCount */);
+        doReturn(mBluetoothDeviceList).when(mBluetoothDevicesSlice).getConnectedBluetoothDevices();
+
+        mBluetoothDevicesSlice.getSlice();
+
+        verify(mBluetoothDevicesSlice, never()).buildMediaBluetoothAction(any());
+    }
+
+    @Test
     public void getSlice_noBluetoothDevices_shouldHaveNoBluetoothDevicesTitle() {
         doReturn(mBluetoothDeviceList).when(mBluetoothDevicesSlice).getConnectedBluetoothDevices();
 
@@ -175,7 +197,6 @@
         doReturn(BLUETOOTH_MOCK_TITLE).when(mCachedBluetoothDevice).getName();
         doReturn(BLUETOOTH_MOCK_SUMMARY).when(mCachedBluetoothDevice).getConnectionSummary();
         doReturn(BLUETOOTH_MOCK_ADDRESS).when(mCachedBluetoothDevice).getAddress();
-        doReturn(true).when(mCachedBluetoothDevice).isConnectedA2dpDevice();
         for (int i = 0; i < deviceCount; i++) {
             mBluetoothDeviceList.add(mCachedBluetoothDevice);
         }
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
index b156782..e08d845 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
@@ -16,11 +16,13 @@
 
 package com.android.settings.homepage.contextualcards.slices;
 
+import static com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_DEFERRED_SETUP;
 import static com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_FULL_WIDTH;
 
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
 import android.app.Activity;
@@ -129,6 +131,15 @@
     }
 
     @Test
+    public void longClick_deferredSetupCard_shouldNotBeClickable() {
+        final RecyclerView.ViewHolder viewHolder = getDeferredSetupViewHolder();
+        final View contentView = viewHolder.itemView.findViewById(R.id.content);
+        mRenderer.bindView(viewHolder, buildContextualCard(TEST_SLICE_URI));
+
+        assertThat(contentView.isLongClickable()).isFalse();
+    }
+
+    @Test
     public void longClick_shouldAddViewHolderToSet() {
         final RecyclerView.ViewHolder viewHolder = getSliceViewHolder();
         final View card = viewHolder.itemView.findViewById(R.id.slice_view);
@@ -221,6 +232,18 @@
         return mRenderer.createViewHolder(view, VIEW_TYPE_FULL_WIDTH);
     }
 
+    private RecyclerView.ViewHolder getDeferredSetupViewHolder() {
+        final RecyclerView recyclerView = new RecyclerView(mActivity);
+        recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
+        final View view = LayoutInflater.from(mActivity).inflate(VIEW_TYPE_DEFERRED_SETUP,
+                recyclerView, false);
+        final RecyclerView.ViewHolder viewHolder = spy(
+                mRenderer.createViewHolder(view, VIEW_TYPE_DEFERRED_SETUP));
+        doReturn(VIEW_TYPE_DEFERRED_SETUP).when(viewHolder).getItemViewType();
+
+        return viewHolder;
+    }
+
     private ContextualCard buildContextualCard(Uri sliceUri) {
         return new ContextualCard.Builder()
                 .setName("test_name")
diff --git a/tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java b/tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java
index daaba90..d26a458 100644
--- a/tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java
+++ b/tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java
@@ -21,21 +21,15 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.bluetooth.BluetoothAdapter;
 import android.content.Context;
 import android.content.Intent;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.graphics.drawable.Drawable;
-import android.os.UserHandle;
-import android.util.IconDrawableFactory;
 
 import androidx.slice.Slice;
 import androidx.slice.SliceMetadata;
@@ -43,6 +37,7 @@
 import androidx.slice.core.SliceAction;
 import androidx.slice.widget.SliceLiveData;
 
+import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
 import com.android.settingslib.media.LocalMediaManager;
 import com.android.settingslib.media.MediaDevice;
 
@@ -53,70 +48,71 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
 
 import java.util.ArrayList;
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {ShadowBluetoothAdapter.class})
 public class MediaOutputSliceTest {
 
     private static final String TEST_PACKAGE_NAME = "com.fake.android.music";
-    private static final String TEST_LABEL = "Test app";
     private static final String TEST_DEVICE_1_ID = "test_device_1_id";
+    private static final String TEST_DEVICE_1_NAME = "test_device_1_name";
+    private static final int TEST_DEVICE_1_ICON =
+            com.android.internal.R.drawable.ic_bt_headphones_a2dp;
 
     @Mock
-    private PackageManager mPackageManager;
-    @Mock
-    private ApplicationInfo mApplicationInfo;
-    @Mock
-    private ApplicationInfo mApplicationInfo2;
-    @Mock
     private LocalMediaManager mLocalMediaManager;
-    @Mock
-    private IconDrawableFactory mIconDrawableFactory;
-    @Mock
-    private Drawable mTestDrawable;
 
     private final List<MediaDevice> mDevices = new ArrayList<>();
 
     private Context mContext;
     private MediaOutputSlice mMediaOutputSlice;
     private MediaDeviceUpdateWorker mMediaDeviceUpdateWorker;
+    private ShadowBluetoothAdapter mShadowBluetoothAdapter;
 
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
         mContext = spy(RuntimeEnvironment.application);
 
-        when(mContext.getPackageManager()).thenReturn(mPackageManager);
-        when(mPackageManager.getApplicationInfo(eq(TEST_PACKAGE_NAME), anyInt()))
-                .thenReturn(mApplicationInfo);
-        when(mPackageManager.getApplicationInfoAsUser(eq(TEST_PACKAGE_NAME), anyInt(), anyInt()))
-                .thenReturn(mApplicationInfo2);
-        when(mApplicationInfo.loadLabel(mPackageManager)).thenReturn(TEST_LABEL);
-        when(mIconDrawableFactory.getBadgedIcon(mApplicationInfo2, UserHandle.myUserId()))
-                .thenReturn(mTestDrawable);
-        when(mTestDrawable.getIntrinsicWidth()).thenReturn(100);
-        when(mTestDrawable.getIntrinsicHeight()).thenReturn(100);
-
         // Set-up specs for SliceMetadata.
         SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
+        // Setup BluetoothAdapter
+        mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
+        mShadowBluetoothAdapter.setEnabled(true);
 
         mMediaOutputSlice = new MediaOutputSlice(mContext);
         mMediaDeviceUpdateWorker = new MediaDeviceUpdateWorker(mContext, MEDIA_OUTPUT_SLICE_URI);
         mMediaDeviceUpdateWorker.setPackageName(TEST_PACKAGE_NAME);
         mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
         mMediaDeviceUpdateWorker.mLocalMediaManager = mLocalMediaManager;
-        mMediaOutputSlice.init(TEST_PACKAGE_NAME, mMediaDeviceUpdateWorker, mIconDrawableFactory);
+        mMediaOutputSlice.init(TEST_PACKAGE_NAME, mMediaDeviceUpdateWorker);
     }
 
     @Test
-    public void getSlice_shouldHaveAppTitle() {
+    public void getSlice_workerIsNull_shouldNotCrash() {
+        mMediaOutputSlice.init(TEST_PACKAGE_NAME, null);
+
+        mMediaOutputSlice.getSlice();
+    }
+
+    @Test
+    public void getSlice_shouldHaveActiveDeviceName() {
+        mDevices.clear();
+        final MediaDevice device = mock(MediaDevice.class);
+        when(device.getName()).thenReturn(TEST_DEVICE_1_NAME);
+        when(device.getIcon()).thenReturn(TEST_DEVICE_1_ICON);
+        when(mLocalMediaManager.getCurrentConnectedDevice()).thenReturn(device);
+
         final Slice mediaSlice = mMediaOutputSlice.getSlice();
         final SliceMetadata metadata = SliceMetadata.from(mContext, mediaSlice);
 
         final SliceAction primaryAction = metadata.getPrimaryAction();
-        assertThat(primaryAction.getTitle().toString()).isEqualTo(TEST_LABEL);
+        assertThat(primaryAction.getTitle().toString()).isEqualTo(TEST_DEVICE_1_NAME);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/network/MobileNetworkListControllerTest.java b/tests/robotests/src/com/android/settings/network/MobileNetworkListControllerTest.java
index 1325650..10264ab 100644
--- a/tests/robotests/src/com/android/settings/network/MobileNetworkListControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/MobileNetworkListControllerTest.java
@@ -21,6 +21,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.times;
@@ -31,6 +32,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.telephony.SubscriptionInfo;
+import android.telephony.euicc.EuiccManager;
 
 import org.junit.After;
 import org.junit.Before;
@@ -51,6 +53,9 @@
 @RunWith(RobolectricTestRunner.class)
 public class MobileNetworkListControllerTest {
     @Mock
+    EuiccManager mEuiccManager;
+
+    @Mock
     private Lifecycle mLifecycle;
 
     @Mock
@@ -58,12 +63,17 @@
 
     private Context mContext;
     private MobileNetworkListController mController;
+    private Preference mAddMorePreference;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = spy(Robolectric.setupActivity(Activity.class));
+        when(mContext.getSystemService(EuiccManager.class)).thenReturn(mEuiccManager);
         when(mPreferenceScreen.getContext()).thenReturn(mContext);
+        mAddMorePreference = new Preference(mContext);
+        when(mPreferenceScreen.findPreference(MobileNetworkListController.KEY_ADD_MORE)).thenReturn(
+                mAddMorePreference);
         mController = new MobileNetworkListController(mContext, mLifecycle);
     }
 
@@ -79,6 +89,22 @@
     }
 
     @Test
+    public void displayPreference_eSimNotSupported_addMoreLinkNotVisible() {
+        when(mEuiccManager.isEnabled()).thenReturn(false);
+        mController.displayPreference(mPreferenceScreen);
+        mController.onResume();
+        assertThat(mAddMorePreference.isVisible()).isFalse();
+    }
+
+    @Test
+    public void displayPreference_eSimSupported_addMoreLinkIsVisible() {
+        when(mEuiccManager.isEnabled()).thenReturn(true);
+        mController.displayPreference(mPreferenceScreen);
+        mController.onResume();
+        assertThat(mAddMorePreference.isVisible()).isTrue();
+    }
+
+    @Test
     public void displayPreference_twoSubscriptions_correctlySetup() {
         final SubscriptionInfo sub1 = createMockSubscription(1, "sub1");
         final SubscriptionInfo sub2 = createMockSubscription(2, "sub2");
diff --git a/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java b/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java
index ba152b9..3404ca2 100644
--- a/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java
@@ -16,13 +16,9 @@
 
 package com.android.settings.network;
 
-import static android.telephony.TelephonyManager.MultiSimVariants.DSDS;
-import static android.telephony.TelephonyManager.MultiSimVariants.UNKNOWN;
-
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.ArgumentMatchers.isNull;
 import static org.mockito.ArgumentMatchers.notNull;
 import static org.mockito.Mockito.atLeastOnce;
 import static org.mockito.Mockito.mock;
@@ -37,7 +33,6 @@
 import android.net.ConnectivityManager;
 import android.provider.Settings;
 import android.telephony.SubscriptionInfo;
-import android.telephony.TelephonyManager;
 import android.telephony.euicc.EuiccManager;
 import android.text.TextUtils;
 
@@ -64,8 +59,6 @@
     @Mock
     private Lifecycle mLifecycle;
     @Mock
-    private TelephonyManager mTelephonyManager;
-    @Mock
     private EuiccManager mEuiccManager;
     @Mock
     private PreferenceScreen mPreferenceScreen;
@@ -78,9 +71,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = spy(Robolectric.setupActivity(Activity.class));
-        when(mContext.getSystemService(eq(TelephonyManager.class))).thenReturn(mTelephonyManager);
         when(mContext.getSystemService(EuiccManager.class)).thenReturn(mEuiccManager);
-        when(mTelephonyManager.getMultiSimConfiguration()).thenReturn(UNKNOWN);
         when(mEuiccManager.isEnabled()).thenReturn(true);
 
         mController = new MobileNetworkSummaryController(mContext, mLifecycle);
@@ -97,7 +88,7 @@
 
     @Test
     public void isAvailable_wifiOnlyMode_notAvailable() {
-        ConnectivityManager cm = mock(ConnectivityManager.class);
+        final ConnectivityManager cm = mock(ConnectivityManager.class);
         when(cm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)).thenReturn(false);
         when(mContext.getSystemService(ConnectivityManager.class)).thenReturn(cm);
         assertThat(mController.isAvailable()).isFalse();
@@ -212,24 +203,7 @@
     }
 
     @Test
-    public void addButton_noSubscriptionsSingleSimMode_noAddClickListener() {
-        mController.displayPreference(mPreferenceScreen);
-        mController.onResume();
-        verify(mPreference, never()).setOnAddClickListener(notNull());
-    }
-
-    @Test
-    public void addButton_oneSubscriptionSingleSimMode_noAddClickListener() {
-        final SubscriptionInfo sub1 = mock(SubscriptionInfo.class);
-        SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1));
-        mController.displayPreference(mPreferenceScreen);
-        mController.onResume();
-        verify(mPreference, never()).setOnAddClickListener(notNull());
-    }
-
-    @Test
-    public void addButton_noSubscriptionsMultiSimModeNoEuiccMgr_noAddClickListener() {
-        when(mTelephonyManager.getMultiSimConfiguration()).thenReturn(DSDS);
+    public void addButton_noSubscriptionsNoEuiccMgr_noAddClickListener() {
         when(mEuiccManager.isEnabled()).thenReturn(false);
         mController.displayPreference(mPreferenceScreen);
         mController.onResume();
@@ -237,41 +211,43 @@
     }
 
     @Test
-    public void addButton_noSubscriptionsMultiSimMode_hasAddClickListenerAndPrefDisabled() {
-        when(mTelephonyManager.getMultiSimConfiguration()).thenReturn(DSDS);
-        mController.displayPreference(mPreferenceScreen);
-        mController.onResume();
-        assertThat(mPreference.isEnabled()).isFalse();
-        verify(mPreference, never()).setOnAddClickListener(isNull());
-        verify(mPreference).setOnAddClickListener(notNull());
-    }
-
-    @Test
-    public void addButton_oneSubscriptionMultiSimMode_hasAddClickListener() {
-        when(mTelephonyManager.getMultiSimConfiguration()).thenReturn(DSDS);
+    public void addButton_oneSubscriptionNoEuiccMgr_noAddClickListener() {
+        when(mEuiccManager.isEnabled()).thenReturn(false);
         final SubscriptionInfo sub1 = mock(SubscriptionInfo.class);
         SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1));
         mController.displayPreference(mPreferenceScreen);
         mController.onResume();
-        verify(mPreference, never()).setOnAddClickListener(isNull());
+        verify(mPreference, never()).setOnAddClickListener(notNull());
+    }
+
+    @Test
+    public void addButton_noSubscriptions_noAddClickListener() {
+        mController.displayPreference(mPreferenceScreen);
+        mController.onResume();
+        verify(mPreference, never()).setOnAddClickListener(notNull());
+    }
+
+    @Test
+    public void addButton_oneSubscription_hasAddClickListener() {
+        final SubscriptionInfo sub1 = mock(SubscriptionInfo.class);
+        SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1));
+        mController.displayPreference(mPreferenceScreen);
+        mController.onResume();
         verify(mPreference).setOnAddClickListener(notNull());
     }
 
     @Test
-    public void addButton_twoSubscriptionsMultiSimMode_hasAddClickListener() {
-        when(mTelephonyManager.getMultiSimConfiguration()).thenReturn(DSDS);
+    public void addButton_twoSubscriptions_hasAddClickListener() {
         final SubscriptionInfo sub1 = mock(SubscriptionInfo.class);
         final SubscriptionInfo sub2 = mock(SubscriptionInfo.class);
         SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2));
         mController.displayPreference(mPreferenceScreen);
         mController.onResume();
-        verify(mPreference, never()).setOnAddClickListener(isNull());
         verify(mPreference).setOnAddClickListener(notNull());
     }
 
     @Test
     public void addButton_oneSubscriptionAirplaneModeTurnedOn_addButtonGetsDisabled() {
-        when(mTelephonyManager.getMultiSimConfiguration()).thenReturn(DSDS);
         final SubscriptionInfo sub1 = mock(SubscriptionInfo.class);
         SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1));
         mController.displayPreference(mPreferenceScreen);
@@ -280,14 +256,13 @@
         Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 1);
         mController.onAirplaneModeChanged(true);
 
-        ArgumentCaptor<Boolean> captor = ArgumentCaptor.forClass(Boolean.class);
+        final ArgumentCaptor<Boolean> captor = ArgumentCaptor.forClass(Boolean.class);
         verify(mPreference, atLeastOnce()).setAddWidgetEnabled(captor.capture());
         assertThat(captor.getValue()).isFalse();
     }
 
     @Test
     public void onResume_oneSubscriptionAirplaneMode_isDisabled() {
-        when(mTelephonyManager.getMultiSimConfiguration()).thenReturn(DSDS);
         Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 1);
         final SubscriptionInfo sub1 = mock(SubscriptionInfo.class);
         SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1));
@@ -296,7 +271,7 @@
 
         assertThat(mPreference.isEnabled()).isFalse();
 
-        ArgumentCaptor<Boolean> captor = ArgumentCaptor.forClass(Boolean.class);
+        final ArgumentCaptor<Boolean> captor = ArgumentCaptor.forClass(Boolean.class);
         verify(mPreference, atLeastOnce()).setAddWidgetEnabled(captor.capture());
         assertThat(captor.getValue()).isFalse();
     }
@@ -318,7 +293,6 @@
 
     @Test
     public void onAirplaneModeChanged_oneSubscriptionAirplaneModeGetsTurnedOff_isEnabled() {
-        when(mTelephonyManager.getMultiSimConfiguration()).thenReturn(DSDS);
         Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 1);
         final SubscriptionInfo sub1 = mock(SubscriptionInfo.class);
         SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1));
@@ -332,7 +306,7 @@
 
         assertThat(mPreference.isEnabled()).isTrue();
 
-        ArgumentCaptor<Boolean> captor = ArgumentCaptor.forClass(Boolean.class);
+        final ArgumentCaptor<Boolean> captor = ArgumentCaptor.forClass(Boolean.class);
         verify(mPreference, atLeastOnce()).setAddWidgetEnabled(eq(false));
         verify(mPreference, atLeastOnce()).setAddWidgetEnabled(captor.capture());
         assertThat(captor.getValue()).isTrue();
diff --git a/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java
index 2135331..e04262f 100644
--- a/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.network;
 
+import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Mockito.when;
@@ -24,8 +26,10 @@
 import android.os.UserManager;
 
 import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
+import com.android.settings.testutils.shadow.ShadowUtils;
 import com.android.settings.wifi.WifiMasterSwitchPreferenceController;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -39,7 +43,7 @@
 import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowRestrictedLockUtilsInternal.class)
+@Config(shadows = {ShadowRestrictedLockUtilsInternal.class, ShadowUtils.class})
 public class TopLevelNetworkEntryPreferenceControllerTest {
 
     @Mock
@@ -70,6 +74,17 @@
                 mTetherPreferenceController);
     }
 
+    @After
+    public void tearDown() {
+        ShadowUtils.reset();
+    }
+
+    @Test
+    public void getAvailabilityStatus_demoUser_unsupported() {
+        ShadowUtils.setIsDemoUser(true);
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
+    }
+
     @Test
     public void getSummary_hasMobileAndHotspot_shouldReturnMobileSummary() {
         when(mWifiPreferenceController.isAvailable()).thenReturn(true);
diff --git a/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gLteSliceHelperTest.java b/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gLteSliceHelperTest.java
index 072c835..a9882d9 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gLteSliceHelperTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gLteSliceHelperTest.java
@@ -22,7 +22,6 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
@@ -43,7 +42,6 @@
 
 import com.android.ims.ImsManager;
 import com.android.settings.R;
-import com.android.settings.slices.CustomSliceManager;
 import com.android.settings.slices.CustomSliceRegistry;
 import com.android.settings.slices.SettingsSliceProvider;
 import com.android.settings.slices.SliceBroadcastReceiver;
@@ -85,10 +83,6 @@
         mFeatureFactory = FakeFeatureFactory.setupForTest();
         mSlicesFeatureProvider = mFeatureFactory.getSlicesFeatureProvider();
 
-        CustomSliceManager manager = new CustomSliceManager(mContext);
-        when(mSlicesFeatureProvider.getCustomSliceManager(any(Context.class)))
-                .thenReturn(manager);
-
         //setup for SettingsSliceProvider tests
         mProvider = spy(new SettingsSliceProvider());
         doReturn(mContext).when(mProvider).getContext();
diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java
index c497cf8..e488d0c 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java
@@ -24,6 +24,7 @@
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
+import android.app.PendingIntent;
 import android.content.Context;
 import android.content.Intent;
 import android.provider.Settings;
@@ -162,4 +163,27 @@
 
         assertThat(isMobileDataEnabled).isEqualTo(seed);
     }
+
+    @Test
+    public void airplaneModeEnabled_slicePrimaryActionIsEmpty() {
+        doReturn(true).when(mMobileDataSlice).isAirplaneModeEnabled();
+        doReturn(mSubscriptionInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(SUB_ID);
+        final Slice mobileData = mMobileDataSlice.getSlice();
+
+        final SliceMetadata metadata = SliceMetadata.from(mContext, mobileData);
+        assertThat(metadata.getTitle())
+                .isEqualTo(mContext.getString(R.string.mobile_data_settings_title));
+
+        assertThat(metadata.getSubtitle())
+                .isEqualTo(mContext.getString(R.string.mobile_data_ap_mode_disabled));
+
+        final List<SliceAction> toggles = metadata.getToggles();
+        assertThat(toggles).hasSize(0);
+
+        final SliceAction primaryAction = metadata.getPrimaryAction();
+        final PendingIntent pendingIntent = primaryAction.getAction();
+        final Intent actionIntent = pendingIntent.getIntent();
+
+        assertThat(actionIntent).isNull();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java
index 55a4224..011bca5 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java
@@ -30,6 +30,8 @@
 import android.provider.Settings;
 import android.telephony.TelephonyManager;
 
+import androidx.fragment.app.FragmentActivity;
+
 import com.android.settings.core.FeatureFlags;
 import com.android.settings.datausage.DataUsageSummaryPreferenceController;
 import com.android.settings.development.featureflags.FeatureFlagPersistent;
@@ -48,8 +50,6 @@
 
 import java.util.List;
 
-import androidx.fragment.app.FragmentActivity;
-
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = ShadowEntityHeaderController.class)
 public class MobileNetworkSettingsTest {
@@ -86,6 +86,7 @@
 
     @Test
     public void onAttach_noV2Flag_noCrash() {
+        FeatureFlagPersistent.setEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2, false);
         mFragment.onAttach(mContext);
     }
 
@@ -97,6 +98,7 @@
 
     @Test
     public void createPreferenceControllers_noV2Flag_noDataUsageSummaryController() {
+        FeatureFlagPersistent.setEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2, false);
         final List<AbstractPreferenceController> controllers =
                 mFragment.createPreferenceControllers(mContext);
         assertThat(controllers.stream().filter(
diff --git a/tests/robotests/src/com/android/settings/notification/AppNotificationSettingsTest.java b/tests/robotests/src/com/android/settings/notification/AppNotificationSettingsTest.java
new file mode 100644
index 0000000..9555a56
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/AppNotificationSettingsTest.java
@@ -0,0 +1,93 @@
+package com.android.settings.notification;
+
+import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.view.Window;
+import android.view.WindowManager;
+
+import androidx.fragment.app.FragmentActivity;
+import androidx.fragment.app.FragmentManager;
+
+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.Robolectric;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+
+@RunWith(RobolectricTestRunner.class)
+public class AppNotificationSettingsTest {
+
+    private WindowManager.LayoutParams mLayoutParams;
+    private AppNotificationSettings mFragment;
+    private FragmentActivity mActivity;
+    @Mock
+    private Window mWindow;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mLayoutParams = new WindowManager.LayoutParams();
+        mActivity = spy(Robolectric.setupActivity(FragmentActivity.class));
+        mFragment = spy(new AppNotificationSettings());
+        when(mFragment.getActivity()).thenReturn(mActivity);
+        when(mFragment.getFragmentManager()).thenReturn(mock(FragmentManager.class));
+        when(mActivity.getWindow()).thenReturn(mWindow);
+        when(mWindow.getAttributes()).thenReturn(mLayoutParams);
+    }
+
+    @Test
+    @Config(shadows = {ShadowNotificationSettingsBase.class})
+    public void onResume_shouldHideSystemOverlay() {
+        mFragment.onResume();
+
+        verify(mWindow).addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
+    }
+
+    @Test
+    @Config(shadows = {ShadowNotificationSettingsBase.class})
+    public void onPause_shouldRemoveHideSystemOverlay() {
+        mFragment.onResume();
+
+        verify(mWindow).addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
+
+        mFragment.onPause();
+
+        // There's no Window.clearPrivateFlags() method, so the Window.attributes are updated.
+        ArgumentCaptor<WindowManager.LayoutParams> paramCaptor = ArgumentCaptor.forClass(
+                WindowManager.LayoutParams.class);
+        verify(mWindow).setAttributes(paramCaptor.capture());
+        assertEquals(0,
+                paramCaptor.getValue().privateFlags
+                        & SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
+    }
+
+    @Implements(NotificationSettingsBase.class)
+    public static class ShadowNotificationSettingsBase {
+
+        protected void __constructor__() {
+            // Do nothing
+        }
+
+        @Implementation
+        protected void onResume() {
+            // No-op.
+        }
+
+        @Implementation
+        protected void onPause() {
+            // No-op.
+        }
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java
index 4f6944a..bdbf40a 100644
--- a/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java
@@ -111,6 +111,26 @@
     }
 
     @Test
+    public void testIsAvailable_notIfChannelNonDefault() {
+        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+        appRow.systemApp = true;
+        NotificationChannel channel = mock(NotificationChannel.class);
+        when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
+        mController.onResume(appRow, channel, null, null);
+        assertFalse(mController.isAvailable());
+    }
+
+    @Test
+    public void testIsAvailable_ifChannelDefault() {
+        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+        NotificationChannel channel = mock(NotificationChannel.class);
+        when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
+        when(channel.getId()).thenReturn(DEFAULT_CHANNEL_ID);
+        mController.onResume(appRow, channel, null, null);
+        assertTrue(mController.isAvailable());
+    }
+
+    @Test
     public void testIsAvailable_notIfGroupNotBlockable() {
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.systemApp = true;
diff --git a/tests/robotests/src/com/android/settings/notification/HighImportancePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/HighImportancePreferenceControllerTest.java
new file mode 100644
index 0000000..6e6dad4
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/HighImportancePreferenceControllerTest.java
@@ -0,0 +1,199 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import static android.app.NotificationChannel.DEFAULT_CHANNEL_ID;
+import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
+import static android.app.NotificationManager.IMPORTANCE_HIGH;
+import static android.app.NotificationManager.IMPORTANCE_NONE;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.content.Context;
+import android.os.UserManager;
+
+import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedSwitchPreference;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Answers;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.shadows.ShadowApplication;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+@RunWith(RobolectricTestRunner.class)
+public class HighImportancePreferenceControllerTest {
+
+    private Context mContext;
+    @Mock
+    private NotificationManager mNm;
+    @Mock
+    private NotificationBackend mBackend;
+    @Mock
+    private NotificationSettingsBase.ImportanceListener mImportanceListener;
+    @Mock
+    private UserManager mUm;
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private PreferenceScreen mScreen;
+
+    private HighImportancePreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        ShadowApplication shadowApplication = ShadowApplication.getInstance();
+        shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
+        shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
+        mContext = RuntimeEnvironment.application;
+        mController = spy(new HighImportancePreferenceController(
+                mContext, mImportanceListener, mBackend));
+    }
+
+    @Test
+    public void testNoCrashIfNoOnResume() {
+        mController.isAvailable();
+        mController.updateState(mock(Preference.class));
+    }
+
+    @Test
+    public void testIsAvailable_notIfNull() {
+        mController.onResume(null, null, null, null);
+        assertFalse(mController.isAvailable());
+    }
+
+    @Test
+    public void testIsAvailable_ifAppBlocked() {
+        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+        appRow.banned = true;
+        mController.onResume(appRow, mock(NotificationChannel.class), null, null);
+        assertFalse(mController.isAvailable());
+    }
+
+    @Test
+    public void testIsAvailable_notIfChannelBlocked() {
+        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+        NotificationChannel channel = mock(NotificationChannel.class);
+        when(channel.getImportance()).thenReturn(IMPORTANCE_NONE);
+        mController.onResume(appRow, channel, null, null);
+        assertFalse(mController.isAvailable());
+    }
+
+    @Test
+    public void testIsAvailable_notForDefaultChannel() {
+        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+        NotificationChannel channel = mock(NotificationChannel.class);
+        when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
+        when(channel.getId()).thenReturn(DEFAULT_CHANNEL_ID);
+        mController.onResume(appRow, channel, null, null);
+        assertFalse(mController.isAvailable());
+    }
+
+    @Test
+    public void testIsAvailable() {
+        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+        NotificationChannel channel = mock(NotificationChannel.class);
+        when(channel.getImportance()).thenReturn(IMPORTANCE_DEFAULT);
+        mController.onResume(appRow, channel, null, null);
+        assertTrue(mController.isAvailable());
+    }
+
+    @Test
+    public void testUpdateState_disabledByAdmin() {
+        NotificationChannel channel = mock(NotificationChannel.class);
+        when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
+        mController.onResume(new NotificationBackend.AppRow(), channel, null, mock(
+                RestrictedLockUtils.EnforcedAdmin.class));
+
+        Preference pref = new RestrictedSwitchPreference(mContext, null);
+        mController.updateState(pref);
+
+        assertFalse(pref.isEnabled());
+    }
+
+    @Test
+    public void testUpdateState_notConfigurable() {
+        String lockedId = "locked";
+        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+        appRow.lockedChannelId = lockedId;
+        NotificationChannel channel = mock(NotificationChannel.class);
+        when(channel.getId()).thenReturn(lockedId);
+        when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
+        mController.onResume(appRow, channel, null, null);
+
+        Preference pref = new RestrictedSwitchPreference(mContext, null);
+        mController.updateState(pref);
+
+        assertFalse(pref.isEnabled());
+    }
+
+    @Test
+    public void testUpdateState_high() {
+        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+        NotificationChannel channel = new NotificationChannel("", "", IMPORTANCE_HIGH);
+        mController.onResume(appRow, channel, null, null);
+
+        RestrictedSwitchPreference pref = new RestrictedSwitchPreference(mContext);
+        mController.updateState(pref);
+
+        assertTrue(pref.isChecked());
+    }
+
+    @Test
+    public void testUpdateState_default() {
+        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+        NotificationChannel channel = new NotificationChannel("", "", IMPORTANCE_DEFAULT);
+        mController.onResume(appRow, channel, null, null);
+
+        RestrictedSwitchPreference pref = new RestrictedSwitchPreference(mContext);
+        mController.updateState(pref);
+
+        assertFalse(pref.isChecked());
+    }
+    
+    @Test
+    public void onPreferenceChange() {
+        NotificationChannel channel =
+                new NotificationChannel(DEFAULT_CHANNEL_ID, "a", IMPORTANCE_HIGH);
+        mController.onResume(new NotificationBackend.AppRow(), channel, null, null);
+
+        RestrictedSwitchPreference pref = new RestrictedSwitchPreference(mContext, null);
+        when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(pref);
+        mController.displayPreference(mScreen);
+        mController.updateState(pref);
+
+        mController.onPreferenceChange(pref, false);
+
+        assertEquals(IMPORTANCE_DEFAULT, channel.getImportance());
+        verify(mImportanceListener, times(1)).onImportanceChanged();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/ImportancePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ImportancePreferenceControllerTest.java
index 99d3376..c180ace 100644
--- a/tests/robotests/src/com/android/settings/notification/ImportancePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ImportancePreferenceControllerTest.java
@@ -27,8 +27,11 @@
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
+import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.app.Notification;
@@ -36,12 +39,10 @@
 import android.app.NotificationManager;
 import android.content.Context;
 import android.os.UserManager;
-import android.text.TextUtils;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.RestrictedListPreference;
 import com.android.settingslib.RestrictedLockUtils;
 
 import org.junit.Before;
@@ -95,20 +96,20 @@
     }
 
     @Test
-    public void testIsAvailable_notIfAppBlocked() {
+    public void testIsAvailable_ifAppBlocked() {
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.banned = true;
         mController.onResume(appRow, mock(NotificationChannel.class), null, null);
-        assertFalse(mController.isAvailable());
+        assertTrue(mController.isAvailable());
     }
 
     @Test
-    public void testIsAvailable_notIfChannelBlocked() {
+    public void testIsAvailable_evenIfChannelBlocked() {
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         NotificationChannel channel = mock(NotificationChannel.class);
         when(channel.getImportance()).thenReturn(IMPORTANCE_NONE);
         mController.onResume(appRow, channel, null, null);
-        assertFalse(mController.isAvailable());
+        assertTrue(mController.isAvailable());
     }
 
     @Test
@@ -137,11 +138,10 @@
         mController.onResume(new NotificationBackend.AppRow(), channel, null, mock(
                 RestrictedLockUtils.EnforcedAdmin.class));
 
-        Preference pref = new RestrictedListPreference(mContext, null);
+        Preference pref = new ImportancePreference(mContext, null);
         mController.updateState(pref);
 
         assertFalse(pref.isEnabled());
-        assertFalse(TextUtils.isEmpty(pref.getSummary()));
     }
 
     @Test
@@ -154,11 +154,10 @@
         when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
         mController.onResume(appRow, channel, null, null);
 
-        Preference pref = new RestrictedListPreference(mContext, null);
+        Preference pref = new ImportancePreference(mContext, null);
         mController.updateState(pref);
 
         assertFalse(pref.isEnabled());
-        assertFalse(TextUtils.isEmpty(pref.getSummary()));
     }
 
     @Test
@@ -167,11 +166,12 @@
         NotificationChannel channel = new NotificationChannel("", "", IMPORTANCE_HIGH);
         mController.onResume(appRow, channel, null, null);
 
-        Preference pref = new RestrictedListPreference(mContext, null);
+        ImportancePreference pref = mock(ImportancePreference.class);
         mController.updateState(pref);
 
-        assertTrue(pref.isEnabled());
-        assertFalse(TextUtils.isEmpty(pref.getSummary()));
+        verify(pref, times(1)).setConfigurable(anyBoolean());
+        verify(pref, times(1)).setBlockable(anyBoolean());
+        verify(pref, times(1)).setImportance(IMPORTANCE_HIGH);
     }
     
     @Test
@@ -181,13 +181,12 @@
         channel.setSound(null, Notification.AUDIO_ATTRIBUTES_DEFAULT);
         mController.onResume(new NotificationBackend.AppRow(), channel, null, null);
 
-        RestrictedListPreference pref = new RestrictedListPreference(mContext, null);
+        ImportancePreference pref = new ImportancePreference(mContext, null);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(pref);
         mController.displayPreference(mScreen);
         mController.updateState(pref);
 
-        pref.setValue(String.valueOf(IMPORTANCE_HIGH));
-        mController.onPreferenceChange(pref, pref.getValue());
+        mController.onPreferenceChange(pref, IMPORTANCE_HIGH);
 
         assertEquals(IMPORTANCE_HIGH, channel.getImportance());
         assertNotNull(channel.getSound());
@@ -200,13 +199,12 @@
         channel.setSound(null, Notification.AUDIO_ATTRIBUTES_DEFAULT);
         mController.onResume(new NotificationBackend.AppRow(), channel, null, null);
 
-        RestrictedListPreference pref = new RestrictedListPreference(mContext, null);
+        ImportancePreference pref = new ImportancePreference(mContext, null);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(pref);
         mController.displayPreference(mScreen);
         mController.updateState(pref);
 
-        pref.setValue(String.valueOf(IMPORTANCE_LOW));
-        mController.onPreferenceChange(pref, pref.getValue());
+        mController.onPreferenceChange(pref, IMPORTANCE_LOW);
 
         assertEquals(IMPORTANCE_LOW, channel.getImportance());
         assertNull(channel.getSound());
diff --git a/tests/robotests/src/com/android/settings/notification/ImportancePreferenceTest.java b/tests/robotests/src/com/android/settings/notification/ImportancePreferenceTest.java
new file mode 100644
index 0000000..eebfbd1
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/ImportancePreferenceTest.java
@@ -0,0 +1,192 @@
+/*
+ * 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.settings.notification;
+
+import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
+import static android.app.NotificationManager.IMPORTANCE_LOW;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.GradientDrawable;
+import android.graphics.drawable.LayerDrawable;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.ImageButton;
+import android.widget.LinearLayout;
+import android.widget.Switch;
+
+import com.android.settings.R;
+import com.android.settingslib.RestrictedLockUtils;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
+@RunWith(RobolectricTestRunner.class)
+public class ImportancePreferenceTest {
+
+    private Context mContext;
+
+    @Before
+    public void setUp() {
+        mContext = RuntimeEnvironment.application;
+    }
+
+    private GradientDrawable getBackground(ImageButton button) {
+        return (GradientDrawable) ((LayerDrawable) button.getDrawable())
+                .findDrawableByLayerId(R.id.back);
+    }
+
+    @Test
+    public void createNewPreference_shouldSetLayout() {
+        final ImportancePreference preference = new ImportancePreference(mContext);
+        assertThat(preference.getLayoutResource()).isEqualTo(
+                R.layout.notif_importance_preference);
+    }
+
+    @Test
+    public void onBindViewHolder_hideBlockNonBlockable() {
+        final ImportancePreference preference = new ImportancePreference(mContext);
+        final LayoutInflater inflater = LayoutInflater.from(mContext);
+        final PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(
+                inflater.inflate(R.layout.notif_importance_preference, null));
+
+        preference.setBlockable(false);
+        preference.setConfigurable(true);
+        preference.setImportance(IMPORTANCE_DEFAULT);
+        preference.onBindViewHolder(holder);
+
+        assertThat(holder.itemView.findViewById(R.id.block).getVisibility()).isEqualTo(View.GONE);
+    }
+
+    @Test
+    public void onBindViewHolder_hideNonSelectedNonConfigurable() {
+        final ImportancePreference preference = new ImportancePreference(mContext);
+        final LayoutInflater inflater = LayoutInflater.from(mContext);
+        PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(
+                inflater.inflate(R.layout.notif_importance_preference, null));
+
+        preference.setBlockable(true);
+        preference.setConfigurable(false);
+        preference.setImportance(IMPORTANCE_DEFAULT);
+        preference.onBindViewHolder(holder);
+
+        assertThat(holder.itemView.findViewById(R.id.block).getVisibility()).isEqualTo(View.GONE);
+        assertThat(holder.itemView.findViewById(R.id.silence).getVisibility()).isEqualTo(View.GONE);
+        assertThat(holder.itemView.findViewById(R.id.alert).getVisibility())
+                .isEqualTo(View.VISIBLE);
+
+        // other button
+        preference.setImportance(IMPORTANCE_LOW);
+        holder = PreferenceViewHolder.createInstanceForTests(
+                inflater.inflate(R.layout.notif_importance_preference, null));
+        preference.onBindViewHolder(holder);
+
+        assertThat(holder.itemView.findViewById(R.id.block).getVisibility()).isEqualTo(View.GONE);
+        assertThat(holder.itemView.findViewById(R.id.silence).getVisibility())
+                .isEqualTo(View.VISIBLE);
+        assertThat(holder.itemView.findViewById(R.id.alert).getVisibility())
+                .isEqualTo(View.GONE);
+    }
+
+    @Test
+    public void onBindViewHolder_selectButton() {
+        final ImportancePreference preference = new ImportancePreference(mContext);
+        final LayoutInflater inflater = LayoutInflater.from(mContext);
+        final PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(
+                inflater.inflate(R.layout.notif_importance_preference, null));
+
+        preference.setBlockable(true);
+        preference.setConfigurable(true);
+        preference.setImportance(IMPORTANCE_DEFAULT);
+
+        ImageButton blockButton = (ImageButton) holder.findViewById(R.id.block_icon);
+        ImageButton silenceButton = (ImageButton) holder.findViewById(R.id.silence_icon);
+        ImageButton alertButton = (ImageButton) holder.findViewById(R.id.alert_icon);
+
+        preference.onBindViewHolder(holder);
+
+        // selected has full color background. others are transparent
+        assertThat(getBackground(alertButton).getColor().getColors()[0]).isNotEqualTo(
+                Color.TRANSPARENT);
+        assertThat(getBackground(silenceButton).getColor().getColors()[0]).isEqualTo(
+                Color.TRANSPARENT);
+        assertThat(getBackground(blockButton).getColor().getColors()[0]).isEqualTo(
+                Color.TRANSPARENT);
+    }
+
+    @Test
+    public void onClick_changesUICallsListener() {
+        final ImportancePreference preference = spy(new ImportancePreference(mContext));
+        final LayoutInflater inflater = LayoutInflater.from(mContext);
+        final PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(
+                inflater.inflate(R.layout.notif_importance_preference, null));
+
+        preference.setBlockable(true);
+        preference.setConfigurable(true);
+        preference.setImportance(IMPORTANCE_DEFAULT);
+        preference.onBindViewHolder(holder);
+
+        ImageButton blockButton = (ImageButton) holder.findViewById(R.id.block_icon);
+        ImageButton silenceButton = (ImageButton) holder.findViewById(R.id.silence_icon);
+        ImageButton alertButton = (ImageButton) holder.findViewById(R.id.alert_icon);
+
+        silenceButton.callOnClick();
+
+        // selected has full color background. others are transparent
+        assertThat(getBackground(silenceButton).getColor().getColors()[0]).isNotEqualTo(
+                Color.TRANSPARENT);
+        assertThat(getBackground(alertButton).getColor().getColors()[0]).isEqualTo(
+                Color.TRANSPARENT);
+        assertThat(getBackground(blockButton).getColor().getColors()[0]).isEqualTo(
+                Color.TRANSPARENT);
+
+        verify(preference, times(1)).callChangeListener(IMPORTANCE_LOW);
+    }
+
+    @Test
+    public void onBindViewHolder_allButtonsVisible() {
+        final ImportancePreference preference = new ImportancePreference(mContext);
+        final LayoutInflater inflater = LayoutInflater.from(mContext);
+        final PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(
+                inflater.inflate(R.layout.notif_importance_preference, null));
+
+        preference.setBlockable(true);
+        preference.setConfigurable(true);
+        preference.onBindViewHolder(holder);
+
+        assertThat(holder.itemView.findViewById(R.id.block).getVisibility())
+                .isEqualTo(View.VISIBLE);
+        assertThat(holder.itemView.findViewById(R.id.silence).getVisibility())
+                .isEqualTo(View.VISIBLE);
+        assertThat(holder.itemView.findViewById(R.id.alert).getVisibility())
+                .isEqualTo(View.VISIBLE);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/MinImportancePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/MinImportancePreferenceControllerTest.java
new file mode 100644
index 0000000..28058a4
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/MinImportancePreferenceControllerTest.java
@@ -0,0 +1,199 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import static android.app.NotificationChannel.DEFAULT_CHANNEL_ID;
+import static android.app.NotificationManager.IMPORTANCE_LOW;
+import static android.app.NotificationManager.IMPORTANCE_MIN;
+import static android.app.NotificationManager.IMPORTANCE_NONE;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.content.Context;
+import android.os.UserManager;
+
+import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedSwitchPreference;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Answers;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.shadows.ShadowApplication;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+@RunWith(RobolectricTestRunner.class)
+public class MinImportancePreferenceControllerTest {
+
+    private Context mContext;
+    @Mock
+    private NotificationManager mNm;
+    @Mock
+    private NotificationBackend mBackend;
+    @Mock
+    private NotificationSettingsBase.ImportanceListener mImportanceListener;
+    @Mock
+    private UserManager mUm;
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private PreferenceScreen mScreen;
+
+    private MinImportancePreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        ShadowApplication shadowApplication = ShadowApplication.getInstance();
+        shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
+        shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
+        mContext = RuntimeEnvironment.application;
+        mController = spy(new MinImportancePreferenceController(
+                mContext, mImportanceListener, mBackend));
+    }
+
+    @Test
+    public void testNoCrashIfNoOnResume() {
+        mController.isAvailable();
+        mController.updateState(mock(Preference.class));
+    }
+
+    @Test
+    public void testIsAvailable_notIfNull() {
+        mController.onResume(null, null, null, null);
+        assertFalse(mController.isAvailable());
+    }
+
+    @Test
+    public void testIsAvailable_ifAppBlocked() {
+        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+        appRow.banned = true;
+        mController.onResume(appRow, mock(NotificationChannel.class), null, null);
+        assertFalse(mController.isAvailable());
+    }
+
+    @Test
+    public void testIsAvailable_notIfChannelBlocked() {
+        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+        NotificationChannel channel = mock(NotificationChannel.class);
+        when(channel.getImportance()).thenReturn(IMPORTANCE_NONE);
+        mController.onResume(appRow, channel, null, null);
+        assertFalse(mController.isAvailable());
+    }
+
+    @Test
+    public void testIsAvailable_notForDefaultChannel() {
+        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+        NotificationChannel channel = mock(NotificationChannel.class);
+        when(channel.getImportance()).thenReturn(IMPORTANCE_LOW);
+        when(channel.getId()).thenReturn(DEFAULT_CHANNEL_ID);
+        mController.onResume(appRow, channel, null, null);
+        assertFalse(mController.isAvailable());
+    }
+
+    @Test
+    public void testIsAvailable() {
+        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+        NotificationChannel channel = mock(NotificationChannel.class);
+        when(channel.getImportance()).thenReturn(IMPORTANCE_LOW);
+        mController.onResume(appRow, channel, null, null);
+        assertTrue(mController.isAvailable());
+    }
+
+    @Test
+    public void testUpdateState_disabledByAdmin() {
+        NotificationChannel channel = mock(NotificationChannel.class);
+        when(channel.getImportance()).thenReturn(IMPORTANCE_LOW);
+        mController.onResume(new NotificationBackend.AppRow(), channel, null, mock(
+                RestrictedLockUtils.EnforcedAdmin.class));
+
+        Preference pref = new RestrictedSwitchPreference(mContext, null);
+        mController.updateState(pref);
+
+        assertFalse(pref.isEnabled());
+    }
+
+    @Test
+    public void testUpdateState_notConfigurable() {
+        String lockedId = "locked";
+        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+        appRow.lockedChannelId = lockedId;
+        NotificationChannel channel = mock(NotificationChannel.class);
+        when(channel.getId()).thenReturn(lockedId);
+        when(channel.getImportance()).thenReturn(IMPORTANCE_LOW);
+        mController.onResume(appRow, channel, null, null);
+
+        Preference pref = new RestrictedSwitchPreference(mContext, null);
+        mController.updateState(pref);
+
+        assertFalse(pref.isEnabled());
+    }
+
+    @Test
+    public void testUpdateState_min() {
+        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+        NotificationChannel channel = new NotificationChannel("", "", IMPORTANCE_MIN);
+        mController.onResume(appRow, channel, null, null);
+
+        RestrictedSwitchPreference pref = new RestrictedSwitchPreference(mContext);
+        mController.updateState(pref);
+
+        assertTrue(pref.isChecked());
+    }
+
+    @Test
+    public void testUpdateState_low() {
+        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+        NotificationChannel channel = new NotificationChannel("", "", IMPORTANCE_LOW);
+        mController.onResume(appRow, channel, null, null);
+
+        RestrictedSwitchPreference pref = new RestrictedSwitchPreference(mContext);
+        mController.updateState(pref);
+
+        assertFalse(pref.isChecked());
+    }
+    
+    @Test
+    public void onPreferenceChange() {
+        NotificationChannel channel =
+                new NotificationChannel(DEFAULT_CHANNEL_ID, "a", IMPORTANCE_LOW);
+        mController.onResume(new NotificationBackend.AppRow(), channel, null, null);
+
+        RestrictedSwitchPreference pref = new RestrictedSwitchPreference(mContext, null);
+        when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(pref);
+        mController.displayPreference(mScreen);
+        mController.updateState(pref);
+
+        mController.onPreferenceChange(pref, true);
+
+        assertEquals(IMPORTANCE_MIN, channel.getImportance());
+        verify(mImportanceListener, times(1)).onImportanceChanged();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/NotificationAssistantPickerTest.java b/tests/robotests/src/com/android/settings/notification/NotificationAssistantPickerTest.java
index 6b6ed02..8f63201 100644
--- a/tests/robotests/src/com/android/settings/notification/NotificationAssistantPickerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/NotificationAssistantPickerTest.java
@@ -16,11 +16,11 @@
 
 package com.android.settings.notification;
 
-import static org.junit.Assert.fail;
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.RETURNS_SMART_NULLS;
@@ -40,16 +40,20 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.mockito.invocation.InvocationOnMock;
+import org.robolectric.RobolectricTestRunner;
 
 import java.util.ArrayList;
 import java.util.List;
 
-import org.mockito.invocation.InvocationOnMock;
-import org.robolectric.RobolectricTestRunner;
-
 @RunWith(RobolectricTestRunner.class)
 public class NotificationAssistantPickerTest {
 
+    private static final String TEST_PKG = "test.package";
+    private static final String TEST_SRV = "test.component";
+    private static final String TEST_CMP = TEST_PKG + "/" + TEST_SRV;
+    private static final String TEST_NAME = "Test name";
+    private static final ComponentName TEST_COMPONENT = ComponentName.unflattenFromString(TEST_CMP);
     private NotificationAssistantPicker mFragment;
     @Mock
     private Context mContext;
@@ -57,15 +61,11 @@
     private PackageManager mPackageManager;
     @Mock
     private NotificationBackend mNotificationBackend;
-    private static final String TEST_PKG = "test.package";
-    private static final String TEST_SRV = "test.component";
-    private static final String TEST_CMP = TEST_PKG + "/" + TEST_SRV;
-    private static final String TEST_NAME = "Test name";
-    private static final ComponentName TEST_COMPONENT = ComponentName.unflattenFromString(TEST_CMP);
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
+        when(mContext.getPackageManager()).thenReturn(mPackageManager);
         mFragment = new TestNotificationAssistantPicker(mContext, mPackageManager,
                 mNotificationBackend);
     }
@@ -132,7 +132,7 @@
     public void noDialogOnNoAssistantSelected() {
         when(mContext.getString(anyInt(), anyString())).thenAnswer(
                 (InvocationOnMock invocation) -> {
-                        return invocation.getArgument(1);
+                    return invocation.getArgument(1);
                 });
         assertNull(mFragment.getConfirmationMessage(
                 new NotificationAssistantPicker.CandidateNone(mContext)));
diff --git a/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java
index 1ad9378..2368af5 100644
--- a/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java
@@ -219,6 +219,20 @@
     }
 
     @Test
+    public void testIsConfigurable_appLevel() {
+        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+        appRow.lockedChannelId = "something";
+        appRow.lockedImportance = true;
+
+        mController.onResume(appRow, mock(NotificationChannel.class), null, null);
+        assertFalse(mController.isChannelConfigurable());
+
+        appRow.lockedImportance = false;
+        mController.onResume(appRow, mock(NotificationChannel.class), null, null);
+        assertTrue(mController.isChannelConfigurable());
+    }
+
+    @Test
     public void testIsChannelBlockable_nonSystemAppsBlockable() {
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.systemApp = false;
diff --git a/tests/robotests/src/com/android/settings/notification/RemoteVolumePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/RemoteVolumePreferenceControllerTest.java
new file mode 100644
index 0000000..1e68de5
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/RemoteVolumePreferenceControllerTest.java
@@ -0,0 +1,197 @@
+/*
+ * 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.settings.notification;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.media.session.ISessionController;
+import android.media.session.MediaController;
+import android.media.session.MediaSession;
+import android.media.session.MediaSessionManager;
+
+import com.android.settings.R;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RunWith(RobolectricTestRunner.class)
+public class RemoteVolumePreferenceControllerTest {
+    private static final int CURRENT_POS = 5;
+    private static final int MAX_POS = 10;
+
+    @Mock
+    private MediaSessionManager mMediaSessionManager;
+    @Mock
+    private MediaController mMediaController;
+    @Mock
+    private ISessionController mStub;
+    @Mock
+    private ISessionController mStub2;
+    private MediaSession.Token mToken;
+    private MediaSession.Token mToken2;
+    private RemoteVolumePreferenceController mController;
+    private Context mContext;
+    private List<MediaController> mActiveSessions;
+    private MediaController.PlaybackInfo mPlaybackInfo;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        mContext = spy(RuntimeEnvironment.application);
+        when(mContext.getSystemService(MediaSessionManager.class)).thenReturn(mMediaSessionManager);
+        mActiveSessions = new ArrayList<>();
+        mActiveSessions.add(mMediaController);
+        when(mMediaSessionManager.getActiveSessions(null)).thenReturn(
+                mActiveSessions);
+        mToken = new MediaSession.Token(mStub);
+        mToken2 = new MediaSession.Token(mStub2);
+
+        mController = new RemoteVolumePreferenceController(mContext);
+        mPlaybackInfo = new MediaController.PlaybackInfo(
+                MediaController.PlaybackInfo.PLAYBACK_TYPE_REMOTE, 0, MAX_POS, CURRENT_POS, null);
+        when(mMediaController.getPlaybackInfo()).thenReturn(mPlaybackInfo);
+    }
+
+    @Test
+    public void isAvailable_containRemoteMedia_returnTrue() {
+        when(mMediaController.getPlaybackInfo()).thenReturn(
+                new MediaController.PlaybackInfo(MediaController.PlaybackInfo.PLAYBACK_TYPE_REMOTE,
+                        0, 0, 0, null));
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void isAvailable_noRemoteMedia_returnFalse() {
+        when(mMediaController.getPlaybackInfo()).thenReturn(
+                new MediaController.PlaybackInfo(MediaController.PlaybackInfo.PLAYBACK_TYPE_LOCAL,
+                        0, 0, 0, null));
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void getMuteIcon_returnMuteIcon() {
+        assertThat(mController.getMuteIcon()).isEqualTo(R.drawable.ic_volume_remote_mute);
+    }
+
+    @Test
+    public void getAudioStream_returnRemoteVolume() {
+        assertThat(mController.getAudioStream()).isEqualTo(
+                RemoteVolumePreferenceController.REMOTE_VOLUME);
+    }
+
+    @Test
+    public void getSliderPosition_controllerNull_returnZero() {
+        mController.mMediaController = null;
+
+        assertThat(mController.getSliderPosition()).isEqualTo(0);
+    }
+
+    @Test
+    public void getSliderPosition_controllerExists_returnValue() {
+        mController.mMediaController = mMediaController;
+
+        assertThat(mController.getSliderPosition()).isEqualTo(CURRENT_POS);
+    }
+
+    @Test
+    public void getMaxSteps_controllerNull_returnZero() {
+        mController.mMediaController = null;
+
+        assertThat(mController.getMaxSteps()).isEqualTo(0);
+    }
+
+    @Test
+    public void getMaxSteps_controllerExists_returnValue() {
+        mController.mMediaController = mMediaController;
+
+        assertThat(mController.getMaxSteps()).isEqualTo(MAX_POS);
+    }
+
+    @Test
+    public void setSliderPosition_controllerNull_returnFalse() {
+        mController.mMediaController = null;
+
+        assertThat(mController.setSliderPosition(CURRENT_POS)).isFalse();
+    }
+
+    @Test
+    public void setSliderPosition_controllerExists_returnTrue() {
+        mController.mMediaController = mMediaController;
+
+        assertThat(mController.setSliderPosition(CURRENT_POS)).isTrue();
+        verify(mMediaController).setVolumeTo(CURRENT_POS, 0 /* flags */);
+    }
+
+    @Test
+    public void onRemoteUpdate_firstToken_updateTokenAndPreference() {
+        mController.mPreference = new VolumeSeekBarPreference(mContext);
+        mController.mActiveToken = null;
+
+        mController.mCallbacks.onRemoteUpdate(mToken, "token", mPlaybackInfo);
+
+        assertThat(mController.mActiveToken).isEqualTo(mToken);
+        assertThat(mController.mPreference.isVisible()).isTrue();
+        assertThat(mController.mPreference.getMax()).isEqualTo(MAX_POS);
+        assertThat(mController.mPreference.getProgress()).isEqualTo(CURRENT_POS);
+    }
+
+    @Test
+    public void onRemoteUpdate_differentToken_doNothing() {
+        mController.mActiveToken = mToken;
+
+        mController.mCallbacks.onRemoteUpdate(mToken2, "token2", mPlaybackInfo);
+
+        assertThat(mController.mActiveToken).isEqualTo(mToken);
+    }
+
+    @Test
+    public void onRemoteRemoved_tokenRemoved_setInvisible() {
+        mController.mPreference = new VolumeSeekBarPreference(mContext);
+        mController.mActiveToken = mToken;
+
+        mController.mCallbacks.onRemoteRemoved(mToken);
+
+        assertThat(mController.mActiveToken).isNull();
+        assertThat(mController.mPreference.isVisible()).isFalse();
+    }
+
+    @Test
+    public void onRemoteVolumeChanged_volumeChanged_updateIt() {
+        mController.mPreference = new VolumeSeekBarPreference(mContext);
+        mController.mPreference.setMax(MAX_POS);
+        mController.mActiveToken = mToken;
+        mController.mMediaController = mMediaController;
+
+        mController.mCallbacks.onRemoteVolumeChanged(mToken, 0 /* flags */);
+
+        assertThat(mController.mPreference.getProgress()).isEqualTo(CURRENT_POS);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/panel/NfcPanelTest.java b/tests/robotests/src/com/android/settings/panel/NfcPanelTest.java
index bf6662d..1de2c5a 100644
--- a/tests/robotests/src/com/android/settings/panel/NfcPanelTest.java
+++ b/tests/robotests/src/com/android/settings/panel/NfcPanelTest.java
@@ -1,3 +1,19 @@
+/*
+ * 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.settings.panel;
 
 import static com.google.common.truth.Truth.assertThat;
diff --git a/tests/robotests/src/com/android/settings/panel/SettingsPanelActivityTest.java b/tests/robotests/src/com/android/settings/panel/SettingsPanelActivityTest.java
index a51b7b0..1d5c3c2 100644
--- a/tests/robotests/src/com/android/settings/panel/SettingsPanelActivityTest.java
+++ b/tests/robotests/src/com/android/settings/panel/SettingsPanelActivityTest.java
@@ -76,15 +76,16 @@
     }
 
     @Test
-    public void startMediaOutputSlice_withoutPackageName_bundleShouldNotHaveValue() {
+    public void startMediaOutputSlice_withoutPackageName_bundleShouldHaveValue() {
         final Intent intent = new Intent()
                 .setAction("com.android.settings.panel.action.MEDIA_OUTPUT");
 
         final SettingsPanelActivity activity =
                 Robolectric.buildActivity(SettingsPanelActivity.class, intent).create().get();
 
-        assertThat(activity.mBundle.containsKey(KEY_MEDIA_PACKAGE_NAME)).isFalse();
-        assertThat(activity.mBundle.containsKey(KEY_PANEL_TYPE_ARGUMENT)).isFalse();
+        assertThat(activity.mBundle.containsKey(KEY_MEDIA_PACKAGE_NAME)).isTrue();
+        assertThat(activity.mBundle.getString(KEY_PANEL_TYPE_ARGUMENT))
+                .isEqualTo("com.android.settings.panel.action.MEDIA_OUTPUT");
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/panel/VolumePanelTest.java b/tests/robotests/src/com/android/settings/panel/VolumePanelTest.java
index 11964cd..4665dc9 100644
--- a/tests/robotests/src/com/android/settings/panel/VolumePanelTest.java
+++ b/tests/robotests/src/com/android/settings/panel/VolumePanelTest.java
@@ -45,6 +45,7 @@
         final List<Uri> uris = mPanel.getSlices();
 
         assertThat(uris).containsExactly(
+                CustomSliceRegistry.VOLUME_REMOTE_MEDIA_URI,
                 CustomSliceRegistry.VOLUME_CALL_URI,
                 CustomSliceRegistry.VOLUME_MEDIA_URI,
                 CustomSliceRegistry.VOLUME_RINGER_URI,
diff --git a/tests/robotests/src/com/android/settings/panel/WifiPanelTest.java b/tests/robotests/src/com/android/settings/panel/WifiPanelTest.java
new file mode 100644
index 0000000..08db23e
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/panel/WifiPanelTest.java
@@ -0,0 +1,55 @@
+/*
+ * 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.settings.panel;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.net.Uri;
+
+import com.android.settings.slices.CustomSliceRegistry;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+import java.util.List;
+
+@RunWith(RobolectricTestRunner.class)
+public class WifiPanelTest {
+
+    private WifiPanel mPanel;
+
+    @Before
+    public void setUp() {
+        mPanel = WifiPanel.create(RuntimeEnvironment.application);
+    }
+
+    @Test
+    public void getSlices_containsNecessarySlices() {
+        final List<Uri> uris = mPanel.getSlices();
+
+        assertThat(uris).containsExactly(
+                CustomSliceRegistry.WIFI_SLICE_URI);
+    }
+
+    @Test
+    public void getSeeMoreIntent_notNull() {
+        assertThat(mPanel.getSeeMoreIntent()).isNotNull();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java b/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java
index 48f9fb4..bed09cb 100644
--- a/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java
@@ -16,7 +16,7 @@
 
 package com.android.settings.password;
 
-import static android.Manifest.permission.REQUEST_SCREEN_LOCK_COMPLEXITY;
+import static android.Manifest.permission.REQUEST_PASSWORD_COMPLEXITY;
 import static android.app.admin.DevicePolicyManager.ACTION_SET_NEW_PARENT_PROFILE_PASSWORD;
 import static android.app.admin.DevicePolicyManager.ACTION_SET_NEW_PASSWORD;
 import static android.app.admin.DevicePolicyManager.EXTRA_PASSWORD_COMPLEXITY;
@@ -139,7 +139,7 @@
     public void testLaunchChooseLock_setNewPasswordExtraWithPermission() {
         ShadowPasswordUtils.setCallingAppLabel(APP_LABEL);
         ShadowPasswordUtils.setCallingAppPackageName(PKG_NAME);
-        ShadowPasswordUtils.addGrantedPermission(REQUEST_SCREEN_LOCK_COMPLEXITY);
+        ShadowPasswordUtils.addGrantedPermission(REQUEST_PASSWORD_COMPLEXITY);
         Settings.Global.putInt(RuntimeEnvironment.application.getContentResolver(),
                 Settings.Global.DEVICE_PROVISIONED, 1);
 
@@ -169,7 +169,7 @@
     public void testLaunchChooseLock_setNewPasswordExtraInvalidValue() {
         ShadowPasswordUtils.setCallingAppLabel(APP_LABEL);
         ShadowPasswordUtils.setCallingAppPackageName(PKG_NAME);
-        ShadowPasswordUtils.addGrantedPermission(REQUEST_SCREEN_LOCK_COMPLEXITY);
+        ShadowPasswordUtils.addGrantedPermission(REQUEST_PASSWORD_COMPLEXITY);
         Settings.Global.putInt(RuntimeEnvironment.application.getContentResolver(),
                 Settings.Global.DEVICE_PROVISIONED, 1);
 
@@ -197,7 +197,7 @@
     public void testLaunchChooseLock_setNewPasswordExtraNoneComplexity() {
         ShadowPasswordUtils.setCallingAppLabel(APP_LABEL);
         ShadowPasswordUtils.setCallingAppPackageName(PKG_NAME);
-        ShadowPasswordUtils.addGrantedPermission(REQUEST_SCREEN_LOCK_COMPLEXITY);
+        ShadowPasswordUtils.addGrantedPermission(REQUEST_PASSWORD_COMPLEXITY);
         Settings.Global.putInt(RuntimeEnvironment.application.getContentResolver(),
                 Settings.Global.DEVICE_PROVISIONED, 1);
 
@@ -225,7 +225,7 @@
     public void testLaunchChooseLock_setNewPasswordWithoutExtra() {
         ShadowPasswordUtils.setCallingAppLabel(APP_LABEL);
         ShadowPasswordUtils.setCallingAppPackageName(PKG_NAME);
-        ShadowPasswordUtils.addGrantedPermission(REQUEST_SCREEN_LOCK_COMPLEXITY);
+        ShadowPasswordUtils.addGrantedPermission(REQUEST_PASSWORD_COMPLEXITY);
         Settings.Global.putInt(RuntimeEnvironment.application.getContentResolver(),
                 Settings.Global.DEVICE_PROVISIONED, 1);
 
@@ -252,7 +252,7 @@
     public void testLaunchChooseLock_setNewParentProfilePasswordExtraWithPermission() {
         ShadowPasswordUtils.setCallingAppLabel(APP_LABEL);
         ShadowPasswordUtils.setCallingAppPackageName(PKG_NAME);
-        ShadowPasswordUtils.addGrantedPermission(REQUEST_SCREEN_LOCK_COMPLEXITY);
+        ShadowPasswordUtils.addGrantedPermission(REQUEST_PASSWORD_COMPLEXITY);
         Settings.Global.putInt(RuntimeEnvironment.application.getContentResolver(),
                 Settings.Global.DEVICE_PROVISIONED, 1);
 
@@ -280,7 +280,7 @@
     public void testLaunchChooseLock_setNewParentProfilePasswordWithoutExtra() {
         ShadowPasswordUtils.setCallingAppLabel(APP_LABEL);
         ShadowPasswordUtils.setCallingAppPackageName(PKG_NAME);
-        ShadowPasswordUtils.addGrantedPermission(REQUEST_SCREEN_LOCK_COMPLEXITY);
+        ShadowPasswordUtils.addGrantedPermission(REQUEST_PASSWORD_COMPLEXITY);
         Settings.Global.putInt(RuntimeEnvironment.application.getContentResolver(),
                 Settings.Global.DEVICE_PROVISIONED, 1);
 
diff --git a/tests/robotests/src/com/android/settings/password/SetupChooseLockGenericTest.java b/tests/robotests/src/com/android/settings/password/SetupChooseLockGenericTest.java
index d35b38a..cd79f58 100644
--- a/tests/robotests/src/com/android/settings/password/SetupChooseLockGenericTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetupChooseLockGenericTest.java
@@ -16,7 +16,7 @@
 
 package com.android.settings.password;
 
-import static android.Manifest.permission.REQUEST_SCREEN_LOCK_COMPLEXITY;
+import static android.Manifest.permission.REQUEST_PASSWORD_COMPLEXITY;
 import static android.app.admin.DevicePolicyManager.PASSWORD_COMPLEXITY_HIGH;
 
 import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_REQUESTED_MIN_COMPLEXITY;
@@ -68,7 +68,7 @@
     @Test
     @Config(shadows = {ShadowPasswordUtils.class})
     public void setupChooseLockGenericPasswordComplexityExtraWithPermission() {
-        ShadowPasswordUtils.addGrantedPermission(REQUEST_SCREEN_LOCK_COMPLEXITY);
+        ShadowPasswordUtils.addGrantedPermission(REQUEST_PASSWORD_COMPLEXITY);
 
         Intent intent = new Intent("com.android.settings.SETUP_LOCK_SCREEN");
         intent.putExtra(EXTRA_KEY_REQUESTED_MIN_COMPLEXITY, PASSWORD_COMPLEXITY_HIGH);
diff --git a/tests/robotests/src/com/android/settings/privacy/EnableContentCapturePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/privacy/EnableContentCapturePreferenceControllerTest.java
new file mode 100644
index 0000000..a379858
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/privacy/EnableContentCapturePreferenceControllerTest.java
@@ -0,0 +1,103 @@
+/*
+ * 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.settings.privacy;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.provider.Settings;
+import android.provider.Settings.SettingNotFoundException;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class EnableContentCapturePreferenceControllerTest {
+
+    @Mock
+    private PreferenceScreen mScreen;
+
+    private Context mContext;
+    private EnableContentCapturePreferenceController mController;
+    private Preference mPreference;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        mController = new EnableContentCapturePreferenceController(mContext);
+        mPreference = new Preference(mContext);
+        mPreference.setKey(mController.getPreferenceKey());
+    }
+
+    @Test
+    public void isChecked_settingIsOff_false() throws Exception {
+        setProperty(0);
+
+        assertThat(mController.isChecked()).isFalse();
+    }
+
+    @Test
+    public void isChecked_settingIsOn_true() throws Exception {
+        setProperty(1);
+
+        assertThat(mController.isChecked()).isTrue();
+    }
+
+    @Test
+    public void changePref_turnOn_shouldChangeSettingTo1() throws Exception {
+        setProperty(0);
+
+        mController.onPreferenceChange(mPreference, true);
+
+        assertThat(mController.isChecked()).isTrue();
+        assertProperty(1);
+    }
+
+    @Test
+    public void changePref_turnOff_shouldChangeSettingTo0() throws Exception {
+        setProperty(1);
+
+        mController.onPreferenceChange(mPreference, false);
+
+        assertThat(mController.isChecked()).isFalse();
+        assertProperty(0);
+    }
+
+    private void setProperty(int newValue) throws SettingNotFoundException {
+        final ContentResolver contentResolver = mContext.getContentResolver();
+        Settings.Secure.putInt(contentResolver, Settings.Secure.CONTENT_CAPTURE_ENABLED, newValue);
+    }
+
+    private void assertProperty(int expectedValue) throws SettingNotFoundException {
+        final ContentResolver contentResolver = mContext.getContentResolver();
+        assertThat(Settings.Secure.getInt(contentResolver, Settings.Secure.CONTENT_CAPTURE_ENABLED))
+                .isEqualTo(expectedValue);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
index a693f34..23025b2 100644
--- a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
@@ -135,7 +135,6 @@
         mProvider.mSliceWeakDataCache = new HashMap<>();
         mProvider.mSliceDataCache = new HashMap<>();
         mProvider.mSlicesDatabaseAccessor = new SlicesDatabaseAccessor(mContext);
-        mProvider.mCustomSliceManager = new CustomSliceManager(mContext);
         when(mProvider.getContext()).thenReturn(mContext);
 
         SlicesDatabaseHelper.getInstance(mContext).setIndexedState();
diff --git a/tests/robotests/src/com/android/settings/slices/SliceBroadcastReceiverTest.java b/tests/robotests/src/com/android/settings/slices/SliceBroadcastReceiverTest.java
index 74f4ac2..1ea324d 100644
--- a/tests/robotests/src/com/android/settings/slices/SliceBroadcastReceiverTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SliceBroadcastReceiverTest.java
@@ -19,14 +19,12 @@
 
 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.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
 
 import android.app.settings.SettingsEnums;
 import android.app.slice.Slice;
@@ -82,9 +80,6 @@
         mSearchFeatureProvider = new SearchFeatureProviderImpl();
         mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
         mFakeFeatureFactory.searchFeatureProvider = mSearchFeatureProvider;
-        CustomSliceManager manager = new CustomSliceManager(mContext);
-        when(mFakeFeatureFactory.slicesFeatureProvider.getCustomSliceManager(any()))
-                .thenReturn(manager);
     }
 
     @After
diff --git a/tests/robotests/src/com/android/settings/slices/SlicesDatabaseHelperTest.java b/tests/robotests/src/com/android/settings/slices/SlicesDatabaseHelperTest.java
index 0e92c05..96bca07 100644
--- a/tests/robotests/src/com/android/settings/slices/SlicesDatabaseHelperTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SlicesDatabaseHelperTest.java
@@ -55,6 +55,7 @@
     @After
     public void cleanUp() {
         DatabaseTestUtils.clearDb(mContext);
+        mDatabase.close();
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/slices/SpecialCaseSliceManagerTest.java b/tests/robotests/src/com/android/settings/slices/SpecialCaseSliceManagerTest.java
index 82726df..d483f9e 100644
--- a/tests/robotests/src/com/android/settings/slices/SpecialCaseSliceManagerTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SpecialCaseSliceManagerTest.java
@@ -19,8 +19,6 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Mockito.spy;
-
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
@@ -39,44 +37,50 @@
 @RunWith(RobolectricTestRunner.class)
 public class SpecialCaseSliceManagerTest {
 
-    private Context mContext;
+    private final String FAKE_PARAMETER_KEY = "fake_parameter_key";
+    private final String FAKE_PARAMETER_VALUE = "fake_value";
 
-    private CustomSliceManager mCustomSliceManager;
+    private Context mContext;
 
     @Before
     public void setUp() {
         mContext = RuntimeEnvironment.application;
-        mCustomSliceManager = spy(new CustomSliceManager(mContext));
-        mCustomSliceManager.mUriMap.clear();
-        mCustomSliceManager.mUriMap.put(FakeSliceable.URI, FakeSliceable.class);
+        CustomSliceRegistry.sUriToSlice.clear();
+        CustomSliceRegistry.sUriToSlice.put(FakeSliceable.URI, FakeSliceable.class);
     }
 
     @Test
     public void getSliceableFromUri_returnsCorrectObject() {
-        final CustomSliceable sliceable = mCustomSliceManager.getSliceableFromUri(
-                FakeSliceable.URI);
+        final CustomSliceable sliceable = CustomSliceable.createInstance(
+                mContext, CustomSliceRegistry.getSliceClassByUri(FakeSliceable.URI));
 
         assertThat(sliceable).isInstanceOf(FakeSliceable.class);
     }
 
     @Test
-    public void getSliceableFromIntentAction_returnsCorrectObject() {
-        final CustomSliceable sliceable =
-                mCustomSliceManager.getSliceableFromIntentAction(FakeSliceable.URI.toString());
+    public void getSliceableFromUriWithParameter_returnsCorrectObject() {
+        final Uri parameterUri = FakeSliceable.URI
+                .buildUpon()
+                .clearQuery()
+                .appendQueryParameter(FAKE_PARAMETER_KEY, FAKE_PARAMETER_VALUE)
+                .build();
+
+        final CustomSliceable sliceable = CustomSliceable.createInstance(
+                mContext, CustomSliceRegistry.getSliceClassByUri(parameterUri));
 
         assertThat(sliceable).isInstanceOf(FakeSliceable.class);
     }
 
     @Test
     public void isValidUri_validUri_returnsTrue() {
-        final boolean isValidUri = mCustomSliceManager.isValidUri(FakeSliceable.URI);
+        final boolean isValidUri = CustomSliceRegistry.isValidUri(FakeSliceable.URI);
 
         assertThat(isValidUri).isTrue();
     }
 
     @Test
     public void isValidUri_invalidUri_returnsFalse() {
-        final boolean isValidUri = mCustomSliceManager.isValidUri(null);
+        final boolean isValidUri = CustomSliceRegistry.isValidUri(null);
 
         assertThat(isValidUri).isFalse();
     }
@@ -84,14 +88,14 @@
     @Test
     public void isValidAction_validActions_returnsTrue() {
         final boolean isValidAction =
-                mCustomSliceManager.isValidAction(FakeSliceable.URI.toString());
+                CustomSliceRegistry.isValidAction(FakeSliceable.URI.toString());
 
         assertThat(isValidAction).isTrue();
     }
 
     @Test
     public void isValidAction_invalidAction_returnsFalse() {
-        final boolean isValidAction = mCustomSliceManager.isValidAction("action");
+        final boolean isValidAction = CustomSliceRegistry.isValidAction("action");
 
         assertThat(isValidAction).isFalse();
     }
diff --git a/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java
index 54a79f4..5b7c863 100644
--- a/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java
@@ -238,63 +238,6 @@
         verify(mLocalBluetoothManager).setForegroundActivity(null);
     }
 
-    @Test
-    public void onPreferenceChange_toThisDevice_shouldSetDefaultSummary() {
-        mController.mConnectedDevices.clear();
-        mController.mConnectedDevices.add(mBluetoothDevice);
-
-        mController.onPreferenceChange(mPreference,
-                mContext.getText(R.string.media_output_default_summary));
-
-        assertThat(mPreference.getSummary()).isEqualTo(
-                mContext.getText(R.string.media_output_default_summary));
-    }
-
-    /**
-     * One Bluetooth devices are available, and select the device.
-     * Preference summary should be device name.
-     */
-    @Test
-    public void onPreferenceChange_toBtDevice_shouldSetBtDeviceName() {
-        mController.mConnectedDevices.clear();
-        mController.mConnectedDevices.add(mBluetoothDevice);
-
-        mController.onPreferenceChange(mPreference, TEST_DEVICE_ADDRESS_1);
-
-        assertThat(mPreference.getSummary()).isEqualTo(TEST_DEVICE_NAME_1);
-    }
-
-    /**
-     * More than one Bluetooth devices are available, and select second device.
-     * Preference summary should be second device name.
-     */
-    @Test
-    public void onPreferenceChange_toBtDevices_shouldSetSecondBtDeviceName() {
-        ShadowBluetoothDevice shadowBluetoothDevice;
-        BluetoothDevice secondBluetoothDevice;
-        secondBluetoothDevice = mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_2);
-        shadowBluetoothDevice = Shadows.shadowOf(secondBluetoothDevice);
-        shadowBluetoothDevice.setName(TEST_DEVICE_NAME_2);
-        mController.mConnectedDevices.clear();
-        mController.mConnectedDevices.add(mBluetoothDevice);
-        mController.mConnectedDevices.add(secondBluetoothDevice);
-
-        mController.onPreferenceChange(mPreference, TEST_DEVICE_ADDRESS_2);
-
-        assertThat(mPreference.getSummary()).isEqualTo(TEST_DEVICE_NAME_2);
-    }
-
-    /**
-     * mConnectedDevices is empty.
-     * onPreferenceChange should return false.
-     */
-    @Test
-    public void onPreferenceChange_connectedDeviceIsNull_shouldReturnFalse() {
-        mController.mConnectedDevices.clear();
-
-        assertThat(mController.onPreferenceChange(mPreference, TEST_DEVICE_ADDRESS_1)).isFalse();
-    }
-
     /**
      * Audio stream output to bluetooth sco headset which is the subset of all sco device.
      * isStreamFromOutputDevice should return true.
@@ -416,39 +359,6 @@
     }
 
     /**
-     * One A2dp device is connected.
-     * getConnectedA2dpDevices should add this device to list.
-     */
-    @Test
-    public void getConnectedA2dpDevices_oneConnectedA2dpDevice_shouldAddDeviceToList() {
-        mEmptyDevices.clear();
-        mProfileConnectedDevices.clear();
-        mProfileConnectedDevices.add(mBluetoothDevice);
-        when(mA2dpProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
-
-        mEmptyDevices.addAll(mController.getConnectedA2dpDevices());
-
-        assertThat(mEmptyDevices).containsExactly(mBluetoothDevice);
-    }
-
-    /**
-     * More than one A2dp devices are connected.
-     * getConnectedA2dpDevices should add all devices to list.
-     */
-    @Test
-    public void getConnectedA2dpDevices_moreThanOneConnectedA2dpDevice_shouldAddDeviceToList() {
-        mEmptyDevices.clear();
-        mProfileConnectedDevices.clear();
-        mProfileConnectedDevices.add(mBluetoothDevice);
-        mProfileConnectedDevices.add(mLeftBluetoothHapDevice);
-        when(mA2dpProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
-
-        mEmptyDevices.addAll(mController.getConnectedA2dpDevices());
-
-        assertThat(mEmptyDevices).containsExactly(mBluetoothDevice, mLeftBluetoothHapDevice);
-    }
-
-    /**
      * One hands free profile device is connected.
      * getConnectedA2dpDevices should add this device to list.
      */
@@ -488,10 +398,6 @@
         }
 
         @Override
-        public void setActiveBluetoothDevice(BluetoothDevice device) {
-        }
-
-        @Override
         public BluetoothDevice findActiveDevice() {
             return null;
         }
diff --git a/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java
index 4010145..0eada60 100644
--- a/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java
@@ -57,6 +57,7 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowBluetoothDevice;
 
@@ -107,7 +108,7 @@
     private BluetoothDevice mLeftBluetoothHapDevice;
     private BluetoothDevice mRightBluetoothHapDevice;
     private LocalBluetoothManager mLocalBluetoothManager;
-    private AudioSwitchPreferenceController mController;
+    private HandsFreeProfileOutputPreferenceController mController;
     private List<BluetoothDevice> mProfileConnectedDevices;
     private List<BluetoothDevice> mHearingAidActiveDevices;
 
@@ -478,4 +479,61 @@
 
         assertThat(mController.findActiveDevice()).isNull();
     }
+
+    /**
+     * One Bluetooth devices are available, and select the device.
+     * Preference summary should be device name.
+     */
+    @Test
+    public void onPreferenceChange_toBtDevice_shouldSetBtDeviceName() {
+        mController.mConnectedDevices.clear();
+        mController.mConnectedDevices.add(mBluetoothDevice);
+
+        mController.onPreferenceChange(mPreference, TEST_DEVICE_ADDRESS_1);
+
+        assertThat(mPreference.getSummary()).isEqualTo(TEST_DEVICE_NAME_1);
+    }
+
+    /**
+     * More than one Bluetooth devices are available, and select second device.
+     * Preference summary should be second device name.
+     */
+    @Test
+    public void onPreferenceChange_toBtDevices_shouldSetSecondBtDeviceName() {
+        ShadowBluetoothDevice shadowBluetoothDevice;
+        BluetoothDevice secondBluetoothDevice;
+        secondBluetoothDevice = mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_2);
+        shadowBluetoothDevice = Shadows.shadowOf(secondBluetoothDevice);
+        shadowBluetoothDevice.setName(TEST_DEVICE_NAME_2);
+        mController.mConnectedDevices.clear();
+        mController.mConnectedDevices.add(mBluetoothDevice);
+        mController.mConnectedDevices.add(secondBluetoothDevice);
+
+        mController.onPreferenceChange(mPreference, TEST_DEVICE_ADDRESS_2);
+
+        assertThat(mPreference.getSummary()).isEqualTo(TEST_DEVICE_NAME_2);
+    }
+
+    /**
+     * mConnectedDevices is empty.
+     * onPreferenceChange should return false.
+     */
+    @Test
+    public void onPreferenceChange_connectedDeviceIsNull_shouldReturnFalse() {
+        mController.mConnectedDevices.clear();
+
+        assertThat(mController.onPreferenceChange(mPreference, TEST_DEVICE_ADDRESS_1)).isFalse();
+    }
+
+    @Test
+    public void onPreferenceChange_toThisDevice_shouldSetDefaultSummary() {
+        mController.mConnectedDevices.clear();
+        mController.mConnectedDevices.add(mBluetoothDevice);
+
+        mController.onPreferenceChange(mPreference,
+                mContext.getText(R.string.media_output_default_summary));
+
+        assertThat(mPreference.getSummary()).isEqualTo(
+                mContext.getText(R.string.media_output_default_summary));
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
index 8c7faef..7fcd3d2 100644
--- a/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
@@ -17,16 +17,15 @@
 package com.android.settings.sound;
 
 import static android.media.AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP;
+import static android.media.AudioSystem.DEVICE_OUT_EARPIECE;
 import static android.media.AudioSystem.DEVICE_OUT_HEARING_AID;
 import static android.media.AudioSystem.DEVICE_OUT_REMOTE_SUBMIX;
 
 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.never;
 import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
@@ -34,9 +33,10 @@
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothManager;
 import android.content.Context;
+import android.content.Intent;
 import android.media.AudioManager;
 
-import androidx.preference.ListPreference;
+import androidx.preference.Preference;
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
 
@@ -49,11 +49,13 @@
 import com.android.settingslib.bluetooth.HearingAidProfile;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
+import com.android.settingslib.media.MediaOutputSliceConstants;
 
 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.RobolectricTestRunner;
@@ -80,8 +82,6 @@
     private static final String TEST_DEVICE_ADDRESS_2 = "00:B2:B2:B2:B2:B2";
     private static final String TEST_DEVICE_ADDRESS_3 = "00:C3:C3:C3:C3:C3";
     private static final String TEST_DEVICE_ADDRESS_4 = "00:D4:D4:D4:D4:D4";
-    private final static long HISYNCID1 = 10;
-    private final static long HISYNCID2 = 11;
 
     @Mock
     private LocalBluetoothManager mLocalManager;
@@ -98,7 +98,7 @@
 
     private Context mContext;
     private PreferenceScreen mScreen;
-    private ListPreference mPreference;
+    private Preference mPreference;
     private AudioManager mAudioManager;
     private ShadowAudioManager mShadowAudioManager;
     private BluetoothManager mBluetoothManager;
@@ -108,8 +108,8 @@
     private BluetoothDevice mLeftBluetoothHapDevice;
     private BluetoothDevice mRightBluetoothHapDevice;
     private LocalBluetoothManager mLocalBluetoothManager;
-    private AudioSwitchPreferenceController mController;
-    private List<BluetoothDevice> mProfileConnectedDevices;
+    private MediaOutputPreferenceController mController;
+    private List<BluetoothDevice> mProfileConnectableDevices;
     private List<BluetoothDevice> mHearingAidActiveDevices;
 
     @Before
@@ -149,8 +149,8 @@
 
         mController = new MediaOutputPreferenceController(mContext, TEST_KEY);
         mScreen = spy(new PreferenceScreen(mContext, null));
-        mPreference = new ListPreference(mContext);
-        mProfileConnectedDevices = new ArrayList<>();
+        mPreference = new Preference(mContext);
+        mProfileConnectableDevices = new ArrayList<>();
         mHearingAidActiveDevices = new ArrayList<>(2);
 
         when(mScreen.getPreferenceManager()).thenReturn(mock(PreferenceManager.class));
@@ -166,61 +166,140 @@
         ShadowBluetoothUtils.reset();
     }
 
+
     /**
-     * In normal mode, bluetooth device with HisyncId.
-     * HearingAidProfile should set active device to this device.
+     * A2DP Bluetooth device(s) are not connected nor previously connected
+     * Preference should be invisible
      */
     @Test
-    public void setActiveBluetoothDevice_btDeviceWithHisyncId_shouldSetBtDeviceActive() {
+    public void updateState_withoutConnectableBtDevice_preferenceInvisible() {
+        mShadowAudioManager.setOutputDevice(DEVICE_OUT_EARPIECE);
         mAudioManager.setMode(AudioManager.MODE_NORMAL);
-        when(mHearingAidProfile.getHiSyncId(mLeftBluetoothHapDevice)).thenReturn(HISYNCID1);
+        mProfileConnectableDevices.clear();
+        when(mA2dpProfile.getConnectableDevices()).thenReturn(mProfileConnectableDevices);
+        mPreference.setVisible(true);
 
-        mController.setActiveBluetoothDevice(mLeftBluetoothHapDevice);
-
-        verify(mHearingAidProfile).setActiveDevice(mLeftBluetoothHapDevice);
-        verify(mA2dpProfile, never()).setActiveDevice(mLeftBluetoothHapDevice);
+        assertThat(mPreference.isVisible()).isTrue();
+        mController.updateState(mPreference);
+        assertThat(mPreference.isVisible()).isFalse();
     }
 
     /**
-     * In normal mode, bluetooth device without HisyncId.
-     * A2dpProfile should set active device to this device.
+     * A2DP Bluetooth device(s) are connectable, no matter active or inactive
+     * Preference should be visible
      */
     @Test
-    public void setActiveBluetoothDevice_btDeviceWithoutHisyncId_shouldSetBtDeviceActive() {
+    public void updateState_withConnectableBtDevice_preferenceVisible() {
+        mShadowAudioManager.setOutputDevice(DEVICE_OUT_BLUETOOTH_A2DP);
         mAudioManager.setMode(AudioManager.MODE_NORMAL);
+        mProfileConnectableDevices.clear();
+        mProfileConnectableDevices.add(mBluetoothDevice);
+        when(mA2dpProfile.getConnectableDevices()).thenReturn(mProfileConnectableDevices);
+        assertThat(mPreference.isVisible()).isFalse();
 
-        mController.setActiveBluetoothDevice(mBluetoothDevice);
+        // Without Active Bluetooth Device
+        mController.updateState(mPreference);
+        assertThat(mPreference.isVisible()).isTrue();
 
-        verify(mA2dpProfile).setActiveDevice(mBluetoothDevice);
-        verify(mHearingAidProfile, never()).setActiveDevice(mBluetoothDevice);
+        // With Active Bluetooth Device
+        when(mA2dpProfile.getActiveDevice()).thenReturn(mBluetoothDevice);
+        mController.updateState(mPreference);
+        assertThat(mPreference.isVisible()).isTrue();
     }
 
     /**
-     * In normal mode, set active device to "this device".
-     * A2dpProfile should set to null.
-     * HearingAidProfile should set to null.
+     * A2DP Bluetooth device(s) are connectable, but no device is set as activated
+     * Preference summary should be "This device"
      */
     @Test
-    public void setActiveBluetoothDevice_setNull_shouldSetNullToBothProfiles() {
+    public void updateState_withConnectableBtDevice_withoutActiveBtDevice_setDefaultSummary() {
+        mShadowAudioManager.setOutputDevice(DEVICE_OUT_EARPIECE);
         mAudioManager.setMode(AudioManager.MODE_NORMAL);
+        mProfileConnectableDevices.clear();
+        mProfileConnectableDevices.add(mBluetoothDevice);
+        mProfileConnectableDevices.add(mSecondBluetoothDevice);
+        when(mA2dpProfile.getConnectableDevices()).thenReturn(mProfileConnectableDevices);
+        when(mA2dpProfile.getActiveDevice()).thenReturn(null);
 
-        mController.setActiveBluetoothDevice(null);
-
-        verify(mA2dpProfile).setActiveDevice(null);
-        verify(mHearingAidProfile).setActiveDevice(null);
+        assertThat(mPreference.getSummary()).isNull();
+        mController.updateState(mPreference);
+        assertThat(mPreference.getSummary()).isEqualTo(
+                mContext.getText(R.string.media_output_default_summary));
     }
 
     /**
-     * During a call
-     * A2dpProfile should not set active device.
+     * A2DP Bluetooth device(s) are connected and active
+     * Preference summary should be device's name
      */
     @Test
-    public void setActiveBluetoothDevice_duringACall_shouldNotSetActiveDeviceToA2dpProfile() {
-        mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
+    public void updateState_withActiveBtDevice_setActivatedDeviceName() {
+        mShadowAudioManager.setOutputDevice(DEVICE_OUT_BLUETOOTH_A2DP);
+        mAudioManager.setMode(AudioManager.MODE_NORMAL);
+        mProfileConnectableDevices.clear();
+        mProfileConnectableDevices.add(mBluetoothDevice);
+        mProfileConnectableDevices.add(mSecondBluetoothDevice);
+        when(mA2dpProfile.getConnectableDevices()).thenReturn(mProfileConnectableDevices);
+        when(mA2dpProfile.getActiveDevice()).thenReturn(mBluetoothDevice);
 
-        mController.setActiveBluetoothDevice(mBluetoothDevice);
+        assertThat(mPreference.getSummary()).isNull();
+        mController.updateState(mPreference);
+        assertThat(mPreference.getSummary()).isEqualTo(TEST_DEVICE_NAME_1);
+    }
 
-        verify(mA2dpProfile, times(0)).setActiveDevice(any(BluetoothDevice.class));
+
+    /**
+     * Hearing Aid device(s) are connectable, no matter active or inactive
+     * Preference should be visible
+     */
+    @Test
+    public void updateState_withConnectableHADevice_preferenceVisible() {
+        mShadowAudioManager.setOutputDevice(DEVICE_OUT_HEARING_AID);
+        mAudioManager.setMode(AudioManager.MODE_NORMAL);
+        mHearingAidActiveDevices.clear();
+        mHearingAidActiveDevices.add(mLeftBluetoothHapDevice);
+        when(mHearingAidProfile.getConnectableDevices()).thenReturn(mHearingAidActiveDevices);
+        assertThat(mPreference.isVisible()).isFalse();
+
+        // Without Active Hearing Aid Device
+        mController.updateState(mPreference);
+        assertThat(mPreference.isVisible()).isTrue();
+
+        // With Active Hearing Aid Device
+        when(mHearingAidProfile.getActiveDevices()).thenReturn(mHearingAidActiveDevices);
+        mController.updateState(mPreference);
+        assertThat(mPreference.isVisible()).isTrue();
+    }
+
+    /**
+     * Hearing Aid device(s) are connected and active
+     * Preference summary should be device's name
+     */
+    @Test
+    public void updateState_withActiveHADevice_setActivatedDeviceName() {
+        mShadowAudioManager.setOutputDevice(DEVICE_OUT_HEARING_AID);
+        mAudioManager.setMode(AudioManager.MODE_NORMAL);
+        mHearingAidActiveDevices.clear();
+        mHearingAidActiveDevices.add(mLeftBluetoothHapDevice);
+        when(mHearingAidProfile.getConnectableDevices()).thenReturn(mHearingAidActiveDevices);
+        when(mHearingAidProfile.getActiveDevices()).thenReturn(mHearingAidActiveDevices);
+
+        assertThat(mPreference.getSummary()).isNull();
+        mController.updateState(mPreference);
+        assertThat(mPreference.getSummary()).isEqualTo(TEST_HAP_DEVICE_NAME_1);
+
+    }
+
+    @Test
+    public void click_launch_outputSwitcherSlice() {
+        final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
+        mController.handlePreferenceTreeClick(mPreference);
+        verify(mContext, never()).startActivity(intentCaptor.capture());
+
+        mPreference.setKey(TEST_KEY);
+        mController.handlePreferenceTreeClick(mPreference);
+        verify(mContext).startActivity(intentCaptor.capture());
+        assertThat(intentCaptor.getValue().getAction())
+                .isEqualTo(MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT);
     }
 
     /**
@@ -254,24 +333,6 @@
     }
 
     /**
-     * No available A2dp BT devices:
-     * Preference should be invisible
-     * Preference summary should be "This device"
-     */
-    @Test
-    public void updateState_noAvailableA2dpBtDevices_shouldDisableAndSetDefaultSummary() {
-        mAudioManager.setMode(AudioManager.MODE_NORMAL);
-        List<BluetoothDevice> emptyDeviceList = new ArrayList<>();
-        when(mA2dpProfile.getConnectedDevices()).thenReturn(emptyDeviceList);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isVisible()).isFalse();
-        String defaultString = mContext.getString(R.string.media_output_default_summary);
-        assertThat(mPreference.getSummary()).isEqualTo(defaultString);
-    }
-
-    /**
      * Media stream is captured by something else (cast device):
      * Preference should be invisible
      * Preference summary should be "unavailable"
@@ -287,235 +348,6 @@
         assertThat(mPreference.getSummary()).isEqualTo(defaultString);
     }
 
-    /**
-     * One A2DP Bluetooth device is available and active.
-     * Preference should be visible
-     * Preference summary should be the activated device name
-     */
-    @Test
-    public void updateState_oneA2dpBtDeviceAreAvailable_shouldSetActivatedDeviceName() {
-        mAudioManager.setMode(AudioManager.MODE_NORMAL);
-        mShadowAudioManager.setOutputDevice(DEVICE_OUT_BLUETOOTH_A2DP);
-        mProfileConnectedDevices.clear();
-        mProfileConnectedDevices.add(mBluetoothDevice);
-        when(mA2dpProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
-        when(mA2dpProfile.getActiveDevice()).thenReturn(mBluetoothDevice);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isVisible()).isTrue();
-        assertThat(mPreference.getSummary()).isEqualTo(TEST_DEVICE_NAME_1);
-    }
-
-    /**
-     * More than one A2DP Bluetooth devices are available, and second device is active.
-     * Preference should be visible
-     * Preference summary should be the activated device name
-     */
-    @Test
-    public void updateState_moreThanOneA2DpBtDevicesAreAvailable_shouldSetActivatedDeviceName() {
-        mAudioManager.setMode(AudioManager.MODE_NORMAL);
-        mShadowAudioManager.setOutputDevice(DEVICE_OUT_BLUETOOTH_A2DP);
-        mProfileConnectedDevices.clear();
-        mProfileConnectedDevices.add(mBluetoothDevice);
-        mProfileConnectedDevices.add(mSecondBluetoothDevice);
-        when(mA2dpProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
-        when(mA2dpProfile.getActiveDevice()).thenReturn(mSecondBluetoothDevice);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isVisible()).isTrue();
-        assertThat(mPreference.getSummary()).isEqualTo(TEST_DEVICE_NAME_2);
-    }
-
-    /**
-     * A2DP Bluetooth device(s) are available, but wired headset is plugged in and activated
-     * Preference should be visible
-     * Preference summary should be "This device"
-     */
-    @Test
-    public void updateState_a2dpDevicesAvailableWiredHeadsetIsActivated_shouldSetDefaultSummary() {
-        mAudioManager.setMode(AudioManager.MODE_NORMAL);
-        mProfileConnectedDevices.clear();
-        mProfileConnectedDevices.add(mBluetoothDevice);
-        when(mLocalBluetoothProfileManager.getHearingAidProfile()).thenReturn(null);
-        when(mA2dpProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
-        when(mA2dpProfile.getActiveDevice()).thenReturn(null);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isVisible()).isTrue();
-        assertThat(mPreference.getSummary()).isEqualTo(
-                mContext.getString(R.string.media_output_default_summary));
-    }
-
-
-    /**
-     * A2DP Bluetooth device(s) are available, but current device speaker is activated
-     * Preference should be visible
-     * Preference summary should be "This device"
-     */
-    @Test
-    public void updateState_a2dpDevicesAvailableCurrentDeviceActivated_shouldSetDefaultSummary() {
-        mAudioManager.setMode(AudioManager.MODE_NORMAL);
-        mProfileConnectedDevices.clear();
-        mProfileConnectedDevices.add(mBluetoothDevice);
-        when(mA2dpProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
-        when(mA2dpProfile.getActiveDevice()).thenReturn(null);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isVisible()).isTrue();
-        assertThat(mPreference.getSummary()).isEqualTo(
-                mContext.getString(R.string.media_output_default_summary));
-    }
-
-    /**
-     * One hearing aid profile Bluetooth device is available and active.
-     * Preference should be visible
-     * Preference summary should be the activated device name
-     */
-    @Test
-    public void updateState_oneHapBtDeviceAreAvailable_shouldSetActivatedDeviceName() {
-        mAudioManager.setMode(AudioManager.MODE_NORMAL);
-        mShadowAudioManager.setOutputDevice(DEVICE_OUT_HEARING_AID);
-        mProfileConnectedDevices.clear();
-        mProfileConnectedDevices.add(mLeftBluetoothHapDevice);
-        mHearingAidActiveDevices.clear();
-        mHearingAidActiveDevices.add(mLeftBluetoothHapDevice);
-        when(mHearingAidProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
-        when(mHearingAidProfile.getActiveDevices()).thenReturn(mHearingAidActiveDevices);
-        when(mHearingAidProfile.getHiSyncId(mLeftBluetoothHapDevice)).thenReturn(HISYNCID1);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isVisible()).isTrue();
-        assertThat(mPreference.getSummary()).isEqualTo(mLeftBluetoothHapDevice.getName());
-    }
-
-    /**
-     * More than one hearing aid profile Bluetooth devices are available, and second
-     * device is active.
-     * Preference should be visible
-     * Preference summary should be the activated device name
-     */
-    @Test
-    public void updateState_moreThanOneHapBtDevicesAreAvailable_shouldSetActivatedDeviceName() {
-        mAudioManager.setMode(AudioManager.MODE_NORMAL);
-        mShadowAudioManager.setOutputDevice(DEVICE_OUT_HEARING_AID);
-        mProfileConnectedDevices.clear();
-        mProfileConnectedDevices.add(mLeftBluetoothHapDevice);
-        mProfileConnectedDevices.add(mRightBluetoothHapDevice);
-        mHearingAidActiveDevices.clear();
-        mHearingAidActiveDevices.add(mRightBluetoothHapDevice);
-        when(mHearingAidProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
-        when(mHearingAidProfile.getActiveDevices()).thenReturn(mHearingAidActiveDevices);
-        when(mHearingAidProfile.getHiSyncId(mLeftBluetoothHapDevice)).thenReturn(HISYNCID1);
-        when(mHearingAidProfile.getHiSyncId(mRightBluetoothHapDevice)).thenReturn(HISYNCID2);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isVisible()).isTrue();
-        assertThat(mPreference.getSummary()).isEqualTo(mRightBluetoothHapDevice.getName());
-    }
-
-    /**
-     * Both hearing aid profile and A2dp Bluetooth devices are available, and two hearing aid
-     * profile devices with same HisyncId are active. Both of HAP device are active,
-     * "left" side HAP device is added first.
-     * Preference should be visible
-     * Preference summary should be the activated device name
-     * ConnectedDevice should not contain second HAP device with same HisyncId
-     */
-    @Test
-    public void updateState_hapBtDeviceWithSameId_shouldSetActivatedDeviceName() {
-        mAudioManager.setMode(AudioManager.MODE_NORMAL);
-        mShadowAudioManager.setOutputDevice(DEVICE_OUT_HEARING_AID);
-        mProfileConnectedDevices.clear();
-        mProfileConnectedDevices.add(mBluetoothDevice);
-        //with same HisyncId, first one will remain in UI.
-        mProfileConnectedDevices.add(mLeftBluetoothHapDevice);
-        mProfileConnectedDevices.add(mRightBluetoothHapDevice);
-        mHearingAidActiveDevices.clear();
-        mHearingAidActiveDevices.add(mLeftBluetoothHapDevice);
-        mHearingAidActiveDevices.add(mRightBluetoothHapDevice);
-        when(mHearingAidProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
-        when(mHearingAidProfile.getActiveDevices()).thenReturn(mHearingAidActiveDevices);
-        when(mHearingAidProfile.getHiSyncId(mLeftBluetoothHapDevice)).thenReturn(HISYNCID1);
-        when(mHearingAidProfile.getHiSyncId(mRightBluetoothHapDevice)).thenReturn(HISYNCID1);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isVisible()).isTrue();
-        assertThat(mPreference.getSummary()).isEqualTo(mLeftBluetoothHapDevice.getName());
-        assertThat(mController.mConnectedDevices.contains(mLeftBluetoothHapDevice)).isTrue();
-        assertThat(mController.mConnectedDevices.contains(mRightBluetoothHapDevice)).isFalse();
-    }
-
-    /**
-     * Both hearing aid profile and A2dp Bluetooth devices are available, and two hearing aid
-     * profile devices with same HisyncId. Both of HAP device are active,
-     * "right" side HAP device is added first.
-     * Preference should be visible
-     * Preference summary should be the activated device name
-     * ConnectedDevice should not contain second HAP device with same HisyncId
-     */
-    @Test
-    public void updateState_hapBtDeviceWithSameIdButDifferentOrder_shouldSetActivatedDeviceName() {
-        mAudioManager.setMode(AudioManager.MODE_NORMAL);
-        mShadowAudioManager.setOutputDevice(DEVICE_OUT_HEARING_AID);
-        mProfileConnectedDevices.clear();
-        mProfileConnectedDevices.add(mBluetoothDevice);
-        //with same HisyncId, first one will remain in UI.
-        mProfileConnectedDevices.add(mRightBluetoothHapDevice);
-        mProfileConnectedDevices.add(mLeftBluetoothHapDevice);
-        mHearingAidActiveDevices.clear();
-        mHearingAidActiveDevices.add(mLeftBluetoothHapDevice);
-        mHearingAidActiveDevices.add(mRightBluetoothHapDevice);
-        when(mHearingAidProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
-        when(mHearingAidProfile.getActiveDevices()).thenReturn(mHearingAidActiveDevices);
-        when(mHearingAidProfile.getHiSyncId(mLeftBluetoothHapDevice)).thenReturn(HISYNCID1);
-        when(mHearingAidProfile.getHiSyncId(mRightBluetoothHapDevice)).thenReturn(HISYNCID1);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isVisible()).isTrue();
-        assertThat(mPreference.getSummary()).isEqualTo(mRightBluetoothHapDevice.getName());
-        assertThat(mController.mConnectedDevices.contains(mRightBluetoothHapDevice)).isTrue();
-        assertThat(mController.mConnectedDevices.contains(mLeftBluetoothHapDevice)).isFalse();
-    }
-
-    /**
-     * Both hearing aid profile and A2dp Bluetooth devices are available, and two hearing aid
-     * profile devices with different HisyncId. One of HAP device is active.
-     * Preference should be visible
-     * Preference summary should be the activated device name
-     * ConnectedDevice should contain both HAP device with different HisyncId
-     */
-    @Test
-    public void updateState_hapBtDeviceWithDifferentId_shouldSetActivatedDeviceName() {
-        mAudioManager.setMode(AudioManager.MODE_NORMAL);
-        mShadowAudioManager.setOutputDevice(DEVICE_OUT_HEARING_AID);
-        mProfileConnectedDevices.clear();
-        mProfileConnectedDevices.add(mBluetoothDevice);
-        mProfileConnectedDevices.add(mLeftBluetoothHapDevice);
-        mProfileConnectedDevices.add(mRightBluetoothHapDevice);
-        mHearingAidActiveDevices.clear();
-        mHearingAidActiveDevices.add(null);
-        mHearingAidActiveDevices.add(mRightBluetoothHapDevice);
-        when(mHearingAidProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
-        when(mHearingAidProfile.getActiveDevices()).thenReturn(mHearingAidActiveDevices);
-        when(mHearingAidProfile.getHiSyncId(mLeftBluetoothHapDevice)).thenReturn(HISYNCID1);
-        when(mHearingAidProfile.getHiSyncId(mRightBluetoothHapDevice)).thenReturn(HISYNCID2);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isVisible()).isTrue();
-        assertThat(mPreference.getSummary()).isEqualTo(mRightBluetoothHapDevice.getName());
-        assertThat(mController.mConnectedDevices).containsExactly(mBluetoothDevice,
-                mLeftBluetoothHapDevice, mRightBluetoothHapDevice);
-    }
-
     @Test
     public void findActiveDevice_onlyA2dpDeviceActive_returnA2dpDevice() {
         when(mLocalBluetoothProfileManager.getHearingAidProfile()).thenReturn(null);
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDisclaimerItemFactory.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDisclaimerItemFactory.java
new file mode 100644
index 0000000..c50d4f1
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDisclaimerItemFactory.java
@@ -0,0 +1,41 @@
+/*
+ * 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.settings.testutils.shadow;
+
+import android.content.Context;
+
+import com.android.settings.wifi.calling.DisclaimerItemFactory;
+import com.android.settings.wifi.calling.DisclaimerItem;
+
+import java.util.List;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+
+@Implements(DisclaimerItemFactory.class)
+public final class ShadowDisclaimerItemFactory {
+    private static List<DisclaimerItem> sMockDisclaimerItemList;
+
+    public static void setDisclaimerItemList(List<DisclaimerItem> list) {
+        sMockDisclaimerItemList = list;
+    }
+
+    @Implementation
+    public static List<DisclaimerItem> create(Context context, int subId) {
+        return sMockDisclaimerItemList;
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java
index 19cdfe3..30d4c21 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java
@@ -27,13 +27,28 @@
 import org.robolectric.annotation.Implements;
 import org.robolectric.shadow.api.Shadow;
 
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
 @Implements(value = WifiManager.class)
 public class ShadowWifiManager extends org.robolectric.shadows.ShadowWifiManager {
 
+    private List<PasspointConfiguration> mPasspointConfiguration;
+
     public WifiConfiguration savedWifiConfig;
+    private WifiConfiguration mSavedApConfig;
+
+    @Implementation
+    protected WifiConfiguration getWifiApConfiguration() {
+        return mSavedApConfig;
+    }
+
+    @Implementation
+    protected boolean setWifiApConfiguration(WifiConfiguration wifiConfig) {
+        mSavedApConfig = wifiConfig;
+        return true;
+    }
 
     @HiddenApi // @SystemApi
     @Implementation
@@ -49,7 +64,15 @@
 
     @Implementation
     protected List<PasspointConfiguration> getPasspointConfigurations() {
-        return Collections.emptyList();
+        return mPasspointConfiguration == null ? Collections.emptyList() : mPasspointConfiguration;
+    }
+
+    @Implementation
+    protected void addOrUpdatePasspointConfiguration(PasspointConfiguration config) {
+        if (mPasspointConfiguration == null) {
+            mPasspointConfiguration = new ArrayList<>();
+        }
+        mPasspointConfiguration.add(config);
     }
 
     @Implementation
diff --git a/tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java
index dd0260b..b27b636 100644
--- a/tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java
@@ -30,6 +30,7 @@
 import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settingslib.RestrictedSwitchPreference;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -57,6 +58,12 @@
         mContext = RuntimeEnvironment.application;
         mUserManager = ShadowUserManager.getShadow();
         mController = new AddUserWhenLockedPreferenceController(mContext, "fake_key");
+        mUserManager.setSupportsMultipleUsers(true);
+    }
+
+    @After
+    public void tearDown() {
+        ShadowUserManager.reset();
     }
 
     @Test
@@ -72,6 +79,30 @@
     }
 
     @Test
+    public void updateState_NotAdmin_shouldNotDisplayPreference() {
+        mUserManager.setIsAdminUser(false);
+        final RestrictedSwitchPreference preference = mock(RestrictedSwitchPreference.class);
+
+        mController.updateState(preference);
+
+        verify(preference).setVisible(false);
+    }
+
+    @Test
+    public void updateState_Admin_shouldDisplayPreference() {
+        mUserManager.setIsAdminUser(true);
+        mUserManager.setUserSwitcherEnabled(true);
+        mUserManager.setSupportsMultipleUsers(true);
+        final AddUserWhenLockedPreferenceController controller =
+                new AddUserWhenLockedPreferenceController(mContext, "fake_key");
+        final RestrictedSwitchPreference preference = mock(RestrictedSwitchPreference.class);
+
+        controller.updateState(preference);
+
+        verify(preference).setVisible(true);
+    }
+
+    @Test
     public void updateState_preferenceSetCheckedWhenSettingIsOn() {
         final RestrictedSwitchPreference preference = mock(RestrictedSwitchPreference.class);
         Global.putInt(mContext.getContentResolver(), Global.ADD_USERS_WHEN_LOCKED, 1);
diff --git a/tests/robotests/src/com/android/settings/wifi/calling/DisclaimerItemListAdapterTest.java b/tests/robotests/src/com/android/settings/wifi/calling/DisclaimerItemListAdapterTest.java
new file mode 100644
index 0000000..4cfc9ba
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/wifi/calling/DisclaimerItemListAdapterTest.java
@@ -0,0 +1,126 @@
+/*
+ * 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.settings.wifi.calling;
+
+import static com.android.settings.wifi.calling.DisclaimerItemListAdapter
+        .DisclaimerItemViewHolder.ID_DISCLAIMER_ITEM_TITLE;
+import static com.android.settings.wifi.calling.DisclaimerItemListAdapter
+        .DisclaimerItemViewHolder.ID_DISCLAIMER_ITEM_DESCRIPTION;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.android.settings.R;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+public class DisclaimerItemListAdapterTest {
+
+    private static final int ITEM_POSITION = 0;
+    private static final int DISCLAIMER_TITLE_STRING_ID = 0;
+    private static final int DISCLAIMER_MESSAGE_STRING_ID = 1;
+
+    @Mock
+    private LayoutInflater mLayoutInflater;
+    @Mock
+    private TextView mTestView;
+    @Mock
+    private TextView mDescView;
+    @Mock
+    private View mView;
+    @Mock
+    private ViewGroup mViewGroup;
+    @Mock
+    private Context mContext;
+
+    private MockDisclaimerItem mDisclaimerItem;
+    private DisclaimerItemListAdapter mDisclaimerItemListAdapter;
+    private List<DisclaimerItem> mDisclaimerItemList = new ArrayList<>();
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        mDisclaimerItem = spy(new MockDisclaimerItem(mContext, 0 /* subId */));
+        mDisclaimerItemList.add(mDisclaimerItem);
+
+        when(mLayoutInflater.inflate(anyInt(), anyObject(), anyBoolean())).thenReturn(mView);
+        when(mViewGroup.getContext()).thenReturn(mContext);
+        when(mViewGroup.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).thenReturn(
+                mLayoutInflater);
+        when(mView.findViewById(ID_DISCLAIMER_ITEM_TITLE)).thenReturn(mTestView);
+        when(mView.findViewById(ID_DISCLAIMER_ITEM_DESCRIPTION)).thenReturn(mDescView);
+    }
+
+    @Test
+    public void onBindViewHolder_haveItem_shouldSetText() {
+        final DisclaimerItemListAdapter.DisclaimerItemViewHolder viewHolder =
+                new DisclaimerItemListAdapter.DisclaimerItemViewHolder(mView);
+
+        mDisclaimerItemListAdapter = new DisclaimerItemListAdapter(mDisclaimerItemList);
+        mDisclaimerItemListAdapter.onCreateViewHolder(mViewGroup, 0 /* viewType */);
+        mDisclaimerItemListAdapter.onBindViewHolder(viewHolder, ITEM_POSITION);
+
+        // Check the text is set when the DisclaimerItem exists.
+        verify(viewHolder.titleView).setText(DISCLAIMER_TITLE_STRING_ID);
+        verify(viewHolder.descriptionView).setText(DISCLAIMER_MESSAGE_STRING_ID);
+    }
+
+    private class MockDisclaimerItem extends DisclaimerItem {
+        MockDisclaimerItem(Context context, int subId) {
+            super(context, subId);
+        }
+
+        @Override
+        protected int getTitleId() {
+            return DISCLAIMER_TITLE_STRING_ID;
+        }
+
+        @Override
+        protected int getMessageId() {
+            return DISCLAIMER_MESSAGE_STRING_ID;
+        }
+
+        @Override
+        protected String getName() {
+            return "MockDisclaimerItem";
+        }
+
+        @Override
+        protected String getPrefKey() {
+            return "mock_pref_key";
+        }
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/wifi/calling/ListWithEntrySummaryPreferenceTest.java b/tests/robotests/src/com/android/settings/wifi/calling/ListWithEntrySummaryPreferenceTest.java
new file mode 100644
index 0000000..307c0ac
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/wifi/calling/ListWithEntrySummaryPreferenceTest.java
@@ -0,0 +1,126 @@
+/*
+ * 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.settings.wifi.calling;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.os.Parcelable;
+import android.widget.ListAdapter;
+import android.widget.TextView;
+
+import androidx.appcompat.app.AlertDialog;
+
+import com.android.settings.R;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class ListWithEntrySummaryPreferenceTest {
+
+    private Context mContext;
+    private ListWithEntrySummaryPreference mPreference;
+
+    private CharSequence[] mDefaultEntries =
+            {"default_entry1", "default_entry2", "default_entry3"};
+    private CharSequence[] mDefaultEntryValues = {"0", "1", "2"};
+    private CharSequence[] mDefaultEntrySummaries =
+            {"default_summary1", "default_summary2", "default_summary3"};
+
+    private CharSequence[] mCustomEntries = {"custom_entry1", "custom_entry2"};
+    private CharSequence[] mCustomEntryValues = {"0", "1"};
+    private CharSequence[] mCustomEntrySummaries = {"custom_summary1", "custom_summary2"};
+
+    @Before
+    public void setUp() {
+        mContext = RuntimeEnvironment.application;
+        mContext.setTheme(R.style.Theme_Settings_Home);
+        mPreference = new ListWithEntrySummaryPreference(mContext, null);
+        mPreference.setEntries(mDefaultEntries);
+        mPreference.setEntryValues(mDefaultEntryValues);
+        mPreference.setEntrySummaries(mDefaultEntrySummaries);
+    }
+
+    @Test
+    public void initialize_defaultEntries_shouldDisplayDefalutEntries() {
+        AlertDialog dialog = showDialog(mPreference);
+        ListAdapter adapter = dialog.getListView().getAdapter();
+
+        int len = mDefaultEntries.length;
+        assertThat(adapter.getCount()).isEqualTo(len);
+        for (int i = 0; i < len; i++) {
+            TextView title = adapter.getView(i, null, null).findViewById(R.id.title);
+            TextView summary = adapter.getView(i, null, null).findViewById(R.id.summary);
+            assertThat(title.getText()).isEqualTo(mDefaultEntries[i]);
+            assertThat(summary.getText()).isEqualTo(mDefaultEntrySummaries[i]);
+        }
+    }
+
+    @Test
+    public void setEntries_customEntries_shouldUpdateEntries() {
+        mPreference.setEntries(mCustomEntries);
+        mPreference.setEntryValues(mCustomEntryValues);
+        mPreference.setEntrySummaries(mCustomEntrySummaries);
+
+        AlertDialog dialog = showDialog(mPreference);
+        ListAdapter adapter = dialog.getListView().getAdapter();
+
+        int len = mCustomEntries.length;
+        assertThat(adapter.getCount()).isEqualTo(len);
+        for (int i = 0; i < len; i++) {
+            TextView title = adapter.getView(i, null, null).findViewById(R.id.title);
+            TextView summary = adapter.getView(i, null, null).findViewById(R.id.summary);
+            assertThat(title.getText()).isEqualTo(mCustomEntries[i]);
+            assertThat(summary.getText()).isEqualTo(mCustomEntrySummaries[i]);
+        }
+    }
+
+    @Test
+    public void onSaveAndRestoreInstanceState_resumePreference_shouldNotChangeEntries() {
+        setEntries_customEntries_shouldUpdateEntries();
+
+        final Parcelable parcelable = mPreference.onSaveInstanceState();
+        ListWithEntrySummaryPreference preference
+                = new ListWithEntrySummaryPreference(mContext, null);
+        preference.setEntries(mDefaultEntries);
+        preference.setEntryValues(mDefaultEntryValues);
+        preference.setEntrySummaries(mDefaultEntrySummaries);
+        preference.onRestoreInstanceState(parcelable);
+
+        AlertDialog dialog = showDialog(preference);
+        ListAdapter adapter = dialog.getListView().getAdapter();
+
+        int len = mCustomEntries.length;
+        assertThat(adapter.getCount()).isEqualTo(len);
+        for (int i = 0; i < len; i++) {
+            TextView title = adapter.getView(i, null, null).findViewById(R.id.title);
+            TextView summary = adapter.getView(i, null, null).findViewById(R.id.summary);
+            assertThat(title.getText()).isEqualTo(mCustomEntries[i]);
+            assertThat(summary.getText()).isEqualTo(mCustomEntrySummaries[i]);
+        }
+    }
+
+    private AlertDialog showDialog(ListWithEntrySummaryPreference preference) {
+        AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
+        preference.onPrepareDialogBuilder(builder, null);
+        return builder.show();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingDisclaimerFragmentTest.java b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingDisclaimerFragmentTest.java
new file mode 100644
index 0000000..6c221e7
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingDisclaimerFragmentTest.java
@@ -0,0 +1,180 @@
+/*
+ * 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.settings.wifi.calling;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.Activity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.widget.Button;
+
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.RecyclerView.OnScrollListener;
+
+import com.android.settings.R;
+import com.android.settings.testutils.shadow.ShadowDisclaimerItemFactory;
+
+import java.util.ArrayList;
+import java.util.List;
+
+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.annotation.Config;
+import org.robolectric.Robolectric;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = ShadowDisclaimerItemFactory.class)
+public class WifiCallingDisclaimerFragmentTest {
+
+    @Mock
+    private Activity mActivity;
+    @Mock
+    private DisclaimerItem mDisclaimerItem;
+    @Mock
+    private LayoutInflater mLayoutInflater;
+    @Mock
+    private View mView;
+    @Mock
+    private ViewGroup mViewGroup;
+    @Mock
+    private Button mAgreeButton;
+    @Mock
+    private Button mDisagreeButton;
+    @Mock
+    private RecyclerView mRecyclerView;
+
+    @Captor
+    ArgumentCaptor<OnClickListener> mOnClickListenerCaptor;
+    @Captor
+    ArgumentCaptor<OnScrollListener> mOnScrollListenerCaptor;
+
+    private WifiCallingDisclaimerFragment mFragment;
+    private List<DisclaimerItem> mDisclaimerItemList = new ArrayList<>();
+    private List<DisclaimerItem> mEmptyDisclaimerItemList = new ArrayList<>();
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        mActivity = Robolectric.setupActivity(Activity.class);
+        mFragment = spy(new WifiCallingDisclaimerFragment());
+
+        doReturn(mActivity).when(mFragment).getActivity();
+
+        when(mLayoutInflater.inflate(anyInt(), anyObject(), anyBoolean())).thenReturn(mView);
+        when(mView.findViewById(R.id.agree_button)).thenReturn(mAgreeButton);
+        when(mView.findViewById(R.id.disagree_button)).thenReturn(mDisagreeButton);
+        when(mView.findViewById(R.id.disclaimer_item_list)).thenReturn(mRecyclerView);
+        when(mView.getId()).thenReturn(R.id.agree_button);
+
+        mOnScrollListenerCaptor = ArgumentCaptor.forClass(OnScrollListener.class);
+        doNothing().when(mRecyclerView).addOnScrollListener(mOnScrollListenerCaptor.capture());
+        mOnClickListenerCaptor = ArgumentCaptor.forClass(OnClickListener.class);
+        doNothing().when(mAgreeButton).setOnClickListener(mOnClickListenerCaptor.capture());
+
+        mDisclaimerItemList.add(mDisclaimerItem);
+    }
+
+    @Test
+    public void onCreate_notHaveItem_shouldFinishFragment() {
+        ShadowDisclaimerItemFactory.setDisclaimerItemList(mEmptyDisclaimerItemList);
+
+        mFragment.onCreate(null /* savedInstanceState */);
+
+        // Check the fragment is finished when the DisclaimerItemList is empty.
+        verify(mFragment).finish(Activity.RESULT_OK);
+    }
+
+    @Test
+    public void onCreate_haveItem_shouldNotFinishFragment() {
+        ShadowDisclaimerItemFactory.setDisclaimerItemList(mDisclaimerItemList);
+
+        mFragment.onCreate(null /* savedInstanceState */);
+
+        // Check the fragment is not finished when the DisclaimerItemList is not empty.
+        verify(mFragment, never()).finish(Activity.RESULT_OK);
+    }
+
+    @Test
+    public void onScrolled_canNotScroll_shouldEnableAgreeButton() {
+        ShadowDisclaimerItemFactory.setDisclaimerItemList(mDisclaimerItemList);
+
+        when(mRecyclerView.canScrollVertically(1)).thenReturn(false);
+
+        mFragment.onCreate(null /* savedInstanceState */);
+        mFragment.onCreateView(mLayoutInflater, mViewGroup, null /* savedInstanceState */);
+
+        mOnScrollListenerCaptor.getValue().onScrolled(mRecyclerView, 0, 0);
+
+        // Check the agreeButton is enabled when the view is scrolled to the bottom end.
+        verify(mAgreeButton).setEnabled(true);
+        // Check the OnScrollListener is removed when the view is scrolled to the bottom end.
+        verify(mRecyclerView).removeOnScrollListener(any());
+    }
+
+    @Test
+    public void onScrolled_canScroll_shouldNotEnableAgreeButton() {
+        ShadowDisclaimerItemFactory.setDisclaimerItemList(mDisclaimerItemList);
+
+        when(mRecyclerView.canScrollVertically(1)).thenReturn(true);
+
+        mFragment.onCreate(null /* savedInstanceState */);
+        mFragment.onCreateView(mLayoutInflater, mViewGroup, null /* savedInstanceState */);
+
+        mOnScrollListenerCaptor.getValue().onScrolled(mRecyclerView, 0, 0);
+
+        // Check the agreeButton is not enabled when the view is not scrolled to the bottom end.
+        verify(mAgreeButton, never()).setEnabled(anyBoolean());
+        // Check the OnScrollListener is not removed when the view is not scrolled to
+        // the bottom end.
+        verify(mRecyclerView, never()).removeOnScrollListener(any());
+    }
+
+    @Test
+    public void onClick_agreeButton_shouldFinishFragment() {
+        ShadowDisclaimerItemFactory.setDisclaimerItemList(mDisclaimerItemList);
+
+        mFragment.onCreate(null /* savedInstanceState */);
+        mFragment.onCreateView(mLayoutInflater, mViewGroup, null /* savedInstanceState */);
+
+        mOnClickListenerCaptor.getValue().onClick(mAgreeButton);
+
+        // Check the onAgreed callback is called when "CONTINUE" button is clicked.
+        verify(mDisclaimerItem).onAgreed();
+        // Check the WFC disclaimer fragment is finished when "CONTINUE" button is clicked.
+        verify(mFragment).finish(Activity.RESULT_OK);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java
index c8b3920..ae88231 100644
--- a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java
@@ -16,40 +16,52 @@
 
 package com.android.settings.wifi.calling;
 
+import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT;
 import static com.google.common.truth.Truth.assertThat;
 
+import static junit.framework.Assert.assertEquals;
 import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
 import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.Activity;
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
+import android.os.PersistableBundle;
+import android.telephony.CarrierConfigManager;
 import android.telephony.TelephonyManager;
 import android.telephony.ims.ProvisioningManager;
 import android.view.View;
 import android.widget.TextView;
 
-import androidx.preference.ListPreference;
+import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
 import com.android.ims.ImsConfig;
-import com.android.ims.ImsException;
 import com.android.ims.ImsManager;
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.SettingsShadowResources;
 import com.android.settings.widget.SwitchBar;
 import com.android.settings.widget.ToggleSwitch;
 
 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.RobolectricTestRunner;
@@ -58,10 +70,18 @@
 
 @RunWith(RobolectricTestRunner.class)
 public class WifiCallingSettingsForSubTest {
+    private static final String BUTTON_WFC_MODE = "wifi_calling_mode";
+    private static final String BUTTON_WFC_ROAMING_MODE = "wifi_calling_roaming_mode";
+    private static final String TEST_EMERGENCY_ADDRESS_CARRIER_APP =
+            "com.android.settings/.wifi.calling.TestEmergencyAddressCarrierApp";
+
     private TestFragment mFragment;
     private Context mContext;
     private TextView mEmptyView;
+    private final PersistableBundle mBundle = new PersistableBundle();
 
+    @Mock private static CarrierConfigManager sCarrierConfigManager;
+    @Mock private CarrierConfigManager mMockConfigManager;
     @Mock private ImsManager mImsManager;
     @Mock private TelephonyManager mTelephonyManager;
     @Mock private PreferenceScreen mPreferenceScreen;
@@ -70,9 +90,12 @@
     @Mock private ToggleSwitch mToggleSwitch;
     @Mock private View mView;
     @Mock private ImsConfig mImsConfig;
+    @Mock private ListWithEntrySummaryPreference mButtonWfcMode;
+    @Mock private ListWithEntrySummaryPreference mButtonWfcRoamingMode;
+    @Mock private Preference mUpdateAddress;
 
     @Before
-    public void setUp() throws NoSuchFieldException, ImsException {
+    public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
 
         mContext = RuntimeEnvironment.application;
@@ -88,7 +111,9 @@
         final Bundle bundle = new Bundle();
         when(mFragment.getArguments()).thenReturn(bundle);
         doNothing().when(mFragment).addPreferencesFromResource(anyInt());
-        doReturn(mock(ListPreference.class)).when(mFragment).findPreference(any());
+        doReturn(mock(ListWithEntrySummaryPreference.class)).when(mFragment).findPreference(any());
+        doReturn(mButtonWfcMode).when(mFragment).findPreference(BUTTON_WFC_MODE);
+        doReturn(mButtonWfcRoamingMode).when(mFragment).findPreference(BUTTON_WFC_ROAMING_MODE);
         doNothing().when(mFragment).finish();
         doReturn(mView).when(mFragment).getView();
 
@@ -101,19 +126,41 @@
         doReturn(mImsManager).when(mFragment).getImsManager();
         doReturn(mImsConfig).when(mImsManager).getConfigInterface();
         doReturn(true).when(mImsManager).isWfcProvisionedOnDevice();
+        doReturn(true).when(mImsManager).isWfcEnabledByUser();
+        doReturn(true).when(mImsManager).isNonTtyOrTtyOnVolteEnabled();
+        doReturn(ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED)
+                .when(mImsManager).getWfcMode(anyBoolean());
+
+        doReturn(mBundle).when(sCarrierConfigManager).getConfigForSubId(anyInt());
+        setDefaultCarrierConfigValues();
+
+        doReturn(sCarrierConfigManager).when(mActivity).getSystemService(
+                CarrierConfigManager.class);
+        doReturn(mContext.getResources()).when(mFragment).getResourcesForSubId();
+        doNothing().when(mFragment).startActivityForResult(any(Intent.class), anyInt());
 
         mFragment.onAttach(mContext);
         mFragment.onCreate(null);
         mFragment.onActivityCreated(null);
     }
 
+    private void setDefaultCarrierConfigValues() {
+        mBundle.putBoolean(
+                CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL, false);
+        mBundle.putBoolean(CarrierConfigManager.KEY_EDITABLE_WFC_MODE_BOOL, true);
+        mBundle.putBoolean(CarrierConfigManager.KEY_EDITABLE_WFC_ROAMING_MODE_BOOL, true);
+        mBundle.putString(
+                CarrierConfigManager.KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING,
+                TEST_EMERGENCY_ADDRESS_CARRIER_APP);
+    }
+
     @Test
     public void getHelpResource_shouldReturn0() {
         assertThat(mFragment.getHelpResource()).isEqualTo(0);
     }
 
     @Test
-    public void onResume_provisioningAllowed_shouldNotFinish() throws ImsException {
+    public void onResume_provisioningAllowed_shouldNotFinish() {
         // Call onResume while provisioning is allowed.
         mFragment.onResume();
 
@@ -132,7 +179,7 @@
     }
 
     @Test
-    public void onResumeOnPause_provisioningCallbackRegistration() throws ImsException {
+    public void onResumeOnPause_provisioningCallbackRegistration() throws Exception {
         // Verify that provisioning callback is registered after call to onResume().
         mFragment.onResume();
         verify(mImsConfig).addConfigCallback(any(ProvisioningManager.Callback.class));
@@ -142,13 +189,163 @@
         verify(mImsConfig).removeConfigCallback(any());
     }
 
+    @Test
+    public void onResume_useWfcHomeModeConfigFalseAndEditable_shouldShowWfcRoaming() {
+        // Call onResume to update the WFC roaming preference.
+        mFragment.onResume();
+
+        // Check that WFC roaming preference is shown.
+        verify(mPreferenceScreen, times(1)).addPreference(mButtonWfcRoamingMode);
+        verify(mPreferenceScreen, never()).removePreference(mButtonWfcRoamingMode);
+    }
+
+    @Test
+    public void onResume_useWfcHomeModeConfigTrueAndEditable_shouldHideWfcRoaming() {
+        mBundle.putBoolean(
+                CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL, true);
+        mBundle.putBoolean(CarrierConfigManager.KEY_EDITABLE_WFC_ROAMING_MODE_BOOL, true);
+
+        // Call onResume to update the WFC roaming preference.
+        mFragment.onResume();
+
+        // Check that WFC roaming preference is hidden.
+        verify(mPreferenceScreen, never()).addPreference(mButtonWfcRoamingMode);
+        verify(mPreferenceScreen, times(1)).removePreference(mButtonWfcRoamingMode);
+    }
+
+    @Test
+    public void onResume_useWfcHomeModeConfigFalseAndNotEditable_shouldHideWfcRoaming() {
+        mBundle.putBoolean(
+                CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL, false);
+        mBundle.putBoolean(CarrierConfigManager.KEY_EDITABLE_WFC_ROAMING_MODE_BOOL, false);
+
+        // Call onResume to update the WFC roaming preference.
+        mFragment.onResume();
+
+        // Check that WFC roaming preference is hidden.
+        verify(mPreferenceScreen, never()).addPreference(mButtonWfcRoamingMode);
+        verify(mPreferenceScreen, times(1)).removePreference(mButtonWfcRoamingMode);
+    }
+
+    @Test
+    public void onResume_useWfcHomeModeConfigTrueAndNotEditable_shouldHideWfcRoaming() {
+        mBundle.putBoolean(
+                CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL, true);
+        mBundle.putBoolean(CarrierConfigManager.KEY_EDITABLE_WFC_ROAMING_MODE_BOOL, false);
+
+        // Call onResume to update the WFC roaming preference.
+        mFragment.onResume();
+
+        // Check that WFC roaming preference is hidden.
+        verify(mPreferenceScreen, never()).addPreference(mButtonWfcRoamingMode);
+        verify(mPreferenceScreen, times(1)).removePreference(mButtonWfcRoamingMode);
+    }
+
+    @Test
+    public void onPreferenceChange_useWfcHomeModeConfigFalse_shouldNotSetWfcRoaming() {
+        // Call onResume to update carrier config values.
+        mFragment.onResume();
+
+        // Set the WFC home mode.
+        mFragment.onPreferenceChange(mButtonWfcMode,
+                String.valueOf(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED));
+
+        // Check that only WFC home mode is set.
+        verify(mImsManager, times(1)).setWfcMode(
+                eq(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED),
+                eq(false));
+        verify(mImsManager, never()).setWfcMode(
+                eq(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED),
+                eq(true));
+    }
+
+    @Test
+    public void onPreferenceChange_useWfcHomeModeConfigTrue_shouldSetWfcRoaming() {
+        mBundle.putBoolean(
+                CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL, true);
+
+        // Call onResume to update carrier config values.
+        mFragment.onResume();
+
+        // Set the WFC home mode.
+        mFragment.onPreferenceChange(mButtonWfcMode,
+                String.valueOf(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED));
+
+        // Check that both WFC home mode and roaming mode are set.
+        verify(mImsManager, times(1)).setWfcMode(
+                eq(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED),
+                eq(false));
+        verify(mImsManager, times(1)).setWfcMode(
+                eq(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED),
+                eq(true));
+    }
+
+    @Test
+    public void onSwitchChanged_enableSetting_shouldLaunchWfcDisclaimerFragment() {
+        ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
+
+        mFragment.onSwitchChanged(null, true);
+
+        // Check the WFC disclaimer fragment is launched.
+        verify(mFragment).startActivityForResult(intentCaptor.capture(),
+                eq(WifiCallingSettingsForSub.REQUEST_CHECK_WFC_DISCLAIMER));
+        Intent intent = intentCaptor.getValue();
+        assertThat(intent.getStringExtra(EXTRA_SHOW_FRAGMENT))
+                .isEqualTo(WifiCallingDisclaimerFragment.class.getName());
+    }
+
+    @Test
+    public void onActivityResult_finishWfcDisclaimerFragment_shouldLaunchCarrierActivity() {
+        ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
+
+        // Emulate the WfcDisclaimerActivity finish.
+        mFragment.onActivityResult(WifiCallingSettingsForSub.REQUEST_CHECK_WFC_DISCLAIMER,
+                Activity.RESULT_OK, null);
+
+        // Check the WFC emergency address activity is launched.
+        verify(mFragment).startActivityForResult(intentCaptor.capture(),
+                eq(WifiCallingSettingsForSub.REQUEST_CHECK_WFC_EMERGENCY_ADDRESS));
+        Intent intent = intentCaptor.getValue();
+        assertEquals(intent.getComponent(), ComponentName.unflattenFromString(
+                TEST_EMERGENCY_ADDRESS_CARRIER_APP));
+    }
+
+    @Test
+    public void onActivityResult_finishCarrierActivity_shouldShowWfcPreference() {
+        ReflectionHelpers.setField(mFragment, "mButtonWfcMode", mButtonWfcMode);
+        ReflectionHelpers.setField(mFragment, "mButtonWfcRoamingMode", mButtonWfcRoamingMode);
+        ReflectionHelpers.setField(mFragment, "mUpdateAddress", mUpdateAddress);
+
+        mFragment.onActivityResult(WifiCallingSettingsForSub.REQUEST_CHECK_WFC_EMERGENCY_ADDRESS,
+                Activity.RESULT_OK, null);
+
+        // Check the WFC preferences is added.
+        verify(mPreferenceScreen).addPreference(mButtonWfcMode);
+        verify(mPreferenceScreen).addPreference(mButtonWfcRoamingMode);
+        verify(mPreferenceScreen).addPreference(mUpdateAddress);
+        // Check the WFC enable request.
+        verify(mImsManager).setWfcSetting(true);
+    }
+
+    @Test
+    public void onSwitchChanged_disableSetting_shouldNotLaunchWfcDisclaimerFragment() {
+        mFragment.onSwitchChanged(null, false);
+
+        // Check the WFC disclaimer fragment is not launched.
+        verify(mFragment, never()).startActivityForResult(any(Intent.class), anyInt());
+    }
+
     protected class TestFragment extends WifiCallingSettingsForSub {
         @Override
         protected Object getSystemService(final String name) {
-            if (Context.TELEPHONY_SERVICE.equals(name)) {
-                return mTelephonyManager;
+            switch (name) {
+                case Context.TELEPHONY_SERVICE:
+                    return mTelephonyManager;
+                case Context.CARRIER_CONFIG_SERVICE:
+                    return sCarrierConfigManager;
+                default:
+                    return null;
             }
-            return null;
         }
     }
 }
diff --git a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java
index f9109ce..644e5e8 100644
--- a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java
@@ -22,7 +22,6 @@
 
 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.doReturn;
 import static org.mockito.Mockito.spy;
@@ -48,7 +47,6 @@
 import com.android.ims.ImsConfig;
 import com.android.ims.ImsManager;
 import com.android.settings.R;
-import com.android.settings.slices.CustomSliceManager;
 import com.android.settings.slices.CustomSliceRegistry;
 import com.android.settings.slices.SettingsSliceProvider;
 import com.android.settings.slices.SliceBroadcastReceiver;
@@ -99,9 +97,6 @@
 
         mFeatureFactory = FakeFeatureFactory.setupForTest();
         mSlicesFeatureProvider = mFeatureFactory.getSlicesFeatureProvider();
-        CustomSliceManager manager = new CustomSliceManager(mContext);
-        when(mSlicesFeatureProvider.getCustomSliceManager(any(Context.class)))
-                .thenReturn(manager);
 
         mWfcSliceHelper = new FakeWifiCallingSliceHelper(mContext);
 
diff --git a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java
index 640c426..db76722 100644
--- a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java
@@ -384,9 +384,9 @@
     }
 
     @Test
-    public void entityHeader_shouldHaveLabelSetToSsid() {
-        String label = "ssid";
-        when(mockAccessPoint.getSsidStr()).thenReturn(label);
+    public void entityHeader_shouldHaveLabelSetToTitle() {
+        String label = "title";
+        when(mockAccessPoint.getTitle()).thenReturn(label);
 
         displayAndResume();
 
@@ -758,7 +758,9 @@
     }
 
     @Test
-    public void forgetNetwork_Passpoint() {
+    public void forgetNetwork_v1_Passpoint() {
+        FeatureFlagPersistent.setEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2, false);
+
         mockWifiConfig.networkId = 5;
         when(mockWifiConfig.isPasspoint()).thenReturn(true);
 
@@ -776,9 +778,9 @@
 
         mockWifiConfig.networkId = 5;
         when(mockWifiConfig.isPasspoint()).thenReturn(true);
+        spyController.displayPreference(mockScreen);
         FeatureFlagPersistent.setEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2, true);
 
-        spyController.displayPreference(mockScreen);
         mForgetClickListener.getValue().onClick(null);
 
         verify(mockWifiManager, times(0)).removePasspointConfiguration(mockWifiConfig.FQDN);
diff --git a/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceControllerTest.java
index 7f7ecc5..51944d8 100644
--- a/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceControllerTest.java
@@ -20,7 +20,9 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -32,6 +34,8 @@
 import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceScreen;
 
+import com.android.settings.core.FeatureFlags;
+import com.android.settings.development.featureflags.FeatureFlagPersistent;
 import com.android.settings.testutils.shadow.ShadowAccessPoint;
 import com.android.settings.testutils.shadow.ShadowThreadUtils;
 import com.android.settings.testutils.shadow.ShadowWifiManager;
@@ -58,6 +62,7 @@
 
     private Context mContext;
     private WifiManager mWifiManager;
+    private SavedAccessPointsWifiSettings mSettings;
     private SavedAccessPointsPreferenceController mController;
 
     @Before
@@ -65,7 +70,9 @@
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
         mWifiManager = mContext.getSystemService(WifiManager.class);
+        mSettings = spy(new SavedAccessPointsWifiSettings());
         mController = spy(new SavedAccessPointsPreferenceController(mContext, "test_key"));
+        mController.setHost(mSettings);
 
         when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
                 .thenReturn(mPreferenceCategory);
@@ -115,7 +122,7 @@
 
     @Test
     @Config(shadows = ShadowAccessPoint.class)
-    public void refreshSavedAccessPoints_shouldListAllAPs() {
+    public void refreshSavedAccessPoints_shouldListNonSubscribedAPs() {
         final WifiConfiguration config = new WifiConfiguration();
         config.SSID = "SSID";
         config.BSSID = "BSSID";
@@ -132,4 +139,18 @@
         final AccessPointPreference pref = captor.getValue();
         assertThat(pref.getTitle()).isEqualTo(config.SSID);
     }
+
+    @Test
+    @Config(shadows = ShadowAccessPoint.class)
+    public void refreshSavedAccessPoints_shouldNotListSubscribedAPs() {
+        FeatureFlagPersistent.setEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2, true);
+
+        mWifiManager.addOrUpdatePasspointConfiguration(
+                SubscribedAccessPointsPreferenceControllerTest.createMockPasspointConfiguration());
+
+        mController.displayPreference(mPreferenceScreen);
+        mController.refreshSavedAccessPoints();
+
+        verify(mPreferenceCategory, never()).addPreference(any(AccessPointPreference.class));
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettingsTest.java
index f76184c..746456e 100644
--- a/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettingsTest.java
@@ -28,6 +28,8 @@
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
+import com.android.settings.core.FeatureFlags;
+import com.android.settings.development.featureflags.FeatureFlagPersistent;
 import com.android.settings.wifi.WifiConfigController;
 import com.android.settings.wifi.WifiDialog;
 import com.android.settingslib.core.AbstractPreferenceController;
@@ -39,6 +41,7 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(RobolectricTestRunner.class)
@@ -55,6 +58,8 @@
     @Mock
     private AccessPoint mAccessPoint;
     @Mock
+    private SubscribedAccessPointsPreferenceController mSubscribedApController;
+    @Mock
     private SavedAccessPointsPreferenceController mSavedApController;
 
     private TestFragment mSettings;
@@ -64,6 +69,8 @@
         MockitoAnnotations.initMocks(this);
         mSettings = spy(new TestFragment());
 
+        doReturn(mSubscribedApController).when(mSettings)
+                .use(SubscribedAccessPointsPreferenceController.class);
         doReturn(mSavedApController).when(mSettings)
                 .use(SavedAccessPointsPreferenceController.class);
 
@@ -75,6 +82,8 @@
 
     @Test
     public void onForget_isPasspointConfig_shouldRefreshAPList() {
+        FeatureFlagPersistent.setEnabled(RuntimeEnvironment.application,
+                FeatureFlags.NETWORK_INTERNET_V2, false);
         when(mAccessPoint.isPasspointConfig()).thenReturn(true);
         ReflectionHelpers.setField(mSettings, "mSelectedAccessPoint", mAccessPoint);
 
@@ -84,6 +93,18 @@
     }
 
     @Test
+    public void onForget_isPasspointConfig_shouldRefreshSubscribedAPList() {
+        FeatureFlagPersistent.setEnabled(RuntimeEnvironment.application,
+                FeatureFlags.NETWORK_INTERNET_V2, true);
+        when(mAccessPoint.isPasspointConfig()).thenReturn(true);
+        ReflectionHelpers.setField(mSettings, "mSelectedAccessPoint", mAccessPoint);
+
+        mSettings.onForget(null);
+
+        verify(mSubscribedApController).postRefreshSubscribedAccessPoints();
+    }
+
+    @Test
     public void onForget_shouldInvokeForgetApi() {
         ReflectionHelpers.setField(mSettings, "mSelectedAccessPoint", mAccessPoint);
         when(mAccessPoint.getConfig()).thenReturn(mWifiConfiguration);
diff --git a/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SubscribedAccessPointsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SubscribedAccessPointsPreferenceControllerTest.java
new file mode 100644
index 0000000..26933d8
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SubscribedAccessPointsPreferenceControllerTest.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.settings.wifi.savedaccesspoints;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.robolectric.Shadows.shadowOf;
+
+import android.content.Context;
+import android.content.pm.FeatureInfo;
+import android.content.pm.PackageManager;
+import android.net.wifi.WifiConfiguration;
+
+import android.net.wifi.hotspot2.PasspointConfiguration;
+import android.net.wifi.hotspot2.pps.HomeSp;
+import android.net.wifi.WifiEnterpriseConfig;
+import android.net.wifi.WifiManager;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.core.FeatureFlags;
+import com.android.settings.development.featureflags.FeatureFlagPersistent;
+import com.android.settings.testutils.shadow.ShadowAccessPoint;
+import com.android.settings.testutils.shadow.ShadowThreadUtils;
+import com.android.settings.testutils.shadow.ShadowWifiManager;
+import com.android.settingslib.wifi.AccessPointPreference;
+
+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.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {ShadowThreadUtils.class, ShadowWifiManager.class})
+public class SubscribedAccessPointsPreferenceControllerTest {
+
+    @Mock
+    private PreferenceScreen mPreferenceScreen;
+    @Mock
+    private PreferenceCategory mPreferenceCategory;
+
+    private Context mContext;
+    private WifiManager mWifiManager;
+    private SavedAccessPointsWifiSettings mSettings;
+    private SubscribedAccessPointsPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        mWifiManager = mContext.getSystemService(WifiManager.class);
+        mSettings = spy(new SavedAccessPointsWifiSettings());
+        mController = spy(new SubscribedAccessPointsPreferenceController(mContext, "test_key"));
+        mController.setHost(mSettings);
+
+        when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
+                .thenReturn(mPreferenceCategory);
+        when(mPreferenceCategory.getContext()).thenReturn(mContext);
+
+        FeatureFlagPersistent.setEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2, true);
+    }
+
+    @Test
+    public void getAvailability_alwaysAvailable() {
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+
+    @Test
+    public void onStart_shouldRefreshApList() {
+        doNothing().when(mController).refreshSubscribedAccessPoints();
+
+        mController.onStart();
+
+        verify(mController).refreshSubscribedAccessPoints();
+    }
+
+    @Test
+    public void postRefresh_shouldRefreshApList() {
+        doNothing().when(mController).refreshSubscribedAccessPoints();
+
+        mController.postRefreshSubscribedAccessPoints();
+
+        verify(mController).refreshSubscribedAccessPoints();
+    }
+
+    @Test
+    public void forget_onSuccess_shouldRefreshApList() {
+        doNothing().when(mController).refreshSubscribedAccessPoints();
+
+        mController.onSuccess();
+
+        verify(mController).refreshSubscribedAccessPoints();
+    }
+
+    @Test
+    public void forget_onFailure_shouldRefreshApList() {
+        doNothing().when(mController).refreshSubscribedAccessPoints();
+
+        mController.onFailure(0 /* reason */);
+
+        verify(mController).refreshSubscribedAccessPoints();
+    }
+
+    @Test
+    @Config(shadows = ShadowAccessPoint.class)
+    public void refreshSubscribedAccessPoints_shouldNotListNonSubscribedAPs() {
+        final WifiConfiguration config = new WifiConfiguration();
+        config.SSID = "SSID";
+        config.BSSID = "BSSID";
+        config.networkId = 2;
+        mWifiManager.addNetwork(config);
+
+        mController.displayPreference(mPreferenceScreen);
+        mController.refreshSubscribedAccessPoints();
+
+        verify(mPreferenceCategory, never()).addPreference(any(AccessPointPreference.class));
+    }
+
+    @Test
+    @Config(shadows = ShadowAccessPoint.class)
+    public void refreshSubscribedAccessPoints_shouldListSubscribedAPs() {
+        mWifiManager.addOrUpdatePasspointConfiguration(createMockPasspointConfiguration());
+
+        mController.displayPreference(mPreferenceScreen);
+        mController.refreshSubscribedAccessPoints();
+
+        final ArgumentCaptor<AccessPointPreference> captor =
+                ArgumentCaptor.forClass(AccessPointPreference.class);
+        verify(mPreferenceCategory).addPreference(captor.capture());
+
+        final AccessPointPreference pref = captor.getValue();
+        assertThat(pref.getTitle()).isEqualTo("TESTPASSPOINT");
+    }
+
+    public static PasspointConfiguration createMockPasspointConfiguration() {
+        final PasspointConfiguration config = new PasspointConfiguration();
+        final HomeSp homeSp = new HomeSp();
+        homeSp.setFqdn("FQDN");
+        homeSp.setFriendlyName("TESTPASSPOINT");
+        config.setHomeSp(homeSp);
+        return config;
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/wifi/slice/ContextualWifiSliceTest.java b/tests/robotests/src/com/android/settings/wifi/slice/ContextualWifiSliceTest.java
index d681afe..520d988 100644
--- a/tests/robotests/src/com/android/settings/wifi/slice/ContextualWifiSliceTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/slice/ContextualWifiSliceTest.java
@@ -36,6 +36,8 @@
 
 import com.android.settings.R;
 import com.android.settings.slices.CustomSliceRegistry;
+import com.android.settings.slices.SlicesFeatureProviderImpl;
+import com.android.settings.testutils.FakeFeatureFactory;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -52,11 +54,15 @@
     private ContentResolver mResolver;
     private WifiManager mWifiManager;
     private ContextualWifiSlice mWifiSlice;
+    private FakeFeatureFactory mFeatureFactory;
 
     @Before
     public void setUp() {
         mContext = spy(RuntimeEnvironment.application);
         mResolver = mock(ContentResolver.class);
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
+        mFeatureFactory.slicesFeatureProvider = new SlicesFeatureProviderImpl();
+        mFeatureFactory.slicesFeatureProvider.newUiSession();
         doReturn(mResolver).when(mContext).getContentResolver();
         mWifiManager = mContext.getSystemService(WifiManager.class);
 
@@ -65,10 +71,28 @@
         mWifiManager.setWifiEnabled(true);
 
         mWifiSlice = new ContextualWifiSlice(mContext);
+        mWifiSlice.sPreviouslyDisplayed = false;
     }
 
     @Test
     public void getWifiSlice_hasActiveConnection_shouldReturnNull() {
+        mWifiSlice.sPreviouslyDisplayed = false;
+        final WifiConfiguration config = new WifiConfiguration();
+        config.SSID = "123";
+        mWifiManager.connect(config, null /* listener */);
+
+        final Slice wifiSlice = mWifiSlice.getSlice();
+
+        assertThat(wifiSlice).isNull();
+    }
+
+    @Test
+    public void getWifiSlice_newSession_hasActiveConnection_shouldReturnNull() {
+        // Session: use a non-active value
+        // previous displayed: yes
+        mWifiSlice.sPreviouslyDisplayed = true;
+        mWifiSlice.sActiveUiSession = ~mFeatureFactory.slicesFeatureProvider.getUiSessionToken();
+
         final WifiConfiguration config = new WifiConfiguration();
         config.SSID = "123";
         mWifiManager.connect(config, null /* listener */);
@@ -80,7 +104,8 @@
 
     @Test
     public void getWifiSlice_previousDisplayed_hasActiveConnection_shouldHaveTitleAndToggle() {
-        mWifiSlice.mPreviouslyDisplayed = true;
+        mWifiSlice.sActiveUiSession = mFeatureFactory.slicesFeatureProvider.getUiSessionToken();
+        mWifiSlice.sPreviouslyDisplayed = true;
         final WifiConfiguration config = new WifiConfiguration();
         config.SSID = "123";
         mWifiManager.connect(config, null /* listener */);
@@ -101,7 +126,8 @@
 
     @Test
     public void getWifiSlice_contextualWifiSlice_shouldReturnContextualWifiSliceUri() {
-        mWifiSlice.mPreviouslyDisplayed = true;
+        mWifiSlice.sActiveUiSession = mFeatureFactory.slicesFeatureProvider.getUiSessionToken();
+        mWifiSlice.sPreviouslyDisplayed = true;
 
         final Slice wifiSlice = mWifiSlice.getSlice();
 
diff --git a/tests/robotests/src/com/android/settings/wifi/slice/WifiSliceTest.java b/tests/robotests/src/com/android/settings/wifi/slice/WifiSliceTest.java
index 01feb8e..75a9e11 100644
--- a/tests/robotests/src/com/android/settings/wifi/slice/WifiSliceTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/slice/WifiSliceTest.java
@@ -34,8 +34,10 @@
 import android.content.Context;
 import android.content.Intent;
 import android.net.NetworkInfo;
+import android.net.NetworkInfo.State;
 import android.net.Uri;
 import android.net.wifi.WifiManager;
+import android.os.Bundle;
 
 import androidx.core.graphics.drawable.IconCompat;
 import androidx.slice.Slice;
@@ -61,6 +63,7 @@
 import org.robolectric.annotation.Implements;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
@@ -253,11 +256,42 @@
         verify(mResolver).notifyChange(WIFI_SLICE_URI, null);
     }
 
-    @Test
-    public void onConnectedChanged_shouldNotifyChange() {
-        mWifiScanWorker.onConnectedChanged();
+    private AccessPoint createAccessPoint(String name, State state) {
+        final NetworkInfo info = mock(NetworkInfo.class);
+        doReturn(state).when(info).getState();
 
-        verify(mResolver).notifyChange(WIFI_SLICE_URI, null);
+        final Bundle savedState = new Bundle();
+        savedState.putString("key_ssid", name);
+        savedState.putParcelable("key_networkinfo", info);
+        return new AccessPoint(mContext, savedState);
+    }
+
+    @Test
+    public void SliceAccessPoint_sameState_shouldBeTheSame() {
+        final AccessPoint ap1 = createAccessPoint(AP1_NAME, State.CONNECTED);
+        final AccessPoint ap2 = createAccessPoint(AP1_NAME, State.CONNECTED);
+
+        assertThat(mWifiScanWorker.areListsTheSame(Arrays.asList(ap1), Arrays.asList(ap2)))
+                .isTrue();
+    }
+
+    @Test
+    public void SliceAccessPoint_differentState_shouldBeDifferent() {
+        final AccessPoint ap1 = createAccessPoint(AP1_NAME, State.CONNECTING);
+        final AccessPoint ap2 = createAccessPoint(AP1_NAME, State.CONNECTED);
+
+        assertThat(mWifiScanWorker.areListsTheSame(Arrays.asList(ap1), Arrays.asList(ap2)))
+                .isFalse();
+    }
+    @Test
+    public void SliceAccessPoint_differentLength_shouldBeDifferent() {
+        final AccessPoint ap1 = createAccessPoint(AP1_NAME, State.CONNECTED);
+        final AccessPoint ap2 = createAccessPoint(AP1_NAME, State.CONNECTED);
+        final List<AccessPoint> list = new ArrayList<>();
+        list.add(ap1);
+        list.add(ap2);
+
+        assertThat(mWifiScanWorker.areListsTheSame(list, Arrays.asList(ap1))).isFalse();
     }
 
     @Implements(SliceBackgroundWorker.class)
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPreferenceControllerTest.java
index d8cd878a..06716db 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPreferenceControllerTest.java
@@ -112,36 +112,6 @@
     }
 
     @Test
-    public void testReceiver_turnOnAirplaneMode_clearPreferenceSummary() {
-        final ContentResolver cr = mock(ContentResolver.class);
-        when(mContext.getContentResolver()).thenReturn(cr);
-        Settings.Global.putInt(cr, Settings.Global.AIRPLANE_MODE_ON, 1);
-        mController.displayPreference(mScreen);
-        final BroadcastReceiver receiver = ReflectionHelpers.getField(mController, "mReceiver");
-        final Intent broadcast = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
-
-        receiver.onReceive(RuntimeEnvironment.application, broadcast);
-
-        assertThat(mPreference.getSummary().toString()).isEqualTo(
-                "Unavailable because airplane mode is turned on");
-    }
-
-    @Test
-    public void testReceiver_turnOffAirplaneMode_displayOffSummary() {
-        final ContentResolver cr = mock(ContentResolver.class);
-        when(mContext.getContentResolver()).thenReturn(cr);
-        Settings.Global.putInt(cr, Settings.Global.AIRPLANE_MODE_ON, 0);
-        mController.displayPreference(mScreen);
-        final BroadcastReceiver receiver = ReflectionHelpers.getField(mController, "mReceiver");
-        final Intent broadcast = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
-
-        receiver.onReceive(RuntimeEnvironment.application, broadcast);
-
-        assertThat(mPreference.getSummary().toString()).isEqualTo(
-                "Not sharing internet or content with other devices");
-    }
-
-    @Test
     public void testHandleWifiApStateChanged_stateEnabling_showEnablingSummary() {
         mController.handleWifiApStateChanged(WifiManager.WIFI_AP_STATE_ENABLING, 0 /* reason */);
 
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceControllerTest.java
index cb58778..3d15197 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceControllerTest.java
@@ -26,6 +26,7 @@
 import android.content.Context;
 import android.net.ConnectivityManager;
 import android.net.wifi.WifiConfiguration;
+import android.net.wifi.WifiConfiguration.KeyMgmt;
 import android.net.wifi.WifiManager;
 
 import androidx.preference.PreferenceScreen;
@@ -56,12 +57,12 @@
     private PreferenceScreen mScreen;
 
     private WifiTetherSSIDPreferenceController mController;
-    private ValidatedEditTextPreference mPreference;
+    private WifiTetherSsidPreference mPreference;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mPreference = new ValidatedEditTextPreference(RuntimeEnvironment.application);
+        mPreference = new WifiTetherSsidPreference(RuntimeEnvironment.application);
 
         when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
         when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE))
@@ -121,4 +122,28 @@
         assertThat(mController.getSSID()).isEqualTo(config.SSID);
         assertThat(mPreference.getSummary()).isEqualTo(config.SSID);
     }
+
+    @Test
+    public void displayPreference_wifiApDisabled_shouldHideQrCodeIcon() {
+        when(mWifiManager.isWifiApEnabled()).thenReturn(false);
+        final WifiConfiguration config = new WifiConfiguration();
+        config.SSID = "test_1234";
+        config.allowedKeyManagement.set(KeyMgmt.WPA2_PSK);
+        when(mWifiManager.getWifiApConfiguration()).thenReturn(config);
+
+        mController.displayPreference(mScreen);
+        assertThat(mController.isQrCodeButtonAvailable()).isEqualTo(false);
+    }
+
+    @Test
+    public void displayPreference_wifiApEnabled_shouldShowQrCodeIcon() {
+        when(mWifiManager.isWifiApEnabled()).thenReturn(true);
+        final WifiConfiguration config = new WifiConfiguration();
+        config.SSID = "test_1234";
+        config.allowedKeyManagement.set(KeyMgmt.WPA2_PSK);
+        when(mWifiManager.getWifiApConfiguration()).thenReturn(config);
+
+        mController.displayPreference(mScreen);
+        assertThat(mController.isQrCodeButtonAvailable()).isEqualTo(true);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSwitchBarControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSwitchBarControllerTest.java
index 1a5a228..30358da 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSwitchBarControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSwitchBarControllerTest.java
@@ -73,17 +73,7 @@
         mController = new WifiTetherSwitchBarController(mContext,
                 new SwitchBarController(mSwitchBar));
     }
-
-    @Test
-    public void constructor_airplaneModeOn_switchBarDisabled() {
-        Settings.Global.putInt(RuntimeEnvironment.application.getContentResolver(),
-                Settings.Global.AIRPLANE_MODE_ON, 1);
-
-        new WifiTetherSwitchBarController(mContext, new SwitchBarController(mSwitchBar));
-
-        assertThat(mSwitchBar.isEnabled()).isFalse();
-    }
-
+    
     @Test
     public void startTether_fail_resetSwitchBar() {
         when(mNetworkPolicyManager.getRestrictBackground()).thenReturn(false);
diff --git a/tests/unit/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java b/tests/unit/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
index 447e2b4..653e55e 100644
--- a/tests/unit/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
+++ b/tests/unit/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
@@ -86,6 +86,7 @@
     private ContextualCard getContextualCard(Uri sliceUri) {
         return new ContextualCard.Builder()
                 .setName("test_card")
+                .setRankingScore(0.5f)
                 .setCardType(ContextualCard.CardType.SLICE)
                 .setSliceUri(sliceUri)
                 .build();
diff --git a/tests/unit/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java b/tests/unit/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java
index 405ed4a..38211b3 100644
--- a/tests/unit/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java
+++ b/tests/unit/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java
@@ -147,7 +147,7 @@
     @Test
     public void rotateScreen_shouldGetCorrectWifiNetworkConfig() {
         final WifiNetworkConfig wifiNetworkConfig = new WifiNetworkConfig("WPA", "WifiSsid",
-                "password", /* hiddenSsid */ false, /* networkId */ 0);
+                "password", /* hiddenSsid */ false, /* networkId */ 0, /* isHotspot */ true);
         final Intent intent = new Intent(Settings.ACTION_PROCESS_WIFI_EASY_CONNECT_URI);
         intent.setData(Uri.parse(VALID_WIFI_DPP_QR_CODE));
 
@@ -173,5 +173,6 @@
         assertThat(restoredWifiNetworkConfig.getPreSharedKey()).isEqualTo("password");
         assertThat(restoredWifiNetworkConfig.getHiddenSsid()).isFalse();
         assertThat(restoredWifiNetworkConfig.getNetworkId()).isEqualTo(0);
+        assertThat(restoredWifiNetworkConfig.isHotspot()).isTrue();
     }
 }
