Merge "Import translations. DO NOT MERGE ANYWHERE" into main
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 02dd9cd..8c6b84a 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1668,7 +1668,7 @@
         </activity>
 
         <activity
-            android:name="Settings$HighPowerApplicationsActivity"
+            android:name="Settings$AppBatteryUsageActivity"
             android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
             android:exported="true"
             android:label="@string/high_power_apps">
diff --git a/res/layout/wifi_add_network_view.xml b/res/layout/wifi_add_network_view.xml
index 480d597..d698adf 100644
--- a/res/layout/wifi_add_network_view.xml
+++ b/res/layout/wifi_add_network_view.xml
@@ -18,8 +18,7 @@
 <androidx.core.widget.NestedScrollView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:fitsSystemWindows="true">
+    android:layout_height="wrap_content">
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
diff --git a/res/layout/wifi_network_config.xml b/res/layout/wifi_network_config.xml
index 77afedc..3de1a38 100644
--- a/res/layout/wifi_network_config.xml
+++ b/res/layout/wifi_network_config.xml
@@ -22,6 +22,19 @@
     android:orientation="vertical"
     android:paddingBottom="8dip">
 
+    <LinearLayout android:id="@+id/wep_warning_layout"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingBottom="20dp"
+        style="@style/wifi_item"
+        android:visibility="gone">
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            style="@style/wifi_item_label"
+            android:text="@string/wifi_settings_warning_wep_network"/>
+    </LinearLayout>
+
     <LinearLayout android:id="@+id/info"
                   android:layout_width="match_parent"
                   android:layout_height="wrap_content"
diff --git a/res/values-af/arrays.xml b/res/values-af/arrays.xml
index 12689e0..5f0b1a3 100644
--- a/res/values-af/arrays.xml
+++ b/res/values-af/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-am/arrays.xml b/res/values-am/arrays.xml
index 49be0c4..4bc5176 100644
--- a/res/values-am/arrays.xml
+++ b/res/values-am/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ar/arrays.xml b/res/values-ar/arrays.xml
index 8398b6e..509c4b9 100644
--- a/res/values-ar/arrays.xml
+++ b/res/values-ar/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-as/arrays.xml b/res/values-as/arrays.xml
index 09c4b09..caca9e2 100644
--- a/res/values-as/arrays.xml
+++ b/res/values-as/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-az/arrays.xml b/res/values-az/arrays.xml
index a6e001b..16a8830 100644
--- a/res/values-az/arrays.xml
+++ b/res/values-az/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-b+sr+Latn/arrays.xml b/res/values-b+sr+Latn/arrays.xml
index 7053b92..880334d 100644
--- a/res/values-b+sr+Latn/arrays.xml
+++ b/res/values-b+sr+Latn/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-be/arrays.xml b/res/values-be/arrays.xml
index bab8e6d..a9be1b7 100644
--- a/res/values-be/arrays.xml
+++ b/res/values-be/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-bg/arrays.xml b/res/values-bg/arrays.xml
index f951171..dbf54fe 100644
--- a/res/values-bg/arrays.xml
+++ b/res/values-bg/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-bn/arrays.xml b/res/values-bn/arrays.xml
index ca36982..d8e95a6 100644
--- a/res/values-bn/arrays.xml
+++ b/res/values-bn/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-bs/arrays.xml b/res/values-bs/arrays.xml
index f96a12a..237eb30 100644
--- a/res/values-bs/arrays.xml
+++ b/res/values-bs/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ca/arrays.xml b/res/values-ca/arrays.xml
index 64482df..db59b92 100644
--- a/res/values-ca/arrays.xml
+++ b/res/values-ca/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-cs/arrays.xml b/res/values-cs/arrays.xml
index 4bc26cd..13706ff 100644
--- a/res/values-cs/arrays.xml
+++ b/res/values-cs/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-da/arrays.xml b/res/values-da/arrays.xml
index dd01a6c..6aefc19 100644
--- a/res/values-da/arrays.xml
+++ b/res/values-da/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-de/arrays.xml b/res/values-de/arrays.xml
index 0ebf788..a4302b6 100644
--- a/res/values-de/arrays.xml
+++ b/res/values-de/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-el/arrays.xml b/res/values-el/arrays.xml
index f1b3e22..e1d9875 100644
--- a/res/values-el/arrays.xml
+++ b/res/values-el/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-en-rAU/arrays.xml b/res/values-en-rAU/arrays.xml
index 3e9299d..ab9f648 100644
--- a/res/values-en-rAU/arrays.xml
+++ b/res/values-en-rAU/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-en-rCA/arrays.xml b/res/values-en-rCA/arrays.xml
index 50c5678..b401f55 100644
--- a/res/values-en-rCA/arrays.xml
+++ b/res/values-en-rCA/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-en-rGB/arrays.xml b/res/values-en-rGB/arrays.xml
index 3e9299d..ab9f648 100644
--- a/res/values-en-rGB/arrays.xml
+++ b/res/values-en-rGB/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-en-rIN/arrays.xml b/res/values-en-rIN/arrays.xml
index 3e9299d..ab9f648 100644
--- a/res/values-en-rIN/arrays.xml
+++ b/res/values-en-rIN/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-en-rXC/arrays.xml b/res/values-en-rXC/arrays.xml
index 67ce5b1..c43b7be 100644
--- a/res/values-en-rXC/arrays.xml
+++ b/res/values-en-rXC/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-es-rUS/arrays.xml b/res/values-es-rUS/arrays.xml
index 6df4d21..1d8779b 100644
--- a/res/values-es-rUS/arrays.xml
+++ b/res/values-es-rUS/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-es/arrays.xml b/res/values-es/arrays.xml
index 554ce3b..e9013b8 100644
--- a/res/values-es/arrays.xml
+++ b/res/values-es/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-et/arrays.xml b/res/values-et/arrays.xml
index 19c1135..85e9a8a 100644
--- a/res/values-et/arrays.xml
+++ b/res/values-et/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-eu/arrays.xml b/res/values-eu/arrays.xml
index fe370f3..45ddcb6 100644
--- a/res/values-eu/arrays.xml
+++ b/res/values-eu/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-fa/arrays.xml b/res/values-fa/arrays.xml
index ca9f278..866fcff 100644
--- a/res/values-fa/arrays.xml
+++ b/res/values-fa/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-fi/arrays.xml b/res/values-fi/arrays.xml
index c2ed23b..159a2f8 100644
--- a/res/values-fi/arrays.xml
+++ b/res/values-fi/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-fr-rCA/arrays.xml b/res/values-fr-rCA/arrays.xml
index 558385d..f472ecb 100644
--- a/res/values-fr-rCA/arrays.xml
+++ b/res/values-fr-rCA/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-fr/arrays.xml b/res/values-fr/arrays.xml
index 66539d3..f0a26ba 100644
--- a/res/values-fr/arrays.xml
+++ b/res/values-fr/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-gl/arrays.xml b/res/values-gl/arrays.xml
index b5ecdd0..6d5e88b 100644
--- a/res/values-gl/arrays.xml
+++ b/res/values-gl/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-gu/arrays.xml b/res/values-gu/arrays.xml
index 6d45a9e..084804c 100644
--- a/res/values-gu/arrays.xml
+++ b/res/values-gu/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-hi/arrays.xml b/res/values-hi/arrays.xml
index 8ba24da..b2a9db6 100644
--- a/res/values-hi/arrays.xml
+++ b/res/values-hi/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-hr/arrays.xml b/res/values-hr/arrays.xml
index 13784b8..f56d73c 100644
--- a/res/values-hr/arrays.xml
+++ b/res/values-hr/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-hu/arrays.xml b/res/values-hu/arrays.xml
index 11f18a7..a53728b 100644
--- a/res/values-hu/arrays.xml
+++ b/res/values-hu/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-hy/arrays.xml b/res/values-hy/arrays.xml
index bd1b26e..64c2775 100644
--- a/res/values-hy/arrays.xml
+++ b/res/values-hy/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-in/arrays.xml b/res/values-in/arrays.xml
index 2991224..a5291e5 100644
--- a/res/values-in/arrays.xml
+++ b/res/values-in/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-is/arrays.xml b/res/values-is/arrays.xml
index 470e79e..8d26706 100644
--- a/res/values-is/arrays.xml
+++ b/res/values-is/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-it/arrays.xml b/res/values-it/arrays.xml
index 40e43cb..be222df 100644
--- a/res/values-it/arrays.xml
+++ b/res/values-it/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-iw/arrays.xml b/res/values-iw/arrays.xml
index 711bcc3..b8c1696 100644
--- a/res/values-iw/arrays.xml
+++ b/res/values-iw/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ja/arrays.xml b/res/values-ja/arrays.xml
index a12f42f..ebdf56a 100644
--- a/res/values-ja/arrays.xml
+++ b/res/values-ja/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ka/arrays.xml b/res/values-ka/arrays.xml
index c08d19b..5c3f956 100644
--- a/res/values-ka/arrays.xml
+++ b/res/values-ka/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-kk/arrays.xml b/res/values-kk/arrays.xml
index 056213b..4fb8109 100644
--- a/res/values-kk/arrays.xml
+++ b/res/values-kk/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-km/arrays.xml b/res/values-km/arrays.xml
index d007522f..7292a00 100644
--- a/res/values-km/arrays.xml
+++ b/res/values-km/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-kn/arrays.xml b/res/values-kn/arrays.xml
index 75a2300..a79ba9b 100644
--- a/res/values-kn/arrays.xml
+++ b/res/values-kn/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ko/arrays.xml b/res/values-ko/arrays.xml
index c1c4719..50b65b0 100644
--- a/res/values-ko/arrays.xml
+++ b/res/values-ko/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ky/arrays.xml b/res/values-ky/arrays.xml
index de56208..e20cb78 100644
--- a/res/values-ky/arrays.xml
+++ b/res/values-ky/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-lo/arrays.xml b/res/values-lo/arrays.xml
index b5a8f8a..e0a9547 100644
--- a/res/values-lo/arrays.xml
+++ b/res/values-lo/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-lt/arrays.xml b/res/values-lt/arrays.xml
index 5d2eef2..d6cbf04 100644
--- a/res/values-lt/arrays.xml
+++ b/res/values-lt/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-lv/arrays.xml b/res/values-lv/arrays.xml
index ca0f276..05c0cfe 100644
--- a/res/values-lv/arrays.xml
+++ b/res/values-lv/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-mk/arrays.xml b/res/values-mk/arrays.xml
index 4e3b715..5db8d03 100644
--- a/res/values-mk/arrays.xml
+++ b/res/values-mk/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ml/arrays.xml b/res/values-ml/arrays.xml
index b2f97f8..26df0b6 100644
--- a/res/values-ml/arrays.xml
+++ b/res/values-ml/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-mn/arrays.xml b/res/values-mn/arrays.xml
index 6cc296c..34855bc 100644
--- a/res/values-mn/arrays.xml
+++ b/res/values-mn/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-mr/arrays.xml b/res/values-mr/arrays.xml
index ee84068..4adab31 100644
--- a/res/values-mr/arrays.xml
+++ b/res/values-mr/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ms/arrays.xml b/res/values-ms/arrays.xml
index ff1b598..962bb41 100644
--- a/res/values-ms/arrays.xml
+++ b/res/values-ms/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-my/arrays.xml b/res/values-my/arrays.xml
index 382eb36..aa98436 100644
--- a/res/values-my/arrays.xml
+++ b/res/values-my/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-nb/arrays.xml b/res/values-nb/arrays.xml
index 1a26b4b..a034cce 100644
--- a/res/values-nb/arrays.xml
+++ b/res/values-nb/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ne/arrays.xml b/res/values-ne/arrays.xml
index 638b42b..9152bf5 100644
--- a/res/values-ne/arrays.xml
+++ b/res/values-ne/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-nl/arrays.xml b/res/values-nl/arrays.xml
index c2fcbea..d1c7669 100644
--- a/res/values-nl/arrays.xml
+++ b/res/values-nl/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-or/arrays.xml b/res/values-or/arrays.xml
index 60319c1..133d09f 100644
--- a/res/values-or/arrays.xml
+++ b/res/values-or/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-pa/arrays.xml b/res/values-pa/arrays.xml
index ea99fe0..47bb15c 100644
--- a/res/values-pa/arrays.xml
+++ b/res/values-pa/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-pl/arrays.xml b/res/values-pl/arrays.xml
index 785be2a..01b10b4 100644
--- a/res/values-pl/arrays.xml
+++ b/res/values-pl/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-pt-rBR/arrays.xml b/res/values-pt-rBR/arrays.xml
index cd9c222..2e9649b 100644
--- a/res/values-pt-rBR/arrays.xml
+++ b/res/values-pt-rBR/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-pt-rPT/arrays.xml b/res/values-pt-rPT/arrays.xml
index d0a1f45..ede92a2 100644
--- a/res/values-pt-rPT/arrays.xml
+++ b/res/values-pt-rPT/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-pt/arrays.xml b/res/values-pt/arrays.xml
index cd9c222..2e9649b 100644
--- a/res/values-pt/arrays.xml
+++ b/res/values-pt/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ro/arrays.xml b/res/values-ro/arrays.xml
index f18525f..f8ace1d 100644
--- a/res/values-ro/arrays.xml
+++ b/res/values-ro/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ru/arrays.xml b/res/values-ru/arrays.xml
index 762be14..8954f52 100644
--- a/res/values-ru/arrays.xml
+++ b/res/values-ru/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-si/arrays.xml b/res/values-si/arrays.xml
index 4bd0f64..cffd8d8 100644
--- a/res/values-si/arrays.xml
+++ b/res/values-si/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-sk/arrays.xml b/res/values-sk/arrays.xml
index 47ff940..578c756 100644
--- a/res/values-sk/arrays.xml
+++ b/res/values-sk/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-sl/arrays.xml b/res/values-sl/arrays.xml
index 4d4ca2b..7fa6e79 100644
--- a/res/values-sl/arrays.xml
+++ b/res/values-sl/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-sq/arrays.xml b/res/values-sq/arrays.xml
index e8903c0..4649573 100644
--- a/res/values-sq/arrays.xml
+++ b/res/values-sq/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-sr/arrays.xml b/res/values-sr/arrays.xml
index 20b1cff..177bf08 100644
--- a/res/values-sr/arrays.xml
+++ b/res/values-sr/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-sv/arrays.xml b/res/values-sv/arrays.xml
index 0c509bf..949a18f 100644
--- a/res/values-sv/arrays.xml
+++ b/res/values-sv/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-sw/arrays.xml b/res/values-sw/arrays.xml
index a163455..923f46e 100644
--- a/res/values-sw/arrays.xml
+++ b/res/values-sw/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ta/arrays.xml b/res/values-ta/arrays.xml
index e31f2a4..62732a4 100644
--- a/res/values-ta/arrays.xml
+++ b/res/values-ta/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-te/arrays.xml b/res/values-te/arrays.xml
index f271093..88c51f0 100644
--- a/res/values-te/arrays.xml
+++ b/res/values-te/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-th/arrays.xml b/res/values-th/arrays.xml
index c65512f..a9bb803 100644
--- a/res/values-th/arrays.xml
+++ b/res/values-th/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-tl/arrays.xml b/res/values-tl/arrays.xml
index 39c69d5..a3c1d5a 100644
--- a/res/values-tl/arrays.xml
+++ b/res/values-tl/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-tr/arrays.xml b/res/values-tr/arrays.xml
index cb49a84..cb4447e 100644
--- a/res/values-tr/arrays.xml
+++ b/res/values-tr/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-uk/arrays.xml b/res/values-uk/arrays.xml
index c57fefb..43c4c5f 100644
--- a/res/values-uk/arrays.xml
+++ b/res/values-uk/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ur/arrays.xml b/res/values-ur/arrays.xml
index 21cde2b..6a1220e 100644
--- a/res/values-ur/arrays.xml
+++ b/res/values-ur/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-uz/arrays.xml b/res/values-uz/arrays.xml
index 0e63347..c5a3dac 100644
--- a/res/values-uz/arrays.xml
+++ b/res/values-uz/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-vi/arrays.xml b/res/values-vi/arrays.xml
index cd249d3..d29136c 100644
--- a/res/values-vi/arrays.xml
+++ b/res/values-vi/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-zh-rCN/arrays.xml b/res/values-zh-rCN/arrays.xml
index d05f9d5..fb9d893 100644
--- a/res/values-zh-rCN/arrays.xml
+++ b/res/values-zh-rCN/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-zh-rHK/arrays.xml b/res/values-zh-rHK/arrays.xml
index 35df364..5465990 100644
--- a/res/values-zh-rHK/arrays.xml
+++ b/res/values-zh-rHK/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-zh-rTW/arrays.xml b/res/values-zh-rTW/arrays.xml
index 13301cf..b358037 100644
--- a/res/values-zh-rTW/arrays.xml
+++ b/res/values-zh-rTW/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-zu/arrays.xml b/res/values-zu/arrays.xml
index 578ca6a..3bac8c0 100644
--- a/res/values-zu/arrays.xml
+++ b/res/values-zu/arrays.xml
@@ -482,4 +482,7 @@
     <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
     <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
     <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 776e3f4..2b5117d 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3967,6 +3967,14 @@
     <string name="archive">Archive</string>
     <!-- Manage applications, text label for button to restore an application. Restoring means installing the archived app. -->
     <string name="restore">Restore</string>
+    <!-- Manage applications, text label for button while the application is restoring. -->
+    <string name="restoring_step_one">Restoring</string>
+    <!-- Manage applications, text label for button while the application is restoring. -->
+    <string name="restoring_step_two">Restoring.</string>
+    <!-- Manage applications, text label for button while the application is restoring. -->
+    <string name="restoring_step_three">Restoring..</string>
+    <!-- Manage applications, text label for button while the application is restoring. -->
+    <string name="restoring_step_four">Restoring...</string>
     <!-- Manage applications, individual application info screen,label under Storage heading.  The total storage space taken up by this app. -->
     <string name="total_size_label">Total</string>
     <!-- Manage applications, individual application info screen, label under Storage heading. The amount of space taken up by the application itself (for example, the java compield files and things like that) -->
diff --git a/res/xml/bluetooth_audio_streams_dialog.xml b/res/xml/bluetooth_audio_streams_dialog.xml
new file mode 100644
index 0000000..afc5055
--- /dev/null
+++ b/res/xml/bluetooth_audio_streams_dialog.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2024 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.
+  -->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <LinearLayout
+        android:id="@+id/dialog_bg"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="@dimen/broadcast_dialog_margin"
+            android:orientation="vertical">
+
+            <ImageView
+                android:id="@+id/dialog_icon"
+                android:layout_width="36dp"
+                android:layout_height="36dp"
+                android:layout_marginTop="@dimen/broadcast_dialog_icon_margin_top"
+                android:layout_marginBottom="@dimen/broadcast_dialog_title_img_margin_top"
+                android:layout_gravity="center"
+                android:src="@drawable/ic_bt_audio_sharing"/>
+
+            <TextView
+                style="@style/BroadcastDialogTitleStyle"
+                android:id="@+id/dialog_title"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:gravity="center"
+                android:layout_gravity="center"/>
+
+            <TextView
+                style="@style/BroadcastDialogBodyStyle"
+                android:id="@+id/dialog_subtitle"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:gravity="center"
+                android:layout_gravity="center"
+                android:visibility="gone"/>
+
+            <TextView
+                style="@style/BroadcastDialogBodyStyle"
+                android:id="@+id/dialog_subtitle_2"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:gravity="center"
+                android:layout_gravity="center"
+                android:visibility="gone"/>
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="@dimen/broadcast_dialog_margin"
+            android:orientation="horizontal">
+            <Button
+                android:id="@+id/left_button"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="16dp"
+                android:layout_weight="1"
+                android:visibility="gone"/>
+            <Button
+                android:id="@+id/right_button"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:layout_marginRight="16dp"
+                android:visibility="gone"/>
+        </LinearLayout>
+
+    </LinearLayout>
+</FrameLayout>
\ No newline at end of file
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDashboardFragment.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDashboardFragment.java
index b0af7dd..b5c71b6 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDashboardFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDashboardFragment.java
@@ -71,6 +71,7 @@
         super.onAttach(context);
         use(AudioStreamsScanQrCodeController.class).setFragment(this);
         mAudioStreamsProgressCategoryController = use(AudioStreamsProgressCategoryController.class);
+        mAudioStreamsProgressCategoryController.setFragment(this);
     }
 
     @Override
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDialogFragment.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDialogFragment.java
new file mode 100644
index 0000000..c7d7f16
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDialogFragment.java
@@ -0,0 +1,151 @@
+/*
+ * Copyright (C) 2024 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.connecteddevice.audiosharing.audiostreams;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.Context;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+
+import com.android.settings.R;
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+
+import com.google.common.base.Strings;
+
+import java.util.function.Consumer;
+
+public class AudioStreamsDialogFragment extends InstrumentedDialogFragment {
+    private static final String TAG = "AudioStreamsDialogFragment";
+    private final DialogBuilder mDialogBuilder;
+
+    AudioStreamsDialogFragment(DialogBuilder dialogBuilder) {
+        mDialogBuilder = dialogBuilder;
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        // TODO(chelseahao): update metrics id
+        return 0;
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        return mDialogBuilder.build();
+    }
+
+    static void show(Fragment host, DialogBuilder dialogBuilder) {
+        FragmentManager manager = host.getChildFragmentManager();
+        (new AudioStreamsDialogFragment(dialogBuilder)).show(manager, TAG);
+    }
+
+    static class DialogBuilder {
+        private final Context mContext;
+        private final AlertDialog.Builder mBuilder;
+        private String mTitle;
+        private String mSubTitle1;
+        private String mSubTitle2;
+        private String mLeftButtonText;
+        private String mRightButtonText;
+        private Consumer<AlertDialog> mLeftButtonOnClickListener;
+        private Consumer<AlertDialog> mRightButtonOnClickListener;
+
+        DialogBuilder(Context context) {
+            mContext = context;
+            mBuilder = new AlertDialog.Builder(context);
+        }
+
+        DialogBuilder setTitle(String title) {
+            mTitle = title;
+            return this;
+        }
+
+        DialogBuilder setSubTitle1(String subTitle1) {
+            mSubTitle1 = subTitle1;
+            return this;
+        }
+
+        DialogBuilder setSubTitle2(String subTitle2) {
+            mSubTitle2 = subTitle2;
+            return this;
+        }
+
+        DialogBuilder setLeftButtonText(String text) {
+            mLeftButtonText = text;
+            return this;
+        }
+
+        DialogBuilder setLeftButtonOnClickListener(Consumer<AlertDialog> listener) {
+            mLeftButtonOnClickListener = listener;
+            return this;
+        }
+
+        DialogBuilder setRightButtonText(String text) {
+            mRightButtonText = text;
+            return this;
+        }
+
+        DialogBuilder setRightButtonOnClickListener(Consumer<AlertDialog> listener) {
+            mRightButtonOnClickListener = listener;
+            return this;
+        }
+
+        AlertDialog build() {
+            View rootView =
+                    LayoutInflater.from(mContext)
+                            .inflate(R.xml.bluetooth_audio_streams_dialog, /* parent= */ null);
+
+            AlertDialog dialog = mBuilder.setView(rootView).setCancelable(false).create();
+            dialog.setCanceledOnTouchOutside(false);
+
+            TextView title = rootView.requireViewById(R.id.dialog_title);
+            title.setText(mTitle);
+
+            if (!Strings.isNullOrEmpty(mSubTitle1)) {
+                TextView subTitle1 = rootView.requireViewById(R.id.dialog_subtitle);
+                subTitle1.setText(mSubTitle1);
+                subTitle1.setVisibility(View.VISIBLE);
+            }
+            if (!Strings.isNullOrEmpty(mSubTitle2)) {
+                TextView subTitle2 = rootView.requireViewById(R.id.dialog_subtitle_2);
+                subTitle2.setText(mSubTitle2);
+                subTitle2.setVisibility(View.VISIBLE);
+            }
+            if (!Strings.isNullOrEmpty(mLeftButtonText)) {
+                Button leftButton = rootView.requireViewById(R.id.left_button);
+                leftButton.setText(mLeftButtonText);
+                leftButton.setVisibility(View.VISIBLE);
+                leftButton.setOnClickListener(unused -> mLeftButtonOnClickListener.accept(dialog));
+            }
+            if (!Strings.isNullOrEmpty(mRightButtonText)) {
+                Button rightButton = rootView.requireViewById(R.id.right_button);
+                rightButton.setText(mRightButtonText);
+                rightButton.setVisibility(View.VISIBLE);
+                rightButton.setOnClickListener(
+                        unused -> mRightButtonOnClickListener.accept(dialog));
+            }
+
+            return dialog;
+        }
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryController.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryController.java
index ab380c8..cb9975d 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryController.java
@@ -24,8 +24,10 @@
 import android.bluetooth.BluetoothLeBroadcastReceiveState;
 import android.bluetooth.BluetoothProfile;
 import android.content.Context;
+import android.content.Intent;
 import android.os.Bundle;
 import android.os.CountDownTimer;
+import android.provider.Settings;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -92,6 +94,7 @@
             new ConcurrentHashMap<>();
     private TimedSourceFromQrCode mTimedSourceFromQrCode;
     private AudioStreamsProgressCategoryPreference mCategoryPreference;
+    private AudioStreamsDashboardFragment mFragment;
 
     public AudioStreamsProgressCategoryController(Context context, String preferenceKey) {
         super(context, preferenceKey);
@@ -135,10 +138,13 @@
         mExecutor.execute(this::stopScanning);
     }
 
+    void setFragment(AudioStreamsDashboardFragment fragment) {
+        mFragment = fragment;
+    }
+
     void setSourceFromQrCode(BluetoothLeBroadcastMetadata source) {
         mTimedSourceFromQrCode =
-                new TimedSourceFromQrCode(
-                        mContext, source, () -> handleSourceLost(source.getBroadcastId()));
+                new TimedSourceFromQrCode(source, () -> handleSourceLost(source.getBroadcastId()));
     }
 
     void setScanning(boolean isScanning) {
@@ -324,6 +330,8 @@
             startScanning();
         } else {
             stopScanning();
+            ThreadUtils.postOnMainThread(
+                    () -> AudioStreamsDialogFragment.show(mFragment, getNoLeDeviceDialog()));
         }
     }
 
@@ -463,15 +471,41 @@
         alertDialog.show();
     }
 
-    private static class TimedSourceFromQrCode {
+    private AudioStreamsDialogFragment.DialogBuilder getNoLeDeviceDialog() {
+        return new AudioStreamsDialogFragment.DialogBuilder(mContext)
+                .setTitle("Connect compatible headphones")
+                .setSubTitle1(
+                        "To listen to an audio stream, first connect headphones that support LE"
+                                + " Audio to this device. Learn more")
+                .setLeftButtonText("Close")
+                .setLeftButtonOnClickListener(AlertDialog::dismiss)
+                .setRightButtonText("Connect a device")
+                .setRightButtonOnClickListener(
+                        unused ->
+                                mContext.startActivity(
+                                        new Intent(Settings.ACTION_BLUETOOTH_SETTINGS)));
+    }
+
+    private AudioStreamsDialogFragment.DialogBuilder getBroadcastUnavailableDialog(
+            String broadcastName) {
+        return new AudioStreamsDialogFragment.DialogBuilder(mContext)
+                .setTitle("Audio stream isn't available")
+                .setSubTitle1(broadcastName)
+                .setSubTitle2("This audio stream isn't playing anything right now")
+                .setLeftButtonText("Close")
+                .setLeftButtonOnClickListener(AlertDialog::dismiss)
+                .setRightButtonText("Retry")
+                // TODO(chelseahao): Add retry action
+                .setRightButtonOnClickListener(AlertDialog::dismiss);
+    }
+
+    private class TimedSourceFromQrCode {
         private static final int WAIT_FOR_SYNC_TIMEOUT_MILLIS = 15000;
         private final CountDownTimer mTimer;
         private BluetoothLeBroadcastMetadata mSourceFromQrCode;
 
         private TimedSourceFromQrCode(
-                Context context,
-                BluetoothLeBroadcastMetadata sourceFromQrCode,
-                Runnable timeoutAction) {
+                BluetoothLeBroadcastMetadata sourceFromQrCode, Runnable timeoutAction) {
             mSourceFromQrCode = sourceFromQrCode;
             mTimer =
                     new CountDownTimer(WAIT_FOR_SYNC_TIMEOUT_MILLIS, 1000) {
@@ -481,7 +515,12 @@
                         @Override
                         public void onFinish() {
                             timeoutAction.run();
-                            AudioSharingUtils.toastMessage(context, "Audio steam isn't available");
+                            ThreadUtils.postOnMainThread(
+                                    () ->
+                                            AudioStreamsDialogFragment.show(
+                                                    mFragment,
+                                                    getBroadcastUnavailableDialog(
+                                                            sourceFromQrCode.getBroadcastName())));
                         }
                     };
         }
diff --git a/src/com/android/settings/spa/app/AllAppList.kt b/src/com/android/settings/spa/app/AllAppList.kt
index 5b13211..5e0ac95 100644
--- a/src/com/android/settings/spa/app/AllAppList.kt
+++ b/src/com/android/settings/spa/app/AllAppList.kt
@@ -34,6 +34,7 @@
 import com.android.settingslib.spa.widget.preference.Preference
 import com.android.settingslib.spa.widget.preference.PreferenceModel
 import com.android.settingslib.spa.widget.ui.SpinnerOption
+import com.android.settingslib.spaprivileged.framework.compose.getPlaceholder
 import com.android.settingslib.spaprivileged.model.app.AppListModel
 import com.android.settingslib.spaprivileged.model.app.AppRecord
 import com.android.settingslib.spaprivileged.model.app.installed
@@ -131,7 +132,11 @@
     override fun getSummary(option: Int, record: AppRecordWithSize): () -> String {
         val storageSummary = record.app.getStorageSummary()
         return {
-            val summaryList = mutableListOf(storageSummary.value)
+            val summaryList = mutableListOf<String>()
+            val storageSummaryValue = storageSummary.value
+            if (storageSummaryValue.isNotBlank()) {
+                summaryList += storageSummaryValue
+            }
             when {
                 !record.app.installed && !record.app.isArchived -> {
                     summaryList += context.getString(R.string.not_installed)
@@ -142,6 +147,7 @@
                 }
             }
             summaryList.joinToString(separator = System.lineSeparator())
+                .ifEmpty { context.getPlaceholder() } // Use placeholder to reduce flaky
         }
     }
 
diff --git a/src/com/android/settings/spa/app/appinfo/AppPermissionPreference.kt b/src/com/android/settings/spa/app/appinfo/AppPermissionPreference.kt
index ec1780f..1274eea 100644
--- a/src/com/android/settings/spa/app/appinfo/AppPermissionPreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppPermissionPreference.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2022 The Android Open Source Project
+ * Copyright (C) 2024 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.
@@ -22,15 +22,15 @@
 import android.content.pm.ApplicationInfo
 import android.util.Log
 import androidx.compose.runtime.Composable
-import androidx.compose.runtime.livedata.observeAsState
 import androidx.compose.runtime.remember
 import androidx.compose.ui.platform.LocalContext
-import androidx.compose.ui.res.stringResource
-import androidx.lifecycle.LiveData
+import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settings.R
 import com.android.settingslib.spa.widget.preference.Preference
 import com.android.settingslib.spa.widget.preference.PreferenceModel
+import com.android.settingslib.spaprivileged.framework.compose.placeholder
 import com.android.settingslib.spaprivileged.model.app.userHandle
+import kotlinx.coroutines.flow.Flow
 
 private const val TAG = "AppPermissionPreference"
 private const val EXTRA_HIDE_INFO_BUTTON = "hideInfoButton"
@@ -38,14 +38,11 @@
 @Composable
 fun AppPermissionPreference(
     app: ApplicationInfo,
-    summaryLiveData: LiveData<AppPermissionSummaryState> = rememberAppPermissionSummary(app),
+    summaryFlow: Flow<AppPermissionSummaryState> = rememberAppPermissionSummary(app),
 ) {
     val context = LocalContext.current
-    val summaryState = summaryLiveData.observeAsState(
-        initial = AppPermissionSummaryState(
-            summary = stringResource(R.string.summary_placeholder),
-            enabled = false,
-        )
+    val summaryState = summaryFlow.collectAsStateWithLifecycle(
+        initialValue = AppPermissionSummaryState(summary = placeholder(), enabled = false),
     )
     Preference(
         model = remember {
diff --git a/src/com/android/settings/spa/app/appinfo/AppPermissionSummary.kt b/src/com/android/settings/spa/app/appinfo/AppPermissionSummary.kt
index 91c3887..d0bdd6b 100644
--- a/src/com/android/settings/spa/app/appinfo/AppPermissionSummary.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppPermissionSummary.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2022 The Android Open Source Project
+ * Copyright (C) 2024 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.
@@ -18,18 +18,22 @@
 
 import android.content.Context
 import android.content.pm.ApplicationInfo
-import android.content.pm.PackageManager.OnPermissionsChangedListener
 import android.icu.text.ListFormatter
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.remember
 import androidx.compose.ui.platform.LocalContext
-import androidx.lifecycle.LiveData
 import com.android.settings.R
 import com.android.settingslib.applications.PermissionsSummaryHelper
-import com.android.settingslib.applications.PermissionsSummaryHelper.PermissionsResultCallback
 import com.android.settingslib.spa.framework.util.formatString
 import com.android.settingslib.spaprivileged.framework.common.asUser
+import com.android.settingslib.spaprivileged.model.app.permissionsChangedFlow
 import com.android.settingslib.spaprivileged.model.app.userHandle
+import kotlin.coroutines.resume
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.flowOn
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.suspendCancellableCoroutine
 
 data class AppPermissionSummaryState(
     val summary: String,
@@ -37,58 +41,40 @@
 )
 
 @Composable
-fun rememberAppPermissionSummary(app: ApplicationInfo): AppPermissionSummaryLiveData {
+fun rememberAppPermissionSummary(app: ApplicationInfo): Flow<AppPermissionSummaryState> {
     val context = LocalContext.current
-    return remember(app) { AppPermissionSummaryLiveData(context, app) }
+    return remember(app) { AppPermissionSummaryRepository(context, app).flow }
 }
 
-class AppPermissionSummaryLiveData(
+class AppPermissionSummaryRepository(
     private val context: Context,
     private val app: ApplicationInfo,
-) : LiveData<AppPermissionSummaryState>() {
+) {
     private val userContext = context.asUser(app.userHandle)
-    private val userPackageManager = userContext.packageManager
 
-    private val onPermissionsChangedListener = OnPermissionsChangedListener { uid ->
-        if (uid == app.uid) update()
-    }
+    val flow = context.permissionsChangedFlow(app)
+        .map { getPermissionSummary() }
+        .flowOn(Dispatchers.Default)
 
-    override fun onActive() {
-        userPackageManager.addOnPermissionsChangeListener(onPermissionsChangedListener)
-        if (app.isArchived) {
-            postValue(noPermissionRequestedState())
-        } else {
-            update()
-        }
-    }
-
-    override fun onInactive() {
-        userPackageManager.removeOnPermissionsChangeListener(onPermissionsChangedListener)
-    }
-
-    private fun update() {
+    private suspend fun getPermissionSummary() = suspendCancellableCoroutine { continuation ->
         PermissionsSummaryHelper.getPermissionSummary(
-            userContext, app.packageName, permissionsCallback
-        )
-    }
-
-    private val permissionsCallback = object : PermissionsResultCallback {
-        override fun onPermissionSummaryResult(
-            requestedPermissionCount: Int,
+            userContext,
+            app.packageName,
+        ) { requestedPermissionCount: Int,
             additionalGrantedPermissionCount: Int,
-            grantedGroupLabels: List<CharSequence>,
-        ) {
-            if (requestedPermissionCount == 0) {
-                postValue(noPermissionRequestedState())
-                return
-            }
-            val labels = getDisplayLabels(additionalGrantedPermissionCount, grantedGroupLabels)
-            val summary = if (labels.isNotEmpty()) {
-                ListFormatter.getInstance().format(labels)
+            grantedGroupLabels: List<CharSequence> ->
+            val summaryState = if (requestedPermissionCount == 0) {
+                noPermissionRequestedState()
             } else {
-                context.getString(R.string.runtime_permissions_summary_no_permissions_granted)
+                val labels = getDisplayLabels(additionalGrantedPermissionCount, grantedGroupLabels)
+                val summary = if (labels.isNotEmpty()) {
+                    ListFormatter.getInstance().format(labels)
+                } else {
+                    context.getString(R.string.runtime_permissions_summary_no_permissions_granted)
+                }
+                AppPermissionSummaryState(summary = summary, enabled = true)
             }
-            postValue(AppPermissionSummaryState(summary = summary, enabled = true))
+            continuation.resume(summaryState)
         }
     }
 
@@ -100,15 +86,14 @@
     private fun getDisplayLabels(
         additionalGrantedPermissionCount: Int,
         grantedGroupLabels: List<CharSequence>,
-    ): List<CharSequence> = when (additionalGrantedPermissionCount) {
-        0 -> grantedGroupLabels
-        else -> {
-            grantedGroupLabels +
-                // N additional permissions.
-                context.formatString(
-                    R.string.runtime_permissions_additional_count,
-                    "count" to additionalGrantedPermissionCount,
-                )
-        }
+    ): List<CharSequence> = if (additionalGrantedPermissionCount == 0) {
+        grantedGroupLabels
+    } else {
+        grantedGroupLabels +
+            // N additional permissions.
+            context.formatString(
+                R.string.runtime_permissions_additional_count,
+                "count" to additionalGrantedPermissionCount,
+            )
     }
 }
diff --git a/src/com/android/settings/spa/app/appinfo/AppRestoreButton.kt b/src/com/android/settings/spa/app/appinfo/AppRestoreButton.kt
index 6596529..bf46e95 100644
--- a/src/com/android/settings/spa/app/appinfo/AppRestoreButton.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppRestoreButton.kt
@@ -27,9 +27,18 @@
 import androidx.compose.material.icons.Icons
 import androidx.compose.material.icons.outlined.CloudDownload
 import androidx.compose.runtime.Composable
+import androidx.compose.runtime.rememberCoroutineScope
+import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settings.R
 import com.android.settingslib.spa.widget.button.ActionButton
 import com.android.settingslib.spaprivileged.framework.compose.DisposableBroadcastReceiverAsUser
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.asStateFlow
+import kotlinx.coroutines.isActive
+import kotlinx.coroutines.launch
 
 class AppRestoreButton(packageInfoPresenter: PackageInfoPresenter) {
     private companion object {
@@ -43,6 +52,16 @@
     private val packageName = packageInfoPresenter.packageName
     private val userHandle = UserHandle.of(packageInfoPresenter.userId)
     private var broadcastReceiverIsCreated = false
+    private lateinit var coroutineScope: CoroutineScope
+    private lateinit var updateButtonTextJob: Job
+    private val buttonTexts = intArrayOf(
+        R.string.restore,
+        R.string.restoring_step_one,
+        R.string.restoring_step_two,
+        R.string.restoring_step_three,
+        R.string.restoring_step_four,
+    )
+    private var buttonTextIndexStateFlow = MutableStateFlow(0)
 
     @Composable
     fun getActionButton(app: ApplicationInfo): ActionButton {
@@ -55,10 +74,17 @@
             }
             broadcastReceiverIsCreated = true
         }
+        coroutineScope = rememberCoroutineScope()
+        if (app.isArchived && ::updateButtonTextJob.isInitialized && !updateButtonTextJob.isActive) {
+            buttonTextIndexStateFlow.value = 0
+        }
         return ActionButton(
-            text = context.getString(R.string.restore),
+            text = context.getString(
+                buttonTexts[
+                    buttonTextIndexStateFlow.asStateFlow().collectAsStateWithLifecycle(0).value]
+            ),
             imageVector = Icons.Outlined.CloudDownload,
-            enabled = app.isArchived
+            enabled = app.isArchived && (!::updateButtonTextJob.isInitialized || !updateButtonTextJob.isActive)
         ) { onRestoreClicked(app) }
     }
 
@@ -87,6 +113,18 @@
         when (val unarchiveStatus =
             intent.getIntExtra(PackageInstaller.EXTRA_UNARCHIVE_STATUS, Int.MIN_VALUE)) {
             PackageInstaller.UNARCHIVAL_OK -> {
+                // updateButtonTextJob will be canceled automatically once
+                // AppButtonsPresenter#getActionButtons is triggered
+                updateButtonTextJob = coroutineScope.launch {
+                    while (isActive) {
+                        var index = buttonTextIndexStateFlow.value
+                        index = (index + 1) % buttonTexts.size
+                        // The initial state shouldn't be used here
+                        if (index == 0) index++
+                        buttonTextIndexStateFlow.emit(index)
+                        delay(1000)
+                    }
+                }
                 val appLabel = userPackageManager.getApplicationLabel(app)
                 Toast.makeText(
                     context,
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index d2beec8..1627056 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -60,6 +60,7 @@
 import android.widget.CompoundButton.OnCheckedChangeListener;
 import android.widget.EditText;
 import android.widget.ImageButton;
+import android.widget.LinearLayout;
 import android.widget.Spinner;
 import android.widget.TextView;
 
@@ -75,6 +76,8 @@
 import com.android.settingslib.Utils;
 import com.android.settingslib.utils.ThreadUtils;
 import com.android.settingslib.wifi.AccessPoint;
+import com.android.wifi.flags.Flags;
+import com.android.wifitrackerlib.WifiEntry;
 
 import java.net.Inet4Address;
 import java.net.InetAddress;
@@ -273,6 +276,12 @@
         mDoNotProvideEapUserCertString =
             mContext.getString(R.string.wifi_do_not_provide_eap_user_cert);
 
+        if (Flags.wepUsage() && mAccessPointSecurity == WifiEntry.SECURITY_WEP) {
+            LinearLayout wepWarningLayout =
+                    (LinearLayout) mView.findViewById(R.id.wep_warning_layout);
+            wepWarningLayout.setVisibility(View.VISIBLE);
+        }
+
         mSsidScanButton = (ImageButton) mView.findViewById(R.id.ssid_scanner_button);
         mIpSettingsSpinner = (Spinner) mView.findViewById(R.id.ip_settings);
         mIpSettingsSpinner.setOnItemSelectedListener(this);
diff --git a/src/com/android/settings/wifi/WifiConfigController2.java b/src/com/android/settings/wifi/WifiConfigController2.java
index b2353f0..a885330 100644
--- a/src/com/android/settings/wifi/WifiConfigController2.java
+++ b/src/com/android/settings/wifi/WifiConfigController2.java
@@ -61,6 +61,7 @@
 import android.widget.CompoundButton.OnCheckedChangeListener;
 import android.widget.EditText;
 import android.widget.ImageButton;
+import android.widget.LinearLayout;
 import android.widget.Spinner;
 import android.widget.TextView;
 
@@ -77,6 +78,7 @@
 import com.android.settings.wifi.dpp.WifiDppUtils;
 import com.android.settingslib.Utils;
 import com.android.settingslib.utils.ThreadUtils;
+import com.android.wifi.flags.Flags;
 import com.android.wifitrackerlib.WifiEntry;
 import com.android.wifitrackerlib.WifiEntry.ConnectedInfo;
 
@@ -287,6 +289,12 @@
             mContext.getString(R.string.wifi_do_not_provide_eap_user_cert);
         mInstallCertsString = mContext.getString(R.string.wifi_install_credentials);
 
+        if (Flags.wepUsage() && mWifiEntrySecurity == WifiEntry.SECURITY_WEP) {
+            LinearLayout wepWarningLayout =
+                    (LinearLayout) mView.findViewById(R.id.wep_warning_layout);
+            wepWarningLayout.setVisibility(View.VISIBLE);
+        }
+
         mSsidScanButton = (ImageButton) mView.findViewById(R.id.ssid_scanner_button);
         mIpSettingsSpinner = (Spinner) mView.findViewById(R.id.ip_settings);
         mIpSettingsSpinner.setOnItemSelectedListener(this);
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/AllAppListTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/AllAppListTest.kt
index 1a05479..0ec8754 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/AllAppListTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/AllAppListTest.kt
@@ -31,6 +31,7 @@
 import com.android.settingslib.spa.framework.compose.stateOf
 import com.android.settingslib.spa.testutils.FakeNavControllerWrapper
 import com.android.settingslib.spa.testutils.firstWithTimeoutOrNull
+import com.android.settingslib.spaprivileged.framework.compose.getPlaceholder
 import com.android.settingslib.spaprivileged.template.app.AppListInput
 import com.android.settingslib.spaprivileged.template.app.AppListItemModel
 import com.google.common.truth.Truth.assertThat
@@ -142,7 +143,7 @@
     }
 
     @Test
-    fun allAppListModel_getSummary() {
+    fun listModelGetSummary_regular() {
         val listModel = AllAppListModel(context) { stateOf(SUMMARY) }
 
         lateinit var summary: () -> String
@@ -154,7 +155,19 @@
     }
 
     @Test
-    fun allAppListModel_getSummaryWhenDisabled() {
+    fun listModelGetSummary_emptyStorage() {
+        val listModel = AllAppListModel(context) { stateOf("") }
+
+        lateinit var summary: () -> String
+        composeTestRule.setContent {
+            summary = listModel.getSummary(option = 0, record = AppRecordWithSize(app = APP))
+        }
+
+        assertThat(summary()).isEqualTo(context.getPlaceholder())
+    }
+
+    @Test
+    fun listModelGetSummary_disabled() {
         val listModel = AllAppListModel(context) { stateOf(SUMMARY) }
         val disabledApp = ApplicationInfo().apply {
             packageName = PACKAGE_NAME
@@ -172,7 +185,26 @@
     }
 
     @Test
-    fun allAppListModel_getSummaryWhenNotInstalled() {
+    fun listModelGetSummary_emptyStorageAndDisabled() {
+        val listModel = AllAppListModel(context) { stateOf("") }
+        val disabledApp = ApplicationInfo().apply {
+            packageName = PACKAGE_NAME
+            flags = ApplicationInfo.FLAG_INSTALLED
+            enabled = false
+        }
+
+        lateinit var summary: () -> String
+        composeTestRule.setContent {
+            summary =
+                listModel.getSummary(option = 0, record = AppRecordWithSize(app = disabledApp))
+        }
+
+        assertThat(summary())
+            .isEqualTo(context.getString(com.android.settingslib.R.string.disabled))
+    }
+
+    @Test
+    fun listModelGetSummary_notInstalled() {
         val listModel = AllAppListModel(context) { stateOf(SUMMARY) }
         val notInstalledApp = ApplicationInfo().apply {
             packageName = PACKAGE_NAME
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppPermissionPreferenceTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppPermissionPreferenceTest.kt
index 1646851..11d4b9a 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppPermissionPreferenceTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppPermissionPreferenceTest.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2023 The Android Open Source Project
+ * Copyright (C) 2024 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.
@@ -26,35 +26,32 @@
 import androidx.compose.ui.test.onNodeWithText
 import androidx.compose.ui.test.onRoot
 import androidx.compose.ui.test.performClick
-import androidx.lifecycle.MutableLiveData
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.android.settings.R
 import com.android.settingslib.spa.testutils.delay
 import com.android.settingslib.spaprivileged.model.app.userHandle
 import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.flow.flowOf
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.ArgumentCaptor
-import org.mockito.Mockito.any
-import org.mockito.Mockito.doNothing
-import org.mockito.Mockito.eq
-import org.mockito.Mockito.verify
-import org.mockito.Spy
-import org.mockito.junit.MockitoJUnit
-import org.mockito.junit.MockitoRule
+import org.mockito.kotlin.any
+import org.mockito.kotlin.argumentCaptor
+import org.mockito.kotlin.doNothing
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.verify
+import org.mockito.kotlin.whenever
 
 @RunWith(AndroidJUnit4::class)
 class AppPermissionPreferenceTest {
     @get:Rule
     val composeTestRule = createComposeRule()
 
-    @get:Rule
-    val mockito: MockitoRule = MockitoJUnit.rule()
-
-    @Spy
-    private val context: Context = ApplicationProvider.getApplicationContext()
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        doNothing().whenever(mock).startActivityAsUser(any(), any())
+    }
 
     @Test
     fun title_display() {
@@ -66,15 +63,13 @@
 
     @Test
     fun whenClick_startActivity() {
-        doNothing().`when`(context).startActivityAsUser(any(), any())
-
         setContent()
         composeTestRule.onRoot().performClick()
         composeTestRule.delay()
 
-        val intentCaptor = ArgumentCaptor.forClass(Intent::class.java)
-        verify(context).startActivityAsUser(intentCaptor.capture(), eq(APP.userHandle))
-        val intent = intentCaptor.value
+        val intent = argumentCaptor {
+            verify(context).startActivityAsUser(capture(), eq(APP.userHandle))
+        }.firstValue
         assertThat(intent.action).isEqualTo(Intent.ACTION_MANAGE_APP_PERMISSIONS)
         assertThat(intent.getStringExtra(Intent.EXTRA_PACKAGE_NAME)).isEqualTo(PACKAGE_NAME)
         assertThat(intent.getBooleanExtra(EXTRA_HIDE_INFO_BUTTON, false)).isEqualTo(true)
@@ -85,7 +80,7 @@
             CompositionLocalProvider(LocalContext provides context) {
                 AppPermissionPreference(
                     app = APP,
-                    summaryLiveData = MutableLiveData(
+                    summaryFlow = flowOf(
                         AppPermissionSummaryState(summary = SUMMARY, enabled = true)
                     ),
                 )
@@ -103,4 +98,4 @@
             packageName = PACKAGE_NAME
         }
     }
-}
\ No newline at end of file
+}
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppPermissionSummaryTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppPermissionSummaryTest.kt
index c82da1a..0735e3b 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppPermissionSummaryTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppPermissionSummaryTest.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2022 The Android Open Source Project
+ * Copyright (C) 2024 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.
@@ -19,7 +19,6 @@
 import android.content.Context
 import android.content.pm.ApplicationInfo
 import android.content.pm.PackageManager
-import androidx.arch.core.executor.testing.InstantTaskExecutorRule
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession
@@ -27,50 +26,42 @@
 import com.android.settings.testutils.mockAsUser
 import com.android.settingslib.applications.PermissionsSummaryHelper
 import com.android.settingslib.applications.PermissionsSummaryHelper.PermissionsResultCallback
-import com.android.settingslib.spa.testutils.getOrAwaitValue
 import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.flow.first
+import kotlinx.coroutines.runBlocking
 import org.junit.After
 import org.junit.Before
-import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.Mock
-import org.mockito.Mockito.any
-import org.mockito.Mockito.doReturn
-import org.mockito.Mockito.eq
-import org.mockito.Mockito.never
-import org.mockito.Mockito.verify
 import org.mockito.MockitoSession
-import org.mockito.Spy
+import org.mockito.kotlin.any
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.whenever
 import org.mockito.quality.Strictness
-import org.mockito.Mockito.`when` as whenever
 
 @RunWith(AndroidJUnit4::class)
 class AppPermissionSummaryTest {
-    @get:Rule
-    val instantTaskExecutorRule = InstantTaskExecutorRule()
 
     private lateinit var mockSession: MockitoSession
 
-    @Spy
-    private var context: Context = ApplicationProvider.getApplicationContext()
+    private val mockPackageManager = mock<PackageManager>()
 
-    @Mock
-    private lateinit var packageManager: PackageManager
+    private var context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        mock.mockAsUser()
+        on { packageManager } doReturn mockPackageManager
+    }
 
-    private lateinit var summaryLiveData: AppPermissionSummaryLiveData
+    private val summaryRepository = AppPermissionSummaryRepository(context, APP)
 
     @Before
     fun setUp() {
         mockSession = mockitoSession()
-            .initMocks(this)
             .mockStatic(PermissionsSummaryHelper::class.java)
             .strictness(Strictness.LENIENT)
             .startMocking()
-        context.mockAsUser()
-        whenever(context.packageManager).thenReturn(packageManager)
-
-        summaryLiveData = AppPermissionSummaryLiveData(context, APP)
     }
 
     private fun mockGetPermissionSummary(
@@ -95,22 +86,10 @@
     }
 
     @Test
-    fun permissionsChangeListener() {
-        mockGetPermissionSummary()
-
-        summaryLiveData.getOrAwaitValue {
-            verify(packageManager).addOnPermissionsChangeListener(any())
-            verify(packageManager, never()).removeOnPermissionsChangeListener(any())
-        }
-
-        verify(packageManager).removeOnPermissionsChangeListener(any())
-    }
-
-    @Test
-    fun summary_noPermissionsRequested() {
+    fun summary_noPermissionsRequested() = runBlocking {
         mockGetPermissionSummary(requestedPermissionCount = 0)
 
-        val (summary, enabled) = summaryLiveData.getOrAwaitValue()!!
+        val (summary, enabled) = summaryRepository.flow.first()
 
         assertThat(summary).isEqualTo(
             context.getString(R.string.runtime_permissions_summary_no_permissions_requested)
@@ -119,10 +98,10 @@
     }
 
     @Test
-    fun summary_noPermissionsGranted() {
+    fun summary_noPermissionsGranted() = runBlocking {
         mockGetPermissionSummary(requestedPermissionCount = 1, grantedGroupLabels = emptyList())
 
-        val (summary, enabled) = summaryLiveData.getOrAwaitValue()!!
+        val (summary, enabled) = summaryRepository.flow.first()
 
         assertThat(summary).isEqualTo(
             context.getString(R.string.runtime_permissions_summary_no_permissions_granted)
@@ -131,34 +110,34 @@
     }
 
     @Test
-    fun onPermissionSummaryResult_hasRuntimePermission_shouldSetPermissionAsSummary() {
+    fun summary_hasRuntimePermission_usePermissionAsSummary() = runBlocking {
         mockGetPermissionSummary(
             requestedPermissionCount = 1,
             grantedGroupLabels = listOf(PERMISSION),
         )
 
-        val (summary, enabled) = summaryLiveData.getOrAwaitValue()!!
+        val (summary, enabled) = summaryRepository.flow.first()
 
         assertThat(summary).isEqualTo(PERMISSION)
         assertThat(enabled).isTrue()
     }
 
     @Test
-    fun onPermissionSummaryResult_hasAdditionalPermission_shouldSetAdditionalSummary() {
+    fun summary_hasAdditionalPermission_containsAdditionalSummary() = runBlocking {
         mockGetPermissionSummary(
             requestedPermissionCount = 5,
             additionalGrantedPermissionCount = 2,
             grantedGroupLabels = listOf(PERMISSION),
         )
 
-        val (summary, enabled) = summaryLiveData.getOrAwaitValue()!!
+        val (summary, enabled) = summaryRepository.flow.first()
 
         assertThat(summary).isEqualTo("Storage and 2 additional permissions")
         assertThat(enabled).isTrue()
     }
 
     private companion object {
-        const val PACKAGE_NAME = "packageName"
+        const val PACKAGE_NAME = "package.name"
         const val PERMISSION = "Storage"
         val APP = ApplicationInfo().apply {
             packageName = PACKAGE_NAME
diff --git a/tests/spa_unit/src/com/android/settings/testutils/ContextTestUtil.kt b/tests/spa_unit/src/com/android/settings/testutils/ContextTestUtil.kt
index 43b7a20..a2b479c 100644
--- a/tests/spa_unit/src/com/android/settings/testutils/ContextTestUtil.kt
+++ b/tests/spa_unit/src/com/android/settings/testutils/ContextTestUtil.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2022 The Android Open Source Project
+ * Copyright (C) 2024 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.
@@ -17,10 +17,11 @@
 package com.android.settings.testutils
 
 import android.content.Context
-import org.mockito.Mockito.any
-import org.mockito.Mockito.doReturn
-import org.mockito.Mockito.eq
+import org.mockito.kotlin.any
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.whenever
 
 fun Context.mockAsUser() {
-    doReturn(this).`when`(this).createContextAsUser(any(), eq(0))
+    doReturn(this).whenever(this).createContextAsUser(any(), eq(0))
 }