diff --git a/res/layout/edit_user_info_dialog_content.xml b/res/layout/edit_user_info_dialog_content.xml
index 895cef6..2bd464b 100644
--- a/res/layout/edit_user_info_dialog_content.xml
+++ b/res/layout/edit_user_info_dialog_content.xml
@@ -25,7 +25,6 @@
         android:layout_width="56dip"
         android:layout_height="56dip"
         android:layout_gravity="bottom"
-        android:layout_marginEnd="6dp"
         android:contentDescription="@string/user_image_photo_selector"
         android:background="@*android:drawable/spinner_background_holo_dark"
         android:scaleType="fitCenter"/>
diff --git a/res/layout/nfc_payment_how_it_works.xml b/res/layout/nfc_payment_how_it_works.xml
index 87a0095..230a28b 100644
--- a/res/layout/nfc_payment_how_it_works.xml
+++ b/res/layout/nfc_payment_how_it_works.xml
@@ -69,10 +69,10 @@
           <Button
               android:id="@+id/nfc_how_it_works_button"
               android:background="?android:attr/selectableItemBackground"
-              android:layout_alignParentRight="true"
+              android:layout_alignParentEnd="true"
               android:layout_width="wrap_content"
               android:layout_height="48dp"
-              android:layout_marginRight="20dp"
+              android:layout_marginEnd="20dp"
               android:text="@string/nfc_how_it_works_got_it"
               android:textSize="14sp"
               android:textColor="#263238"
diff --git a/res/layout/notification_sbn_log_row.xml b/res/layout/notification_sbn_log_row.xml
index 7a3e6d7..6156d26 100644
--- a/res/layout/notification_sbn_log_row.xml
+++ b/res/layout/notification_sbn_log_row.xml
@@ -32,7 +32,8 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:minHeight="@*android:dimen/status_bar_icon_size"
-            android:paddingBottom="6dp">
+            android:gravity="center_vertical"
+            android:layout_marginBottom="6dp">
 
             <ImageView
                 android:id="@+id/icon"
@@ -62,11 +63,10 @@
 
             <ImageView
                 android:id="@+id/alerted_icon"
-                android:layout_width="@*android:dimen/status_bar_icon_size"
-                android:layout_height="@*android:dimen/status_bar_icon_size"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
                 android:layout_centerVertical="true"
                 android:layout_marginStart="6dp"
-                android:paddingTop="1dp"
                 android:scaleType="fitCenter"
                 android:visibility="gone"
                 android:tint="?android:attr/textColorSecondary"
@@ -75,11 +75,9 @@
 
             <ImageView
                 android:id="@+id/profile_badge"
-                android:layout_width="@*android:dimen/status_bar_icon_size"
-                android:layout_height="@*android:dimen/status_bar_icon_size"
-                android:layout_centerVertical="true"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
                 android:layout_marginEnd="6dp"
-                android:paddingTop="1dp"
                 android:scaleType="fitCenter"
                 android:contentDescription="@*android:string/notification_work_profile_content_description"
                 android:layout_toStartOf="@id/timestamp"
@@ -89,11 +87,7 @@
                 android:id="@+id/timestamp"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:minHeight="@*android:dimen/status_bar_icon_size"
-                android:layout_alignBottom="@android:id/widget_frame"
                 android:layout_alignParentEnd="true"
-                android:layout_alignTop="@android:id/widget_frame"
-                android:layout_centerVertical="true"
                 android:ellipsize="end"
                 android:singleLine="true"
                 android:textAppearance="@style/TextAppearance.NotificationHistory.AppName"
diff --git a/res/layout/user_info_header.xml b/res/layout/user_info_header.xml
deleted file mode 100644
index bfdf3fc..0000000
--- a/res/layout/user_info_header.xml
+++ /dev/null
@@ -1,129 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:minHeight="?android:attr/listPreferredItemHeight"
-    android:gravity="center_vertical"
-    android:orientation="vertical"
-    android:focusable="true"
-    android:clickable="true" >
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_weight="1"
-        android:id="@+id/app_restrictions_pref"
-        android:gravity="center_vertical"
-        android:paddingStart="?android:attr/listPreferredItemPaddingStart"
-        android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
-        android:background="?android:attr/selectableItemBackground" >
-        <LinearLayout
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:gravity="center"
-            android:minWidth="@*android:dimen/preference_icon_minWidth"
-            android:orientation="horizontal">
-            <ImageView
-                android:id="@android:id/icon"
-                android:layout_width="48dp"
-                android:layout_height="48dp"
-                android:layout_gravity="center"
-                android:minWidth="48dp"
-                android:scaleType="centerInside"
-                android:layout_marginEnd="@*android:dimen/preference_item_padding_inner"/>
-        </LinearLayout>
-        <RelativeLayout
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginEnd="6dip"
-            android:layout_marginTop="6dip"
-            android:layout_marginBottom="6dip"
-            android:layout_weight="1">
-            <TextView
-                android:id="@android:id/title"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:singleLine="true"
-                tools:text="Richard"
-                android:textAppearance="?android:attr/textAppearanceMedium"
-                android:ellipsize="marquee"
-                android:fadingEdge="horizontal"/>
-            <TextView
-                android:id="@android:id/summary"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_below="@android:id/title"
-                android:layout_alignStart="@android:id/title"
-                android:paddingBottom="3dip"
-                android:textAppearance="?android:attr/textAppearanceSmall"
-                android:textSize="13sp"
-                android:textColor="?android:attr/textColorSecondary"
-                android:focusable="false"
-                android:text="@string/user_summary_restricted_profile"
-                android:maxLines="4" />
-        </RelativeLayout>
-        <ImageView
-                android:id="@+id/delete"
-                android:layout_width="wrap_content"
-                android:layout_height="fill_parent"
-                android:paddingStart="16dip"
-                android:paddingEnd="16dip"
-                android:src="@drawable/ic_delete"
-                android:contentDescription="@string/user_delete_user_description"
-                android:layout_gravity="center"
-                android:background="?android:attr/selectableItemBackground" />
-    </LinearLayout>
-
-    <LinearLayout
-        android:id="@+id/switch_pref"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:gravity="center_vertical"
-        android:visibility="gone"
-        tools:visibility="visible"
-        android:paddingStart="?android:attr/listPreferredItemPaddingStart"
-        android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
-        android:background="?android:attr/selectableItemBackground" >
-
-        <ImageView
-            android:id="@+id/switchIcon"
-            android:layout_width="48dp"
-            android:layout_height="48dp"
-            android:layout_gravity="center"
-            android:src="@drawable/ic_swap"
-            android:minWidth="48dp"
-            android:scaleType="centerInside"
-            android:layout_marginEnd="@*android:dimen/preference_item_padding_inner"/>
-
-        <TextView
-            android:id="@+id/switchTitle"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:singleLine="true"
-            tools:text="Switch to Richard"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:ellipsize="marquee"
-            android:fadingEdge="horizontal"/>
-
-    </LinearLayout>
-
-    <View android:layout_width="match_parent"
-          android:layout_height="2dp"
-          android:background="@color/divider_color" />
-</LinearLayout>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 7953096..9e275c2 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Niks kan borrels word nie"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Gesprekke"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Alle gesprekke kan borrels word, behalwe"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Swiephandelinge"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Swiep regs om toe te maak, links om kieslys te wys"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Swiep links om toe te maak, regs om kieslys te wys"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> kan onderbreek</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"Nog <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Programuitsonderings"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Alle kennisgewings"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Sommige kennisgewings"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Kennisgewings wat kan onderbreek"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> programme het volle toegang tot jou toestel</item>
       <item quantity="one">1 program het volle toegang tot jou toestel</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Bestuur <xliff:g id="APP_NAME">%1$s</xliff:g>-kennisgewings"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Geen voorgestelde program nie"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> kennisgewingkanale.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> kennisgewingkanaal.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> kennisgewingkanale. Tik om almal te bestuur."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Jy het hierdie program onlangs geïnstalleer."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Wissel uitvoer"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Speel tans op <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (ontkoppel)"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index dd6bf39..684658d 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"ምንም አረፋ ሊሆን አይችልም"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"ውይይቶች"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"ከሚከተሉት በስተቀር ሁሉም ውይይቶች አረፋ መሆን ይችላሉ"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"የማንሸራተት እርምጃዎች"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"ለማሰናበት ወደ ቀኝ ያንሸራትቱ፣ ምናሌን ለማሳየት ወደ ግራ ያንሸራትቱ"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"ለማሰናበት ወደ ግራ ይጥረጉ፣ ምናሌን ለማሳየት ወደ ቀኝ ያንሸራትቱ"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="other"><xliff:g id="APP_NAMES">%s</xliff:g> ማቋረጥ ይችላሉ</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> ተጨማሪ"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"የመተግበሪያ ልዩ ሁኔታዎች"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"ሁሉም ማሳወቂያዎች"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"አንዳንድ ማሳወቂያዎች"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"ማሳወቂያዎች ማቋረጥ ይችላሉ"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="one"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> አገልግሎቶች ወደ የእርስዎ መሣሪያ ሙሉ መዳረሻ ይኖራቸዋል</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> አገልግሎቶች ወደ የእርስዎ መሣሪያ ሙሉ መዳረሻ ይኖራቸዋል</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"የ<xliff:g id="APP_NAME">%1$s</xliff:g> ማሳወቂያዎችን ያቀናብሩ"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"ምንም በአስተያየት የተጠቆመ መተግበሪያ የለም"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one">የ<xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> ማሳወቂያ ሰርጦች።</item>
-      <item quantity="other">የ<xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> ማሳወቂያ ሰርጦች።</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"የ<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ማሳወቂያ ሰርጦች። ሁሉንም ለማቀናበር መታ ያድርጉ።"</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"እርስዎ በቅርቡ ይህን መተግበሪያ ጭነዋል።"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"ውጽዓትን ቀይር"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"በአሁኑ ጊዜ በ<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ላይ በመጫወት ያለ"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (ግንኙነት ተቋርጧል)"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index c5de7c9..b60d43c 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -3667,6 +3667,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"عدم السماح بأي فقاعات"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"محادثات"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"يمكن إظهار فقاعات المحادثات لكل المحادثات إلا"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"إجراءات التمرير السريع"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"التمرير سريعًا باتجاه اليسار للتجاهل، وباتجاه اليمين لعرض القائمة"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"التمرير سريعًا باتجاه اليمين للتجاهل، وباتجاه اليسار لعرض القائمة"</string>
@@ -4037,7 +4041,8 @@
       <item quantity="one">السماح لتطبيق <xliff:g id="APP_NAME_0">%s</xliff:g> بمقاطعة عمل الميزة</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> تطبيق آخر"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"التطبيقات المُستثناة"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"جميع الإشعارات"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"بعض الإشعارات"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"الإشعارات التي يمكنها مقاطعة عمل الميزة"</string>
@@ -5210,18 +5215,6 @@
       <item quantity="other">يحظى <xliff:g id="SERVICE_COUNT">%1$d</xliff:g> تطبيق بوصول كامل إلى جهازك.</item>
       <item quantity="one">يحظى تطبيق واحد بوصول كامل إلى جهازك.</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"إدارة إشعارات <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"لا يوجد اقتراح بأيّ جهاز."</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="zero"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> قناة للإشعارات.</item>
-      <item quantity="two">قناتان (<xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g>) للإشعارات.</item>
-      <item quantity="few"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> قنوات للإشعارات.</item>
-      <item quantity="many"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> قناة للإشعارات.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> قناة للإشعارات.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> قناة للإشعارات.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> قناة للإشعارات. انقُر لإدارتها."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"لقد ثبّت هذا التطبيق مؤخرًا."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"تبديل جهاز إخراج الصوت"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"يتمّ تشعيل الوسائط الآن على <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (غير متّصل)"</string>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index b63da3b..45ba461 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"একো বস্তু বাবল হ\'ব নোৱাৰে"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"বাৰ্তালাপ"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"ইয়াৰ বাহিৰে সকলো বাৰ্তালাপ বাবল হ’ব পাৰে"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"ছোৱাইপ কাৰ্য"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"অগ্ৰাহ্য কৰিবলৈ সোঁফালে ছোৱাইপ কৰক, মেনু দেখুৱাবলৈ বাওঁঁফালে ছোৱাইপ কৰক"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"অগ্ৰাহ্য কৰিবলৈ বাওঁফালে ছোৱাইপ কৰক, মেনু দেখুৱাবলৈ সোঁফালে ছোৱাইপ কৰক"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="other"><xliff:g id="APP_NAMES">%s</xliff:g>এ ব্যাঘাত জন্মাব পাৰে</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> টা অধিক"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"ব্যতিক্ৰম যোগ কৰক"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"সকলো জাননী"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"কিছুমান জাননী"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"ব্যাঘাত জন্মাব পৰা জাননীসমূহ"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="one"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g>টা এপে আপোনাৰ ডিভাইচটো সম্পূৰ্ণভাৱে এক্সেছ কৰিব পাৰে</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g>টা এপে আপোনাৰ ডিভাইচটো সম্পূৰ্ণভাৱে এক্সেছ কৰিব পাৰে</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"<xliff:g id="APP_NAME">%1$s</xliff:g>ৰ জাননী পৰিচালনা কৰক"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"চুপাৰিছ কৰা কোনো এপ্লিকেশ্বন নাই"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g>টা জাননী চ্চেনেল।</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g>টা জাননী চ্চেনেল।</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>টা জাননী চ্চেনেল। সকলো পৰিচালনা কৰিবলৈ টিপক।"</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"আপুনি শেহতীয়াকৈ এই এপ্‌টো ইনষ্টল কৰিছে।"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"আউটপুট সলনি কৰক"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"বৰ্তমান <xliff:g id="DEVICE_NAME">%1$s</xliff:g>ত প্লে’ হৈ আছে"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (সংযোগ বিচ্ছিন্ন হ\'ল)"</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index fc6cbe6..79e717e 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Heç birində qabarcıq göstərilmir"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Söhbətlər"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Bundan başqa bütün söhbətlərə yumrucuq əlavə edilə bilər"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Sürüşdürmə əməliyyatları"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Kənarlaşdırmaq üçün sağa, menyunu göstərmək üçün sola sürüşdürün"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Kənarlaşdırmaq üçün sola, menyunu göstərmək üçün sağa sürüşdürün"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> bölə bilər</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"daha <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Tətbiq istisnaları"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Bütün bildirişlər"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Bəzi bildirişlər"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Bölə bilən bildirişlər"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> xidmətin cihaza tam girişi var</item>
       <item quantity="one">1 tətbiqin cihaza tam girişi var</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"<xliff:g id="APP_NAME">%1$s</xliff:g> bildirişlərini idarə edin"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Təklif edilən tətbiq yoxdur"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> bildiriş kanalı.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> bildiriş kanalı.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> bildiriş kanalı. Hamısını idarə etmək üçün klikləyin."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Bu tətbiqi son vaxtlarda quraşdırmısıız."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Çıxış açarı"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Hazırda <xliff:g id="DEVICE_NAME">%1$s</xliff:g> cihazında oxudulur"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (bağlantı kəsilib)"</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 4df54cf..0f94b67 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -3529,6 +3529,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Ništa ne može da se prikazuje u oblačićima"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Konverzacije"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Sve konverzacije podržavaju oblačiće osim"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Radnje prevlačenja"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Prevucite udesno da biste odbacili, ulevo da bi se prikazao meni"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Prevucite ulevo da biste odbacili, udesno da bi se prikazao meni"</string>
@@ -3863,7 +3867,8 @@
       <item quantity="other"><xliff:g id="APP_NAMES">%s</xliff:g> mogu da prekinu</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"Još <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Izuzeci za aplikacije"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Sva obaveštenja"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Neka obaveštenja"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Obaveštenja koja mogu da prekidaju"</string>
@@ -4940,15 +4945,6 @@
       <item quantity="few"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> aplikacije imaju potpun pristup uređaju</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> aplikacija ima potpun pristup uređaju</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Upravljajte obaveštenjima aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Nema predložene aplikacije"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> kanal za obaveštenja.</item>
-      <item quantity="few"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> kanala za obaveštenja.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> kanala za obaveštenja.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> kanal za obaveštenja. Dodirnite da biste upravljali svim."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Nedavno ste instalirali ovu aplikaciju."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Promenite izlaz"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Trenutno se pušta na uređaju <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (veza je prekinuta)"</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index b1ff2f3..81e48d5 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -3575,6 +3575,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Не паказваць усплывальныя апавяшчэнні"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Размовы"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Для гэтых размоў не будуць паказвацца ўсплывальныя апавяшчэнні"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Дзеянні пры правядзенні пальцам"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Правядзіце пальцам управа, каб закрыць, улева – каб паказаць меню"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Правядзіце пальцам улева, каб закрыць, управа – каб паказаць меню"</string>
@@ -3921,7 +3925,8 @@
       <item quantity="other">Гэты рэжым не распаўсюджваецца на праграмы \"<xliff:g id="APP_NAMES">%s</xliff:g>\"</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"і яшчэ <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Выключэнні з правілаў для праграм"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Усе апавяшчэнні"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Некаторыя апавяшчэнні"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Апавяшчэнні, на якія рэжым \"Не турбаваць\" не распаўсюджваецца"</string>
@@ -5030,16 +5035,6 @@
       <item quantity="many"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> праграм маюць поўны доступ да даных вашай прылады</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> праграмы маюць поўны доступ да даных вашай прылады</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Кіраванне апавяшчэннямі праграмы \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Няма прапанаваных праграм"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> канал апавяшчэння.</item>
-      <item quantity="few"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> каналы апавяшчэння.</item>
-      <item quantity="many"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> каналаў апавяшчэння.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> канала апавяшчэння.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"Каналаў апавяшчэння: <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Каб кіраваць усімі, націсніце тут."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Вы нядаўна ўсталявалі гэту праграму."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Пераключыць вывад"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Зараз прайграецца на прыладзе <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (адключана)"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index afe590b..34c5fbf 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Нищо не може да се показва като балонче"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Разговори"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Всички разговори мога да се показват като балончета освен"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Действия при прекарване на пръст"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Прекарайте пръст надясно, за да отхвърлите, и наляво за показване на менюто"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Прекарайте пръст наляво, за да отхвърлите, и надясно за показване на менюто"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> може да прекъсва</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"още <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Изключения за приложения"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Всички известия"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Някои известия"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Известия, които могат да прекъсват режима"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> приложения имат пълен достъп до устройството ви</item>
       <item quantity="one">1 приложение има пълен достъп до устройството ви</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Управление на известията от <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Няма предложено приложение"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> канала за известия.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> канал за известия.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> канала за известия. Докоснете, за да управлявате всички."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Наскоро инсталирахте това приложение."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Превключване на изхода"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Понастоящем се възпроизвежда на <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (връзката е прекратена)"</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 0900eed..d58f31f 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"কিছুই বাবল হিসেবে দেখবেন না"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"কথোপকথন"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"এটি ছাড়া সবকটি কথোপকথন \'বাবল\' ফিচার ব্যবহার করতে পারবে"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"সোয়াইপ অ্যাকশন"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"খারিজ করতে ডান দিকে সোয়াইপ করুন, মেনু দেখতে বাঁ দিকে সোয়াইপ করুন"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"খারিজ করার জন্য বাঁ দিকে সোয়াইপ করুন, মেনু দেখতে ডান দিকে সোয়াইপ করুন"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="other"><xliff:g id="APP_NAMES">%s</xliff:g> বাধা দিতে পারবে</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"আরও <xliff:g id="NUMBER">%d</xliff:g>টি"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"অ্যাপ এক্সেপশন"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"সমস্ত বিজ্ঞপ্তি"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"কিছু বিজ্ঞপ্তি"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"যে বিজ্ঞপ্তিগুলি \'বিরক্ত করবে না\' মোড এড়িয়ে নিজের কাজ করতে পারে"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="one"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g>টি অ্যাপ আপনার ডিভাইস সম্পূর্ণ অ্যাক্সেস করতে পারে</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g>টি অ্যাপ আপনার ডিভাইস সম্পূর্ণ অ্যাক্সেস করতে পারে</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"<xliff:g id="APP_NAME">%1$s</xliff:g> অ্যাপের বিজ্ঞপ্তি ম্যানেজ করুন"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"কোনও সাজেস্ট করা অ্যাপ্লিকেশন নেই"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g>টি বিজ্ঞপ্তির চ্যানেল।</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g>টি বিজ্ঞপ্তির চ্যানেল।</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>টি বিজ্ঞপ্তির চ্যানেল। সবগুলি ম্যানেজ করতে ট্যাপ করুন।"</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"এই অ্যাপ আপনি সম্প্রতি ইনস্টল করেছেন।"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"আউটপুট পরিবর্তন করুন"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>-এ চালানো হচ্ছে"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (কানেকশন নেই)"</string>
diff --git a/res/values-bs/arrays.xml b/res/values-bs/arrays.xml
index d64627c..154723b 100644
--- a/res/values-bs/arrays.xml
+++ b/res/values-bs/arrays.xml
@@ -233,7 +233,7 @@
     <item msgid="50701215019227883">"vibracija"</item>
     <item msgid="2690144000353492014">"čitaj kontakte"</item>
     <item msgid="3858029424955955625">"prromijeni kontakte"</item>
-    <item msgid="3439658954936709507">"čitaj zapisnik poziva"</item>
+    <item msgid="3439658954936709507">"čitanje zapisnika poziva"</item>
     <item msgid="1908944516631132130">"promijeni zapisnik poziva"</item>
     <item msgid="9066115715905100138">"čitaj kalendar"</item>
     <item msgid="1664720478157892566">"promijeni kalendar"</item>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 7fa930e..e873e9f 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -3529,6 +3529,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Ništa se ne može prikazivati u oblačićima"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Razgovori"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Svi razgovori se mogu pojaviti u oblačiću izuzev"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Radnje prevlačenja"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Prevucite udesno za odbacivanje, ulijevo za prikaz menija"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Prevucite ulijevo za odbacivanje, udesno za prikaz menija"</string>
@@ -3863,7 +3867,8 @@
       <item quantity="other">Aplikacije <xliff:g id="APP_NAMES">%s</xliff:g> mogu prekinuti</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"još <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Izuzeci za aplikacije"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Sva obavještenja"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Neka obavještenja"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Obavještenja koja vas mogu prekinuti"</string>
@@ -4940,15 +4945,6 @@
       <item quantity="few"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> aplikacije imaju potpuni pristup vašem uređaju</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> aplikacija ima potpuni pristup vašem uređaju</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Upravljajte obavještenjima aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Nema predloženih aplikacija"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> kanal za obavještenja</item>
-      <item quantity="few"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> kanala za obavještenja</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> kanala za obavještenja</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"Broj kanala obavještenja: <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Dodirnite da upravljate svim."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Nedavno ste instalirali ovu aplikaciju."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Prebacite izlaz"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Trenutno se reproducira na uređaju <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (veza je prekinuta)"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 222c498..12de1ea 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"No es pot mostrar cap bombolla"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Converses"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Totes les converses poden mostrar-se en forma de bombolles excepte"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Accions en lliscar"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Llisca cap a la dreta per ignorar o cap a l\'esquerra per mostrar el menú"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Llisca cap a l\'esquerra per ignorar o cap a la dreta per mostrar el menú"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> pot interrompre</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> més"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Excepcions d\'aplicacions"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Totes les notificacions"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Algunes notificacions"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Notificacions que et poden interrompre"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> aplicacions tenen accés complet al dispositiu</item>
       <item quantity="one">1 aplicació té accés complet al dispositiu</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Gestiona les notificacions de l\'aplicació <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"No hi ha aplicacions suggerides"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> canals de notificacions.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> canal de notificacions.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canals de notificacions. Toca per gestionar-los tots."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Has instal·lat aquesta aplicació recentment."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Canvia la sortida"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"S\'està reproduint al dispositiu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (desconnectat)"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 9c4f9e9..6f6e22d 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -3575,6 +3575,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Nic se nemůže zobrazovat v bublinách"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Konverzace"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"V bublinách se mohou zobrazovat všechny konverzace kromě"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Akce po přejetí prstem"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Přejetím vpravo zavřete, přejetím vlevo zobrazíte nabídku"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Přejetím vlevo zavřete, přejetím vpravo zobrazíte nabídku"</string>
@@ -3921,7 +3925,8 @@
       <item quantity="one">Vyrušovat může aplikace <xliff:g id="APP_NAME_0">%s</xliff:g></item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"ještě <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Výjimky pro aplikace"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Všechna oznámení"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Některá oznámení"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Oznámení, která smí vyrušovat"</string>
@@ -5030,16 +5035,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> aplikací má plný přístup k vašemu zařízení</item>
       <item quantity="one">1 aplikace má plný přístup k vašemu zařízení</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Spravovat oznámení aplikace <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Není navrhována žádná aplikace"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="few"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> kanály oznámení.</item>
-      <item quantity="many"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> kanálu oznámení.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> kanálů oznámení.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> kanál oznámení.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"Kanály oznámení: <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Klepnutím můžete spravovat všechny."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Tuto aplikaci jste nedávno nainstalovali."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Přepnout výstup"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Právě se přehrává na zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (odpojeno)"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 5524f47..589e177 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Intet kan vises i bobler"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Samtaler"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Alle samtaler kan vises i bobler undtagen"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Strygehandlinger"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Stryg til højre for at afvise og til venstre for at se menuen"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Stryg til venstre for at afvise og til højre for at se menuen"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="other"><xliff:g id="APP_NAMES">%s</xliff:g> kan afbryde</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> til"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Appundtagelser"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Alle notifikationer"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Nogle notifikationer"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Notifikationer, der kan afbryde"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="one"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> app har fuld adgang til din enhed</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> apps har fuld adgang til din enhed</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Administrer notifikationer fra <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Der er ingen foreslået app"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> notifikationskanal.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> notifikationskanaler.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> notifikationskanaler. Tryk for at administrere alle."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Du har installeret denne app for nylig."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Skift udgang"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Afspilles i øjeblikket på <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (ingen forbindelse)"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index b48eb35..76914d8 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -3484,6 +3484,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Unterhaltungen können nicht als Bubble angezeigt werden"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Unterhaltungen"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Alle Unterhaltungen können als Bubble erscheinen, außer"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Aktionen beim Wischen"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Nach rechts: schließen, nach links: Menü anzeigen"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Nach links: schließen, nach rechts: Menü anzeigen"</string>
@@ -3806,7 +3810,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> kann ihn unterbrechen</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> weitere"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"App-Ausnahmen"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Alle Benachrichtigungen"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Einige Benachrichtigungen"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Benachrichtigungen, die unterbrechen dürfen"</string>
@@ -4851,14 +4856,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> Apps haben uneingeschränkten Zugriff auf dein Gerät</item>
       <item quantity="one">1 App hat uneingeschränkten Zugriff auf dein Gerät</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Benachrichtigungen von <xliff:g id="APP_NAME">%1$s</xliff:g> verwalten"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Keine App-Vorschläge"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> Benachrichtigungskanäle.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> Benachrichtigungskanal.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> Benachrichtigungskanäle. Tippen, um alle zu verwalten."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Du hast diese App kürzlich installiert."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Ausgabe wechseln"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Die Wiedergabe läuft derzeit auf <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (nicht verbunden)"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index c8148eb..279c86b 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Καμία συνομιλία δεν έχει δυνατότητα προβολής σε φούσκα."</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Συζητήσεις"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Όλες οι συζητήσεις μπορούν να προσθέτουν συννεφάκια εκτός από"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Ενέργειες ολίσθησης"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Σύρετε προς τα δεξιά για παράβλεψη, προς τα αριστ. για μενού"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Σύρετε προς τα αριστ. για παράβλεψη, προς τα δεξιά για μενού"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> εφαρμογή μπορεί να διακόπτει.</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> ακόμη"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Εξαιρέσεις εφαρμογών"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Όλες οι ειδοποιήσεις"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Ορισμένες ειδοποιήσεις"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Ειδοποιήσεις που μπορούν να διακόπτουν"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> εφαρμογές έχουν πλήρη πρόσβαση στη συσκευή σας</item>
       <item quantity="one">1 εφαρμογή έχει πλήρη πρόσβαση στη συσκευή σας</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Διαχείριση ειδοποιήσεων <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Δεν υπάρχει προτεινόμενη εφαρμογή"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> κανάλια ειδοποιήσεων.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> κανάλι ειδοποιήσεων.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> κανάλια ειδοποιήσεων. Πατήστε για να τα διαχειριστείτε όλα."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Εγκαταστήσατε πρόσφατα αυτήν την εφαρμογή."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Εναλλαγή εξόδου"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Παίζει τώρα στη συσκευή <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (αποσυνδέθηκε)"</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index b1e5699..314c9e4 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Nothing can bubble"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Conversations"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"All conversations can bubble except"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Swipe actions"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Swipe right to dismiss, left to show menu"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Swipe left to dismiss, right to show menu"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> can interrupt</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> more"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"App exceptions"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"All notifications"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Some notifications"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Notifications that can interrupt"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> apps have full access to your device</item>
       <item quantity="one">1 app has full access to your device</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Manage <xliff:g id="APP_NAME">%1$s</xliff:g> notifications"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"No suggested application"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> notification channels.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> notification channel.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> notification channels. Tap to manage all."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"You recently installed this app."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Switch output"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Currently playing on <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (disconnected)"</string>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 82703fa..51a5194 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Nothing can bubble"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Conversations"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"All conversations can bubble except"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Swipe actions"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Swipe right to dismiss, left to show menu"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Swipe left to dismiss, right to show menu"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> can interrupt</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> more"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"App exceptions"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"All notifications"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Some notifications"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Notifications that can interrupt"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> apps have full access to your device</item>
       <item quantity="one">1 app has full access to your device</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Manage <xliff:g id="APP_NAME">%1$s</xliff:g> notifications"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"No suggested application"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> notification channels.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> notification channel.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> notification channels. Tap to manage all."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"You recently installed this app."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Switch output"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Currently playing on <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (disconnected)"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index b1e5699..314c9e4 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Nothing can bubble"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Conversations"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"All conversations can bubble except"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Swipe actions"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Swipe right to dismiss, left to show menu"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Swipe left to dismiss, right to show menu"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> can interrupt</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> more"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"App exceptions"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"All notifications"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Some notifications"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Notifications that can interrupt"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> apps have full access to your device</item>
       <item quantity="one">1 app has full access to your device</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Manage <xliff:g id="APP_NAME">%1$s</xliff:g> notifications"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"No suggested application"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> notification channels.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> notification channel.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> notification channels. Tap to manage all."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"You recently installed this app."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Switch output"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Currently playing on <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (disconnected)"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index c62dbd1..c70a29d 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Nothing can bubble"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Conversations"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"All conversations can bubble except"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Swipe actions"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Swipe right to dismiss, left to show menu"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Swipe left to dismiss, right to show menu"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> can interrupt</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> more"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"App exceptions"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"All notifications"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Some notifications"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Notifications that can interrupt"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> apps have full access to your device</item>
       <item quantity="one">1 app has full access to your device</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Manage <xliff:g id="APP_NAME">%1$s</xliff:g> notifications"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"No suggested application"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> notification channels.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> notification channel.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> notification channels. Tap to manage all."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"You recently installed this app."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Switch output"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Currently playing on <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (disconnected)"</string>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 82eadf65..a49cb43 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‏‏‏‎‎‏‏‎‎‎‎‎‏‏‏‏‏‏‎‎‎‏‏‎‎‏‎‎‏‏‎‎‎‎‎‎‎‎‎‎‏‎‎Nothing can bubble‎‏‎‎‏‎"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‎‎‏‏‏‏‎‏‎‏‎‏‏‎‏‎‏‏‏‏‏‏‎‎‎‏‏‎‎‎‏‏‏‏‎‏‎‎‎‏‎‏‏‎‏‏‏‏‎‎‏‎‎‏‏‎‏‎Conversations‎‏‎‎‏‎"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‎‏‎‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‏‏‏‎‎‏‏‎‏‏‎‏‎‎‏‏‎‏‏‏‏‎‎‏‏‏‏‎‏‏‏‎‎‏‎All conversations can bubble except‎‏‎‎‏‎"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‎‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‏‎‏‎Swipe actions‎‏‎‎‏‎"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‎‏‎‏‎‏‏‏‎‏‏‏‎‎‎‎‏‏‏‎‎‎‏‎‎‎‏‎‎‎‏‎‏‏‎‎‎‏‎‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎Swipe right to dismiss, left to show menu‎‏‎‎‏‎"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‏‏‎‏‏‎‎‎‏‏‏‎‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‎‎‏‏‏‏‏‎‎‎‏‏‏‎‎‏‏‎‎‏‏‎‏‎‏‏‏‎‎‎‎Swipe left to dismiss, right to show menu‎‏‎‎‏‎"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‏‎‎‎‎‎‏‎‎‏‏‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‎‎‎‎‎‏‏‏‏‎‎‎‎‏‎‎‏‏‎<xliff:g id="APP_NAME_0">%s</xliff:g>‎‏‎‎‏‏‏‎ can interrupt‎‏‎‎‏‎</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‏‏‏‏‎‎‏‎‎‎‏‏‎‏‎‏‎‎‏‏‎‏‎‏‏‏‎‎‏‏‏‎‏‏‎‏‎‎‎‏‎‏‎‎‎‏‎‎‏‏‏‏‏‏‎‏‎‎‏‎‎‏‏‎<xliff:g id="NUMBER">%d</xliff:g>‎‏‎‎‏‏‏‎ more‎‏‎‎‏‎"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‎‏‏‏‏‎‏‏‏‏‏‎‎‎‏‏‏‎‏‏‎‏‎‏‎‏‏‏‎‏‎‎‎‏‏‏‎‎‏‏‎‏‏‎‏‎‎‎‎‏‏‎‏‎‎‏‎App exceptions‎‏‎‎‏‎"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‏‎‎‎‎‏‎‏‏‏‎‏‏‎‏‏‏‎‏‎‎‏‎‏‏‏‏‎‏‎‏‎‏‏‎‏‏‎‏‎‎‎‎‏‏‏‎‏‎‏‏‏‎‎‎All notifications‎‏‎‎‏‎"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‎‎‎‎‎‏‎‎‏‏‎‏‎‏‏‏‎‏‎‎‎‏‏‎‎‎‎‏‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‎‎‏‏‏‏‏‎‏‎‏‎Some notifications‎‏‎‎‏‎"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‏‏‎‏‎‏‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‏‏‎‎‏‎‎‎‎‎‎‎‏‎‎‎‎‏‏‏‎‏‎‎‎‏‏‎‏‏‎‏‎Notifications that can interrupt‎‏‎‎‏‎"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‎‎‏‎‏‎‎‎‎‏‎‏‏‏‏‎‎‎‏‎‏‏‏‏‎‏‎‏‏‎‎‎‏‎‎‎‏‎‏‏‎‏‏‏‎‏‎‎‏‎‎‏‏‎<xliff:g id="SERVICE_COUNT">%1$d</xliff:g>‎‏‎‎‏‏‏‎ apps have full access to your device‎‏‎‎‏‎</item>
       <item quantity="one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‎‎‏‎‏‎‎‎‎‏‎‏‏‏‏‎‎‎‏‎‏‏‏‏‎‏‎‏‏‎‎‎‏‎‎‎‏‎‏‏‎‏‏‏‎‏‎1 app has full access to your device‎‏‎‎‏‎</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‎‏‏‏‏‏‎‎‏‏‎‎‏‎‎‎‎‏‎‏‎‎‎‏‎‏‏‎‏‏‏‎‎‎‎‏‎‎‏‏‏‏‎‎‎‏‎‎‎‎‏‏‎‎Manage ‎‏‎‎‏‏‎<xliff:g id="APP_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ notifications‎‏‎‎‏‎"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‎‎‏‏‏‎‎‎‏‏‏‏‎‎‏‎‎‎‏‎‏‏‎‏‎‏‏‎‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‎‏‎‏‎‏‎‏‎‏‏‏‏‎‎No suggested application‎‏‎‎‏‎"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‏‏‏‏‏‎‏‎‏‎‎‏‏‎‎‏‎‏‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‎‎‎‎‎‎‏‎‎‏‏‎<xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g>‎‏‎‎‏‏‏‎ notification channels.‎‏‎‎‏‎</item>
-      <item quantity="one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‏‏‏‏‏‎‏‎‏‎‎‏‏‎‎‏‎‏‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‎‎‎‎‎‎‏‎‎‏‏‎<xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g>‎‏‎‎‏‏‏‎ notification channel.‎‏‎‎‏‎</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‏‎‏‏‏‎‎‎‏‏‎‏‎‏‎‏‏‏‏‎‏‏‏‏‏‎‎‏‏‏‏‎‎‎‏‏‎‎‏‎‎‏‎‎‏‏‎<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>‎‏‎‎‏‏‏‎ notification channels. Tap to manage all.‎‏‎‎‏‎"</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‎‎‎‏‏‏‏‏‎‎‏‏‎‎‎‎‎‏‎‎‏‎‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‎‎‎‎‎‏‏‏‎‎‎You recently installed this app.‎‏‎‎‏‎"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎‎‎‏‎‏‎‏‏‎‏‏‎‏‏‎‏‏‎‏‏‏‏‎‏‎‏‎‏‎‏‏‎‏‎‎‏‏‏‎‏‏‎‎‏‏‏‎‎‎‎‎‎‎‏‏‏‎Switch output‎‏‎‎‏‎"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‎‎‎‎‎‏‎‎‏‎‏‏‎‎‎‏‎‏‏‏‎‏‎‎‏‎‏‏‎‎‎‎‏‎‎‏‎‏‎‏‏‏‎‏‏‏‏‎‎‎‎‏‏‎Currently playing on ‎‏‎‎‏‏‎<xliff:g id="DEVICE_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‏‎‏‎‎‎‎‏‎‎‏‎‏‏‎‏‎‏‎‎‎‏‎‏‎‎‏‏‎‎‏‎‏‎‎‏‎‎‏‏‏‏‎‎‎‏‏‎‎‏‏‏‏‏‎‎‏‎‎‏‎‎‏‏‎<xliff:g id="DEVICE_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ (disconnected)‎‏‎‎‏‎"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index b936a83..9b178f6 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"No se pueden crear burbujas"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Conversaciones"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Todas las conversaciones pueden crear burbujas, excepto"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Acciones al deslizar el dedo"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Desliza el dedo hacia la derecha para cerrar la notificación o hacia la izquierda para mostrar el menú"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Desliza el dedo hacia la izquierda para cerrar la notificación y hacia la derecha para mostrar el menú"</string>
@@ -3803,7 +3807,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> puede interrumpir</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> más"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Excepciones de apps"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Todas las notificaciones"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Algunas notificaciones"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Notificaciones que pueden interrumpir"</string>
@@ -4848,14 +4853,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> apps tienen acceso completo a tu dispositivo</item>
       <item quantity="one">1 app tiene acceso completo a tu dispositivo</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Administrar notificaciones de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"No hay una aplicación sugerida"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> canales de notificación.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> canal de notificación.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canales de notificación. Presiona para administrarlos todos."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Instalaste esta app recientemente."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Cambiar de salida"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Reproduciendo en <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (desconectado)"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 67150e9..00e9758 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -3289,9 +3289,9 @@
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Volumen de envío"</string>
     <string name="call_volume_option_title" msgid="1461105986437268924">"Volumen de llamada"</string>
     <string name="alarm_volume_option_title" msgid="6398641749273697140">"Volumen de alarma"</string>
-    <string name="ring_volume_option_title" msgid="1520802026403038560">"Volumen de tono y notificación"</string>
+    <string name="ring_volume_option_title" msgid="1520802026403038560">"Volumen de tonos y notificaciones"</string>
     <string name="notification_volume_option_title" msgid="4838818791683615978">"Volumen de notificaciones"</string>
-    <string name="ringtone_title" msgid="3271453110387368088">"Tono del teléfono"</string>
+    <string name="ringtone_title" msgid="3271453110387368088">"Tono de llamada del teléfono"</string>
     <string name="notification_ringtone_title" msgid="6924501621312095512">"Sonido de notificación predeterminado"</string>
     <string name="notification_unknown_sound_title" msgid="1319708450698738980">"Sonido proporcionado de app"</string>
     <string name="notification_sound_default" msgid="8630353701915294299">"Sonido de notificación predeterminado"</string>
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"No crear burbujas"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Conversaciones"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Todas las conversaciones pueden aparecer como burbujas salvo"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Acciones al deslizar el dedo"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Desliza el dedo a la derecha para ignorar la notificación y a la izquierda para mostrar el menú"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Desliza el dedo a la izquierda para ignorar la notificación y a la derecha para mostrar el menú"</string>
@@ -3670,7 +3674,7 @@
     <string name="notification_content_block_summary" msgid="329171999992248925">"No mostrar nunca notificaciones en el panel de notificaciones ni en dispositivos periféricos"</string>
     <string name="notification_badge_title" msgid="6854537463548411313">"Permitir burbuja de notificación"</string>
     <string name="notification_channel_badge_title" msgid="6505542437385640049">"Mostrar burbuja de notificación"</string>
-    <string name="app_notification_override_dnd_title" msgid="3769539356442226691">"Omitir No molestar"</string>
+    <string name="app_notification_override_dnd_title" msgid="3769539356442226691">"Ignorar modo No molestar"</string>
     <string name="app_notification_override_dnd_summary" msgid="4894641191397562920">"Permitir notificaciones cuando el modo No molestar esté activado"</string>
     <string name="app_notification_visibility_override_title" msgid="7778628150022065920">"Pantalla de bloqueo"</string>
     <string name="app_notification_row_banned" msgid="4513523107019706924">"Bloqueada"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> puede interrumpirte</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> más"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Excepciones de aplicaciones"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Todas las notificaciones"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Algunas notificaciones"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Notificaciones que pueden interrumpirte"</string>
@@ -4584,7 +4589,7 @@
     <string name="app_info_storage_title" msgid="4076977173803093808">"Espacio usado"</string>
     <string name="webview_uninstalled_for_user" msgid="627352948986275488">"(opción desinstalada para <xliff:g id="USER">%s</xliff:g>)"</string>
     <string name="webview_disabled_for_user" msgid="5809886172032644498">"(opción inhabilitada para <xliff:g id="USER">%s</xliff:g>)"</string>
-    <string name="autofill_app" msgid="7595308061826307921">"Servicio Autocompletar"</string>
+    <string name="autofill_app" msgid="7595308061826307921">"Autocompletar"</string>
     <string name="autofill_keywords" msgid="6260653325195017912">"automático, completar, autocompletar"</string>
     <string name="autofill_confirmation_message" msgid="4888767934273494272">"&lt;b&gt;Asegúrate de que confías en esta aplicación&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Autocompletar de Google&gt;%1$s&lt;/xliff:g&gt; utiliza el contenido que se muestra en la pantalla para determinar el texto que se puede autocompletar."</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Autocompletar"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> aplicaciones tienen acceso completo a tu dispositivo</item>
       <item quantity="one">1 aplicación tiene acceso completo a tu dispositivo</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Gestionar notificaciones de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"No hay ninguna aplicación sugerida"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> canales de notificaciones.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> canal de notificaciones.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canales de notificaciones. Toca para gestionarlos todos."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Has instalado esta aplicación recientemente."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Cambiar salida"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Reproduciendo contenido en <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (desconectado)"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 7420e49..759bc8f 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Mitte midagi ei saa mullina kuvada"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Vestlused"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Kõik vestlused saab kuvada mullis, v.a"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Pühkimistoimingud"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Loobumiseks pühkige paremale, menüü kuvamiseks vasakule"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Loobumiseks pühkige vasakule, menüü kuvamiseks paremale"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> saab katkestada</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"Veel <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Rakenduste erandid"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Kõik märguanded"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Mõnd märguanded"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Märguanded, mis saavad katkestada"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> rakendusel on täielik juurdepääs teie seadmele</item>
       <item quantity="one">1 rakendusel on täielik juurdepääs teie seadmele</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Halda rakenduse <xliff:g id="APP_NAME">%1$s</xliff:g> märguandeid"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Soovitatud rakendust pole"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> märguandekanalit.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> märguandekanal.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> märguandekanalit. Puudutage kõigi haldamiseks."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Installisite selle rakenduse hiljuti."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Väljundi vahetamine"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Praegu seadmes <xliff:g id="DEVICE_NAME">%1$s</xliff:g> esitamisel"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (pole ühendatud)"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index a16aefa..bfb83e9 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Ezin da agertu ezer burbuila gisa"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Elkarrizketak"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Elkarrizketa guztiek dute burbuilak erabiltzeko aukera, hauek izan ezik:"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Hatza pasatuta gauzatzen diren ekintzak"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Jakinarazpena baztertzeko, pasatu hatza eskuinera. Menua ikusteko, pasatu hatza ezkerrera."</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Jakinarazpena baztertzeko, pasatu hatza ezkerrera. Menua ikusteko, pasatu hatza eskuinera."</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> aplikazioak eten dezake</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"Beste <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Gehitu salbuespenak"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Jakinarazpen guztiak"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Jakinarazpen batzuk"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Jarduera eten dezaketen jakinarazpenak"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> aplikaziok gailurako sarbide osoa dute</item>
       <item quantity="one">1 aplikaziok gailurako sarbide osoa du</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Kudeatu <xliff:g id="APP_NAME">%1$s</xliff:g> aplikazioaren jakinarazpenak"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Ez dago iradokitako aplikaziorik"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> jakinarazpen-kanal.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> jakinarazpen-kanal.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> jakinarazpen-kanal. Sakatu hau guztiak kudeatzeko."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Duela gutxi instalatu duzu aplikazio hau"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Aldatu irteera"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailuan erreproduzitzen"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (deskonektatuta)"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index ec1c028..c457619 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"هیچ موردی نمی‌تواند در حباب نشان داده شود"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"مکالمه‌ها"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"همه مکالمه‌ها می‌توانند ابزارک اعلان نمایش دهند به‌جز"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"کنش‌های تند کشیدن"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"برای رد کردن تند به چپ بکشید و برای نمایش منو تند به راست بکشید"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"برای رد کردن تند به راست بکشید و برای نمایش منو تند به چپ بکشید"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="other"><xliff:g id="APP_NAMES">%s</xliff:g> می‌تواند وقفه ایجاد کند</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> برنامه دیگر"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"برنامه‌های مستثنا"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"همه اعلان‌ها"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"برخی اعلان‌ها"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"اعلان‌هایی که می‌توانند وقفه ایجاد کنند"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="one"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> برنامه به دستگاهتان دسترسی کامل دارد</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> برنامه به دستگاهتان دسترسی کامل دارد</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"مدیریت اعلان‌های <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"برنامه پیشنهادشده‌ای وجود ندارد"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> کانال اعلان.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> کانال اعلان.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> کانال اعلان. برای مدیریت همه آن‌ها ضربه بزنید."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"این برنامه را اخیراً نصب کرده‌اید."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"تغییر خروجی"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"درحال‌حاضر در <xliff:g id="DEVICE_NAME">%1$s</xliff:g> درحال پخش است"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (اتصال قطع شد)"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 172e658..1370ce8 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Mikään ei voi näyttää kuplaa"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Keskustelut"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Kaikki keskustelut voivat näyttää kuplan, paitsi"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Pyyhkäisytoiminnot"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Ohita pyyhkäisemällä oikealle ja näytä valikko pyyhkäisemällä vasemmalle."</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Ohita pyyhkäisemällä vasemmalle ja näytä valikko pyyhkäisemällä oikealle."</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> voi keskeyttää</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> muuta"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Lisää poikkeuksia"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Kaikki ilmoitukset"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Osa ilmoituksista"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Ilmoitukset, jotka saavat keskeyttää"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> sovelluksella on laitteesi täydet käyttöoikeudet</item>
       <item quantity="one">1 sovelluksella on laitteesi täydet käyttöoikeudet</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Ilmoitusten määritys: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Ei sovellusehdotuksia"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> ilmoituskanavaa.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> ilmoituskanava.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ilmoituskanavaa. Napauta määrittääksesi kaikki."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Asensit tämän sovelluksen äskettäin."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Vaihda syötettä"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Toistetaan nyt: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (yhteys katkaistu)"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 1ec593f..569f621 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Aucune bulle n\'est autorisée"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Conversations"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Toutes les conversations peuvent s\'afficher en bulles, sauf"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Balayages"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Balayer l\'écran vers la droite pour fermer la notification ou vers la gauche pour afficher le menu"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Balayer l\'écran vers la gauche pour fermer la notification ou vers la droite pour afficher le menu"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="other"><xliff:g id="APP_NAMES">%s</xliff:g> peuvent provoquer des interruptions</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> autres"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Exceptions des applications"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Toutes les notifications"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Quelques notifications"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Notifications qui peuvent provoquer des interruptions"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="one"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> application a l\'accès complet à votre appareil</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> applications ont l\'accès complet à votre appareil</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Gérer les notifications de l\'application <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Aucune suggestion d\'application"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> canal de notification.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> canaux de notification.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canaux de notification. Touchez ici pour les gérer."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Vous avez récemment installé cette application."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Changer de sortie"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"En cours de lecture sur l\'appareil <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (déconnecté)"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 03061a3..3698a4b 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -2204,7 +2204,7 @@
     <string name="accessibility_ring_vibration_title" msgid="4689811297654320885">"Vibreur de la sonnerie"</string>
     <string name="accessibility_touch_vibration_title" msgid="533931451319110741">"Retour tactile"</string>
     <string name="accessibility_service_master_switch_title" msgid="3001666897585097640">"Utiliser <xliff:g id="ACCESSIBILITY_APP_NAME">%1$s</xliff:g>"</string>
-    <string name="accessibility_service_master_open_title" msgid="7437956750557583681">"Ouvrir <xliff:g id="ACCESSIBILITY_APP_NAME">%1$s</xliff:g>"</string>
+    <string name="accessibility_service_master_open_title" msgid="7437956750557583681">"Ouvrir la fonctionnalité <xliff:g id="ACCESSIBILITY_APP_NAME">%1$s</xliff:g>"</string>
     <string name="accessibility_daltonizer_master_switch_title" msgid="3580563017377754890">"Utiliser la correction des couleurs"</string>
     <string name="accessibility_caption_master_switch_title" msgid="3821125170899547375">"Afficher les sous-titres"</string>
     <string name="accessibility_caption_master_switch_summary" msgid="4908774362453838764">"Pour les applications compatibles uniquement"</string>
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Aucune bulle n\'est autorisée"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Conversations"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Toutes les conversations peuvent s\'afficher en bulles, sauf"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Actions associées au balayage"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Balayer l\'écran vers la droite pour fermer la notification, et vers la gauche pour en afficher le menu"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Balayer l\'écran vers la gauche pour fermer la notification, et vers la droite pour en afficher le menu"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="other"><xliff:g id="APP_NAMES">%s</xliff:g> peuvent interrompre le mode Ne pas déranger</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> autre(s)"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Exceptions relatives aux applications"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Toutes les notifications"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Certaines notifications"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Notifications qui peuvent vous interrompre"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="one"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> application bénéficie d\'un accès complet à votre appareil</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> applications bénéficient d\'un accès complet à votre appareil</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Gérer les notifications de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Aucune application suggérée"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one">Canal de notification <xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g>.</item>
-      <item quantity="other">Canaux de notification <xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g>.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"Canaux de notification <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Appuyez sur cette notification pour tout gérer."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Vous avez installé cette application récemment."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Changer de sortie"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"En cours de lecture sur <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (déconnecté)"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index c638287..f90cc4c 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Non se pode mostrar ningunha burbulla"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Conversas"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Todas as conversas poden mostrarse como burbullas, excepto"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Accións de pasar o dedo"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Pasa o dedo á dereita para ignorar e á esquerda para mostrar o menú"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Pasa o dedo á esquerda para ignorar e á dereita para mostrar o menú"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> ten permiso para interromper o modo Non molestar</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> máis"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Excepcións de aplicacións"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Todas as notificacións"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Algunhas notificacións"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Notificacións que poden interromper"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> aplicacións teñen acceso total ao teu dispositivo</item>
       <item quantity="one">1 aplicación ten acceso total ao teu dispositivo</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Xestionar notificacións de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Non hai ningunha aplicación suxerida"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> canles de notificacións.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> canle de notificacións.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canles de notificacións. Toca para xestionalas todas."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Instalaches esta aplicación recentemente."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Cambiar saída"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Reproducindo contido actualmente en <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (dispositivo desconectado)"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 8953f8c..e0f3a43 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"કોઈ વાતચીત બબલ થઈ શકતી નથી"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"વાતચીત"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"આના સિવાય બધી વાતચીત બબલ કરી શકાય છે"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"સ્વાઇપ ક્રિયાઓ"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"છોડી દેવા માટે જમણે, મેનૂ બતાવવા માટે ડાબે સ્વાઇપ કરો"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"છોડી દેવા માટે ડાબે, મેનૂ બતાવવા માટે જમણે સ્વાઇપ કરો"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="other"><xliff:g id="APP_NAMES">%s</xliff:g> વિક્ષેપ કરી શકે છે</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> વધુ"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"ઍપના અપવાદો"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"બધા નોટિફિકેશન"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"કેટલાંક નોટિફિકેશન"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"વિક્ષેપ ઊભો કરી શકે તેવા નોટિફિકેશન"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="one"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> ઍપ તમારા ડિવાઇસ માટે સંપૂર્ણ ઍક્સેસ ધરાવે છે</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> ઍપ તમારા ડિવાઇસ માટે સંપૂર્ણ ઍક્સેસ ધરાવે છે</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"<xliff:g id="APP_NAME">%1$s</xliff:g> નોટિફિકેશન મેનેજ કરો"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"કોઈ સૂચવેલી ઍપ્લિકેશન નથી"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> નોટિફિકેશન ચૅનલ.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> નોટિફિકેશન ચૅનલ.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> નોટિફિકેશન ચૅનલ. બધા મેનેજ કરવા માટે ટૅપ કરો."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"તમે તાજેતરમાં આ ઍપ ઇન્સ્ટૉલ કરી."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"આઉટપુટ સ્વિચ કરો"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"હાલમાં <xliff:g id="DEVICE_NAME">%1$s</xliff:g> પર ચલાવી રહ્યાં છે"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (ડિસ્કનેક્ટ થયેલું)"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 834458d..35ad967 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"इस ऐप्लिकेशन से कोई बातचीत बबल नहीं हो सकती"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"बातचीत"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"इन्हें छोड़कर सभी बातचीत बबल की जा सकती हैं"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"स्वाइप करने पर होने वाली कार्रवाइयां"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"खारिज करने के लिए दाईं ओर स्वाइप करें और मेन्यू दिखाने के लिए बाईं ओर"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"खारिज करने के लिए बाईं ओर स्वाइप करें और मेन्यू दिखाने के लिए दाईं ओर"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="other"><xliff:g id="APP_NAMES">%s</xliff:g> \'परेशान न करें\' मोड को बायपास कर सकते हैं</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> और"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"ऐप्लिकेशन के अपवाद"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"सभी सूचनाएं"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"कुछ सूचनाएं"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"वे सूचनाएं जो \'परेशान न करें\' मोड को बायपास कर सकती हैं"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="one"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> ऐप्लिकेशन के पास आपके डिवाइस का पूरा ऐक्सेस है</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> ऐप्लिकेशन के पास आपके डिवाइस का पूरा ऐक्सेस है</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"<xliff:g id="APP_NAME">%1$s</xliff:g> की सूचनाएं प्रबंधित करें"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"कोई भी सुझाया गया ऐप्लिकेशन नहीं है"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> सूचना के चैनल.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> सूचना के चैनल.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> सूचना के चैनल. सभी को प्रबंधित करने के लिए टैप करें."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"आपने हाल ही में यह ऐप्लिकेशन इंस्टॉल किया."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"स्विच आउटपुट"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"इस समय <xliff:g id="DEVICE_NAME">%1$s</xliff:g> पर खेल रहा है"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (डिसकनेक्ट किया गया)"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 8a624c2..b2ce473 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -3349,7 +3349,7 @@
     <string name="charging_sounds_title" msgid="5261683808537783668">"Zvukovi i vibracija punjenja"</string>
     <string name="docking_sounds_title" msgid="5341616179210436159">"Zvukovi priključivanja"</string>
     <string name="touch_sounds_title" msgid="2200734041857425078">"Zvukovi dodirivanja"</string>
-    <string name="vibrate_on_touch_title" msgid="9105544449810547716">"Vibracija za dodir"</string>
+    <string name="vibrate_on_touch_title" msgid="9105544449810547716">"Vibracija pri dodirivanju"</string>
     <string name="vibrate_on_touch_summary" msgid="664831333409399440">"Haptičke povratne informacije za dodir, tipkovnicu i više"</string>
     <string name="dock_audio_media_title" msgid="6474579339356398330">"Priključna stanica reproducira"</string>
     <string name="dock_audio_media_disabled" msgid="8499927008999532341">"Sve zvukove"</string>
@@ -3529,6 +3529,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Ništa se ne prikazuje u oblačiću"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Razgovori"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Svi razgovori mogu otvoriti oblačić osim"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Povlačenje prstom"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Prijeđite prstom udesno da biste odbacili izbornik, a ulijevo da biste ga prikazali"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Prijeđite prstom ulijevo da biste odbacili izbornik, a udesno da biste ga prikazali"</string>
@@ -3725,7 +3729,7 @@
     <string name="notification_badge_title" msgid="6854537463548411313">"Dopusti točku obavijesti"</string>
     <string name="notification_channel_badge_title" msgid="6505542437385640049">"Prikaži točku obavijesti"</string>
     <string name="app_notification_override_dnd_title" msgid="3769539356442226691">"Nadjačaj Ne ometaj"</string>
-    <string name="app_notification_override_dnd_summary" msgid="4894641191397562920">"Dopusti obavijesti u načinu Ne ometaj kad je postavljen na \"Samo prioritetno\""</string>
+    <string name="app_notification_override_dnd_summary" msgid="4894641191397562920">"Dopusti da se obavijesti nastave prikazivati kada je uključen način rada Ne uznemiravaj"</string>
     <string name="app_notification_visibility_override_title" msgid="7778628150022065920">"Na zaključanom zaslonu"</string>
     <string name="app_notification_row_banned" msgid="4513523107019706924">"Blokirano"</string>
     <string name="app_notification_row_priority" msgid="8100777138078316446">"Prioritet"</string>
@@ -3863,7 +3867,8 @@
       <item quantity="other"><xliff:g id="APP_NAMES">%s</xliff:g> mogu prekidati</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"još <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Iznimke aplikacija"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Sve obavijesti"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Neke obavijesti"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Obavijesti koje mogu prekidati"</string>
@@ -4940,15 +4945,6 @@
       <item quantity="few"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> aplikacije imaju potpuni pristup vašem uređaju</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> aplikacija ima potpuni pristup vašem uređaju</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Upravljanje obavijestima aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Nema predložene aplikacije"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> kanal obavijesti.</item>
-      <item quantity="few"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> kanala obavijesti.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> kanala obavijesti.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> kanal obavijesti. Dodirnite za upravljanje svim kanalima."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Nedavno ste instalirali ovu aplikaciju."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Promjena izlaza"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Trenutačno se reproducira na uređaju <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (nije povezano)"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index cf4614e..6778a15 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Semmi sem jelenhet meg buborékként"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Beszélgetések"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Az összes beszélgetés lehet buborékban, kivéve a következők:"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Csúsztatási műveletek"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Csúsztasson jobbra az elvetéshez, balra a menü megnyitásához."</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Csúsztasson balra az elvetéshez, jobbra a menü megnyitásához."</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one">A következő megszakíthatja a „Ne zavarjanak” módot: <xliff:g id="APP_NAME_0">%s</xliff:g></item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> további"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Alkalmazáskivételek"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Összes értesítés"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Egyes értesítések"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Azok az értesítések, amelyeknél engedélyezve van a megszakítás"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> alkalmazás teljes körű hozzáféréssel rendelkezik az eszközhöz</item>
       <item quantity="one">1 alkalmazás teljes körű hozzáféréssel rendelkezik az eszközhöz</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"A(z) <xliff:g id="APP_NAME">%1$s</xliff:g> értesítéseinek kezelése"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Nincs javasolt alkalmazás"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> értesítési csatorna.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> értesítési csatorna.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> értesítési csatorna. Koppintson az összes kezeléséhez."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Nemrég telepítette ezt az alkalmazást."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Kimenet átváltása"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Lejátszás folyamatban a(z) <xliff:g id="DEVICE_NAME">%1$s</xliff:g> eszközön"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (leválasztva)"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index f86d0e0..0b8c019 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Ոչ մի խոսակցություն չի ցուցադրվի ամպիկի տեսքով"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Խոսակցություններ"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Նշված խոսակցությունները չեն ցուցադրվի ամպիկի տեսքով"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Թերթման ժեստեր"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Սահեցնել աջ՝ փակելու համար և ձախ՝ ընտրացանկը ցուցադրելու համար"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Սահեցնել ձախ՝ փակելու համար և աջ՝ ընտրացանկը ցուցադրելու համար"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="other"><xliff:g id="APP_NAMES">%s</xliff:g></item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"ևս <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Հավելվածների բացառություններ"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Բոլոր ծանուցումները"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Որոշ ծանուցումներ"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Ծանուցումներ, որոնք կարող են ընդհատել"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="one">Ձեր սարքն օգտագործելու լրիվ թույլտվություն ունի <xliff:g id="SERVICE_COUNT">%1$d</xliff:g> ծառայություն</item>
       <item quantity="other">Ձեր սարքն օգտագործելու լրիվ թույլտվություն ունի <xliff:g id="SERVICE_COUNT">%1$d</xliff:g> ծառայություն</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Կառավարեք <xliff:g id="APP_NAME">%1$s</xliff:g> հավելվածի ծանուցումները"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Առաջարկվող հավելվածներ չկան"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one">Ծանուցումների <xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> կապուղի:</item>
-      <item quantity="other">Ծանուցումների <xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> կապուղի:</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"Ծանուցումների <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> կապուղի: Հպեք՝ բոլոր կապուղիները կառավարելու համար:"</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Դուք վերջերս տեղադրել եք այս հավելվածը։"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Աուդիոելքի սարքի փոխարկում"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Նվագարկվում է <xliff:g id="DEVICE_NAME">%1$s</xliff:g> սարքում"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (անջատված է)"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 1d2c051..a63b3c1 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Tidak ada yang dapat dijadikan balon"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Percakapan"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Semua percakapan dapat ditampilkan dalam balon, kecuali"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Tindakan geser"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Geser ke kanan untuk menutup, ke kiri untuk menampilkan menu"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Geser ke kiri untuk menutup, ke kanan untuk menampilkan menu"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> dapat mengganggu</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> lainnya"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Pengecualian aplikasi"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Semua notifikasi"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Beberapa notifikasi"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Notifikasi yang dapat mengganggu"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> aplikasi memiliki akses penuh ke perangkat Anda</item>
       <item quantity="one">1 aplikasi memiliki akses penuh ke perangkat Anda</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Kelola notifikasi <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Tidak ada aplikasi yang disarankan"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> saluran notifikasi.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> saluran notifikasi.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> saluran notifikasi. Ketuk untuk mengelola semua."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Anda baru saja menginstal aplikasi ini."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Ganti keluaran"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Sedang diputar di <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (terputus)"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 67e5e06..1942bf4 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Ekkert má opna blöðrur"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Samtöl"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Öll samtöl mega opna blöðrur nema"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Strokaðgerðir"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Strjúktu til hægri til að hunsa og til vinstri til að birta valmynd"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Strjúktu til vinstri til að hunsa og til hægri til að birta valmynd"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="other"><xliff:g id="APP_NAMES">%s</xliff:g> mega trufla</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> í viðbót"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Undantekningar forrita"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Allar tilkynningar"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Sumar tilkynningar"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Tilkynningar sem mega trufla"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="one"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> forrit hefur fullan aðgang að tækinu þínu</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> forrit hafa fullan aðgang að tækinu þínu</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Stjórna tilkynningum fyrir <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Engar tillögur að forritum"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> tilkynningarás.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> tilkynningarásir.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> tilkynningarásir. Ýttu til að stjórna öllum."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Þú settir þetta forrit nýlega upp."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Skipta um úttak"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Í spilun núna í <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (aftengt)"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 3c6083b..6559f74 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Non è possibile utilizzare le bolle"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Conversazioni"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Tutte le conversazioni possono utilizzare le bolle tranne"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Azioni di scorrimento"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Scorri verso destra per ignorare, verso sinistra per mostrare il menu"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Scorri verso sinistra per ignorare, verso destra per mostrare il menu"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> può interrompere</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"altre <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Eccezioni per le app"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Tutte le notifiche"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Alcune notifiche"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Notifiche che possono interrompere"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> app hanno accesso completo al tuo dispositivo</item>
       <item quantity="one">1 app ha accesso completo al tuo dispositivo</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Gestisci le notifiche di <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Nessuna app suggerita"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> canali di notifica.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> canale di notifica.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canali di notifica. Tocca per gestirli tutti."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Hai installato di recente questa app."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Cambia uscita"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Attualmente in riproduzione sul dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (disconnesso)"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index a7e4204..abcd1ba 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -3034,9 +3034,7 @@
     <string name="one_userkey" msgid="4417212932385103517">"מקש משתמש אחד"</string>
     <string name="one_usercrt" msgid="1865069301105101370">"אישור למשתמש אחד"</string>
     <string name="one_cacrt" msgid="7467796501404158399">"‏אישור CA אחד"</string>
-    <!-- String.format failed for translation -->
-    <!-- no translation found for n_cacrts (5886462550192731627) -->
-    <skip />
+    <string name="n_cacrts" msgid="5886462550192731627">"‏%d אישורי CA"</string>
     <string name="user_credential_title" msgid="4686178602575567298">"פרטי כניסה"</string>
     <string name="user_credential_removed" msgid="4087675887725394743">"פרטי הכניסה שהוסרו: <xliff:g id="CREDENTIAL_NAME">%s</xliff:g>"</string>
     <string name="user_credential_none_installed" msgid="918620912366836994">"לא הותקנו פרטי כניסה של המשתמש"</string>
@@ -3577,6 +3575,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"אף שיחה לא תופיע בבועות"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"שיחות"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"כל השיחות יכולות לשלוח התראות בצורת בועות מלבד"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"פעולות החלקה"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"יש להחליק שמאלה כדי לסגור, וימינה כדי להציג תפריט"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"יש להחליק ימינה כדי לסגור, ושמאלה כדי להציג תפריט"</string>
@@ -3923,7 +3925,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> יכולה להפריע</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"עוד <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"הוספת חריגים"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"כל ההתראות"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"חלק מההתראות"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"התראות שיכולות להפריע"</string>
@@ -5032,16 +5035,6 @@
       <item quantity="other">ל-<xliff:g id="SERVICE_COUNT">%1$d</xliff:g> אפליקציות יש גישה מלאה למכשיר שלך</item>
       <item quantity="one">לאפליקציה אחת יש גישה מלאה למכשיר שלך</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"ניהול ההתראות של <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"אין הצעה לאפליקציה"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="two"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> ערוצי התראות.</item>
-      <item quantity="many"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> ערוצי התראות.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> ערוצי התראות.</item>
-      <item quantity="one">ערוץ התראות אחד (<xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g>).</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ערוצי התראות. יש להקיש כדי לנהל הכול."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"התקנת לאחרונה את האפליקציה הזו."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"החלפת פלט"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"בהפעלה כרגע ב-<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (מנותק)"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 645a072..5b6f5c49 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"何もバブルにできない"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"会話"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"バブルから除外したすべての会話"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"スワイプの動作"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"右にスワイプで通知を閉じ、左にスワイプでメニューを表示"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"左にスワイプで通知を閉じ、右にスワイプでメニューを表示"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> が割り込み可能</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"他 <xliff:g id="NUMBER">%d</xliff:g> 個"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"アプリの例外"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"すべての通知"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"一部の通知"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"割り込み可能な通知"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> 個のアプリにデバイスへのフルアクセスを許可しています</item>
       <item quantity="one">1 個のアプリにデバイスへのフルアクセスを許可しています</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"<xliff:g id="APP_NAME">%1$s</xliff:g> の通知の管理"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"おすすめのアプリはありません"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> 件の通知チャンネルがあります</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> 件の通知チャンネルがあります。</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> 件の通知チャンネルがあります。すべて管理するにはタップしてください。"</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"このアプリを最近インストールしました。"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"出力の切り替え"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"現在 <xliff:g id="DEVICE_NAME">%1$s</xliff:g> で再生しています"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>（未接続）"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 9261016..425a866 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"არცერთი მიმოწერა არ შეიძლება გამოჩნდეს ბუშტის სახით"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"მიმოწერები"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"ყველა საუბრები შეიძლება გამოჩნდეს ბუშტის სახით, გარდა"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"გადაფურცვლის ქმედებები"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"მარჯვნივ გადაფურცვლა დასახურად, მარცხნივ — მენიუს საჩვენებლად"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"მარცხნივ გადაფურცვლა დასახურად, მარჯვნივ — მენიუს საჩვენებლად"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g>-ს შეუძლია შეწყვეტა</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> სხვას"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"აპების გამონაკლისები"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"ყველა შეტყობინება"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"ზოგიერთი შეტყობინება"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"შეტყობინებები, რომლებსაც შეწყვეტა შეუძლია"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other">თქვენს მოწყობილობაზე სრული წვდომით სარგებლობს <xliff:g id="SERVICE_COUNT">%1$d</xliff:g> აპი</item>
       <item quantity="one">თქვენს მოწყობილობაზე სრული წვდომით სარგებლობს 1 აპი</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"<xliff:g id="APP_NAME">%1$s</xliff:g> შეტყობინებების მართვა"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"შემოთავაზებული აპლიკაცია არ არის"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other">შეტყობინებათა <xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> არხი.</item>
-      <item quantity="one">შეტყობინებათა <xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> არხი.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"შეტყობინებათა <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> არხი. შეეხეთ ყველას სამართავად."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"თქვენ ახლახან დააინსტალირეთ ეს აპი."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"გამომავალი სიგნალის გადართვა"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"ამჟამად იკვრება <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-ზე"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (კავშირი გაწყვეტილია)"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index e3be62c..d359423 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Барлық қалқымалы хабарға тыйым салу"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Әңгімелер"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Келесілерді қоспағанда, барлық әңгіме қалқыма хабарлар түрінде шығуы мүмкін."</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Сырғыту әрекеттері"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Хабарландыруды жабу үшін оңға, мәзірді ашу үшін солға сырғыту"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Хабарландыруды жабу үшін солға, мәзірді ашу үшін оңға сырғыту"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> тоқтата алады</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"Тағы <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Қолданбаларға арналған ерекшеліктер"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Барлық хабарландыру"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Кейбір хабарландырулар"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Тоқтата алатын хабарландырулар"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other">Құрылғыңызды <xliff:g id="SERVICE_COUNT">%1$d</xliff:g> қызмет толықтай пайдалана алады.</item>
       <item quantity="one">Құрылғыңызды 1 қызмет толықтай пайдалана алады.</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"<xliff:g id="APP_NAME">%1$s</xliff:g> хабарландыруларын басқару"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Ешқандай қолданба ұсынылмады"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> хабарландыру арнасы.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> хабарландыру арнасы.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> хабарландыру арнасы. Барлығын басқару үшін түртіңіз."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Бұл қолданбаны жақында орнаттыңыз."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Шығатын панельді ауыстыру"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> деген құрылғыда ойнап жатыр."</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (ажыратылған)"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 2e45560..ccbb02d 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"គ្មានអ្វី​ដែលអាច​បង្ហាញជា​សារលេចឡើងបានទេ"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"ការសន្ទនា"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"ការសន្ទនា​ទាំងអស់​អាចបង្ហាញជាពពុះបាន លើកលែង​តែ"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"សកម្មភាព​អូស"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"អូស​ទៅស្ដាំ​ដើម្បី​ច្រានចោល ឬ​ទៅឆ្វេង​ដើម្បី​បង្ហាញ​ម៉ឺនុយ"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"អូស​ទៅឆ្វេង​ដើម្បី​ច្រានចោល ឬទៅស្ដាំ​ដើម្បី​បង្ហាញ​ម៉ឺនុយ"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> អាច​ផ្អាកបាន</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> ទៀត"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"ការ​លើក​លែង​កម្មវិធី"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"ការ​ជូន​ដំណឹង​ទាំងអស់"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"ការជូនដំណឹង​មួយចំនួន"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"ការជូនដំណឹង​ដែលអាចបង្អាក់"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other">កម្មវិធី <xliff:g id="SERVICE_COUNT">%1$d</xliff:g> មានលទ្ធភាពចូលប្រើ​ឧបករណ៍​របស់អ្នកពេញលេញ</item>
       <item quantity="one">កម្មវិធី 1 មានលទ្ធភាព​ចូលប្រើ​ឧបករណ៍​របស់អ្នកពេញលេញ</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"គ្រប់គ្រងការជូនដំណឹង <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"មិនមាន​កម្មវិធី​ដែលបាន​ណែនាំទេ"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other">បណ្តាញ​ជូនដំណឺង <xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g>។</item>
-      <item quantity="one">បណ្តាញ​ជូនដំណឺង <xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g>។</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"បណ្តាញ​ជូនដំណឺង <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>។ ចុច​ដើម្បី​គ្រប់គ្រង​ទាំងអស់។"</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"អ្នក​បាន​ដំឡើងកម្មវិធីនេះ​កាលពីពេលថ្មីៗ។"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"លទ្ធផល Switch"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"ឥឡូវនេះ​កំពុងចាក់​នៅលើ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (បាន​ផ្ដាច់)"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 851904c..ec31d62 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"ಯಾವುದೂ ಬಬಲ್ ಆಗಬಾರದು"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"ಸಂಭಾಷಣೆಗಳು"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"ಇದನ್ನು ಹೊರತುಪಡಿಸಿ ಎಲ್ಲಾ ಸಂಭಾಷಣೆಗಳು ಬಬಲ್‌ನ ಹಾಗೆ ಗೋಚರಿಸಬಹುದು"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"ಕ್ರಿಯೆಗಳನ್ನು ಸ್ವೈಪ್ ಮಾಡಿ"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"ವಜಾಗೊಳಿಸಲು ಬಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ, ಮೆನು ತೋರಿಸಲು ಎಡಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"ವಜಾಗೊಳಿಸಲು ಎಡಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ, ಮೆನು ತೋರಿಸಲು ಬಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="other"><xliff:g id="APP_NAMES">%s</xliff:g> ಅಡಚಣೆ ಮಾಡಬಹುದು</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"ಇನ್ನೂ <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"ಆ್ಯಪ್‌ ವಿನಾಯಿತಿಗಳು"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"ಎಲ್ಲಾ ಅಧಿಸೂಚನೆಗಳು"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"ಕೆಲವು ಅಧಿಸೂಚನೆಗಳು"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"ಅಡಚಣೆ ಉಂಟುಮಾಡಬಹುದಾದ ಅಧಿಸೂಚನೆಗಳು"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="one"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> ಆ್ಯಪ್‌ಗಳು ನಿಮ್ಮ ಸಾಧನಕ್ಕೆ ಸಂಪೂರ್ಣ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿವೆ</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> ಆ್ಯಪ್‌ಗಳು ನಿಮ್ಮ ಸಾಧನಕ್ಕೆ ಸಂಪೂರ್ಣ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿವೆ</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"<xliff:g id="APP_NAME">%1$s</xliff:g>ಅಧಿಸೂಚನೆಗಳನ್ನು ನಿರ್ವಹಿಸಿ"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"ಸಲಹೆ ಮಾಡಲಾದ ಯಾವುದೇ ಅಪ್ಲಿಕೇಶನ್ ಇಲ್ಲ"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> ಅಧಿಸೂಚನೆ ಚಾನಲ್‌ಗಳು.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> ಅಧಿಸೂಚನೆ ಚಾನಲ್‌ಗಳು.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ಅಧಿಸೂಚನೆ ಚಾನಲ್‌ಗಳು. ಎಲ್ಲವನ್ನೂ ನಿರ್ವಹಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"ನೀವು ಇತ್ತೀಚೆಗೆ ಈ ಆ್ಯಪ್ ಅನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿರುವಿರಿ."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"ಔಟ್‌ಫುಟ್ ಬದಲಿಸಿ"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"ಪ್ರಸ್ತುತ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ನಲ್ಲಿ ಪ್ಲೇ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಲಾಗಿದೆ)"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 7c2bb18..4464d57 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"어떤 대화도 버블로 표시하지 않음"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"대화"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"다음을 제외한 모든 대화에서 대화창 사용 가능"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"스와이프 동작"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"오른쪽으로 스와이프하여 닫기, 왼쪽으로 스와이프하여 메뉴 표시"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"왼쪽으로 스와이프하여 닫기, 오른쪽으로 스와이프하여 메뉴 표시"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> 예외</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"외 <xliff:g id="NUMBER">%d</xliff:g>개"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"앱 예외"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"모든 알림"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"일부 알림"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"예외 알림"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other">앱 <xliff:g id="SERVICE_COUNT">%1$d</xliff:g>개가 기기에 대한 전체 액세스 권한을 가지고 있습니다.</item>
       <item quantity="one">앱 1개가 기기에 대한 전체 액세스 권한을 가지고 있습니다.</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"<xliff:g id="APP_NAME">%1$s</xliff:g> 알림 관리"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"추천 애플리케이션 없음"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other">알림 채널 <xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g>개</item>
-      <item quantity="one">알림 채널 <xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g>개</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"알림 채널 <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>개. 모두 관리하려면 탭하세요."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"최근에 이 앱을 설치했습니다."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"출력 전환"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"현재 <xliff:g id="DEVICE_NAME">%1$s</xliff:g>에서 재생 중"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>(연결 끊김)"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index b2fecf5..73abc74 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Эч нерсе калкып чыкма билдирме болуп көрүнбөйт"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Жазышуулар"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Төмөнкүдөн башка жазышуулардын баары калкып чыгуучу билдирмелер боло алат:"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Экранды сүрүү аракеттери"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Менюну жабуу үчүн оңго, ал эми ачуу үчүн солго сүрүңүз"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Менюну жабуу үчүн солго, ал эми ачуу үчүн оңго сүрүңүз"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> үзгүлтүккө учуратышы мүмкүн</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"Дагы <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Колдонмодогу өзгөчө жөндөөлөр"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Бардык билдирмелер"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Айрым билдирмелер"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"\"Тынчымды алба\" режими таасир этпеген билдирмелер"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> колдонмонун түзмөгүңүзгө кирүүгө толук мүмкүнчүлүгү бар</item>
       <item quantity="one">1 колдонмонун түзмөгүңүзгө кирүүгө толук мүмкүнчүлүгү бар</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"<xliff:g id="APP_NAME">%1$s</xliff:g> эскертмелерин башкаруу"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Сунушталган колдонмо жок"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> билдирме каналы.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> билдирме каналы.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> билдирме каналы. Баарын башкаруу үчүн таптап коюңуз."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Бул колдонмону жакында орнотконсуз."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Аудио түзмөктү которуштуруу"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Учурда <xliff:g id="DEVICE_NAME">%1$s</xliff:g> түзмөгүндө ойнотулууда"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (ажыратылды)"</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 5b874d2..218a2ae 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"ບໍ່ມີຫຍັງສາມາດ bubble ໄດ້"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"ການສົນທະນາ"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"ການສົນທະນາທັງໝົດສາມາດກາຍເປັນຟອງໄດ້ຍົກເວັ້ນ"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"ຄຳ​ສັ່ງ​ປັດ​ອອກ​ຂ້າງ"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"ປັດຂວາເພື່ອປິດ, ປັດຊ້າຍເພື່ອສະແດງເມນູ"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"ປັດຊ້າຍເພື່ອປິດໄວ້, ປັດຂວາເພື່ອສະແດງເມນູ"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> ສາມາດລົບກວນໄດ້</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"ອີກ <xliff:g id="NUMBER">%d</xliff:g> ແອັບ"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"ຂໍ້ຍົກເວັ້ນແອັບ"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"ການແຈ້ງເຕືອນທັງໝົດ"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"ການແຈ້ງເຕືອນບາງຢ່າງ"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"ການແຈ້ງເຕືອນທີ່ສາມາດລົບກວນໄດ້"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> ແອັບມີສິດເຂົ້າເຖິງອຸປະກອນຂອງທ່ານເຕັມຮູບແບບ</item>
       <item quantity="one">1 ແອັບມີສິດເຂົ້າເຖິງອຸປະກອນຂອງທ່ານເຕັມຮູບແບບ</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"ຈັດການການແຈ້ງເຕືອນ <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"ບໍ່ມີແອັບພລິເຄຊັນທີ່ແນະນຳ"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> ຊ່ອງການແຈ້ງເຕືອນ.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> ຊ່ອງການແຈ້ງເຕືອນ.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ຊ່ອງການແຈ້ງເຕືອນ. ແຕະເພື່ອຈັດການທັງໝົດ."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"ທ່ານຫາກໍຕິດຕັ້ງແອັບນີ້ໄປ"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"ສະຫຼັບການສົ່ງຂໍ້ມູນອອກ"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"ຕອນນີ້ກຳລັງຫຼິ້ນຢູ່ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (ຕັດການເຊື່ອມຕໍ່ແລ້ວ)"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index ae750f3..2af82d6 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -3575,6 +3575,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Negalima rodyti debesėlių"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Pokalbiai"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Visi pokalbiai gali būti pateikiami kaip burbulai, išskyrus nurodytus toliau"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Perbraukimo veiksmai"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Perbraukite dešinėn, kad atsisakytumėte, arba kairėn, kad būtų rodomas meniu"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Perbraukite kairėn, kad atsisakytumėte, arba dešinėn, kad būtų rodomas meniu"</string>
@@ -3921,7 +3925,8 @@
       <item quantity="other">„<xliff:g id="APP_NAMES">%s</xliff:g>“ gali trikdyti</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"Dar <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Programų išimtys"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Visi pranešimai"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Kai kurie pranešimai"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Pranešimai, kurie gali trikdyti"</string>
@@ -5030,16 +5035,6 @@
       <item quantity="many"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> programos suteikta visateisė prieiga prie jūsų įrenginio</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> programų suteikta visateisė prieiga prie jūsų įrenginio</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"„<xliff:g id="APP_NAME">%1$s</xliff:g>“ pranešimų tvarkymas"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Nėra siūlomos programos"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> pranešimų kanalas.</item>
-      <item quantity="few"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> pranešimų kanalai.</item>
-      <item quantity="many"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> pranešimų kanalo.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> pranešimų kanalų.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> pranešimų kanalas. Palieskite, jei norite viską tvarkyti."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Neseniai įdiegėte šią programą."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Išvesties perjungimas"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Šiuo metu leidžiama per <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"„<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“ (atjungta)"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 8e7a06d..8d3e5f6 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -3529,6 +3529,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Saturu nevar rādīt burbuļos"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Sarunas"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Burbuļos var attēlot visas sarunas, izņemot"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Vilkšanas darbības"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Vilkt pa labi, lai paslēptu izvēlni, vilkt pa kreisi, lai rādītu izvēlni"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Velciet pa kreisi, lai paslēptu izvēlni, velciet pa labi, lai to parādītu"</string>
@@ -3863,7 +3867,8 @@
       <item quantity="other"><xliff:g id="APP_NAMES">%s</xliff:g> atļauts pārtraukt</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"Vēl <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Lietotnes izņēmumi"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Visi paziņojumi"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Daži paziņojumi"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Paziņojumi, kas var traucēt"</string>
@@ -4940,15 +4945,6 @@
       <item quantity="one"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> lietotnei ir pilna piekļuve jūsu ierīcei</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> lietotnēm ir pilna piekļuve jūsu ierīcei</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"“<xliff:g id="APP_NAME">%1$s</xliff:g>” paziņojumu pārvaldība"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Nav ieteiktu lietojumprogrammu"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="zero"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> paziņojumu kanāli.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> paziņojumu kanāls.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> paziņojumu kanāli.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> paziņojumu kanāli. Pieskarieties, lai pārvaldītu visu."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Jūs nesen instalējāt šo lietotni."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Slēdža izeja"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Šobrīd saturs tiek atskaņots ierīcē <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (savienojums pārtraukts)"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 845b905..bba5d01 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -1187,10 +1187,8 @@
     <string name="auto_brightness_description" msgid="6807117118142381193">"Осветленоста на екранот ќе се приспособи автоматски на вашата околина и активностите. Може да го поместите лизгачот рачно за да ѝ помогнете на приспособливата осветленост да ги научи вашите желби."</string>
     <string name="display_white_balance_title" msgid="2624544323029364713">"Баланс на бела боја на екранот"</string>
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
-    <!-- no translation found for peak_refresh_rate_title (1878771412897140903) -->
-    <skip />
-    <!-- no translation found for peak_refresh_rate_summary (1527087897198455042) -->
-    <skip />
+    <string name="peak_refresh_rate_title" msgid="1878771412897140903">"Течен приказ"</string>
+    <string name="peak_refresh_rate_summary" msgid="1527087897198455042">"Автоматски ја зголемува зачестеноста на освежување од 60 на 90 Hz за некои содржини. Го зголемува користењето на батеријата."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Вклучен екран"</string>
     <string name="adaptive_sleep_summary_on" msgid="313187971631243800">"Вклучено/Екранот нема да се исклучи додека гледате во него"</string>
     <string name="adaptive_sleep_summary_off" msgid="5272156339202897523">"Исклучено"</string>
@@ -3485,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Ниеден разговор не може да биде во балонче"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Разговори"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Сите разговори може да прикажуваат балончиња, освен"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Дејства со повлекување"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Влечи надесно за да го отфрлам; налево за да го прикажам менито"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Влечи налево за да го отфрлам; надесно за да го прикажам менито"</string>
@@ -3504,14 +3506,10 @@
     <string name="lockscreen_bypass_summary" msgid="6688592486830491144">"Кога ќе се отклучи со лик, оди на последниот користен екран"</string>
     <string name="keywords_lockscreen_bypass" msgid="41035425468915498">"Заклучен екран, прескокни, заобиколи"</string>
     <string name="locked_work_profile_notification_title" msgid="279367321791301499">"При заклучен работен профил"</string>
-    <!-- no translation found for lock_screen_notifs_title (3412042692317304449) -->
-    <skip />
-    <!-- no translation found for lock_screen_notifs_show_all (1300418674456749664) -->
-    <skip />
-    <!-- no translation found for lock_screen_notifs_show_alerting (6584682657382684566) -->
-    <skip />
-    <!-- no translation found for lock_screen_notifs_show_none (1941044980403067101) -->
-    <skip />
+    <string name="lock_screen_notifs_title" msgid="3412042692317304449">"Известувања на заклучен екран"</string>
+    <string name="lock_screen_notifs_show_all" msgid="1300418674456749664">"Покажи разговори, стандардни и тивки"</string>
+    <string name="lock_screen_notifs_show_alerting" msgid="6584682657382684566">"Сокриј ги тивките разговори и нотификации"</string>
+    <string name="lock_screen_notifs_show_none" msgid="1941044980403067101">"Не покажувај какви било известувања"</string>
     <string name="lock_screen_notifs_redact" msgid="9024158855454642296">"Чувствителни известувања"</string>
     <string name="lock_screen_notifs_redact_summary" msgid="1395483766035470612">"Прикажувај чувствителни содржини кога е заклучен"</string>
     <string name="lock_screen_notifs_redact_work" msgid="3833920196569208430">"Чувствителни известувања на работниот профил"</string>
@@ -3535,8 +3533,7 @@
     <string name="conversations_category_title" msgid="5586541340846847798">"Разговори"</string>
     <string name="conversation_category_title" msgid="6777135786004214149">"Разговор"</string>
     <string name="conversation_section_switch_title" msgid="3332885377659473775">"Дел со разговори"</string>
-    <!-- no translation found for conversation_section_switch_summary (6123587625929439674) -->
-    <skip />
+    <string name="conversation_section_switch_summary" msgid="6123587625929439674">"Дозволи апликацијата да го користи делот за разговор"</string>
     <string name="demote_conversation_title" msgid="6355383023376508485">"Не е разговор"</string>
     <string name="demote_conversation_summary" msgid="4319929331165604112">"Отстрани од делот со разговори"</string>
     <string name="promote_conversation_title" msgid="4731148769888238722">"Ова е разговор"</string>
@@ -3567,22 +3564,16 @@
     <string name="notification_importance_high_title" msgid="394129291760607808">"Појави ги на екранот"</string>
     <string name="notification_block_title" msgid="7392909527700971673">"Блокирај"</string>
     <string name="notification_silence_title" msgid="4085829874452944989">"Тивко"</string>
-    <!-- no translation found for notification_alert_title (1632401211722199217) -->
-    <skip />
+    <string name="notification_alert_title" msgid="1632401211722199217">"Стандардно"</string>
     <string name="allow_interruption" msgid="5237201780159482716">"Дозволете прекини"</string>
     <string name="allow_interruption_summary" msgid="9044131663518112543">"Дозволете апликацијата да испушта звуци, да вибрира и/или пак, појавни известувања на екранот"</string>
     <string name="notification_priority_title" msgid="5554834239080425229">"Приоритет"</string>
-    <!-- no translation found for notification_channel_summary_priority (7225362351439076913) -->
-    <skip />
-    <!-- no translation found for convo_not_supported_summary (4285471045268268048) -->
-    <skip />
+    <string name="notification_channel_summary_priority" msgid="7225362351439076913">"Се појавува на горниот дел од секцијата на разговорот во вид на лебдечко меурче, покажувајќи ја профилната слика на заклучениот екран"</string>
+    <string name="convo_not_supported_summary" msgid="4285471045268268048">"<xliff:g id="APP_NAME">%1$s</xliff:g> не ги подржува повеќето одлики за разговор. Не можете да поставите разговор како приоритет и разговорите нема да се појавуваат во вид на лебдечки меурчиња."</string>
     <string name="notification_channel_summary_min" msgid="8823399508450176842">"Собери ги известувањата во еден ред во списокот со известувања"</string>
-    <!-- no translation found for notification_channel_summary_low (5549662596677692000) -->
-    <skip />
-    <!-- no translation found for notification_conversation_summary_low (6352818857388412326) -->
-    <skip />
-    <!-- no translation found for notification_channel_summary_default (3674057458265438896) -->
-    <skip />
+    <string name="notification_channel_summary_low" msgid="5549662596677692000">"Без звук или вибрации"</string>
+    <string name="notification_conversation_summary_low" msgid="6352818857388412326">"Без звук или вибрации и се појавува под делот за разговор"</string>
+    <string name="notification_channel_summary_default" msgid="3674057458265438896">"Може да ѕвони или вибрира во зависност од поставките на телефонот"</string>
     <string name="notification_channel_summary_high" msgid="3411637309360617621">"Кога уредот е отклучен, прикажувај ги известувањата како рекламен напис на горниот дел од екранот"</string>
     <string name="notification_switch_label" msgid="8029371325967501557">"Сите известувања на „<xliff:g id="APP_NAME">%1$s</xliff:g>“"</string>
     <string name="notification_app_switch_label" msgid="4422902423925084193">"Сите известувања за <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
@@ -3694,8 +3685,7 @@
     <string name="notification_show_lights_title" msgid="5564315979007438583">"Трепкај со сијаличката"</string>
     <string name="notification_vibrate_title" msgid="1422330728336623351">"Вибрации"</string>
     <string name="notification_channel_sound_title" msgid="9018031231387273476">"Звук"</string>
-    <!-- no translation found for notification_conversation_important (4365437037763608045) -->
-    <skip />
+    <string name="notification_conversation_important" msgid="4365437037763608045">"Приоритет"</string>
     <string name="notification_conversation_add_to_home" msgid="8136269431130231389">"Додајте во домот"</string>
     <string name="zen_mode_rule_delete_button" msgid="7642063606919058862">"Избриши"</string>
     <string name="zen_mode_rule_rename_button" msgid="4158377587795511144">"Преименувај"</string>
@@ -3819,7 +3809,8 @@
       <item quantity="other"><xliff:g id="APP_NAMES">%s</xliff:g> може да го прекинуваат</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"уште <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Исклучоци за апликации"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Сите известувања"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Некои известувања"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Известувања што може да прекинуваат"</string>
@@ -4864,14 +4855,6 @@
       <item quantity="one"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> апликација има целосен пристап до уредот</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> апликации имаат целосен пристап до уредот</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Управувајте со известувањата на <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Нема предложена апликација"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> канал за известување.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> канали за известување.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> канали за известување. Допрете за да управувате со сите."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Неодамна ја инсталиравте апликацијава."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Сменете го излезот"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Моментално се пушта на <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (исклучен)"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index d587121..1bd99bb 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"ഒന്നിനും ബബിൾ ചെയ്യാനാവില്ല"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"സംഭാഷണങ്ങൾ"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"ഇനിപ്പറയുന്നവ ഒഴികെയുള്ള എല്ലാ സംഭാഷണങ്ങൾക്കും ബബിൾ ചെയ്യാനാകും"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"സ്വൈപ്പ് പ്രവർത്തനങ്ങൾ"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"നിരസിക്കാൻ വലത്തോട്ടോ, മെനു കാണിക്കാൻ ഇടത്തോട്ടോ സ്വൈപ്പ് ചെയ്യുക"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"നിരസിക്കാൻ ഇടത്തോട്ടോ, മെനു കാണിക്കാൻ വലത്തോട്ടോ സ്വൈപ്പ് ചെയ്യുക"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> എന്നതിന് തടസ്സപ്പെടുത്താൻ കഴിയും</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> എണ്ണം കൂടി"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"ആപ്പ് ഒഴിവാക്കലുകൾ"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"എല്ലാ അറിയിപ്പുകളും"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"ചില അറിയിപ്പുകൾ"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"തടസ്സപ്പെടുത്താൻ കഴിയുന്ന അറിയിപ്പുകൾ"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other">നിങ്ങളുടെ ഉപകരണത്തിലേക്ക് <xliff:g id="SERVICE_COUNT">%1$d</xliff:g> ആപ്പുകൾക്ക് പൂർണ്ണ ആക്‌സസുണ്ട്</item>
       <item quantity="one">നിങ്ങളുടെ ഉപകരണത്തിലേക്ക് ഒരു ആപ്പിന് പൂർണ്ണ ആക്‌സസുണ്ട്</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"<xliff:g id="APP_NAME">%1$s</xliff:g> അറിയിപ്പുകൾ മാനേജ് ചെയ്യുക"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"നിർദ്ദേശിക്കപ്പെടുന്ന ആപ്പുകളൊന്നുമില്ല"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> അറിയിപ്പ് ചാനലുകൾ.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> അറിയിപ്പ് ചാനൽ.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> അറിയിപ്പ് ചാനലുകൾ. എല്ലാം മാനേജ് ചെയ്യാൻ ടാപ്പ് ചെയ്യുക."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"നിങ്ങൾ ഈ ആപ്പ് സമീപകാലത്ത് ഇൻസ്‌റ്റാൾ ചെയ്‌തതാണ്."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"ഔട്ട്പുട്ട് മാറുക"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"നിലവിൽ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> എന്ന ഉപകരണത്തിൽ പ്ലേ ചെയ്യുന്നു"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (വിച്ഛേദിച്ചു)"</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 2a7016e..ecfff0b 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Юуг ч бөмбөлөг болгох боломжгүй"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Харилцан яриа"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Дараахаас бусад тохиолдолд бүх харилцан яриаг бөмбөлөг болгох боломжтой"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Шудрах үйлдлүүд"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Хаахын тулд баруун, цэс харуулахын тулд зүүн тийш шударна уу"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Хаахын тулд зүүн тийш, цэс харуулахын тулд баруун тийш шударна уу"</string>
@@ -3803,7 +3807,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> нь тасалдуулах боломжтой</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"Бусад <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Аппын үл хамаарах зүйлс"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Бүх мэдэгдэл"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Зарим мэдэгдэл"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Тасалдуулах боломжтой мэдэгдэл"</string>
@@ -4848,14 +4853,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> апп таны төхөөрөмжид бүрэн хандах эрхтэй байна</item>
       <item quantity="one">1 апп таны төхөөрөмжид бүрэн хандах эрхтэй байна</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"<xliff:g id="APP_NAME">%1$s</xliff:g>-н мэдэгдлийг удирдах"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Санал болгосон апп алга"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other">Мэдэгдлийн <xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> суваг байна.</item>
-      <item quantity="one">Мэдэгдлийн <xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> суваг байна.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"Мэдэгдлийн <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> суваг байна. Бүгдийг нь удирдахын тулд товшино уу."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Та саяхан энэ аппыг суулгасан байна."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Гаралтыг сэлгэх"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Одоогоор <xliff:g id="DEVICE_NAME">%1$s</xliff:g> дээр тоглуулж байна"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (салгасан)"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 72b13de..0ae574a 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -3484,6 +3484,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"काहीही बबल केले जाऊ शकत नाही"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"संभाषणे"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"याव्यतिरिक्त सर्व संभाषणे बबल केली जाऊ शकतात"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"स्वाइप क्रिया"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"डिसमिस करण्यासाठी उजवीकडे, मेनू दाखवण्यासाठी डावीकडे स्वाइप करा"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"डिसमिस करण्यासाठी डावीकडे, मेनू दाखवण्यासाठी उजवीकडे स्वाइप करा"</string>
@@ -3806,7 +3810,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> व्यत्यय आणू शकते</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"आणखी <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"अ‍ॅप अपवाद"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"सर्व सूचना"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"काही सूचना"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"व्यत्यय आणणाऱ्या सूचना"</string>
@@ -4851,14 +4856,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> अ‍ॅप्सना तुमच्या डिव्हाइसचा पूर्ण अ‍ॅक्सेस आहे</item>
       <item quantity="one">एका अ‍ॅपला तुमच्या डिव्हाइसचा पूर्ण अ‍ॅक्सेस आहे</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"<xliff:g id="APP_NAME">%1$s</xliff:g> सूचना व्यवस्थापित करा"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"सुचवलेले अ‍ॅप्लिकेशन नाही"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> सूचना चॅनेल.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> सूचना चॅनेल.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> सूचना चॅनेल. सर्व व्यवस्थापित करण्यासाठी टॅप करा."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"तुम्ही हे अ‍ॅप नुकतेच इंस्टॉल केले."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"आउटपुट स्विच करा"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"सध्या <xliff:g id="DEVICE_NAME">%1$s</xliff:g> वर प्ले करत आहे"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (डिस्कनेक्ट केलेले)"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index c9d5e5c..4e415a4 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Tiada apa-apa yang boleh dijadikan gelembung"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Perbualan"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Semua perbualan boleh dijadikan gelembung, kecuali"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Tindakan leret"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Leret ke kanan untuk mengetepikan, ke kiri untuk menunjukkan menu"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Leret ke kiri untuk mengetepikan, ke kanan untuk menunjukkan menu"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> boleh ganggu</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> lagi"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Pengecualian apl"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Semua pemberitahuan"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Sesetengah pemberitahuan"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Pemberitahuan yang boleh ganggu"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> apl mempunyai akses penuh kepada peranti anda</item>
       <item quantity="one">1 apl mempunyai akses penuh kepada peranti anda</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Urus pemberitahuan <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Tiada aplikasi yang dicadangkan"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> saluran pemberitahuan.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> saluran pemberitahuan.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> saluran pemberitahuan. Ketik untuk mengurus semua."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Anda memasang apl ini baru-baru ini."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Tukar output"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Sedang dimainkan pada <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (diputuskan sambungan)"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index e8fb389..027821e 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"ဘာကိုမှ ပူဖောင်းကွက်ဖွင့်၍ မရပါ"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"စကားဝိုင်းများ"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"အောက်ပါတို့မှလွဲ၍ စကားဝိုင်းအားလုံး ပူဖောင်းကွက်ဖွင့်နိုင်သည်−"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"ပွတ်ဆွဲ လုပ်ဆောင်ချက်များ"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"ပယ်ရန် ညာသို့၊ မီနူးပြရန် ဘယ်သို့ ပွတ်ဆွဲပါ"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"ပယ်ရန် ဘယ်သို့၊ မီနူးပြရန် ညာသို့ ပွတ်ဆွဲပါ"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> က ကြားဖြတ်နိုင်သည်</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"နောက်ထပ် <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"အက်ပ်ခြွင်းချက်များ"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"အကြောင်းကြားချက် အားလုံး"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"အချို့ အကြောင်းကြားချက်များ"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"ကြားဖြတ်နိုင်သည့် အကြောင်းကြားချက်များ"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other">အက်ပ် <xliff:g id="SERVICE_COUNT">%1$d</xliff:g> ခုသည် သင့်ကိရိယာကို အပြည့်အဝ အသုံးပြုခွင့်ရှိသည်</item>
       <item quantity="one">အက်ပ် ၁ ခု သည် သင့်ကိရိယာကို အပြည့်အဝ အသုံးပြုခွင့်ရှိသည်</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"<xliff:g id="APP_NAME">%1$s</xliff:g> အကြောင်းကြားချက်များကို စီမံပါ"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"အကြံပြုထားသော အပလီကေးရှင်းများ မရှိပါ"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other">အကြောင်းကြားချက် ချန်နယ် <xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> ခု။</item>
-      <item quantity="one">အကြောင်းကြားချက် ချန်နယ် <xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> ခု။</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"အကြောင်းကြားချက် ချန်နယ် <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ခု။ အားလုံးကို စီမံရန် တို့ပါ။"</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"ဤအက်ပ်ကို မကြာသေးမီက ထည့်သွင်းထားသည်။"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"မီဒီယာအထွက် ပြောင်းပါ"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ပေါ်တွင် လက်ရှိ ဖွင့်နေသည်"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (ချိတ်ဆက်မထားပါ)"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 72b724f..eab154d 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Ingenting kan lage bobler"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Samtaler"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Alle samtaler kan vises i bobler, unntatt"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Sveipehandlinger"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Sveip til høyre for å avvise eller til venstre for å vise menyen"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Sveip til venstre for å avvise eller til høyre for å vise menyen"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> kan forstyrre</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> flere"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Appunntak"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Alle varsler"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Noen varsler"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Varsler som kan forstyrre"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> apper har full tilgang til enheten din</item>
       <item quantity="one">1 app har full tilgang til enheten din</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Administrer <xliff:g id="APP_NAME">%1$s</xliff:g>-varsler"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Ingen foreslåtte apper"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> varselkanaler.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> varselkanal.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> varselkanaler. Trykk for å administrere alle."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Du har nylig installert denne appen."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Bytt utenhet"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Spiller nå av på <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (frakoblet)"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 564a0f3..9bbb203 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"कुनै पनि वार्तालाप बबलमा देखाउन नदिनुहोस्"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"वार्तालापहरू"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"निम्नबाहेकका सबै वार्तालापहरू बबलको रूपमा देखिन सक्छन्"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"कारबाहीहरू स्वाइप गर्नुहोस्"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"खारेज गर्न दायाँतिर र मेनु देखाउन बायाँतिर स्वाइप गर्नुहोस्"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"खारेज गर्न बायाँतिर र मेनु देखाउन दायाँतिर स्वाइप गर्नुहोस्"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> ले अवरोध गर्न सक्छ</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"थप <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"यो सेटिङ लागू हुने एप"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"सबै सूचनाहरू"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"केही सूचनाहरू"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"अवरोध गर्न सक्ने सूचनाहरू"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> एपहरूले तपाईंको यन्त्रमाथि पूर्ण रूपमा पहुँच राख्न सक्छन्</item>
       <item quantity="one">१ अनुप्रयोगले तपाईंको यन्त्रमाथि पूर्ण रूपमा पहुँच राख्न सक्छ</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"<xliff:g id="APP_NAME">%1$s</xliff:g> सम्बन्धी सूचनाहरूको व्यवस्थापन गर्नुहोस्"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"सिफारिस गरिएको कुनै पनि एप छैन"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other">सूचनाका <xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> च्यानलहरू।</item>
-      <item quantity="one">सूचनाको <xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> च्यानल।</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"सूचनाका <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> च्यानलहरू। सबैको व्यवस्थापन गर्न ट्याप गर्नुहोस्।"</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"तपाईंले हालसालै यो एप स्थापना गर्नुभयो।"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"आउटपुट बदल्नुहोस्"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"हाल <xliff:g id="DEVICE_NAME">%1$s</xliff:g> मा प्ले भइरहेको"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (विच्छेद गरिएको)"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 00a885c..df7d86c 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Niets kan als bubbel worden weergegeven"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Gesprekken"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Alle gesprekken kunnen als bubbel worden weergegeven, behalve"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Veegacties"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Veeg naar rechts om te sluiten of naar links voor het menu"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Veeg naar links om te sluiten of naar rechts voor het menu"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> mag onderbreken</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"en nog <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"App-uitzonderingen"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Alle meldingen"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Bepaalde meldingen"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Meldingen die mogen onderbreken"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> apps hebben volledige toegang tot je apparaat</item>
       <item quantity="one">1 app heeft volledige toegang tot je apparaat</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Meldingen van <xliff:g id="APP_NAME">%1$s</xliff:g> beheren"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Geen voorgestelde app"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> meldingskanalen.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> meldingskanaal.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> meldingskanalen. Tik om alle kanalen te beheren."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Je hebt deze app recent geïnstalleerd."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Uitvoer wijzigen"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Wordt momenteel afgespeeld op <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (verbinding verbroken)"</string>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index f993648..2c7029a 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -3301,13 +3301,13 @@
     <string name="vibrate_when_ringing_option_always_vibrate" msgid="968652667232075466">"ସର୍ବଦା ଭାଇବ୍ରେଟ୍ ହେବ"</string>
     <string name="vibrate_when_ringing_option_ramping_ringer" msgid="2798848945803840348">"ପ୍ରଥମେ ଭାଇବ୍ରେଟ୍ ହେବାପରେ ଧୀରେ ଧୀରେ ରିଙ୍ଗ୍ ହେବ"</string>
     <string name="other_sound_settings" msgid="5468360269346162072">"ଅନ୍ୟାନ୍ୟ ଶବ୍ଦ"</string>
-    <string name="dial_pad_tones_title" msgid="3536945335367914892">"ଡାୟଲ୍‌ ପ୍ୟାଡ୍‌ ଟୋନ୍‍"</string>
+    <string name="dial_pad_tones_title" msgid="3536945335367914892">"ଡାଏଲ୍‌ ପ୍ୟାଡ୍‌ ଟୋନ୍‍"</string>
     <string name="screen_locking_sounds_title" msgid="5695030983872787321">"ସ୍କ୍ରିନ୍ ଲକ୍ କରିବା ସାଉଣ୍ଡ"</string>
     <string name="charging_sounds_title" msgid="5261683808537783668">"ସାଉଣ୍ଡ ଓ ଭାଇବ୍ରେସନ୍ ଚାର୍ଜ ହେଉଛି"</string>
     <string name="docking_sounds_title" msgid="5341616179210436159">"ଡକ୍‌ କରିବା ଧ୍ୱନୀ"</string>
     <string name="touch_sounds_title" msgid="2200734041857425078">"ସ୍ପର୍ଶ ଶବ୍ଦ"</string>
-    <string name="vibrate_on_touch_title" msgid="9105544449810547716">"ସ୍ପର୍ଶଜନିତ ଭାଇବ୍ରେଶନ୍"</string>
-    <string name="vibrate_on_touch_summary" msgid="664831333409399440">"ଟ୍ୟାପ୍‌, କୀ-ବୋର୍ଡ ଓ ଆହୁରି ଅଧିକ ପାଇଁ ସ୍ପର୍ଶ ମାଧ୍ୟମରେ ମତାମତ"</string>
+    <string name="vibrate_on_touch_title" msgid="9105544449810547716">"ସ୍ପର୍ଶ ଭାଇବ୍ରେସନ୍"</string>
+    <string name="vibrate_on_touch_summary" msgid="664831333409399440">"ଟ୍ୟାପ୍‌, କୀ-ବୋର୍ଡ ଓ ଆହୁରି ଅଧିକ ପାଇଁ ହେପଟିକ୍ ମତାମତ"</string>
     <string name="dock_audio_media_title" msgid="6474579339356398330">"ଡକ୍‌ ସ୍ପିକର୍‌ ବାଜିବ"</string>
     <string name="dock_audio_media_disabled" msgid="8499927008999532341">"ସମସ୍ତ ଅଡିଓ"</string>
     <string name="dock_audio_media_enabled" msgid="4039126523653131281">"କେବଳ ମିଡିଆ ଅଡିଓ"</string>
@@ -3437,7 +3437,7 @@
     <string name="ringtones_install_custom_sound_title" msgid="3885712267015760638">"କଷ୍ଟମ୍‌ ସାଉଣ୍ଡ ଯୋଡ଼ିବେ?"</string>
     <string name="ringtones_install_custom_sound_content" msgid="5844996763705884979">"<xliff:g id="FOLDER_NAME">%s</xliff:g> ଫୋଲ୍ଡର୍‌କୁ ଏହି ଫାଇଲ୍‌ କପୀ କରାଯିବ"</string>
     <string name="ringtones_category_preference_title" msgid="26680768777533727">"ରିଙ୍ଗଟୋନ୍‌"</string>
-    <string name="other_sound_category_preference_title" msgid="8182757473602586634">"ଅନ୍ୟାନ୍ୟ ସାଉଣ୍ଡ ଓ ଭାଇବ୍ରେଶନ୍"</string>
+    <string name="other_sound_category_preference_title" msgid="8182757473602586634">"ଅନ୍ୟ ସାଉଣ୍ଡ ଓ ଭାଇବ୍ରେସନ୍"</string>
     <string name="configure_notification_settings" msgid="1492820231694314376">"ବିଜ୍ଞପ୍ତି"</string>
     <string name="recent_notifications" msgid="1105631022180160436">"କିଛି ସମୟ ପୂର୍ବରୁ ବିଜ୍ଞପ୍ତି ପଠାଇଥିବା ଆପ୍"</string>
     <string name="recent_notifications_see_all_title" msgid="3087299996651692987">"ବିଗତ 7 ଦିନର ସବୁକୁ ଦେଖନ୍ତୁ"</string>
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"କିଛି ବବଲ୍ ହୋଇପାରିବ ନାହିଁ"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"ବାର୍ତ୍ତାଳାପଗୁଡ଼ିକ"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"ଏଗୁଡ଼ିକ ବ୍ୟତୀତ ସମସ୍ତ ବାର୍ତ୍ତାଳାପ ବବଲ୍ ହୋଇପାରିବ"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"ସ୍ୱାଇପ୍ କାର୍ଯ୍ୟ"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"ଖାରଜ କରିବାକୁ ଡାହାଣକୁ, ମେନୁ ଦେଖାଇବାକୁ ବାମକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"ଖାରଜ କରିବାକୁ ବାମକୁ, ମେନୁ ଦେଖାଇବାକୁ ଡାହାଣକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ"</string>
@@ -3671,7 +3675,7 @@
     <string name="notification_badge_title" msgid="6854537463548411313">"ବିଜ୍ଞପ୍ତି ଡଟ୍‌ର ଅନୁମତି ଦିଅନ୍ତୁ"</string>
     <string name="notification_channel_badge_title" msgid="6505542437385640049">"ବିଜ୍ଞପ୍ତି ଡଟ୍‌ ଦେଖାନ୍ତୁ"</string>
     <string name="app_notification_override_dnd_title" msgid="3769539356442226691">"ବିରକ୍ତ କରନାହିଁ ଓଭରରାଇଡ"</string>
-    <string name="app_notification_override_dnd_summary" msgid="4894641191397562920">"’ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ’ ଅନ୍ ଥିବାବେଳେ ଏହି ବିଜ୍ଞପ୍ତିର ବାଧା ଦେବା ପ୍ରକ୍ରିୟାକୁ ଜାରି ରଖନ୍ତୁ"</string>
+    <string name="app_notification_override_dnd_summary" msgid="4894641191397562920">"\'ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ\' ଚାଲୁଥିବା ବେଳେ ଏହି ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକର ବାଧା ଦେବା ପ୍ରକ୍ରିୟାକୁ ଜାରି ରଖନ୍ତୁ"</string>
     <string name="app_notification_visibility_override_title" msgid="7778628150022065920">"ଲକ୍ ସ୍କ୍ରିନ୍"</string>
     <string name="app_notification_row_banned" msgid="4513523107019706924">"ଅବରୋଧିତ"</string>
     <string name="app_notification_row_priority" msgid="8100777138078316446">"ପ୍ରାଥମିକତା"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> ବାଧା ଉପୁଯାଇପାରେ</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g>ଟି ଅଧିକ"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"ଆପ୍‍ର ବ୍ୟତିକ୍ରମ"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"ସମସ୍ତ ବିଜ୍ଞପ୍ତି"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"କିଛି ବିଜ୍ଞପ୍ତି"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"ବାଧା ସୃଷ୍ଟି କରିପାରୁଥିବା ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ"</string>
@@ -4673,7 +4678,7 @@
     <string name="prevent_ringing_option_mute" msgid="7446121133560945051">"ମ୍ୟୁଟ୍"</string>
     <string name="prevent_ringing_option_none" msgid="7776676007180834163">"କିଛି କରନ୍ତୁ ନାହିଁ"</string>
     <string name="prevent_ringing_option_vibrate_summary" msgid="5649569082721304741">"ଚାଲୁ (ଭାଇବ୍ରେଟ୍)"</string>
-    <string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"(ମ୍ୟୁଟ୍) ଅନ୍ ଅଛି"</string>
+    <string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"ଚାଲୁ (ମ୍ୟୁଟ୍)"</string>
     <string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"ବନ୍ଦ"</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"ନେଟୱାର୍କ୍‌ ବିବରଣୀ"</string>
     <string name="about_phone_device_name_warning" msgid="764557372426153827">"ଆପଣଙ୍କ ଡିଭାଇସ୍‌ରେ ଥିବା ଆପ୍‌ଗୁଡ଼ିକୁ ଆପଣଙ୍କର ଡିଭାଇସ୍‍ ନାମ ଦେଖାଯାଉଛି। ବ୍ଲୁଟୂଥ୍‍ ଡିଭାଇସ୍‍ ସହ ଯୋଡ଼ି ହେବାବେଳେ କିମ୍ୱା ଏକ ୱାଇ-ଫାଇ ହଟସ୍ପଟ୍ ସେଟ୍ କରିବା ସମୟରେ, ଏହା ଅନ୍ୟ ଲୋକମାନଙ୍କୁ ମଧ୍ୟ ଦେଖାଦେଇପାରେ।"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> ଟି ଆପ୍‌ର ଆପଣଙ୍କର ଡିଭାଇସ୍‌କୁ ସମ୍ପୂର୍ଣ୍ଣ ଆକ୍ସେସ୍‌ ଅଛି</item>
       <item quantity="one">1ଟି ଆପ୍‌ର ଆପଣଙ୍କର ଡିଭାଇସ୍‌କୁ ସମ୍ପୂର୍ଣ୍ଣ ଆକ୍ସେସ୍‌ ଅଛି</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"<xliff:g id="APP_NAME">%1$s</xliff:g> ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ପରିଚାଳନା କରନ୍ତୁ"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"କୌଣସି ପ୍ରସ୍ତାବିତ ଆପ୍ଲିକେସନ୍ ନାହିଁ"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g>ଟି ବିଜ୍ଞପ୍ତି ଚ୍ୟାନେଲ୍।</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g>ଟି ବିଜ୍ଞପ୍ତି ଚ୍ୟାନେଲ୍।</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>ଟି ବିଜ୍ଞପ୍ତି ଚ୍ୟାନେଲ୍। ସବୁ ପରିଚାଳନା କରିବାକୁ ଟାପ୍ କରନ୍ତୁ।"</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"ଆପଣ ସମ୍ପ୍ରତ୍ତି ଏହି ଆପ୍‌କୁ ଇନ୍‌ଷ୍ଟଲ୍ କରିଛନ୍ତି।"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"ଆଉଟ୍‌ପୁଟ୍ ସ୍ବିଚ୍ କରନ୍ତୁ"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"ବର୍ତ୍ତମାନ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>ରେ ଚାଲୁଛି"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (ବିଚ୍ଛିନ୍ନ କରାଯାଇଛି)"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index a0371ab..c626b29 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"ਕਿਸੇ ਗੱਲਬਾਤ \'ਤੇ ਬੁਲਬੁਲੇ ਨਹੀਂ ਲਾਏ ਜਾ ਸਕਦੇ"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"ਗੱਲਾਂਬਾਤਾਂ"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"ਇਸ ਨੂੰ ਛੱਡ ਕੇ ਸਾਰੀਆਂ ਗੱਲਾਂਬਾਤਾਂ \'ਤੇ ਬਬਲ ਲਾਏ ਜਾ ਸਕਦੇ ਹਨ"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"ਸਵਾਈਪ ਕਾਰਵਾਈਆਂ"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"ਖਾਰਜ ਕਰਨ ਲਈ ਸੱਜੇ ਪਾਸੇ, ਮੀਨੂ ਦਿਖਾਉਣ ਲਈ ਖੱਬੇ ਪਾਸੇ ਸਵਾਈਪ ਕਰੋ"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"ਖਾਰਜ ਕਰਨ ਲਈ ਖੱਬੇ ਪਾਸੇ, ਮੀਨੂ ਦਿਖਾਉਣ ਲਈ ਸੱਜੇ ਪਾਸੇ ਸਵਾਈਪ ਕਰੋ"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="other"><xliff:g id="APP_NAMES">%s</xliff:g> ਕਰਕੇ ਵਿਘਨ ਪੈ ਸਕਦਾ ਹੈ</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> ਹੋਰ"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"ਐਪ ਅਪਵਾਦ"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"ਸਭ ਸੂਚਨਾਵਾਂ"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"ਕੁਝ ਸੂਚਨਾਵਾਂ"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"ਸੂਚਨਾਵਾਂ ਜੋ ਵਿਘਨ ਪਾ ਸਕਦੀਆਂ ਹਨ"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="one"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> ਐਪ ਕੋਲ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਤੱਕ ਪੂਰੀ ਪਹੁੰਚ ਹੈ</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> ਐਪਾਂ ਕੋਲ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਤੱਕ ਪੂਰੀ ਪਹੁੰਚ ਹੈ</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਸੰਬੰਧੀ ਸੂਚਨਾਵਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"ਸੁਝਾਈ ਗਈ ਕੋਈ ਐਪਲੀਕੇਸ਼ਨ ਨਹੀਂ"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> ਸੂਚਨਾ ਚੈਨਲ।</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> ਸੂਚਨਾ ਚੈਨਲ।</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ਸੂਚਨਾ ਚੈਨਲ। ਸਭ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ।"</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"ਤੁਸੀਂ ਇਹ ਐਪ ਹਾਲ ਹੀ ਵਿੱਚ ਸਥਾਪਤ ਕੀਤੀ।"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"ਆਊਟਪੁੱਟ ਬਦਲੋ"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"ਫਿਲਹਾਲ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> \'ਤੇ ਚੱਲ ਰਿਹਾ ਹੈ"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (ਡਿਸਕਨੈਕਟ ਹੋਇਆ)"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index a66953d..401750e 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -3575,6 +3575,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Nic nie może być wyświetlane jako dymki"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Rozmowy"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Jako dymki mogą wyświetlać się wszystkie rozmowy oprócz"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Działania przesuwania"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Przesuń w prawo, by zamknąć, i w lewo, by wyświetlić menu"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Przesuń w lewo, by zamknąć, i w prawo, by wyświetlić menu"</string>
@@ -3921,7 +3925,8 @@
       <item quantity="one">Aplikacja <xliff:g id="APP_NAME_0">%s</xliff:g> może ignorować tryb Nie przeszkadzać</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"Jeszcze <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Aplikacje z wyjątkiem"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Wszystkie powiadomienia"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Kilka powiadomień"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Które powiadomienia mogą ignorować tryb Nie przeszkadzać"</string>
@@ -5030,16 +5035,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> aplikacji ma pełny dostęp do urządzenia</item>
       <item quantity="one">1 aplikacja ma pełny dostęp do urządzenia</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Zarządzaj powiadomieniami aplikacji <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Brak proponowanych aplikacji"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="few"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> kanały powiadomień.</item>
-      <item quantity="many"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> kanałów powiadomień.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> kanału powiadomień.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> kanał powiadomień.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"Liczba kanałów powiadomień: <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Kliknij, by zarządzać wszystkimi."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Ta aplikacja była ostatnio przez Ciebie instalowana."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Przełącz urządzenie wyjściowe"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Aktualnie odtwarzane na urządzeniu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (rozłączono)"</string>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 5da0bac..d47900e 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Nada pode gerar balões"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Conversas"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Todas as conversas podem aparecer como balões, exceto"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Ações de deslizar"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Deslize para a direita para dispensar e para esquerda para mostrar o menu"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Deslize para esquerda para dispensar ou para direita para mostrar o menu"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="other"><xliff:g id="APP_NAMES">%s</xliff:g> podem interromper</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"mais <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Exceções de apps"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Todas as notificações"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Algumas notificações"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Notificações que podem interromper"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="one"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> app com acesso total ao seu dispositivo</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> apps com acesso total ao seu dispositivo</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Gerenciar notificações do <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Nenhum aplicativo sugerido"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> canal de notificação.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> canais de notificação.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canais de notificação. Toque para gerenciar todos."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Você instalou este app recentemente."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Alterar saída"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Tocando atualmente no <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (desconectado)"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 1049a83..ed058ee 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Nada pode aparecer em balões"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Conversas"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Todas as conversas podem aparecer em balões, exceto"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Ações de deslize rápido com o dedo"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Deslize rapidamente para a direita para ignorar ou para a esquerda para mostrar o menu."</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Deslize rapidamente para a esquerda para ignorar ou para a direita para mostrar o menu."</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one">A app <xliff:g id="APP_NAME_0">%s</xliff:g> pode interromper.</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"Mais <xliff:g id="NUMBER">%d</xliff:g>."</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Exceções de apps"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Todas as notificações"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Algumas notificações"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Notificações que podem interromper"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> aplicações têm acesso total ao seu dispositivo.</item>
       <item quantity="one">1 aplicação tem acesso total ao seu dispositivo.</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Gerir notificações de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Nenhuma aplicação sugerida"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> canais de notificações.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> canal de notificações.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canais de notificações. Toque para gerir tudo."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Instalou recentemente esta aplicação."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Saída do interruptor"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"A reproduzir atualmente no dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>…"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (desligado)"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 5da0bac..d47900e 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Nada pode gerar balões"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Conversas"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Todas as conversas podem aparecer como balões, exceto"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Ações de deslizar"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Deslize para a direita para dispensar e para esquerda para mostrar o menu"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Deslize para esquerda para dispensar ou para direita para mostrar o menu"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="other"><xliff:g id="APP_NAMES">%s</xliff:g> podem interromper</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"mais <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Exceções de apps"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Todas as notificações"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Algumas notificações"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Notificações que podem interromper"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="one"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> app com acesso total ao seu dispositivo</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> apps com acesso total ao seu dispositivo</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Gerenciar notificações do <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Nenhum aplicativo sugerido"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> canal de notificação.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> canais de notificação.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canais de notificação. Toque para gerenciar todos."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Você instalou este app recentemente."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Alterar saída"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Tocando atualmente no <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (desconectado)"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index b3de0dd..a8443a4 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -3529,6 +3529,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Nimic nu poate apărea în balon"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Conversații"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Toate conversațiile pot apărea în balon, mai puțin"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Acțiuni de glisare"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Glisați la dreapta pentru a respinge și la stânga pentru a afișa meniul"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Glisați la stânga pentru a respinge și la dreapta pentru a afișa meniul"</string>
@@ -3863,7 +3867,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> îl poate întrerupe</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"Încă <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Excepții de aplicații"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Toate notificările"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Anumite notificări"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Notificări care îl pot întrerupe"</string>
@@ -4940,15 +4945,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> de aplicații au acces complet la dispozitivul dvs.</item>
       <item quantity="one">O aplicație are acces complet la dispozitivul dvs.</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Gestionați notificările aplicației <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Nu există nicio aplicație sugerată"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="few"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> canale de notificare.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> de canale de notificare.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> canal de notificare.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canale de notificare. Atingeți ca să le gestionați pe toate."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Ați instalat recent această aplicație."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Schimbați rezultatul"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Se redă acum pe <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (s-a deconectat)"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index cde73b8..0692a97 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -3575,6 +3575,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Запретить все всплывающие уведомления"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Разговоры"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Для этих разговоров не будут появляться всплывающие чаты"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Жесты пролистывания"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Проведите вправо, чтобы закрыть уведомление, или влево, чтобы открыть меню"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Проведите  влево, чтобы закрыть уведомление, или вправо, чтобы открыть меню"</string>
@@ -3921,7 +3925,8 @@
       <item quantity="other">Режим \"Не беспокоить\" не действует для следующих приложений: <xliff:g id="APP_NAMES">%s</xliff:g></item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"ещё <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Исключения для приложений"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Все уведомления"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Некоторые уведомления"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Уведомления, для которых не действует режим \"Не беспокоить\""</string>
@@ -5030,16 +5035,6 @@
       <item quantity="many">У <xliff:g id="SERVICE_COUNT">%1$d</xliff:g> приложений есть полный доступ к вашему устройству.</item>
       <item quantity="other">У <xliff:g id="SERVICE_COUNT">%1$d</xliff:g> приложения есть полный доступ к вашему устройству.</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Настройка уведомлений для приложения \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Нет рекомендуемых приложений"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> канал уведомлений.</item>
-      <item quantity="few"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> канала уведомлений.</item>
-      <item quantity="many"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> каналов уведомлений.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> канала уведомлений.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"Количество каналов уведомлений: <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Нажмите, чтобы перейти к настройкам всех каналов."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Вы недавно установили это приложение."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Смена устройства аудиовыхода"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Воспроизводится на устройстве \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (отключено)"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 14bb667..dd282dd 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"කිසිවකට බුබුලු දැමිය නොහැකිය"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"සංවාද"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"මේවා හැර සියලු සංවාද බුබුළු දැමිය හැකිය"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"ස්වයිප් ක්‍රියා"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"අස් කිරීමට දකුණට, සහ මෙනුව පෙන්වීමට වමට ස්වයිප් කරන්න"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"අස් කිරීමට වමට, සහ මෙනුව පෙන්වීමට දකුණට ස්වයිප් කරන්න"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="other"><xliff:g id="APP_NAMES">%s</xliff:g>වලට බාධා කළ හැකිය</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"තව <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"යෙදුම් ව්‍යතිරේක"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"සියලු දැනුම් දීම්"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"සමහර දැනුම් දීම්"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"බාධා කළ නොහැකි දැනුම් දීම්"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="one">යෙදුම් <xliff:g id="SERVICE_COUNT">%1$d</xliff:g>කට ඔබේ උපාංගය වෙත පූර්ණ ප්‍රවේශය තිබේ</item>
       <item quantity="other">යෙදුම් <xliff:g id="SERVICE_COUNT">%1$d</xliff:g>කට ඔබේ උපාංගය වෙත පූර්ණ ප්‍රවේශය තිබේ</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"<xliff:g id="APP_NAME">%1$s</xliff:g> දැනුම්දීම් කළමනා කරන්න"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"යෝජිත යෙදුම් නැත"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one">දැනුම්දීම් නාලිකා <xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g>ක්.</item>
-      <item quantity="other">දැනුම්දීම් නාලිකා <xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g>ක්.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"දැනුම්දීම් නාලිකා <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>ක්. සියල්ල කළමනා කිරීමට තට්ටු කරන්න."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"ඔබ මෑතකදී මෙම යෙදුම ස්ථාපිත කළා."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"ප්‍රතිදාන මාරු කරන්න"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"දැනට <xliff:g id="DEVICE_NAME">%1$s</xliff:g> මත වාදන කෙරෙන"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (විසන්ධි විය)"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 435d60a..e6d3ae5 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -3575,6 +3575,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Nič sa nemôže zobrazovať ako bublina"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Konverzácie"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Všetky konverzácie sa môžu zobrazovať v bublinách okrem"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Akcie po potiahnutí"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Doprava: zavrieť, doľava: zobraziť ponuku"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Doľava: zavrieť, doprava: zobraziť ponuku"</string>
@@ -3921,7 +3925,8 @@
       <item quantity="one">Aplikácia <xliff:g id="APP_NAME_0">%s</xliff:g> môže vyrušiť</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"ďalšie (<xliff:g id="NUMBER">%d</xliff:g>)"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Výnimky pre aplikácie"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Všetky upozornenia"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Niektoré upozornenia"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Upozornenia, ktoré môžu vyrušiť"</string>
@@ -5030,16 +5035,6 @@
       <item quantity="other">Do vášho zariadenia má prístup <xliff:g id="SERVICE_COUNT">%1$d</xliff:g> aplikácií</item>
       <item quantity="one">Do vášho zariadenia má prístup 1 aplikácia</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Správa upozornení aplikácie <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Žiadna navrhovaná aplikácia"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="few"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> kanály upozornení.</item>
-      <item quantity="many"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> notification channels.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> kanálov upozornení.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> kanál upozornení.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"Počet kanálov upozornení: <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Klepnutím môžete spravovať všetky."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Túto aplikáciu ste nainštalovali nedávno."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Prepnutie výstupu"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Momentálne sa prehráva v zariadení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (odpojené)"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 892f0be..fb67b59 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -3377,7 +3377,7 @@
     <string name="alarm_volume_option_title" msgid="6398641749273697140">"Glasnost alarma"</string>
     <string name="ring_volume_option_title" msgid="1520802026403038560">"Glasnost zvonjenja in obvestil"</string>
     <string name="notification_volume_option_title" msgid="4838818791683615978">"Glasnost obvestila"</string>
-    <string name="ringtone_title" msgid="3271453110387368088">"Melodija zvonjenja telefona"</string>
+    <string name="ringtone_title" msgid="3271453110387368088">"Ton zvonjenja telefona"</string>
     <string name="notification_ringtone_title" msgid="6924501621312095512">"Privzeti zvok obvestila"</string>
     <string name="notification_unknown_sound_title" msgid="1319708450698738980">"Zvok iz aplikacije"</string>
     <string name="notification_sound_default" msgid="8630353701915294299">"Privzeti zvok obvestila"</string>
@@ -3389,7 +3389,7 @@
     <string name="other_sound_settings" msgid="5468360269346162072">"Drugi zvoki"</string>
     <string name="dial_pad_tones_title" msgid="3536945335367914892">"Toni tipkovnice"</string>
     <string name="screen_locking_sounds_title" msgid="5695030983872787321">"Zvok ob zaklepanju zaslona"</string>
-    <string name="charging_sounds_title" msgid="5261683808537783668">"Zvoki in vibrir. ob polnjenju"</string>
+    <string name="charging_sounds_title" msgid="5261683808537783668">"Zvoki in vibriranje ob polnjenju"</string>
     <string name="docking_sounds_title" msgid="5341616179210436159">"Zvok ob odlaganju v nosilec"</string>
     <string name="touch_sounds_title" msgid="2200734041857425078">"Zvoki dotikov"</string>
     <string name="vibrate_on_touch_title" msgid="9105544449810547716">"Vibriranje ob dotiku"</string>
@@ -3575,6 +3575,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Nič ne sme biti prikazano v oblačkih"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Pogovori"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Vsi pogovori so lahko prikazani v oblačkih razen"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Dejanja vlečenja"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Povlecite desno za opustitev ali levo za prikaz menija"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Povlecite levo za opustitev ali desno za prikaz menija"</string>
@@ -3921,7 +3925,8 @@
       <item quantity="other">Preglasitev dovoljena za: <xliff:g id="APP_NAMES">%s</xliff:g></item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"Še <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Izjeme aplikacij"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Vsa obvestila"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Nekatera obvestila"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Obvestila, ki lahko preglasijo"</string>
@@ -5030,16 +5035,6 @@
       <item quantity="few"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> aplikacije imajo poln dostop do naprave</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> aplikacij ima poln dostop do naprave</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Upravljanje obvestil aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Ni predlaganih aplikacij"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> kanal za obveščanje.</item>
-      <item quantity="two"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> kanala za obveščanje.</item>
-      <item quantity="few"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> kanali za obveščanje.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> kanalov za obveščanje.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"Št. kanalov za obveščanje: <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Dotaknite se, če želite upravljati vse."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"To aplikacijo ste nedavno namestili."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Preklop izhoda"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Trenutno se predvaja v napravi <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (povezava prekinjena)"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 3ae2706..148672d 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Asgjë nuk mund të vendoset në flluska"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Bisedat"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Të gjitha bisedat mund të shfaqen si flluskë përveç"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Veprimet me rrëshqitje"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Rrëshqit shpejt djathtas për ta hequr, ose majtas për të shfaqur menynë"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Rrëshqit shpejt majtas për ta hequr, ose djathtas për të shfaqur menynë"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> mund ta ndërpresë</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> të tjera"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Përjashtimet e aplikacioneve"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Të gjitha njoftimet"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Disa njoftime"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Njoftimet që mund ta ndërpresin"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> aplikacione kanë qasje të plotë te pajisja jote</item>
       <item quantity="one">1 aplikacion ka qasje të plotë te pajisja jote</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Menaxho njoftimet e <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Asnjë aplikacion i sugjeruar"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> kanale njoftimi.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> kanal njoftimi.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> kanale njoftimi. Trokit për t\'i menaxhuar të gjitha."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Ke instaluar së fundi këtë aplikacion."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Ndrysho daljen"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Aktualisht po luhet në <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (e shkëputur)"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index c76c3be..744cfa3 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -3529,6 +3529,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Ништа не може да се приказује у облачићима"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Конверзације"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Све конверзације подржавају облачиће осим"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Радње превлачења"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Превуците удесно да бисте одбацили, улево да би се приказао мени"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Превуците улево да бисте одбацили, удесно да би се приказао мени"</string>
@@ -3863,7 +3867,8 @@
       <item quantity="other"><xliff:g id="APP_NAMES">%s</xliff:g> могу да прекину</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"Још <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Изузеци за апликације"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Сва обавештења"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Нека обавештења"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Обавештења која могу да прекидају"</string>
@@ -4940,15 +4945,6 @@
       <item quantity="few"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> апликације имају потпун приступ уређају</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> апликација има потпун приступ уређају</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Управљајте обавештењима апликације <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Нема предложене апликације"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> канал за обавештења.</item>
-      <item quantity="few"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> канала за обавештења.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> канала за обавештења.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> канал за обавештења. Додирните да бисте управљали свим."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Недавно сте инсталирали ову апликацију."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Промените излаз"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Тренутно се пушта на уређају <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (веза је прекинута)"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index c5716a7..681ed1a 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Inget får visas i bubblor"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Konversationer"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Alla konversationer kan visas i bubblor utom"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Svepningsåtgärder"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Svep åt höger för att ignorera och åt vänster för att visa menyn"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Svep åt vänster för att ignorera och åt höger för att visa menyn"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> får avbryta</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> till"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Undantagna appar"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Alla aviseringar"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Vissa aviseringar"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Aviseringar som får störa dig"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> appar har fullständig åtkomst till din enhet</item>
       <item quantity="one">1 app har fullständig åtkomst till din enhet</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Hantera aviseringar från <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Inga föreslagna appar"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> aviseringskanaler.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> aviseringskanal.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> aviseringskanaler. Tryck för att hantera alla."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Du installerade nyligen den här appen."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Utdata som styrs med reglaget"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Spelas upp nu på <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (frånkopplad)"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index eb21afe..ed4df54 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Hakuna kinachoweza kutoa viputo"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Mazungumzo"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Mazungumzo yote yanaweza kutoa viputo isipokuwa"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Vitendo vya kutelezesha kidole"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Telezesha kidole kulia ili uondoe menyu na kushoto ili uionyeshe"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Telezesha kidole kushoto ili uondoe menyu na kulia ili uionyeshe"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> inaweza kukatiza</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"Nyingine <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Hali maalum kwa programu"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Arifa zote"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Baadhi ya arifa"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Arifa zinazoweza kukatiza"</string>
@@ -4851,14 +4856,6 @@
       <item quantity="other">Programu <xliff:g id="SERVICE_COUNT">%1$d</xliff:g> zina idhini kamili ya kufikia kifaa chako</item>
       <item quantity="one">Programu 1 ina idhini kamili ya kufikia kifaa chako</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Dhibiti arifa za <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Hakuna programu iliyopendekezwa"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other">Arifa <xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> za vituo.</item>
-      <item quantity="one">Arifa <xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> ya kituo.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"Arifa <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> za vituo. Gusa ili udhibiti zote."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Ulisakinisha programu hii hivi majuzi."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Badilisha kifaa cha kutoa"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Inacheza sasa kwenye <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (hakijaunganishwa)"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index abf31a7..8f8f1a7 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"எதுவும் குமிழாக முடியாது"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"உரையாடல்கள்"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"இவை தவிர அனைத்து உரையாடல்களும் குமிழ்களாகக் காட்டப்படும்"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"ஸ்வைப் செயல்கள்"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"நிராகரிக்க வலப்புறமும் மெனுவைக் காண்பிக்க இடப்புறமும் ஸ்வைப் செய்யவும்"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"நிராகரிக்க இடப்புறமும் மெனுவைக் காண்பிக்க வலப்புறமும் ஸ்வைப் செய்யவும்"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> ஆப்ஸால் குறுக்கிட முடியும்</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"மேலும் <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"ஆப்ஸ் விதிவிலக்குகள்"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"அனைத்து அறிவிப்புகளும்"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"சில அறிவிப்புகள்"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"குறுக்கிட முடிகின்ற அறிவிப்புகள்"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other">உங்கள் சாதனத்திற்கான முழு அணுகல் <xliff:g id="SERVICE_COUNT">%1$d</xliff:g> ஆப்ஸிற்கு உள்ளது</item>
       <item quantity="one">உங்கள் சாதனத்திற்கான முழு அணுகல் ஓர் ஆப்ஸிற்கு உள்ளது</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"<xliff:g id="APP_NAME">%1$s</xliff:g> ஆப்ஸிற்கான அறிவிப்புகளை நிர்வகி"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"பரிந்துரை ஆப்ஸ் எதுவுமில்லை"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> அறிவிப்புச் சேனல்கள்.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> அறிவிப்புச் சேனல்.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> அறிவிப்புச் சேனல்கள். அனைத்தையும் நிர்வகிக்கத் தட்டவும்."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"இந்த ஆப்ஸைச் சமீபத்தில் நிறுவியுள்ளீர்கள்."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"அவுட்புட்டை மாற்று"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> சாதனத்தில் தற்போது இயங்குகிறது"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (இணைப்பு துண்டிக்கப்பட்டது)"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index b9df14a..ec69417 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"ఏవీ బబుల్ కావు"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"సంభాషణలు"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"ఈ కిందవి తప్ప అన్ని సంభాషణలు బబుల్ చేయగలవు"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"స్వైప్ చర్యలు"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"తీసివేయడానికి కుడికి, మెనూను చూపడానికి ఎడమకు స్వైప్ చేయండి"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"తీసివేయడానికి ఎడమకు, మెనూను చూపడానికి కుడికి స్వైప్ చేయండి"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> అంతరాయం కలిగించవచ్చు</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"మరో <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"యాప్ మినహాయింపులు"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"అన్ని నోటిఫికేషన్‌లు"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"కొన్ని నోటిఫికేషన్‌లు"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"అంతరాయం కలిగించ గల నోటిఫికేషన్‌లు"</string>
@@ -4852,14 +4857,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> యాప్‌లు మీ పరికరానికి పూర్తి యాక్సెస్‌ను కలిగి ఉన్నాయి</item>
       <item quantity="one">1 యాప్ మీ పరికరానికి పూర్తి యాక్సెస్‌ను కలిగి ఉంది</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"<xliff:g id="APP_NAME">%1$s</xliff:g> నోటిఫికేషన్‌లను నిర్వహించండి"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"సూచించబడిన అప్లికేషన్‌లు ఏవీ లేవు"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> నోటిఫికేషన్ ఛానెల్‌లు.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> నోటిఫికేషన్ ఛానెల్.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> నోటిఫికేషన్ ఛానెల్‌లు. అన్నింటినీ నిర్వహించుకోవడానికి నొక్కండి."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"మీరు ఇటీవల ఈ యాప్‌ను ఇన్‌స్టాల్ చేసారు."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"అవుట్‌పుట్ మార్చండి"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>లో ప్లే అవుతోంది"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (డిస్‌కనెక్ట్ అయ్యింది)"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index ce69164..572b277 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"ไม่มีสิ่งใดที่แสดงเป็นบับเบิลได้"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"การสนทนา"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"ทุกการสนทนาจะแสดงเป็นบับเบิลได้ยกเว้น"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"การเลื่อน"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"เลื่อนไปทางขวาเพื่อปิด เลื่อนไปทางซ้ายเพื่อแสดงเมนู"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"เลื่อนไปทางซ้ายเพื่อปิด เลื่อนไปทางขวาเพื่อแสดงเมนู"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> รบกวนได้</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"อีก <xliff:g id="NUMBER">%d</xliff:g> รายการ"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"แอปที่ยกเว้น"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"การแจ้งเตือนทั้งหมด"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"การแจ้งเตือนบางรายการ"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"การแจ้งเตือนที่รบกวนคุณได้"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other">แอป <xliff:g id="SERVICE_COUNT">%1$d</xliff:g> แอปมีสิทธิ์เข้าถึงอุปกรณ์ได้โดยสมบูรณ์</item>
       <item quantity="one">แอป 1 แอปมีสิทธิ์เข้าถึงอุปกรณ์ได้โดยสมบูรณ์</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"จัดการการแจ้งเตือนของ<xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"ไม่มีแอปพลิเคชันแนะนำ"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other">ช่องทางการแจ้งเตือน <xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> ช่องทาง</item>
-      <item quantity="one">ช่องทางการแจ้งเตือน <xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> ช่องทาง</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"ช่องทางการแจ้งเตือน <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ช่องทาง แตะเพื่อจัดการทั้งหมด"</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"คุณเพิ่งติดตั้งแอปนี้"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"เปลี่ยนเอาต์พุต"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"กำลังเล่นใน <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (ยกเลิกการเชื่อมต่อแล้ว)"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index dd94b85..5484a18 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Walang puwedeng lumabas bilang bubble"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Mga Pag-uusap"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Puwede lumabas bilang bubble notifcation ang lahat ng pag-uusap maliban sa"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Mga pag-swipe"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Mag-swipe pakanan para i-dismiss, pakaliwa para ipakita ang menu"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Mag-swipe pakaliwa para i-dismiss, pakanan para ipakita ang menu"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="other">Puwedeng makaabala ang <xliff:g id="APP_NAMES">%s</xliff:g></item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> pa"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Mga exception na app"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Lahat ng notification"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Ilang notification"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Mga notification na puwedeng umabala"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="one"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> app ang may kumpletong access sa iyong device</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> na app ang may kumpletong access sa iyong device</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Pamahalaan ang mga notification ng <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Walang iminumungkahing application"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> notification channel.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> na notification channel.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> (na) notification channel. I-tap para pamahalaan ang lahat."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Na-install mo kamakailan ang app na ito."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Output ng Switch"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Kasalukuyang nagpe-play sa <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (nakadiskonekta)"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 8967856..69bbafa 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Hiçbir şey baloncuk olarak gösterilemez"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Görüşmeler"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Şunlar dışında tüm görüşmeler baloncuk kullanabilir:"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Kaydırma işlemleri"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Menüyü kapatmak için sağa, göstermek için sola kaydırın"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Menüyü kapatmak için sola, göstermek için sağa kaydırın"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> kesintiye neden olabilir</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> tane daha"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Uygulama istisnaları"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Tüm bildirimler"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Bazı bildirimler"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Kesintiye neden olabilecek bildirimler"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> hizmetin, cihazınıza tam erişimi var</item>
       <item quantity="one">1 hizmetin, cihazınıza tam erişimi var</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"<xliff:g id="APP_NAME">%1$s</xliff:g> bildirimlerini yönet"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Önerilen uygulama yok"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> bildirim kanalı.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> bildirim kanalı.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> bildirim kanalı. Hepsini yönetmek için dokunun."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Bu uygulamayı kısa bir süre önce yüklediniz."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Çıkışı değiştir"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Şu anda <xliff:g id="DEVICE_NAME">%1$s</xliff:g> cihazında oynatılıyor"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (bağlı değil)"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index e432f40..965fab2 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -3575,6 +3575,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Чатам заборонено показувати спливаючі сповіщення"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Розмови"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Розмови, які не можна показувати як спливаючі чати"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Проведення по екрану"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Проведіть пальцем по екрану вправо, щоб закрити сповіщення, уліво – щоб показати меню"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Уліво – закрити сповіщення; управо – показати меню"</string>
@@ -3921,7 +3925,8 @@
       <item quantity="other">Додатки <xliff:g id="APP_NAMES">%s</xliff:g> можуть переривати</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"Ще <xliff:g id="NUMBER">%d</xliff:g>"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Винятки для додатків"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Усі сповіщення"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Деякі сповіщення"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Сповіщення, які можуть переривати"</string>
@@ -5030,16 +5035,6 @@
       <item quantity="many"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> додатків мають повний доступ до вашого пристрою</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> додатка має повний доступ до вашого пристрою</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Керувати сповіщеннями від додатка <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Немає пропонованого додатка"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> канал сповіщень.</item>
-      <item quantity="few"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> канали сповіщень.</item>
-      <item quantity="many"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> каналів сповіщень.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> каналу сповіщень.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"Кількість каналів сповіщень: <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Торкніться, щоб керувати всіма."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Ви нещодавно встановили цей додаток."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Виберіть вихід"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Зараз відтворюється на пристрої <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (від\'єднано)"</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index ad4685e..94847f9 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -1108,7 +1108,7 @@
     <string name="notification_sound_title" msgid="8747567935870133157">"ڈیفالٹ اطلاع کی آواز"</string>
     <string name="incoming_call_volume_title" msgid="8445408274513654261">"رنگ ٹون"</string>
     <string name="notification_volume_title" msgid="328053763590888609">"اطلاع"</string>
-    <string name="checkbox_notification_same_as_incoming_call" msgid="1798481722572489141">"اطلاعات کیلئے آنے والی کال کا والیوم استعمال کریں"</string>
+    <string name="checkbox_notification_same_as_incoming_call" msgid="1798481722572489141">"اطلاعات کیلئے اِن کمنگ کال کا والیوم استعمال کریں"</string>
     <string name="home_work_profile_not_supported" msgid="2605589489324241338">"کام کے پروفائلز کا تعاون نہیں کرتا ہے"</string>
     <string name="notification_sound_dialog_title" msgid="7431891669251806266">"ڈیفالٹ اطلاع کی آواز"</string>
     <string name="media_volume_title" msgid="5209147840160985178">"میڈیا"</string>
@@ -3481,6 +3481,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"کچھ بھی بلبلہ نہیں ہو سکتا"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"گفتگوئیں"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"ان کے سوا سبھی گفتگوئیں بلبلہ ہو سکتی ہیں"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"سوائپ کی کارروائیاں"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"برخاست کرنے کے لیے دائیں، مینو دکھانے کے لیے بائیں سوائپ کریں"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"برخاست کرنے کے لیے بائیں، مینو دکھانے کے لیے دائیں سوائپ کریں"</string>
@@ -3803,7 +3807,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g> رکاوٹ ڈال سکتی ہے</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> مزید"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"ایپ کے مستثنیات"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"سبھی اطلاعات"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"کچھ اطلاعات"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"اطلاعات جو رکاوٹ ڈال سکتی ہیں"</string>
@@ -4848,14 +4853,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> ایپس کو آپ کے آلہ تک مکمل رسائی حاصل ہے</item>
       <item quantity="one">1 ایپ کو آپ کے آلہ تک مکمل رسائی حاصل ہے</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"<xliff:g id="APP_NAME">%1$s</xliff:g> اطلاعات کا نظم کریں"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"کوئی تجویز کردہ ایپلیکیشن نہیں"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> اطلاع کے چینلز۔</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> اطلاع کا چینل۔</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> اطلاع کے چینلز۔ تمام کا نظم کرنے کے لیے تھپتھپائیں۔"</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"آپ نے حال ہی میں اس ایپ کو انسٹال کیا ہے۔"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"آؤٹ پٹ سوئچ کریں"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"فی الوقت <xliff:g id="DEVICE_NAME">%1$s</xliff:g> پر چلایا جا رہا ہے"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (غیر منسلک ہو گیا)"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index f4c1406..ac9325a 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -2372,12 +2372,8 @@
     <string name="background_activity_disabled_dialog_text" msgid="4053170297325882494">"Bu ilova batareya sarfini optimallashtirish uchun sozlanmagani sababli uni cheklash imkonsiz.\n\nIlovani cheklash uchun avval batareya sarfini optimallashtirish funksiyasini yoqing."</string>
     <string name="device_screen_usage" msgid="1011630249648289909">"Toʻliq quvvatlanganidan beri ekrandan foydalanish"</string>
     <string name="power_usage_list_summary" msgid="3237540201918492925">"Toʻliq quvvatlanganidan beri batareya sarfi"</string>
-    <!-- String.format failed for translation -->
-    <!-- no translation found for screen_usage_summary (1393184943010909471) -->
-    <skip />
-    <!-- String.format failed for translation -->
-    <!-- no translation found for device_usage_list_summary (242243537371697285) -->
-    <skip />
+    <string name="screen_usage_summary" msgid="1393184943010909471">"100%% quvvatlanganidan beri ekranning yoniq turgan vaqti"</string>
+    <string name="device_usage_list_summary" msgid="242243537371697285">"100%% quvvatlanganidan beri qurilmadan foydalanish"</string>
     <string name="battery_since_unplugged" msgid="6991509383429936921">"Quvvat manbaidan uzilganidan keyin sarflangan batareya quvvati"</string>
     <string name="battery_since_reset" msgid="2930376112877476562">"Statistika tozalandan keyingi batareya sarfi"</string>
     <string name="battery_stats_on_battery" msgid="1553011980384645514">"Batareyada qolgan vaqt: <xliff:g id="TIME">%1$s</xliff:g>"</string>
@@ -2558,13 +2554,9 @@
     <string name="battery_screen_usage" msgid="90008745183187461">"Ekrandan foydalanish: <xliff:g id="TIME">^1</xliff:g>"</string>
     <string name="battery_used_by" msgid="6457305178016189330">"<xliff:g id="APP">%2$s</xliff:g> – <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_overall_usage" msgid="8940140259734182014">"<xliff:g id="PERCENT">%1$s</xliff:g> batareya quvvati"</string>
-    <!-- String.format failed for translation -->
-    <!-- no translation found for battery_detail_since_full_charge (5650946565524184582) -->
-    <skip />
+    <string name="battery_detail_since_full_charge" msgid="5650946565524184582">"100%% quvvatlanganidan beri batareya sarfi"</string>
     <string name="battery_last_full_charge" msgid="8308424441475063956">"Oxirgi toʻliq quvvatlanish"</string>
-    <!-- String.format failed for translation -->
-    <!-- no translation found for battery_full_charge_last (465146408601016923) -->
-    <skip />
+    <string name="battery_full_charge_last" msgid="465146408601016923">"100%% quvvat bilan ishlash vaqti"</string>
     <string name="battery_footer_summary" msgid="9125397752380281832">"Batareyaning qolgan vaqti taxminiy va u foydalanish intensivligiga qarab farq qilishi mumkin"</string>
     <string name="battery_detail_foreground" msgid="3312280147931093967">"Faol rejimda"</string>
     <string name="battery_detail_background" msgid="3333915023706228000">"Fon rejimida"</string>
@@ -3491,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Bulutcha shaklidagi bildirishnomalarni taqiqlash"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Suhbatlar"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Barcha suhbatlar bulutchalarga olinadi, istisnolar:"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Varaqlash ishoralari"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Yopish uchun oʻngga, menyuni ochish uchun chapga suring"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Yopish uchun chapga, menyuni ochish uchun oʻngga suring"</string>
@@ -3511,8 +3507,8 @@
     <string name="keywords_lockscreen_bypass" msgid="41035425468915498">"Ekran qulfi, qulflash, tashlab ketish, aylanib oʻtish"</string>
     <string name="locked_work_profile_notification_title" msgid="279367321791301499">"Ish profili qulflanganda"</string>
     <string name="lock_screen_notifs_title" msgid="3412042692317304449">"Ekran qulfida bildirishnomalar"</string>
-    <string name="lock_screen_notifs_show_all" msgid="1300418674456749664">"Suhbatlarni chiqarish, asosiy va ovozsiz"</string>
-    <string name="lock_screen_notifs_show_alerting" msgid="6584682657382684566">"Ovozsiz suhbatlar va bildirishnomalarni berkitish"</string>
+    <string name="lock_screen_notifs_show_all" msgid="1300418674456749664">"Suhbatlarni chiqarish, standart holatda, sokin"</string>
+    <string name="lock_screen_notifs_show_alerting" msgid="6584682657382684566">"Sokin suhbatlar va bildirishnomalarni berkitish"</string>
     <string name="lock_screen_notifs_show_none" msgid="1941044980403067101">"Hech qanday bildirishnoma chiqarilmasin"</string>
     <string name="lock_screen_notifs_redact" msgid="9024158855454642296">"Maxfiy bildirishnomalar"</string>
     <string name="lock_screen_notifs_redact_summary" msgid="1395483766035470612">"Qulflangan holatida maxfiy kontentni chiqarish"</string>
@@ -3568,15 +3564,15 @@
     <string name="notification_importance_high_title" msgid="394129291760607808">"Ekranga qalqib chiqish"</string>
     <string name="notification_block_title" msgid="7392909527700971673">"Bloklash"</string>
     <string name="notification_silence_title" msgid="4085829874452944989">"Tovushsiz"</string>
-    <string name="notification_alert_title" msgid="1632401211722199217">"Asosiy"</string>
+    <string name="notification_alert_title" msgid="1632401211722199217">"Standart"</string>
     <string name="allow_interruption" msgid="5237201780159482716">"Bildirishnomalarga ruxsat berish"</string>
     <string name="allow_interruption_summary" msgid="9044131663518112543">"Ilovaga ovozli signal va tebranishni yoqishi hamda ekranga bildirishnomalarni chiqarishiga imkon beradi"</string>
     <string name="notification_priority_title" msgid="5554834239080425229">"Muhim"</string>
     <string name="notification_channel_summary_priority" msgid="7225362351439076913">"Suhbatlar ruknining tepasida qalqib chiquvchi bulutcha shaklida chiqadi, ekran qulfida profil rasmi chiqadi"</string>
     <string name="convo_not_supported_summary" msgid="4285471045268268048">"<xliff:g id="APP_NAME">%1$s</xliff:g> ilovasi suhbatlarga oid asosiy funksiyalar bilan ishlamaydi. Suhbatlarni muhimliligi asosida sozlay olmaysiz va suhbatlar qalqib chiquvchi bulutchalar shaklida chiqmaydi."</string>
     <string name="notification_channel_summary_min" msgid="8823399508450176842">"Pastga tortilgan paneldagi bildirishnomalarni bir qatorga terish"</string>
-    <string name="notification_channel_summary_low" msgid="5549662596677692000">"Ovozsiz yoki tebranmaydi"</string>
-    <string name="notification_conversation_summary_low" msgid="6352818857388412326">"Ovozsiz yoki tebranishsiz hamda suhbatlar ruknining pastida chiqadi"</string>
+    <string name="notification_channel_summary_low" msgid="5549662596677692000">"Tovush yoki tebranishsiz"</string>
+    <string name="notification_conversation_summary_low" msgid="6352818857388412326">"Tovush yoki tebranishsiz hamda suhbatlar ruknining pastida chiqadi"</string>
     <string name="notification_channel_summary_default" msgid="3674057458265438896">"Telefon sozlamalari asosida jiringlashi yoki tebranishi mumkin"</string>
     <string name="notification_channel_summary_high" msgid="3411637309360617621">"Telefon qulfi yechilsa, bildirishnomalar ekranning yuqori qismida banner sifatida chiqsin"</string>
     <string name="notification_switch_label" msgid="8029371325967501557">"Barcha “<xliff:g id="APP_NAME">%1$s</xliff:g>” bildirishnomalari"</string>
@@ -3689,7 +3685,7 @@
     <string name="notification_show_lights_title" msgid="5564315979007438583">"Indikator"</string>
     <string name="notification_vibrate_title" msgid="1422330728336623351">"Tebranish"</string>
     <string name="notification_channel_sound_title" msgid="9018031231387273476">"Tovush"</string>
-    <string name="notification_conversation_important" msgid="4365437037763608045">"Muhimligi"</string>
+    <string name="notification_conversation_important" msgid="4365437037763608045">"Muhim"</string>
     <string name="notification_conversation_add_to_home" msgid="8136269431130231389">"Bosh ekranga kiritish"</string>
     <string name="zen_mode_rule_delete_button" msgid="7642063606919058862">"O‘chirish"</string>
     <string name="zen_mode_rule_rename_button" msgid="4158377587795511144">"Qayta nomlash"</string>
@@ -3813,7 +3809,8 @@
       <item quantity="one">Bezovta qilinmasin rejimi <xliff:g id="APP_NAME_0">%s</xliff:g> uchun ishlamaydi</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"Yana <xliff:g id="NUMBER">%d</xliff:g> ta"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Ilova istisnolari"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Barcha bildirishnomalar"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Ayrim bildirishnomalar"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Bezovta qila oladigan bildirishnomalar"</string>
@@ -4035,9 +4032,7 @@
     <string name="high_power_desc" msgid="2753076899835765338">"Batareya quvvati tejalmaydi. Batareya quvvati tez sarflanishi mumkin."</string>
     <string name="high_power_prompt_title" msgid="2574478825228409124">"Ilova doim fonda ishlashiga ruxsat berilsinmi?"</string>
     <string name="high_power_prompt_body" msgid="6460557929559616041">"<xliff:g id="APP_NAME">%1$s</xliff:g> ilovasiga doim fonda ishlashiga ruxsat berilsa, batareya quvvati tezroq sarflanadi. \n\nBuni keyinroq Sozlamalar &gt; Ilovalar va bildirishnomalar orqali o‘zgartirishingiz mumkin."</string>
-    <!-- String.format failed for translation -->
-    <!-- no translation found for battery_summary (2491764359695671207) -->
-    <skip />
+    <string name="battery_summary" msgid="2491764359695671207">"100%% quvvatlanganidan beri <xliff:g id="PERCENTAGE">%1$s</xliff:g> quvvat sarflandi"</string>
     <string name="battery_power_management" msgid="7507188088567087384">"Quvvat boshqaruvi"</string>
     <string name="no_battery_summary" msgid="5769159953384122003">"Toʻliq quvvatlanganidan beri quvvat sarflanmadi"</string>
     <string name="app_notification_preferences" msgid="2004680717999108725">"Ilova sozlamalari"</string>
@@ -4860,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> ta ilova qurilmangizdan butunlay foydalana oladi</item>
       <item quantity="one">1 ta ilova qurilmangizdan butunlay foydalana oladi</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"<xliff:g id="APP_NAME">%1$s</xliff:g> bildirishnomalarini boshqarish"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Hech qanday tavsiya qilingan ilova mavjud emas"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> ta bildirishnomalar kanali.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> ta bildirishnomalar kanali.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ta bildirishnomalar kanali. Barchasini boshqarish uchun bosing."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Bu ilovani hozirgina oʻrnatdingiz."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Audiochiqishni almashtirish"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Hozirda <xliff:g id="DEVICE_NAME">%1$s</xliff:g> qurilmasida ijro etilmoqda"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (uzilgan)"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 3da3a5a..4cbafe7 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Không cuộc trò chuyện nào có thể tạo bong bóng"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Cuộc trò chuyện"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Danh sách các cuộc trò chuyện không thể tạo bong bóng"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Thao tác vuốt"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Vuốt sang phải để loại bỏ, sang trái để hiển thị menu"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Vuốt sang trái để loại bỏ, sang phải để hiển thị menu"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one">Ứng dụng <xliff:g id="APP_NAME_0">%s</xliff:g> có thể gián đoạn</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> ứng dụng khác"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Ứng dụng ngoại lệ"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Tất cả thông báo"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Một số thông báo"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Các thông báo bạn vẫn nhận được"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> ứng dụng có toàn quyền truy cập vào thiết bị của bạn</item>
       <item quantity="one">1 ứng dụng có toàn quyền truy cập vào thiết bị của bạn</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Quản lý thông báo của <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Không có ứng dụng được đề xuất"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> kênh thông báo.</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> kênh thông báo.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> kênh thông báo. Nhấn để quản lý tất cả."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Gần đây, bạn đã cài đặt ứng dụng này."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Chuyển đổi đầu ra"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Hiện đang phát trên <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (đã ngắt kết nối)"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 1414735..3b0cbbf 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"任何内容都不能以气泡形式显示"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"对话"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"以下对话无法以对话泡形式显示"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"滑动操作"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"向右滑动即可关闭，向左滑动即可显示菜单"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"向左滑动即可关闭，向右滑动即可显示菜单"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one">“<xliff:g id="APP_NAME_0">%s</xliff:g>”例外</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"另外 <xliff:g id="NUMBER">%d</xliff:g> 个应用"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"例外应用"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"所有通知"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"部分通知"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"例外的通知"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other">有 <xliff:g id="SERVICE_COUNT">%1$d</xliff:g> 个应用拥有对您设备的完整访问权限</item>
       <item quantity="one">有 1 个应用拥有对您设备的完整访问权限</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"管理<xliff:g id="APP_NAME">%1$s</xliff:g>通知"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"没有建议的应用"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> 个通知渠道。</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> 个通知渠道。</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> 个通知渠道。点按即可管理全部。"</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"您最近安装过此应用。"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"切换输出"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"目前正在<xliff:g id="DEVICE_NAME">%1$s</xliff:g>上播放"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>（已断开连接）"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index dad85f6..3d55640 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -3484,6 +3484,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"全部均不可以小視窗顯示"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"對話"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"所有對話均可以小視窗顯示，以下除外："</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"滑動操作"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"向右滑動關閉選單，向左滑動顯示選單"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"向左滑動關閉選單，向右滑動顯示選單"</string>
@@ -3806,7 +3810,8 @@
       <item quantity="one">「<xliff:g id="APP_NAME_0">%s</xliff:g>」可中斷</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"還有 <xliff:g id="NUMBER">%d</xliff:g> 個"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"應用程式例外情況"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"所有通知"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"部分通知"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"可中斷的通知"</string>
@@ -4851,14 +4856,6 @@
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> 個應用程式擁有您裝置的完整存取權</item>
       <item quantity="one">1 個應用程式擁有您裝置的完整存取權</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"管理<xliff:g id="APP_NAME">%1$s</xliff:g>通知"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"沒有建議的應用程式"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> 個通知渠道。</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> 個通知渠道。</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> 個通知渠道。輕按即可管理所有渠道。"</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"您最近安裝過此應用程式。"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"切換輸出"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"目前正在「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」上播放"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (連線中斷)"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 0a4b2e5..4c4bcf7 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -3483,6 +3483,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"不允許以泡泡形式顯示任何內容"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"對話"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"所有對話都能以對話框形式顯示，但以下對話例外："</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"滑動動作"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"向右滑動即可關閉，向左滑動即可顯示選單"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"向左滑動即可關閉，向右滑動即可顯示選單"</string>
@@ -3805,7 +3809,8 @@
       <item quantity="one"><xliff:g id="APP_NAME_0">%s</xliff:g>例外</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"以及另外 <xliff:g id="NUMBER">%d</xliff:g> 個應用程式"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"例外應用程式"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"所有通知"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"部分通知"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"例外的通知"</string>
@@ -4850,14 +4855,6 @@
       <item quantity="other">有 <xliff:g id="SERVICE_COUNT">%1$d</xliff:g> 個應用程式可完整存取你的裝置</item>
       <item quantity="one">有 1 個應用程式可完整存取你的裝置</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"管理「<xliff:g id="APP_NAME">%1$s</xliff:g>」通知"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"沒有建議的應用程式"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> 個通知管道。</item>
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> 個通知管道。</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> 個通知管道。輕觸即可管理所有通知管道。"</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"你最近安裝了這個應用程式。"</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"切換輸出裝置"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"目前正在「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」上播放"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (已中斷連線)"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 9fd62cd..1926e25 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -3484,6 +3484,10 @@
     <string name="bubble_app_setting_none" msgid="8643594711863996418">"Akukho okungaba yibhamuza"</string>
     <string name="bubble_app_setting_selected_conversation_title" msgid="3060958976857529933">"Izingxoxo"</string>
     <string name="bubble_app_setting_excluded_conversation_title" msgid="324818960338773945">"Zonke izingxoxo zingaba ibhamuza ngaphandle"</string>
+    <!-- no translation found for bubble_app_setting_unbubble_conversation (1769789500566080427) -->
+    <skip />
+    <!-- no translation found for bubble_app_setting_bubble_conversation (1461981680982964285) -->
+    <skip />
     <string name="swipe_direction_title" msgid="4260320464727178413">"Izenzo zokuswayipha"</string>
     <string name="swipe_direction_ltr" msgid="5137180130142633085">"Swayiphela ngakwesokudla ukuze ucashise, ngakwesokunxele ukuze ubonise imenyu"</string>
     <string name="swipe_direction_rtl" msgid="1707391213940663992">"Swayiphela ngakwesokunxele ukuze ucashise, ngakwesokudla ukuze ubonise imenyu"</string>
@@ -3806,7 +3810,8 @@
       <item quantity="other">Ama-<xliff:g id="APP_NAMES">%s</xliff:g> angaphazamisa</item>
     </plurals>
     <string name="zen_mode_apps_bypassing_list_count" msgid="1581384924379825405">"<xliff:g id="NUMBER">%d</xliff:g> okuningi"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="4142154650779609193">"Ukukhishwa kohlelo lokusebenza"</string>
+    <!-- no translation found for zen_mode_bypassing_apps_title (371050263563164059) -->
+    <skip />
     <string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Zonke izaziso"</string>
     <string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Ezinye izaziso"</string>
     <string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Izaziso ezingaphazamisa"</string>
@@ -4851,14 +4856,6 @@
       <item quantity="one"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> izinhlelo zokusebenza zinokufinyelela okugcwele kudivayisi yakho</item>
       <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> izinhlelo zokusebenza zinokufinyelela okugcwele kudivayisi yakho</item>
     </plurals>
-    <string name="manage_app_notification" msgid="8272999309499332742">"Phatha izaziso ze-<xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="no_suggested_app" msgid="2482015948111074654">"Alukho uhlelo lokusebenza oluphakanyisiwe"</string>
-    <plurals name="notification_few_channel_count_summary" formatted="false" msgid="6610904178351403728">
-      <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> iziteshi zokwazisa.</item>
-      <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> iziteshi zokwazisa.</item>
-    </plurals>
-    <string name="notification_many_channel_count_summary" msgid="6324166979527102233">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> iziteshi zokwazisa. Thepha ukuze uphathe konke."</string>
-    <string name="recently_installed_app" msgid="2899861390925377564">"Kamuva nje ufake lolu hlelo lokusebenza."</string>
     <string name="media_output_panel_title" msgid="5920946795078065159">"Shintsha okukhiphayo"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="6998758947764222915">"Manje idlala ku-<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="media_output_disconnected_status" msgid="5567111639832431865">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> (inqamukile)"</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 5ba2b7a..b60bca7 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -8241,6 +8241,10 @@
     <string name="bubble_app_setting_selected_conversation_title">Conversations</string>
     <!-- Bubble app settings: Title above a list of conversations that have been excluded from bubbling [CHAR LIMIT=100] -->
     <string name="bubble_app_setting_excluded_conversation_title">All conversations can bubble except</string>
+    <!-- Bubble app settings: Content description - action to make a conversation no longer bubble -->
+    <string name="bubble_app_setting_unbubble_conversation">Turn off bubbles for this conversation</string>
+    <!-- Bubble app settings: Content description - action to make a conversation bubble -->
+    <string name="bubble_app_setting_bubble_conversation">Turn on bubbles for this conversation</string>
 
     <!-- Configure notifications: title for swipe direction [CHAR LIMIT=60] -->
     <string name="swipe_direction_title">Swipe actions</string>
@@ -9149,7 +9153,7 @@
      allowed to bypass Do Not Disturb. For example, "Nest, Messages, and 2 more can interrupt". -->
     <string name="zen_mode_apps_bypassing_list_count"><xliff:g id="number" example="2">%d</xliff:g> more</string>
     <!-- [CHAR LIMIT=100] Zen mode settings: Allow apps to bypass DND title-->
-    <string name="zen_mode_bypassing_apps_title">App exceptions</string>
+    <string name="zen_mode_bypassing_apps_title">Apps</string>
     <!-- [CHAR LIMIT=100] Zen mode settings: App that can bypass DND's secondary text describing which notification channels from the app can bypass DND-->
     <string name="zen_mode_bypassing_apps_all_summary">All notifications</string>
     <!-- [CHAR LIMIT=100] Zen mode settings: App that can bypass DND's secondary text describing which notification channels from the app can bypass DND-->
@@ -11890,20 +11894,6 @@
         <item quantity="other"><xliff:g id="service_count">%1$d</xliff:g> apps have full access to your device</item>
     </plurals>
 
-    <!-- Title for notification channel slice. [CHAR LIMIT=NONE] -->
-    <string name="manage_app_notification">Manage <xliff:g id="app_name" example="Settings">%1$s</xliff:g> notifications</string>
-    <!-- Title for no suggested app in notification channel slice. [CHAR LIMIT=NONE] -->
-    <string name="no_suggested_app">No suggested application</string>
-    <!-- Summary for the channels count is equal or less than 3 in notification channel slice. [CHAR LIMIT=NONE] -->
-    <plurals name="notification_few_channel_count_summary">
-        <item quantity="one"><xliff:g id="notification_channel_count" example="1">%1$d</xliff:g> notification channel.</item>
-        <item quantity="other"><xliff:g id="notification_channel_count" example="3">%1$d</xliff:g> notification channels.</item>
-    </plurals>
-    <!-- Summary for the channels count is more than 3 in notification channel slice. [CHAR LIMIT=NONE] -->
-    <string name="notification_many_channel_count_summary"><xliff:g id="notification_channel_count" example="4">%1$d</xliff:g> notification channels. Tap to manage all.</string>
-    <!-- Summary for recently installed app in contextual notification channel slice. [CHAR LIMIT=NONE] -->
-    <string name="recently_installed_app">You recently installed this app.</string>
-
     <!-- Title for the Switch output dialog (settings panel) with media related devices [CHAR LIMIT=50] -->
     <string name="media_output_panel_title">Switch output</string>
     <!-- Summary for represent which device is playing media [CHAR LIMIT=NONE] -->
@@ -12056,6 +12046,9 @@
     <!-- Power menu setting privacy show controls [CHAR LIMIT=NONE] -->
     <string name="power_menu_privacy_show_controls">Show controls when locked</string>
 
+    <!-- Power menu setting privacy show cards [CHAR LIMIT=NONE] -->
+    <string name="power_menu_privacy_show_cards">Show cards when locked</string>
+
     <!-- Power menu setting privacy hide all [CHAR LIMIT=NONE] -->
     <string name="power_menu_privacy_hide">Hide cards and controls when locked</string>
 
@@ -12101,4 +12094,9 @@
 
     <!-- Developer settings: app freezer title [CHAR LIMIT=50]-->
     <string name="cached_apps_freezer">Suspend execution for cached apps</string>
+
+    <!-- Title for allowing screen overlays on Settings app. [CHAR LIMIT=50]-->
+    <string name="overlay_settings_title">Allow screen overlays on Settings</string>
+    <!-- Summary for allowing screen overlays on Settings app. [CHAR LIMIT=NONE]-->
+    <string name="overlay_settings_summary">Allow apps that can display over other apps to overlay Settings screens</string>
 </resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 2fd0afb..a60fbd5 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!-- Copyright (C) 2006 The Android Open Source Project
 
      Licensed under the Apache License, Version 2.0 (the "License");
@@ -344,11 +343,11 @@
     </style>
 
     <style name="TextAppearance.NotificationHistory.Title">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+        <item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item>
     </style>
 
     <style name="TextAppearance.NotificationHistory.Text">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+        <item name="android:fontFamily">@*android:string/config_bodyFontFamily</item>
         <item name="android:textColor">?android:attr/textColorSecondary</item>
     </style>
 
diff --git a/res/xml/app_notification_settings.xml b/res/xml/app_notification_settings.xml
index 8ca4e0d..b3a1117 100644
--- a/res/xml/app_notification_settings.xml
+++ b/res/xml/app_notification_settings.xml
@@ -37,12 +37,12 @@
         android:visibility="gone"
         settings:allowDividerAbove="false"
         settings:allowDividerBelow="false">
-        <com.android.settingslib.RestrictedSwitchPreference
-            android:key="invalid_conversation_switch"
-            android:title="@string/conversation_section_switch_title" />
-        <Preference
-            android:key="invalid_conversation_info"/>
     </PreferenceCategory>
+    <com.android.settingslib.RestrictedSwitchPreference
+        android:key="invalid_conversation_switch"
+        android:title="@string/conversation_section_switch_title" />
+    <Preference
+        android:key="invalid_conversation_info"/>
 
     <!--Bubbles -->
     <Preference
diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml
index cce0a37..e860589 100644
--- a/res/xml/development_settings.xml
+++ b/res/xml/development_settings.xml
@@ -251,6 +251,11 @@
             android:title="@string/show_refresh_rate"
             android:summary="@string/show_refresh_rate_summary" />
 
+        <SwitchPreference
+            android:key="overlay_settings"
+            android:title="@string/overlay_settings_title"
+            android:summary="@string/overlay_settings_summary" />
+
     </PreferenceCategory>
 
     <PreferenceCategory
diff --git a/res/xml/user_details_settings.xml b/res/xml/user_details_settings.xml
index d336395..9280ff1 100644
--- a/res/xml/user_details_settings.xml
+++ b/res/xml/user_details_settings.xml
@@ -26,6 +26,10 @@
             android:icon="@drawable/ic_phone"
             android:title="@string/user_enable_calling_sms" />
     <com.android.settingslib.RestrictedPreference
+            android:key="app_and_content_access"
+            android:icon="@drawable/ic_lock_closed"
+            android:title="@string/user_restrictions_title" />
+    <com.android.settingslib.RestrictedPreference
             android:key="remove_user"
             android:icon="@drawable/ic_delete"
             settings:userRestriction="no_remove_user"
diff --git a/src/com/android/settings/IccLockSettings.java b/src/com/android/settings/IccLockSettings.java
index 4d12043..77cc03e 100644
--- a/src/com/android/settings/IccLockSettings.java
+++ b/src/com/android/settings/IccLockSettings.java
@@ -87,6 +87,7 @@
     private static final String PIN_DIALOG = "sim_pin";
     private static final String PIN_TOGGLE = "sim_toggle";
     // Keys in icicle
+    private static final String DIALOG_SUB_ID = "dialogSubId";
     private static final String DIALOG_STATE = "dialogState";
     private static final String DIALOG_PIN = "dialogPin";
     private static final String DIALOG_ERROR = "dialogError";
@@ -127,7 +128,7 @@
     // @see android.widget.Toast$TN
     private static final long LONG_DURATION_TIMEOUT = 7000;
 
-    private int mSlotId;
+    private int mSlotId = -1;
     private int mSubId;
     private TelephonyManager mTelephonyManager;
 
@@ -155,7 +156,7 @@
 
     // For top-level settings screen to query
     private boolean isIccLockEnabled() {
-        mTelephonyManager =  mTelephonyManager.createForSubscriptionId(mSubId);
+        mTelephonyManager = mTelephonyManager.createForSubscriptionId(mSubId);
         return mTelephonyManager.isIccLockEnabled();
     }
 
@@ -187,27 +188,13 @@
 
         mPinDialog = (EditPinPreference) findPreference(PIN_DIALOG);
         mPinToggle = (SwitchPreference) findPreference(PIN_TOGGLE);
-        if (savedInstanceState != null && savedInstanceState.containsKey(DIALOG_STATE)) {
-            mDialogState = savedInstanceState.getInt(DIALOG_STATE);
-            mPin = savedInstanceState.getString(DIALOG_PIN);
-            mError = savedInstanceState.getString(DIALOG_ERROR);
-            mToState = savedInstanceState.getBoolean(ENABLE_TO_STATE);
-
-            // Restore inputted PIN code
-            switch (mDialogState) {
-                case ICC_NEW_MODE:
-                    mOldPin = savedInstanceState.getString(OLD_PINCODE);
-                    break;
-
-                case ICC_REENTER_MODE:
-                    mOldPin = savedInstanceState.getString(OLD_PINCODE);
-                    mNewPin = savedInstanceState.getString(NEW_PINCODE);
-                    break;
-
-                case ICC_LOCK_MODE:
-                case ICC_OLD_MODE:
-                default:
-                    break;
+        if (savedInstanceState != null) {
+            if (savedInstanceState.containsKey(DIALOG_STATE)
+                    && restoreDialogStates(savedInstanceState)) {
+                Log.d(TAG, "onCreate: restore dialog for slotId=" + mSlotId + ", subId=" + mSubId);
+            } else if (savedInstanceState.containsKey(CURRENT_TAB)
+                    && restoreTabFocus(savedInstanceState)) {
+                Log.d(TAG, "onCreate: restore focus on slotId=" + mSlotId + ", subId=" + mSubId);
             }
         }
 
@@ -219,29 +206,75 @@
         mRes = getResources();
     }
 
+    private boolean restoreDialogStates(Bundle savedInstanceState) {
+        final SubscriptionInfo subInfo = mProxySubscriptionMgr
+                .getActiveSubscriptionInfo(savedInstanceState.getInt(DIALOG_SUB_ID));
+        if (subInfo == null) {
+            return false;
+        }
+
+        final SubscriptionInfo visibleSubInfo = getVisibleSubscriptionInfoForSimSlotIndex(
+                subInfo.getSimSlotIndex());
+        if (visibleSubInfo == null) {
+            return false;
+        }
+        if (visibleSubInfo.getSubscriptionId() != subInfo.getSubscriptionId()) {
+            return false;
+        }
+
+        mSlotId = subInfo.getSimSlotIndex();
+        mSubId = subInfo.getSubscriptionId();
+        mDialogState = savedInstanceState.getInt(DIALOG_STATE);
+        mPin = savedInstanceState.getString(DIALOG_PIN);
+        mError = savedInstanceState.getString(DIALOG_ERROR);
+        mToState = savedInstanceState.getBoolean(ENABLE_TO_STATE);
+
+        // Restore inputted PIN code
+        switch (mDialogState) {
+            case ICC_NEW_MODE:
+                mOldPin = savedInstanceState.getString(OLD_PINCODE);
+                break;
+
+            case ICC_REENTER_MODE:
+                mOldPin = savedInstanceState.getString(OLD_PINCODE);
+                mNewPin = savedInstanceState.getString(NEW_PINCODE);
+                break;
+        }
+        return true;
+    }
+
+    private boolean restoreTabFocus(Bundle savedInstanceState) {
+        int slotId = 0;
+        try {
+            slotId = Integer.parseInt(savedInstanceState.getString(CURRENT_TAB));
+        } catch (NumberFormatException exception) {
+            return false;
+        }
+
+        final SubscriptionInfo subInfo = getVisibleSubscriptionInfoForSimSlotIndex(slotId);
+        if (subInfo == null) {
+            return false;
+        }
+
+        mSlotId = subInfo.getSimSlotIndex();
+        mSubId = subInfo.getSubscriptionId();
+        if (mTabHost != null) {
+            mTabHost.setCurrentTabByTag(getTagForSlotId(mSlotId));
+        }
+        return true;
+    }
+
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
             Bundle savedInstanceState) {
 
         final int numSims = mProxySubscriptionMgr.getActiveSubscriptionInfoCountMax();
-        final List<SubscriptionInfo> subInfoList =
-                mProxySubscriptionMgr.getActiveSubscriptionsInfo();
-        mSlotId = 0;
         final List<SubscriptionInfo> componenterList = new ArrayList<>();
 
         for (int i = 0; i < numSims; ++i) {
-            final SubscriptionInfo subInfo =
-                    getActiveSubscriptionInfoForSimSlotIndex(subInfoList, i);
+            final SubscriptionInfo subInfo = getVisibleSubscriptionInfoForSimSlotIndex(i);
             if (subInfo != null) {
-                final CarrierConfigManager carrierConfigManager = getContext().getSystemService(
-                        CarrierConfigManager.class);
-                final PersistableBundle bundle = carrierConfigManager.getConfigForSubId(
-                        subInfo.getSubscriptionId());
-                if (bundle != null
-                        && !bundle.getBoolean(CarrierConfigManager
-                        .KEY_HIDE_SIM_LOCK_SETTINGS_BOOL)) {
-                    componenterList.add(subInfo);
-                }
+                componenterList.add(subInfo);
             }
         }
 
@@ -250,6 +283,12 @@
             return super.onCreateView(inflater, container, savedInstanceState);
         }
 
+        if (mSlotId < 0) {
+            mSlotId = componenterList.get(0).getSimSlotIndex();
+            mSubId = componenterList.get(0).getSubscriptionId();
+            Log.d(TAG, "onCreateView: default slotId=" + mSlotId + ", subId=" + mSubId);
+        }
+
         if (componenterList.size() > 1) {
             final View view = inflater.inflate(R.layout.icc_lock_tabs, container, false);
             final ViewGroup prefs_container = (ViewGroup) view.findViewById(R.id.prefs_container);
@@ -262,25 +301,21 @@
             mListView = (ListView) view.findViewById(android.R.id.list);
 
             mTabHost.setup();
-            mTabHost.setOnTabChangedListener(mTabListener);
             mTabHost.clearAllTabs();
 
             for (SubscriptionInfo subInfo : componenterList) {
-                int slot = subInfo.getSimSlotIndex();
-                mTabHost.addTab(buildTabSpec(String.valueOf(slot),
+                final int slot = subInfo.getSimSlotIndex();
+                final String tag = getTagForSlotId(slot);
+                mTabHost.addTab(buildTabSpec(tag,
                         String.valueOf(subInfo == null
                                 ? getContext().getString(R.string.sim_editor_title, slot + 1)
                                 : subInfo.getDisplayName())));
             }
 
-            mSubId = componenterList.get(0).getSubscriptionId();
-
-            if (savedInstanceState != null && savedInstanceState.containsKey(CURRENT_TAB)) {
-                mTabHost.setCurrentTabByTag(savedInstanceState.getString(CURRENT_TAB));
-            }
+            mTabHost.setCurrentTabByTag(getTagForSlotId(mSlotId));
+            mTabHost.setOnTabChangedListener(mTabListener);
             return view;
         } else {
-            mSlotId = componenterList.get(0).getSimSlotIndex();
             return super.onCreateView(inflater, container, savedInstanceState);
         }
     }
@@ -293,17 +328,20 @@
 
     private void updatePreferences() {
 
-        final List<SubscriptionInfo> subInfoList =
-                mProxySubscriptionMgr.getActiveSubscriptionsInfo();
-        final SubscriptionInfo sir = getActiveSubscriptionInfoForSimSlotIndex(subInfoList, mSlotId);
-        mSubId = (sir == null) ? SubscriptionManager.INVALID_SUBSCRIPTION_ID
-            : sir.getSubscriptionId();
+        final SubscriptionInfo sir = getVisibleSubscriptionInfoForSimSlotIndex(mSlotId);
+        final int subId = (sir != null) ? sir.getSubscriptionId()
+                : SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+
+        if (mSubId != subId) {
+            mSubId = subId;
+            resetDialogState();
+            if ((mPinDialog != null) && mPinDialog.isDialogOpen()) {
+                mPinDialog.getDialog().dismiss();
+            }
+        }
 
         if (mPinDialog != null) {
             mPinDialog.setEnabled(sir != null);
-            if (mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
-                mPinDialog.getDialog().dismiss();
-            }
         }
         if (mPinToggle != null) {
             mPinToggle.setEnabled(sir != null);
@@ -355,6 +393,7 @@
         // dialog state. In other cases, where this activity manually launches
         // the dialog, store the state of the dialog.
         if (mPinDialog.isDialogOpen()) {
+            out.putInt(DIALOG_SUB_ID, mSubId);
             out.putInt(DIALOG_STATE, mDialogState);
             out.putString(DIALOG_PIN, mPinDialog.getEditText().getText().toString());
             out.putString(DIALOG_ERROR, mError);
@@ -370,11 +409,6 @@
                     out.putString(OLD_PINCODE, mOldPin);
                     out.putString(NEW_PINCODE, mNewPin);
                     break;
-
-                case ICC_LOCK_MODE:
-                case ICC_OLD_MODE:
-                default:
-                    break;
             }
         } else {
             super.onSaveInstanceState(out);
@@ -672,23 +706,50 @@
         mDialogState = OFF_MODE;
     }
 
-    private static SubscriptionInfo getActiveSubscriptionInfoForSimSlotIndex(
-            List<SubscriptionInfo> subInfoList, int slotId) {
+    private String getTagForSlotId(int slotId) {
+        return String.valueOf(slotId);
+    }
+
+    private int getSlotIndexFromTag(String tag) {
+        int slotId = -1;
+        try {
+            slotId = Integer.parseInt(tag);
+        } catch (NumberFormatException exception) {
+        }
+        return slotId;
+    }
+
+    private SubscriptionInfo getVisibleSubscriptionInfoForSimSlotIndex(int slotId) {
+        final List<SubscriptionInfo> subInfoList =
+                mProxySubscriptionMgr.getActiveSubscriptionsInfo();
         if (subInfoList == null) {
             return null;
         }
+        final CarrierConfigManager carrierConfigManager = getContext().getSystemService(
+                CarrierConfigManager.class);
         for (SubscriptionInfo subInfo : subInfoList) {
-            if (subInfo.getSimSlotIndex() == slotId) {
+            if ((isSubscriptionVisible(carrierConfigManager, subInfo)
+                    && (subInfo.getSimSlotIndex() == slotId))) {
                 return subInfo;
             }
         }
         return null;
     }
 
+    private boolean isSubscriptionVisible(CarrierConfigManager carrierConfigManager,
+            SubscriptionInfo subInfo) {
+        final PersistableBundle bundle = carrierConfigManager
+                .getConfigForSubId(subInfo.getSubscriptionId());
+        if (bundle == null) {
+            return false;
+        }
+        return !bundle.getBoolean(CarrierConfigManager.KEY_HIDE_SIM_LOCK_SETTINGS_BOOL);
+    }
+
     private OnTabChangeListener mTabListener = new OnTabChangeListener() {
         @Override
         public void onTabChanged(String tabId) {
-            mSlotId = Integer.parseInt(tabId);
+            mSlotId = getSlotIndexFromTag(tabId);
 
             // The User has changed tab; update the body.
             updatePreferences();
diff --git a/src/com/android/settings/SettingsLicenseActivity.java b/src/com/android/settings/SettingsLicenseActivity.java
index 6def6fa..57b1f5c 100644
--- a/src/com/android/settings/SettingsLicenseActivity.java
+++ b/src/com/android/settings/SettingsLicenseActivity.java
@@ -30,7 +30,6 @@
 import androidx.loader.app.LoaderManager;
 import androidx.loader.content.Loader;
 
-import com.android.settings.users.RestrictedProfileSettings;
 import com.android.settingslib.license.LicenseHtmlLoaderCompat;
 
 import java.io.File;
@@ -78,7 +77,7 @@
 
     @VisibleForTesting
     Uri getUriFromGeneratedHtmlFile(File generatedHtmlFile) {
-        return FileProvider.getUriForFile(this, RestrictedProfileSettings.FILE_PROVIDER_AUTHORITY,
+        return FileProvider.getUriForFile(this, Utils.FILE_PROVIDER_AUTHORITY,
                 generatedHtmlFile);
     }
 
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index d34dbcf..e5fd340 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -116,6 +116,8 @@
 
     private static final String TAG = "Settings";
 
+    public static final String FILE_PROVIDER_AUTHORITY = "com.android.settings.files";
+
     /**
      * Set the preference's title to the matching activity's label.
      */
diff --git a/src/com/android/settings/core/HideNonSystemOverlayMixin.java b/src/com/android/settings/core/HideNonSystemOverlayMixin.java
index 4b8975d..eff1792 100644
--- a/src/com/android/settings/core/HideNonSystemOverlayMixin.java
+++ b/src/com/android/settings/core/HideNonSystemOverlayMixin.java
@@ -22,7 +22,6 @@
 import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
 
 import android.app.Activity;
-import android.os.Build;
 import android.view.Window;
 import android.view.WindowManager;
 
@@ -30,6 +29,8 @@
 import androidx.lifecycle.LifecycleObserver;
 import androidx.lifecycle.OnLifecycleEvent;
 
+import com.android.settings.development.OverlaySettingsPreferenceController;
+
 
 /**
  * A mixin that adds window flag to prevent non-system overlays showing on top of Settings
@@ -45,7 +46,7 @@
 
     @VisibleForTesting
     boolean isEnabled() {
-        return !Build.IS_DEBUGGABLE;
+        return !OverlaySettingsPreferenceController.isOverlaySettingsEnabled(mActivity);
     }
 
     @OnLifecycleEvent(ON_START)
diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
index eaccebf..9406c89 100644
--- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
+++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
@@ -539,6 +539,7 @@
         controllers.add(new BluetoothHDAudioPreferenceController(context, lifecycle,
                 bluetoothA2dpConfigStore, fragment));
         controllers.add(new SharedDataPreferenceController(context));
+        controllers.add(new OverlaySettingsPreferenceController(context));
 
         return controllers;
     }
diff --git a/src/com/android/settings/development/OverlaySettingsPreferenceController.java b/src/com/android/settings/development/OverlaySettingsPreferenceController.java
new file mode 100644
index 0000000..50f9867
--- /dev/null
+++ b/src/com/android/settings/development/OverlaySettingsPreferenceController.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.preference.SwitchPreference;
+
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.development.DeveloperOptionsPreferenceController;
+
+/**
+ * A controller helps enable or disable a developer setting which allows non system overlays on
+ * Settings app.
+ */
+public class OverlaySettingsPreferenceController extends DeveloperOptionsPreferenceController
+        implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin {
+
+    public static final String SHARE_PERFS = "overlay_settings";
+    private static final String KEY_OVERLAY_SETTINGS = "overlay_settings";
+
+    public OverlaySettingsPreferenceController(Context context) {
+        super(context);
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_OVERLAY_SETTINGS;
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        setOverlaySettingsEnabled(mContext, (Boolean) newValue);
+        return true;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        ((SwitchPreference) preference).setChecked(isOverlaySettingsEnabled(mContext));
+    }
+
+    /**
+     * Check if this setting is enabled or not.
+     */
+    public static boolean isOverlaySettingsEnabled(Context context) {
+        final SharedPreferences editor = context.getSharedPreferences(SHARE_PERFS,
+                Context.MODE_PRIVATE);
+        return editor.getBoolean(SHARE_PERFS, false /* defValue */);
+    }
+
+    /**
+     * Enable this setting.
+     */
+    @VisibleForTesting
+    static void setOverlaySettingsEnabled(Context context, boolean enabled) {
+        final SharedPreferences editor = context.getSharedPreferences(SHARE_PERFS,
+                Context.MODE_PRIVATE);
+        editor.edit().putBoolean(SHARE_PERFS, enabled).apply();
+    }
+
+    @Override
+    protected void onDeveloperOptionsSwitchDisabled() {
+        super.onDeveloperOptionsSwitchDisabled();
+        setOverlaySettingsEnabled(mContext, false);
+    }
+}
diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsController.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsController.java
index 2cf2b6d..737fb0f 100644
--- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsController.java
+++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsController.java
@@ -22,6 +22,7 @@
 import android.provider.Settings;
 import android.provider.Settings.Global;
 import android.text.TextUtils;
+
 import com.android.settingslib.fuelgauge.BatterySaverUtils;
 
 /**
@@ -72,7 +73,7 @@
         if (key == null) {
             return false;
         }
-        
+
         final ContentResolver resolver = mContext.getContentResolver();
         int mode = PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE;
         int triggerLevel = 0;
@@ -112,6 +113,10 @@
         if (mode != PowerManager.POWER_SAVE_MODE_TRIGGER_DYNAMIC) {
             Settings.Global.putInt(resolver, Global.LOW_POWER_MODE_TRIGGER_LEVEL, triggerLevel);
         }
+        // Suppress battery saver suggestion notification if enabling scheduling battery saver.
+        if (mode == PowerManager.POWER_SAVE_MODE_TRIGGER_DYNAMIC || triggerLevel != 0) {
+            BatterySaverUtils.suppressAutoBatterySaver(mContext);
+        }
         mSeekBarController.updateSeekBar();
         return true;
     }
diff --git a/src/com/android/settings/gestures/DeviceControlsPreferenceController.java b/src/com/android/settings/gestures/DeviceControlsPreferenceController.java
index e588e86..0e0c04b 100644
--- a/src/com/android/settings/gestures/DeviceControlsPreferenceController.java
+++ b/src/com/android/settings/gestures/DeviceControlsPreferenceController.java
@@ -17,6 +17,7 @@
 package com.android.settings.gestures;
 
 import android.content.Context;
+import android.content.pm.PackageManager;
 import android.provider.Settings;
 import android.text.TextUtils;
 
@@ -37,7 +38,9 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return AVAILABLE;
+        boolean available = mContext.getPackageManager().hasSystemFeature(
+                PackageManager.FEATURE_CONTROLS);
+        return available ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
     }
 
     @Override
diff --git a/src/com/android/settings/gestures/PowerMenuPreferenceController.java b/src/com/android/settings/gestures/PowerMenuPreferenceController.java
index e65d140..6ef583b 100644
--- a/src/com/android/settings/gestures/PowerMenuPreferenceController.java
+++ b/src/com/android/settings/gestures/PowerMenuPreferenceController.java
@@ -17,6 +17,7 @@
 package com.android.settings.gestures;
 
 import android.content.Context;
+import android.content.pm.PackageManager;
 import android.provider.Settings;
 
 import com.android.settings.R;
@@ -37,15 +38,15 @@
 
     @Override
     public CharSequence getSummary() {
-        boolean controlsEnabled = Settings.Secure.getInt(mContext.getContentResolver(),
-                CONTROLS_ENABLED_SETTING, 1) == 1;
-        boolean cardsEnabled = Settings.Secure.getInt(mContext.getContentResolver(),
-                CARDS_ENABLED_SETTING, 0) == 1;
-        boolean cardsVisible = cardsEnabled && Settings.Secure.getInt(mContext.getContentResolver(),
-                CARDS_AVAILABLE_SETTING, 0) == 1;
-        if (controlsEnabled && cardsVisible) {
+        boolean controlsVisible = isControlsAvailable()
+                && Settings.Secure.getInt(mContext.getContentResolver(),
+                        CONTROLS_ENABLED_SETTING, 1) == 1;
+        boolean cardsVisible = isCardsAvailable()
+                && Settings.Secure.getInt(mContext.getContentResolver(),
+                        CARDS_ENABLED_SETTING, 0) == 1;
+        if (controlsVisible && cardsVisible) {
             return mContext.getText(R.string.power_menu_cards_passes_device_controls);
-        } else if (controlsEnabled) {
+        } else if (controlsVisible) {
             return mContext.getText(R.string.power_menu_device_controls);
         } else if (cardsVisible) {
             return mContext.getText(R.string.power_menu_cards_passes);
@@ -56,6 +57,15 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return AVAILABLE;
+        return isCardsAvailable() || isControlsAvailable() ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+    }
+
+    private boolean isControlsAvailable() {
+        return mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CONTROLS);
+    }
+
+    private boolean isCardsAvailable() {
+        return Settings.Secure.getInt(mContext.getContentResolver(),
+                CARDS_AVAILABLE_SETTING, 0) == 1;
     }
 }
diff --git a/src/com/android/settings/gestures/PowerMenuPrivacyPreferenceController.java b/src/com/android/settings/gestures/PowerMenuPrivacyPreferenceController.java
index ec88ddc..0cd71ee 100644
--- a/src/com/android/settings/gestures/PowerMenuPrivacyPreferenceController.java
+++ b/src/com/android/settings/gestures/PowerMenuPrivacyPreferenceController.java
@@ -18,6 +18,7 @@
 
 import android.content.ContentResolver;
 import android.content.Context;
+import android.content.pm.PackageManager;
 import android.os.UserHandle;
 import android.provider.Settings;
 
@@ -57,13 +58,20 @@
     public CharSequence getSummary() {
         boolean cardsAvailable = Settings.Secure.getInt(mContext.getContentResolver(),
                 CARDS_AVAILABLE_KEY, 0) != 0;
+        boolean controlsAvailable = isControlsAvailable();
         final int res;
         if (!isSecure()) {
             res = R.string.power_menu_privacy_not_secure;
-        } else if (cardsAvailable) {
+        } else if (cardsAvailable && controlsAvailable) {
             res = R.string.power_menu_privacy_show;
-        } else {
+        } else if (!cardsAvailable && controlsAvailable) {
             res = R.string.power_menu_privacy_show_controls;
+        } else if (cardsAvailable) {
+            res = R.string.power_menu_privacy_show_cards;
+        } else {
+            // In this case, neither cards nor controls are available. This preference should not
+            // be accessible as the power menu setting is not accessible
+            return "";
         }
         return mContext.getText(res);
     }
@@ -87,7 +95,7 @@
         boolean cardsAvailable = Settings.Secure.getInt(resolver, CARDS_AVAILABLE_KEY, 0) != 0;
         boolean cardsEnabled = Settings.Secure.getInt(resolver, CARDS_ENABLED_KEY, 0) != 0;
         boolean controlsEnabled = Settings.Secure.getInt(resolver, CONTROLS_ENABLED_KEY, 1) != 0;
-        return (cardsAvailable && cardsEnabled) || controlsEnabled;
+        return (cardsAvailable && cardsEnabled) || (isControlsAvailable() && controlsEnabled);
     }
 
     private boolean isSecure() {
@@ -97,4 +105,8 @@
         int userId = UserHandle.myUserId();
         return utils.isSecure(userId);
     }
+
+    private boolean isControlsAvailable() {
+        return mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CONTROLS);
+    }
 }
diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCard.java b/src/com/android/settings/homepage/contextualcards/ContextualCard.java
index 262cd2f..510c36d 100644
--- a/src/com/android/settings/homepage/contextualcards/ContextualCard.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCard.java
@@ -23,6 +23,7 @@
 import android.text.TextUtils;
 
 import androidx.annotation.LayoutRes;
+import androidx.slice.Slice;
 
 import com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer;
 
@@ -66,6 +67,7 @@
     private final int mViewType;
     private final boolean mIsPendingDismiss;
     private final boolean mHasInlineAction;
+    private final Slice mSlice;
 
     public String getName() {
         return mName;
@@ -127,6 +129,10 @@
         return mHasInlineAction;
     }
 
+    public Slice getSlice() {
+        return mSlice;
+    }
+
     public Builder mutate() {
         return mBuilder;
     }
@@ -147,6 +153,7 @@
         mViewType = builder.mViewType;
         mIsPendingDismiss = builder.mIsPendingDismiss;
         mHasInlineAction = builder.mHasInlineAction;
+        mSlice = builder.mSlice;
     }
 
     ContextualCard(Cursor c) {
@@ -179,6 +186,8 @@
         mBuilder.setIsPendingDismiss(mIsPendingDismiss);
         mHasInlineAction = false;
         mBuilder.setHasInlineAction(mHasInlineAction);
+        mSlice = null;
+        mBuilder.setSlice(mSlice);
     }
 
     @Override
@@ -225,6 +234,7 @@
         private int mViewType;
         private boolean mIsPendingDismiss;
         private boolean mHasInlineAction;
+        private Slice mSlice;
 
         public Builder setName(String name) {
             mName = name;
@@ -296,6 +306,14 @@
             return this;
         }
 
+        /**
+         * Cache a slice created at pre-check time for later usage.
+         */
+        public Builder setSlice(Slice slice) {
+            mSlice = slice;
+            return this;
+        }
+
         public ContextualCard build() {
             return new ContextualCard(this);
         }
diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProvider.java b/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProvider.java
index 60bffde..7f29ecb 100644
--- a/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProvider.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProvider.java
@@ -19,8 +19,6 @@
 import android.content.Context;
 import android.database.Cursor;
 
-import androidx.slice.Slice;
-
 /** Feature provider for the contextual card feature. */
 public interface ContextualCardFeatureProvider {
     /** Get contextual cards from the card provider */
@@ -35,7 +33,4 @@
      * @return The number of rows updated
      */
     int markCardAsDismissed(Context context, String cardName);
-
-    /** Log package when user clicks contextual notification channel card. */
-    void logNotificationPackage(Slice slice);
 }
diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImpl.java b/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImpl.java
index f4bb84c..5059d90 100644
--- a/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImpl.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImpl.java
@@ -16,33 +16,20 @@
 
 package com.android.settings.homepage.contextualcards;
 
-import static android.content.Context.MODE_PRIVATE;
-
 import static com.android.settings.homepage.contextualcards.CardDatabaseHelper.CARD_TABLE;
 
 import android.content.ContentValues;
 import android.content.Context;
-import android.content.SharedPreferences;
 import android.database.Cursor;
 import android.database.sqlite.SQLiteDatabase;
 import android.os.Build;
 import android.text.format.DateUtils;
-import android.util.ArraySet;
 import android.util.Log;
 
 import androidx.annotation.VisibleForTesting;
-import androidx.slice.Slice;
-import androidx.slice.SliceMetadata;
-import androidx.slice.core.SliceAction;
 
-import com.android.settings.SettingsActivity;
-import com.android.settings.applications.AppInfoBase;
-import com.android.settings.homepage.contextualcards.slices.ContextualNotificationChannelSlice;
-import com.android.settings.slices.CustomSliceRegistry;
 import com.android.settingslib.utils.ThreadUtils;
 
-import java.util.Set;
-
 public class ContextualCardFeatureProviderImpl implements ContextualCardFeatureProvider {
     private static final String TAG = "ContextualCardFeatureProvider";
 
@@ -79,29 +66,6 @@
         return rowsUpdated;
     }
 
-    @Override
-    public void logNotificationPackage(Slice slice) {
-        if (slice == null || !slice.getUri().equals(
-                CustomSliceRegistry.CONTEXTUAL_NOTIFICATION_CHANNEL_SLICE_URI)) {
-            return;
-        }
-
-        final SliceAction primaryAction = SliceMetadata.from(mContext, slice).getPrimaryAction();
-        final String currentPackage = primaryAction.getAction().getIntent()
-                .getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)
-                .getString(AppInfoBase.ARG_PACKAGE_NAME);
-
-        final SharedPreferences prefs = mContext.getSharedPreferences(
-                ContextualNotificationChannelSlice.PREFS, MODE_PRIVATE);
-        final Set<String> interactedPackages = prefs.getStringSet(
-                ContextualNotificationChannelSlice.PREF_KEY_INTERACTED_PACKAGES, new ArraySet<>());
-
-        final Set<String> newInteractedPackages = new ArraySet<>(interactedPackages);
-        newInteractedPackages.add(currentPackage);
-        prefs.edit().putStringSet(ContextualNotificationChannelSlice.PREF_KEY_INTERACTED_PACKAGES,
-                newInteractedPackages).apply();
-    }
-
     @VisibleForTesting
     int resetDismissedTime(long threshold) {
         final SQLiteDatabase database =
diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java b/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java
index 744bb4e..4d1a1d4 100644
--- a/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java
@@ -18,7 +18,6 @@
 
 import static com.android.settings.intelligence.ContextualCardProto.ContextualCard.Category.STICKY_VALUE;
 import static com.android.settings.slices.CustomSliceRegistry.BLUETOOTH_DEVICES_SLICE_URI;
-import static com.android.settings.slices.CustomSliceRegistry.CONTEXTUAL_NOTIFICATION_CHANNEL_SLICE_URI;
 import static com.android.settings.slices.CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI;
 
 import android.app.settings.SettingsEnums;
@@ -201,7 +200,7 @@
                     cards.add(card);
                 }
             } catch (ExecutionException | InterruptedException | TimeoutException e) {
-                Log.w(TAG, "Failed to get eligible state for card, likely timeout. Skipping", e);
+                Log.w(TAG, "Failed to get eligible state for card: " + e.toString());
             }
         }
         return cards;
@@ -209,8 +208,7 @@
 
     private boolean isLargeCard(ContextualCard card) {
         return card.getSliceUri().equals(CONTEXTUAL_WIFI_SLICE_URI)
-                || card.getSliceUri().equals(BLUETOOTH_DEVICES_SLICE_URI)
-                || card.getSliceUri().equals(CONTEXTUAL_NOTIFICATION_CHANNEL_SLICE_URI);
+                || card.getSliceUri().equals(BLUETOOTH_DEVICES_SLICE_URI);
     }
 
     public interface CardContentLoaderListener {
diff --git a/src/com/android/settings/homepage/contextualcards/EligibleCardChecker.java b/src/com/android/settings/homepage/contextualcards/EligibleCardChecker.java
index 90b7f36..4e8c61f 100644
--- a/src/com/android/settings/homepage/contextualcards/EligibleCardChecker.java
+++ b/src/com/android/settings/homepage/contextualcards/EligibleCardChecker.java
@@ -96,14 +96,17 @@
 
         final Slice slice = bindSlice(uri);
 
-        if (isSliceToggleable(slice)) {
-            mCard = card.mutate().setHasInlineAction(true).build();
-        }
-
         if (slice == null || slice.hasHint(HINT_ERROR)) {
             Log.w(TAG, "Failed to bind slice, not eligible for display " + uri);
             return false;
         }
+
+        mCard = card.mutate().setSlice(slice).build();
+
+        if (isSliceToggleable(slice)) {
+            mCard = card.mutate().setHasInlineAction(true).build();
+        }
+
         return true;
     }
 
diff --git a/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java b/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java
index 1494293..067fcf9 100644
--- a/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java
+++ b/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java
@@ -56,14 +56,6 @@
                         .setCardName(CustomSliceRegistry.BATTERY_FIX_SLICE_URI.toString())
                         .setCardCategory(ContextualCard.Category.IMPORTANT)
                         .build();
-        final String contextualNotificationChannelSliceUri =
-                CustomSliceRegistry.CONTEXTUAL_NOTIFICATION_CHANNEL_SLICE_URI.toString();
-        final ContextualCard notificationChannelCard =
-                ContextualCard.newBuilder()
-                        .setSliceUri(contextualNotificationChannelSliceUri)
-                        .setCardName(contextualNotificationChannelSliceUri)
-                        .setCardCategory(ContextualCard.Category.POSSIBLE)
-                        .build();
         final String contextualAdaptiveSleepSliceUri =
                 CustomSliceRegistry.CONTEXTUAL_ADAPTIVE_SLEEP_URI.toString();
         final ContextualCard contextualAdaptiveSleepCard =
@@ -89,7 +81,6 @@
                 .addCard(connectedDeviceCard)
                 .addCard(lowStorageCard)
                 .addCard(batteryFixCard)
-                .addCard(notificationChannelCard)
                 .addCard(contextualAdaptiveSleepCard)
                 .addCard(contextualFaceSettingsCard)
                 .addCard(darkThemeCard)
diff --git a/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSlice.java b/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSlice.java
index 3cd4ca3..d99d01e 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSlice.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSlice.java
@@ -73,6 +73,8 @@
         UNIMPORTANT_BATTERY_TIPS = new ArrayMap<>();
         UNIMPORTANT_BATTERY_TIPS.put(BatteryTip.TipType.SUMMARY,
                 Arrays.asList(BatteryTip.StateType.NEW, BatteryTip.StateType.HANDLED));
+        UNIMPORTANT_BATTERY_TIPS.put(BatteryTip.TipType.HIGH_DEVICE_USAGE,
+                Arrays.asList(BatteryTip.StateType.NEW, BatteryTip.StateType.HANDLED));
         UNIMPORTANT_BATTERY_TIPS.put(BatteryTip.TipType.BATTERY_SAVER,
                 Arrays.asList(BatteryTip.StateType.HANDLED));
     }
diff --git a/src/com/android/settings/homepage/contextualcards/slices/ContextualNotificationChannelSlice.java b/src/com/android/settings/homepage/contextualcards/slices/ContextualNotificationChannelSlice.java
deleted file mode 100644
index 17cae77..0000000
--- a/src/com/android/settings/homepage/contextualcards/slices/ContextualNotificationChannelSlice.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.homepage.contextualcards.slices;
-
-import static android.content.Context.MODE_PRIVATE;
-
-import android.content.Context;
-import android.net.Uri;
-import android.util.ArraySet;
-
-import com.android.settings.R;
-import com.android.settings.slices.CustomSliceRegistry;
-import com.android.settings.slices.SliceBackgroundWorker;
-
-import java.util.Set;
-
-public class ContextualNotificationChannelSlice extends NotificationChannelSlice {
-
-    public static final String PREFS = "notification_channel_slice_prefs";
-    public static final String PREF_KEY_INTERACTED_PACKAGES = "interacted_packages";
-
-    public ContextualNotificationChannelSlice(Context context) {
-        super(context);
-    }
-
-    @Override
-    public Uri getUri() {
-        return CustomSliceRegistry.CONTEXTUAL_NOTIFICATION_CHANNEL_SLICE_URI;
-    }
-
-    @Override
-    protected CharSequence getSubTitle(String packageName, int uid) {
-        return mContext.getText(R.string.recently_installed_app);
-    }
-
-    @Override
-    protected boolean isUserInteracted(String packageName) {
-        // Check the package has been interacted on current slice or not.
-        final Set<String> interactedPackages =
-                mContext.getSharedPreferences(PREFS, MODE_PRIVATE)
-                        .getStringSet(PREF_KEY_INTERACTED_PACKAGES, new ArraySet<>());
-        return interactedPackages.contains(packageName);
-    }
-
-    @Override
-    public Class<? extends SliceBackgroundWorker> getBackgroundWorkerClass() {
-        return NotificationChannelWorker.class;
-    }
-}
diff --git a/src/com/android/settings/homepage/contextualcards/slices/NotificationChannelSlice.java b/src/com/android/settings/homepage/contextualcards/slices/NotificationChannelSlice.java
deleted file mode 100644
index 2716e4c..0000000
--- a/src/com/android/settings/homepage/contextualcards/slices/NotificationChannelSlice.java
+++ /dev/null
@@ -1,503 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.homepage.contextualcards.slices;
-
-import static android.app.NotificationManager.IMPORTANCE_LOW;
-import static android.app.NotificationManager.IMPORTANCE_NONE;
-import static android.app.slice.Slice.EXTRA_TOGGLE_STATE;
-
-import android.app.Application;
-import android.app.NotificationChannel;
-import android.app.NotificationChannelGroup;
-import android.app.PendingIntent;
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.graphics.drawable.Drawable;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.UserHandle;
-import android.provider.Settings;
-import android.text.TextUtils;
-import android.util.Log;
-
-import androidx.core.graphics.drawable.IconCompat;
-import androidx.slice.Slice;
-import androidx.slice.builders.ListBuilder;
-import androidx.slice.builders.SliceAction;
-
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.settings.R;
-import com.android.settings.SubSettings;
-import com.android.settings.Utils;
-import com.android.settings.applications.AppAndNotificationDashboardFragment;
-import com.android.settings.applications.AppInfoBase;
-import com.android.settings.core.SubSettingLauncher;
-import com.android.settings.notification.app.AppNotificationSettings;
-import com.android.settings.notification.app.ChannelNotificationSettings;
-import com.android.settings.notification.NotificationBackend;
-import com.android.settings.notification.NotificationBackend.NotificationsSentState;
-import com.android.settings.notification.app.ChannelListPreferenceController;
-import com.android.settings.slices.CustomSliceRegistry;
-import com.android.settings.slices.CustomSliceable;
-import com.android.settings.slices.SliceBroadcastReceiver;
-import com.android.settings.slices.SliceBuilderUtils;
-import com.android.settingslib.RestrictedLockUtils;
-import com.android.settingslib.RestrictedLockUtilsInternal;
-import com.android.settingslib.applications.ApplicationsState;
-import com.android.settingslib.utils.ThreadUtils;
-
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Future;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-import java.util.stream.Collectors;
-
-public class NotificationChannelSlice implements CustomSliceable {
-
-    /**
-     * Recently app condition:
-     * App was installed between 3 and 7 days ago.
-     */
-    @VisibleForTesting
-    static final long DURATION_START_DAYS = TimeUnit.DAYS.toMillis(7);
-    @VisibleForTesting
-    static final long DURATION_END_DAYS = TimeUnit.DAYS.toMillis(3);
-
-    /**
-     * Notification count condition:
-     * App has sent at least ~10 notifications.
-     */
-    @VisibleForTesting
-    static final int MIN_NOTIFICATION_SENT_COUNT = 10;
-
-    /**
-     * Limit rows when the number of notification channel is more than {@link
-     * #DEFAULT_EXPANDED_ROW_COUNT}.
-     */
-    @VisibleForTesting
-    static final int DEFAULT_EXPANDED_ROW_COUNT = 3;
-
-    private static final String TAG = "NotifChannelSlice";
-    private static final String PACKAGE_NAME = "package_name";
-    private static final String PACKAGE_UID = "package_uid";
-    private static final String CHANNEL_ID = "channel_id";
-    private static final long TASK_TIMEOUT_MS = 100;
-
-    /**
-     * Sort notification channel with weekly average sent count by descending.
-     *
-     * Note:
-     * When the sent count of notification channels is the same, follow the sorting mechanism from
-     * {@link ChannelListPreferenceController}.
-     * Since slice view only shows displayable notification channels, so those deleted ones are
-     * excluded from the comparison here.
-     */
-    private static final Comparator<NotificationChannelState> CHANNEL_STATE_COMPARATOR =
-            (left, right) -> {
-                final NotificationsSentState leftState = left.getNotificationsSentState();
-                final NotificationsSentState rightState = right.getNotificationsSentState();
-                if (rightState.avgSentWeekly != leftState.avgSentWeekly) {
-                    return rightState.avgSentWeekly - leftState.avgSentWeekly;
-                }
-
-                final NotificationChannel leftChannel = left.getNotificationChannel();
-                final NotificationChannel rightChannel = right.getNotificationChannel();
-                if (TextUtils.equals(leftChannel.getId(), NotificationChannel.DEFAULT_CHANNEL_ID)) {
-                    return 1;
-                } else if (TextUtils.equals(rightChannel.getId(),
-                        NotificationChannel.DEFAULT_CHANNEL_ID)) {
-                    return -1;
-                }
-
-                return leftChannel.getId().compareTo(rightChannel.getId());
-            };
-
-    protected final Context mContext;
-    @VisibleForTesting
-    NotificationBackend mNotificationBackend;
-    private NotificationBackend.AppRow mAppRow;
-    private String mPackageName;
-    private int mUid;
-
-    public NotificationChannelSlice(Context context) {
-        mContext = context;
-        mNotificationBackend = new NotificationBackend();
-    }
-
-    @Override
-    public Slice getSlice() {
-        final ListBuilder listBuilder =
-                new ListBuilder(mContext, getUri(), ListBuilder.INFINITY)
-                        .setAccentColor(COLOR_NOT_TINTED);
-        /**
-         * Get package which is satisfied with:
-         * 1. Recently installed.
-         * 2. Multiple channels.
-         * 3. Sent at least ~10 notifications.
-         */
-        mPackageName = getEligibleNotificationsPackage(getRecentlyInstalledPackages());
-        if (mPackageName == null) {
-            // Return a header with IsError flag, if package is not found.
-            return listBuilder.setHeader(getNoSuggestedAppHeader())
-                    .setIsError(true).build();
-        }
-        mUid = getApplicationUid(mPackageName);
-
-        // Add notification channel header.
-        final IconCompat icon = getApplicationIcon(mPackageName);
-        final CharSequence title = mContext.getString(R.string.manage_app_notification,
-                Utils.getApplicationLabel(mContext, mPackageName));
-        listBuilder.addRow(new ListBuilder.RowBuilder()
-                .setTitleItem(icon, ListBuilder.ICON_IMAGE)
-                .setTitle(title)
-                .setSubtitle(getSubTitle(mPackageName, mUid))
-                .setPrimaryAction(getPrimarySliceAction(icon, title, getIntent())));
-
-        // Add notification channel rows.
-        final List<ListBuilder.RowBuilder> rows = getNotificationChannelRows(icon);
-        for (ListBuilder.RowBuilder rowBuilder : rows) {
-            listBuilder.addRow(rowBuilder);
-        }
-
-        return listBuilder.build();
-    }
-
-    @Override
-    public Uri getUri() {
-        return CustomSliceRegistry.NOTIFICATION_CHANNEL_SLICE_URI;
-    }
-
-    @Override
-    public void onNotifyChange(Intent intent) {
-        final boolean newState = intent.getBooleanExtra(EXTRA_TOGGLE_STATE, false);
-        final String packageName = intent.getStringExtra(PACKAGE_NAME);
-        final int uid = intent.getIntExtra(PACKAGE_UID, -1);
-        final String channelId = intent.getStringExtra(CHANNEL_ID);
-        final NotificationChannel channel = mNotificationBackend.getChannel(packageName, uid,
-                channelId);
-        final int importance = newState ? IMPORTANCE_LOW : IMPORTANCE_NONE;
-        channel.setImportance(importance);
-        channel.lockFields(NotificationChannel.USER_LOCKED_IMPORTANCE);
-        mNotificationBackend.updateChannel(packageName, uid, channel);
-    }
-
-    @Override
-    public Intent getIntent() {
-        final Bundle args = new Bundle();
-        args.putString(AppInfoBase.ARG_PACKAGE_NAME, mPackageName);
-        args.putInt(AppInfoBase.ARG_PACKAGE_UID, mUid);
-
-        return new SubSettingLauncher(mContext)
-                .setDestination(AppNotificationSettings.class.getName())
-                .setTitleRes(R.string.notifications_title)
-                .setArguments(args)
-                .setSourceMetricsCategory(SettingsEnums.SLICE)
-                .toIntent();
-    }
-
-    /**
-     * Check the package has been interacted by user or not.
-     * Will use to filter package in {@link #getRecentlyInstalledPackages()}.
-     *
-     * @param packageName The app package name.
-     * @return true if the package was interacted, false otherwise.
-     */
-    protected boolean isUserInteracted(String packageName) {
-        return false;
-    }
-
-    @VisibleForTesting
-    IconCompat getApplicationIcon(String packageName) {
-        final Drawable drawable;
-        try {
-            drawable = mContext.getPackageManager().getApplicationIcon(packageName);
-        } catch (PackageManager.NameNotFoundException e) {
-            Log.w(TAG, "No such package to get application icon.");
-            return null;
-        }
-
-        return Utils.createIconWithDrawable(drawable);
-    }
-
-    @VisibleForTesting
-    int getApplicationUid(String packageName) {
-        final ApplicationsState.AppEntry appEntry =
-                ApplicationsState.getInstance((Application) mContext.getApplicationContext())
-                        .getEntry(packageName, UserHandle.myUserId());
-
-        return appEntry.info.uid;
-    }
-
-    private SliceAction buildRowSliceAction(NotificationChannel channel, IconCompat icon) {
-        final Bundle channelArgs = new Bundle();
-        channelArgs.putInt(AppInfoBase.ARG_PACKAGE_UID, mUid);
-        channelArgs.putString(AppInfoBase.ARG_PACKAGE_NAME, mPackageName);
-        channelArgs.putString(Settings.EXTRA_CHANNEL_ID, channel.getId());
-
-        final Intent channelIntent = new SubSettingLauncher(mContext)
-                .setDestination(ChannelNotificationSettings.class.getName())
-                .setArguments(channelArgs)
-                .setTitleRes(R.string.notification_channel_title)
-                .setSourceMetricsCategory(SettingsEnums.SLICE)
-                .toIntent();
-
-        return SliceAction.createDeeplink(
-                PendingIntent.getActivity(mContext, channel.hashCode(), channelIntent, 0), icon,
-                ListBuilder.ICON_IMAGE, channel.getName());
-    }
-
-    private ListBuilder.HeaderBuilder getNoSuggestedAppHeader() {
-        final IconCompat icon = IconCompat.createWithResource(mContext,
-                R.drawable.ic_homepage_apps);
-        final CharSequence titleNoSuggestedApp = mContext.getString(R.string.no_suggested_app);
-        final SliceAction primarySliceActionForNoSuggestedApp = getPrimarySliceAction(icon,
-                titleNoSuggestedApp, getAppAndNotificationPageIntent());
-
-        return new ListBuilder.HeaderBuilder()
-                .setTitle(titleNoSuggestedApp)
-                .setPrimaryAction(primarySliceActionForNoSuggestedApp);
-    }
-
-    private List<ListBuilder.RowBuilder> getNotificationChannelRows(IconCompat icon) {
-        final List<ListBuilder.RowBuilder> notificationChannelRows = new ArrayList<>();
-        final List<NotificationChannel> displayableChannels = getDisplayableChannels(mAppRow);
-
-        for (NotificationChannel channel : displayableChannels) {
-            notificationChannelRows.add(new ListBuilder.RowBuilder()
-                    .setTitle(channel.getName())
-                    .setSubtitle(NotificationBackend.getSentSummary(
-                            mContext, mAppRow.sentByChannel.get(channel.getId()), false))
-                    .setPrimaryAction(buildRowSliceAction(channel, icon))
-                    .addEndItem(SliceAction.createToggle(getToggleIntent(channel.getId()),
-                            null /* actionTitle */, channel.getImportance() != IMPORTANCE_NONE)));
-        }
-
-        return notificationChannelRows;
-    }
-
-    private PendingIntent getToggleIntent(String channelId) {
-        // Send broadcast to enable/disable channel.
-        final Intent intent = new Intent(getUri().toString())
-                .setClass(mContext, SliceBroadcastReceiver.class)
-                .putExtra(PACKAGE_NAME, mPackageName)
-                .putExtra(PACKAGE_UID, mUid)
-                .putExtra(CHANNEL_ID, channelId);
-
-        return PendingIntent.getBroadcast(mContext, intent.hashCode(), intent, 0);
-    }
-
-    private List<PackageInfo> getRecentlyInstalledPackages() {
-        final long startTime = System.currentTimeMillis() - DURATION_START_DAYS;
-        final long endTime = System.currentTimeMillis() - DURATION_END_DAYS;
-
-        // Get recently installed packages between 3 and 7 days ago.
-        final List<PackageInfo> recentlyInstalledPackages = new ArrayList<>();
-        final List<PackageInfo> installedPackages =
-                mContext.getPackageManager().getInstalledPackages(0);
-        for (PackageInfo packageInfo : installedPackages) {
-            // Not include system app and interacted app.
-            if (packageInfo.applicationInfo.isSystemApp()
-                    || isUserInteracted(packageInfo.packageName)) {
-                continue;
-            }
-
-            if (packageInfo.firstInstallTime >= startTime
-                    && packageInfo.firstInstallTime <= endTime) {
-                recentlyInstalledPackages.add(packageInfo);
-            }
-        }
-
-        return recentlyInstalledPackages;
-    }
-
-    private SliceAction getPrimarySliceAction(IconCompat icon, CharSequence title, Intent intent) {
-        return SliceAction.createDeeplink(
-                PendingIntent.getActivity(mContext, intent.hashCode(), intent, 0),
-                icon,
-                ListBuilder.ICON_IMAGE,
-                title);
-    }
-
-    private List<NotificationChannel> getDisplayableChannels(NotificationBackend.AppRow appRow) {
-        final List<NotificationChannelGroup> channelGroupList =
-                mNotificationBackend.getGroups(appRow.pkg, appRow.uid).getList();
-        final List<NotificationChannel> channels = channelGroupList.stream()
-                .flatMap(group -> group.getChannels().stream().filter(
-                        channel -> isChannelEnabled(group, channel, appRow)))
-                .collect(Collectors.toList());
-
-        // Pack the notification channel with notification sent state for sorting.
-        final List<NotificationChannelState> channelStates = new ArrayList<>();
-        for (NotificationChannel channel : channels) {
-            NotificationsSentState sentState = appRow.sentByChannel.get(channel.getId());
-            if (sentState == null) {
-                sentState = new NotificationsSentState();
-            }
-            channelStates.add(new NotificationChannelState(sentState, channel));
-        }
-
-        // Sort the notification channels with notification sent count by descending.
-        return channelStates.stream()
-                .sorted(CHANNEL_STATE_COMPARATOR)
-                .map(state -> state.getNotificationChannel())
-                .limit(DEFAULT_EXPANDED_ROW_COUNT)
-                .collect(Collectors.toList());
-    }
-
-    private String getEligibleNotificationsPackage(List<PackageInfo> packageInfoList) {
-        if (packageInfoList.isEmpty()) {
-            return null;
-        }
-
-        // Create tasks to get notification data for multi-channel packages.
-        final List<Future<NotificationBackend.AppRow>> appRowTasks = new ArrayList<>();
-        for (PackageInfo packageInfo : packageInfoList) {
-            final NotificationMultiChannelAppRow appRow = new NotificationMultiChannelAppRow(
-                    mContext, mNotificationBackend, packageInfo);
-            appRowTasks.add(ThreadUtils.postOnBackgroundThread(appRow));
-        }
-
-        // Get the package which has sent at least ~10 notifications and not turn off channels.
-        int maxSentCount = 0;
-        String maxSentCountPackage = null;
-        for (Future<NotificationBackend.AppRow> appRowTask : appRowTasks) {
-            NotificationBackend.AppRow appRow = null;
-            try {
-                appRow = appRowTask.get(TASK_TIMEOUT_MS, TimeUnit.MILLISECONDS);
-            } catch (ExecutionException | InterruptedException | TimeoutException e) {
-                Log.w(TAG, "Failed to get notification data.", e);
-            }
-
-            // Ignore packages which are banned notifications or block all displayable channels.
-            if (appRow == null || appRow.banned || isAllChannelsBlocked(
-                    getDisplayableChannels(appRow))) {
-                continue;
-            }
-
-            // Get sent notification count from app.
-            final int sentCount = appRow.sentByApp.sentCount;
-            if (sentCount >= MIN_NOTIFICATION_SENT_COUNT && sentCount > maxSentCount) {
-                maxSentCount = sentCount;
-                maxSentCountPackage = appRow.pkg;
-                mAppRow = appRow;
-            }
-        }
-
-        return maxSentCountPackage;
-    }
-
-    private boolean isAllChannelsBlocked(List<NotificationChannel> channels) {
-        for (NotificationChannel channel : channels) {
-            if (channel.getImportance() != IMPORTANCE_NONE) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    protected CharSequence getSubTitle(String packageName, int uid) {
-        final int channelCount = mNotificationBackend.getChannelCount(packageName, uid);
-
-        if (channelCount > DEFAULT_EXPANDED_ROW_COUNT) {
-            return mContext.getString(
-                    R.string.notification_many_channel_count_summary, channelCount);
-        }
-
-        return mContext.getResources().getQuantityString(
-                R.plurals.notification_few_channel_count_summary, channelCount, channelCount);
-    }
-
-    private Intent getAppAndNotificationPageIntent() {
-        final String screenTitle = mContext.getText(R.string.app_and_notification_dashboard_title)
-                .toString();
-
-        return SliceBuilderUtils.buildSearchResultPageIntent(mContext,
-                AppAndNotificationDashboardFragment.class.getName(), "" /* key */,
-                screenTitle,
-                SettingsEnums.SLICE)
-                .setClassName(mContext.getPackageName(), SubSettings.class.getName())
-                .setData(getUri());
-    }
-
-    private boolean isChannelEnabled(NotificationChannelGroup group, NotificationChannel channel,
-            NotificationBackend.AppRow appRow) {
-        final RestrictedLockUtils.EnforcedAdmin suspendedAppsAdmin =
-                RestrictedLockUtilsInternal.checkIfApplicationIsSuspended(mContext, mPackageName,
-                        mUid);
-
-        return suspendedAppsAdmin == null
-                && isChannelBlockable(channel, appRow)
-                && isChannelConfigurable(channel, appRow)
-                && !group.isBlocked();
-    }
-
-    private boolean isChannelConfigurable(NotificationChannel channel,
-            NotificationBackend.AppRow appRow) {
-        if (channel != null && appRow != null) {
-            return !channel.isImportanceLockedByOEM();
-        }
-
-        return false;
-    }
-
-    private boolean isChannelBlockable(NotificationChannel channel,
-            NotificationBackend.AppRow appRow) {
-        if (channel != null && appRow != null) {
-            if (!appRow.systemApp) {
-                return true;
-            }
-
-            return channel.isBlockable()
-                    || channel.getImportance() == IMPORTANCE_NONE;
-        }
-
-        return false;
-    }
-
-    /**
-     * This class is used to sort notification channels according to notification sent count and
-     * notification id in {@link NotificationChannelSlice#CHANNEL_STATE_COMPARATOR}.
-     *
-     * Include {@link NotificationsSentState#avgSentWeekly} and {@link NotificationChannel#getId()}
-     * to get the number of notifications being sent and notification id.
-     */
-    private static class NotificationChannelState {
-
-        final private NotificationsSentState mNotificationsSentState;
-        final private NotificationChannel mNotificationChannel;
-
-        public NotificationChannelState(NotificationsSentState notificationsSentState,
-                NotificationChannel notificationChannel) {
-            mNotificationsSentState = notificationsSentState;
-            mNotificationChannel = notificationChannel;
-        }
-
-        public NotificationChannel getNotificationChannel() {
-            return mNotificationChannel;
-        }
-
-        public NotificationsSentState getNotificationsSentState() {
-            return mNotificationsSentState;
-        }
-    }
-}
diff --git a/src/com/android/settings/homepage/contextualcards/slices/NotificationChannelWorker.java b/src/com/android/settings/homepage/contextualcards/slices/NotificationChannelWorker.java
deleted file mode 100644
index f1d0d59..0000000
--- a/src/com/android/settings/homepage/contextualcards/slices/NotificationChannelWorker.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.homepage.contextualcards.slices;
-
-import static android.content.Context.MODE_PRIVATE;
-
-import static com.android.settings.homepage.contextualcards.slices.ContextualNotificationChannelSlice.PREFS;
-import static com.android.settings.homepage.contextualcards.slices.ContextualNotificationChannelSlice.PREF_KEY_INTERACTED_PACKAGES;
-
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.content.pm.PackageInfo;
-import android.net.Uri;
-import android.util.ArraySet;
-
-import com.android.settings.slices.SliceBackgroundWorker;
-
-import java.io.IOException;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-public class NotificationChannelWorker extends SliceBackgroundWorker<Void> {
-
-    public NotificationChannelWorker(Context context, Uri uri) {
-        super(context, uri);
-    }
-
-    @Override
-    protected void onSlicePinned() {
-    }
-
-    @Override
-    protected void onSliceUnpinned() {
-        removeUninstalledPackages();
-    }
-
-    @Override
-    public void close() throws IOException {
-    }
-
-    private void removeUninstalledPackages() {
-        final SharedPreferences prefs = getContext().getSharedPreferences(PREFS, MODE_PRIVATE);
-        final Set<String> interactedPackages =
-                prefs.getStringSet(PREF_KEY_INTERACTED_PACKAGES, new ArraySet());
-        if (interactedPackages.isEmpty()) {
-            return;
-        }
-
-        final List<PackageInfo> installedPackageInfos =
-                getContext().getPackageManager().getInstalledPackages(0);
-        final List<String> installedPackages = installedPackageInfos.stream()
-                .map(packageInfo -> packageInfo.packageName)
-                .collect(Collectors.toList());
-        final Set<String> newInteractedPackages = new ArraySet<>();
-        for (String packageName : interactedPackages) {
-            if (installedPackages.contains(packageName)) {
-                newInteractedPackages.add(packageName);
-            }
-        }
-        prefs.edit().putStringSet(PREF_KEY_INTERACTED_PACKAGES, newInteractedPackages).apply();
-    }
-}
diff --git a/src/com/android/settings/homepage/contextualcards/slices/NotificationMultiChannelAppRow.java b/src/com/android/settings/homepage/contextualcards/slices/NotificationMultiChannelAppRow.java
deleted file mode 100644
index bf91f53..0000000
--- a/src/com/android/settings/homepage/contextualcards/slices/NotificationMultiChannelAppRow.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.settings.homepage.contextualcards.slices;
-
-import android.app.role.RoleManager;
-import android.content.Context;
-import android.content.pm.PackageInfo;
-
-import com.android.settings.notification.NotificationBackend;
-
-import java.util.concurrent.Callable;
-
-/**
- * This class is responsible for getting notification app row from package which has multiple
- * notification channels.{@link NotificationChannelSlice} uses it to improve latency.
- */
-class NotificationMultiChannelAppRow implements Callable<NotificationBackend.AppRow> {
-
-    private final Context mContext;
-    private final NotificationBackend mNotificationBackend;
-    private final PackageInfo mPackageInfo;
-
-    public NotificationMultiChannelAppRow(Context context, NotificationBackend notificationBackend,
-            PackageInfo packageInfo) {
-        mContext = context;
-        mNotificationBackend = notificationBackend;
-        mPackageInfo = packageInfo;
-    }
-
-    @Override
-    public NotificationBackend.AppRow call() throws Exception {
-        final int channelCount = mNotificationBackend.getChannelCount(
-                mPackageInfo.applicationInfo.packageName, mPackageInfo.applicationInfo.uid);
-        if (channelCount > 1) {
-            return mNotificationBackend.loadAppRow(mContext, mContext.getPackageManager(),
-                    mContext.getSystemService(RoleManager.class), mPackageInfo);
-        }
-        return null;
-    }
-}
diff --git a/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java b/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java
index 6538cac..c9ec5cf 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java
@@ -47,6 +47,7 @@
 import com.android.settings.homepage.contextualcards.ContextualCard;
 import com.android.settings.homepage.contextualcards.ContextualCardRenderer;
 import com.android.settings.homepage.contextualcards.ControllerRendererPool;
+import com.android.settings.homepage.contextualcards.slices.SliceFullCardRendererHelper.SliceViewHolder;
 import com.android.settingslib.utils.ThreadUtils;
 
 import java.util.Map;
@@ -102,6 +103,11 @@
             return;
         }
 
+        // Show cached slice first before slice binding completed to avoid jank.
+        if (holder.getItemViewType() != VIEW_TYPE_HALF_WIDTH) {
+            ((SliceViewHolder) holder).sliceView.setSlice(card.getSlice());
+        }
+
         LiveData<Slice> sliceLiveData = mSliceLiveDataMap.get(uri);
 
         if (sliceLiveData == null) {
diff --git a/src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelper.java b/src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelper.java
index 3f35fb5..fd60959 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelper.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelper.java
@@ -26,7 +26,6 @@
 
 import com.android.settings.R;
 import com.android.settings.homepage.contextualcards.ContextualCard;
-import com.android.settings.homepage.contextualcards.ContextualCardFeatureProvider;
 import com.android.settings.homepage.contextualcards.logging.ContextualCardLogUtils;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
@@ -50,27 +49,19 @@
         final SliceViewHolder cardHolder = (SliceViewHolder) holder;
         cardHolder.sliceView.setScrollable(false);
         cardHolder.sliceView.setTag(card.getSliceUri());
-        //TODO(b/114009676): We will soon have a field to decide what slice mode we should set.
         cardHolder.sliceView.setMode(SliceView.MODE_LARGE);
         cardHolder.sliceView.setSlice(slice);
         // Set this listener so we can log the interaction users make on the slice
-        cardHolder.sliceView.setOnSliceActionListener(
-                (eventInfo, sliceItem) -> {
-                    final String log = ContextualCardLogUtils.buildCardClickLog(card, eventInfo.rowIndex,
-                            eventInfo.actionType, cardHolder.getAdapterPosition());
+        cardHolder.sliceView.setOnSliceActionListener((eventInfo, sliceItem) -> {
+            final String log = ContextualCardLogUtils.buildCardClickLog(card, eventInfo.rowIndex,
+                    eventInfo.actionType, cardHolder.getAdapterPosition());
 
-                    final MetricsFeatureProvider metricsFeatureProvider =
-                            FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
+            final MetricsFeatureProvider metricsFeatureProvider =
+                    FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
 
-                    metricsFeatureProvider.action(mContext,
-                            SettingsEnums.ACTION_CONTEXTUAL_CARD_CLICK, log);
-
-                    final ContextualCardFeatureProvider contextualCardFeatureProvider =
-                            FeatureFactory.getFactory(mContext).getContextualCardFeatureProvider(
-                                    mContext);
-
-                    contextualCardFeatureProvider.logNotificationPackage(slice);
-                });
+            metricsFeatureProvider.action(mContext,
+                    SettingsEnums.ACTION_CONTEXTUAL_CARD_CLICK, log);
+        });
 
         // Customize slice view for Settings
         cardHolder.sliceView.setShowTitleItems(true);
diff --git a/src/com/android/settings/media/MediaOutputSlice.java b/src/com/android/settings/media/MediaOutputSlice.java
index 5a1afda..82a7bd2 100644
--- a/src/com/android/settings/media/MediaOutputSlice.java
+++ b/src/com/android/settings/media/MediaOutputSlice.java
@@ -106,7 +106,9 @@
             final MediaDevice connectedDevice = worker.getCurrentConnectedMediaDevice();
             if (devices.size() == 1) {
                 // Zero state
-                addRow(connectedDevice, connectedDevice, listBuilder);
+                for (MediaDevice device : devices) {
+                    addRow(device, device, listBuilder);
+                }
                 listBuilder.addRow(getPairNewRow());
             } else {
                 final boolean isTouched = worker.getIsTouched();
diff --git a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
index d6f66a1..26c206d 100644
--- a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
+++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
@@ -168,6 +168,7 @@
         private Context mContext;
         private TelephonyManager mTelephonyManager;
 
+        private boolean mAllowed5gNetworkType;
         private boolean mIsGlobalCdma;
         private boolean mIs5gEntryDisplayed;
         private boolean mShow4gForLTE;
@@ -205,6 +206,9 @@
             final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
             final boolean isNrEnabledFromCarrierConfig = carrierConfig != null
                     && carrierConfig.getBoolean(CarrierConfigManager.KEY_NR_ENABLED_BOOL);
+            mAllowed5gNetworkType = checkSupportedRadioBitmask(
+                    mTelephonyManager.getAllowedNetworkTypes(),
+                    TelephonyManager.NETWORK_TYPE_BITMASK_NR);
             mSupported5gRadioAccessFamily = isNrEnabledFromCarrierConfig
                     && checkSupportedRadioBitmask(mTelephonyManager.getSupportedRadioAccessFamily(),
                     TelephonyManager.NETWORK_TYPE_BITMASK_NR);
@@ -568,7 +572,7 @@
         }
 
         /**
-         * Add 5G option. Only show the UI when device supported 5G.
+         * Add 5G option. Only show the UI when device supported 5G and allowed 5G.
          */
         private void add5gEntry(int value) {
             boolean isNRValue = value >= TelephonyManagerConstants.NETWORK_MODE_NR_ONLY;
@@ -581,13 +585,15 @@
                 mIs5gEntryDisplayed = false;
                 Log.d(LOG_TAG, "Hide 5G option. "
                         + " supported5GRadioAccessFamily: " + mSupported5gRadioAccessFamily
+                        + " allowed5GNetworkType: " + mAllowed5gNetworkType
                         + " isNRValue: " + isNRValue);
             }
         }
 
         private void addGlobalEntry() {
             Log.d(LOG_TAG, "addGlobalEntry. "
-                    + " supported5GRadioAccessFamily: " + mSupported5gRadioAccessFamily);
+                    + " supported5GRadioAccessFamily: " + mSupported5gRadioAccessFamily
+                    + " allowed5GNetworkType: " + mAllowed5gNetworkType);
             mEntries.add(mContext.getString(R.string.network_global));
             if (showNrList()) {
                 mEntriesValue.add(
@@ -599,7 +605,7 @@
         }
 
         private boolean showNrList() {
-            return mSupported5gRadioAccessFamily;
+            return mSupported5gRadioAccessFamily && mAllowed5gNetworkType;
         }
 
         /**
diff --git a/src/com/android/settings/notification/AppBubbleListPreferenceController.java b/src/com/android/settings/notification/AppBubbleListPreferenceController.java
index 457a61c..31f185b 100644
--- a/src/com/android/settings/notification/AppBubbleListPreferenceController.java
+++ b/src/com/android/settings/notification/AppBubbleListPreferenceController.java
@@ -32,6 +32,7 @@
 import android.widget.ImageView;
 
 import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceViewHolder;
 
 import com.android.settings.R;
@@ -55,6 +56,13 @@
     }
 
     @Override
+    public void updateState(Preference preference) {
+        // loading convos is async; hide header until we know we have conversations to show
+        preference.setVisible(false);
+        super.updateState(preference);
+    }
+
+    @Override
     public void onResume(NotificationBackend.AppRow appRow,
             @Nullable NotificationChannel channel, @Nullable NotificationChannelGroup group,
             Drawable conversationDrawable,
@@ -72,9 +80,20 @@
 
     @Override
     public boolean isAvailable() {
-        if (!super.isAvailable()) {
+        // copy rather than inherit super's isAvailable because apps can link to this page
+        // as part of onboarding, before they send a valid conversation notification
+        if (mAppRow == null) {
             return false;
         }
+        if (mAppRow.banned) {
+            return false;
+        }
+        if (mChannel != null) {
+            if (mBackend.onlyHasDefaultChannel(mAppRow.pkg, mAppRow.uid)
+                    || NotificationChannel.DEFAULT_CHANNEL_ID.equals(mChannel.getId())) {
+                return false;
+            }
+        }
         if (mAppRow.bubblePreference == BUBBLE_PREFERENCE_NONE) {
             return false;
         }
@@ -111,6 +130,7 @@
     public Preference createConversationPref(final ConversationChannelWrapper conversation) {
         final ConversationPreference pref = new ConversationPreference(mContext);
         populateConversationPreference(conversation, pref);
+        pref.setOnClickBubblesConversation(mAppRow.bubblePreference == BUBBLE_PREFERENCE_ALL);
         pref.setOnClickListener((v) -> {
             conversation.getNotificationChannel().setAllowBubbles(DEFAULT_ALLOW_BUBBLE);
             mBackend.updateChannel(mAppRow.pkg, mAppRow.uid, conversation.getNotificationChannel());
@@ -122,11 +142,21 @@
         return pref;
     }
 
+    @Override
+    protected void populateList() {
+        super.populateList();
+        if (mPreference == null) {
+            return;
+        }
+        mPreference.setVisible(mPreference.getPreferenceCount() > 0);
+    }
+
     /** Simple preference with a 'x' button at the end. */
     @VisibleForTesting
     public static class ConversationPreference extends Preference implements View.OnClickListener {
 
         View.OnClickListener mOnClickListener;
+        boolean mOnClickBubbles;
 
         ConversationPreference(Context context) {
             super(context);
@@ -137,9 +167,16 @@
         public void onBindViewHolder(final PreferenceViewHolder holder) {
             super.onBindViewHolder(holder);
             ImageView view =  holder.itemView.findViewById(R.id.button);
+            view.setContentDescription(mOnClickBubbles
+                    ? getContext().getString(R.string.bubble_app_setting_bubble_conversation)
+                    : getContext().getString(R.string.bubble_app_setting_unbubble_conversation));
             view.setOnClickListener(mOnClickListener);
         }
 
+        public void setOnClickBubblesConversation(boolean enablesBubbles) {
+            mOnClickBubbles = enablesBubbles;
+        }
+
         public void setOnClickListener(View.OnClickListener listener) {
             mOnClickListener = listener;
         }
diff --git a/src/com/android/settings/notification/NotificationBackend.java b/src/com/android/settings/notification/NotificationBackend.java
index 83df323..483e8aa 100644
--- a/src/com/android/settings/notification/NotificationBackend.java
+++ b/src/com/android/settings/notification/NotificationBackend.java
@@ -268,6 +268,15 @@
         }
     }
 
+    public boolean hasSentValidMsg(String pkg, int uid) {
+        try {
+            return sINM.hasSentValidMsg(pkg, uid);
+        } catch (Exception e) {
+            Log.w(TAG, "Error calling NoMan", e);
+            return false;
+        }
+    }
+
     public boolean isInInvalidMsgState(String pkg, int uid) {
         try {
             return sINM.isInInvalidMsgState(pkg, uid);
diff --git a/src/com/android/settings/notification/app/AppConversationListPreferenceController.java b/src/com/android/settings/notification/app/AppConversationListPreferenceController.java
index 364a81c..2054a16 100644
--- a/src/com/android/settings/notification/app/AppConversationListPreferenceController.java
+++ b/src/com/android/settings/notification/app/AppConversationListPreferenceController.java
@@ -46,7 +46,6 @@
 
     protected List<ConversationChannelWrapper> mConversations = new ArrayList<>();
     protected PreferenceCategory mPreference;
-    private boolean mIsInInvalidMsgState;
 
     public AppConversationListPreferenceController(Context context, NotificationBackend backend) {
         super(context, backend);
@@ -71,7 +70,8 @@
                 return false;
             }
         }
-        return true;
+        return mBackend.hasSentValidMsg(mAppRow.pkg, mAppRow.uid) || mBackend.isInInvalidMsgState(
+                mAppRow.pkg, mAppRow.uid);
     }
 
     @Override
@@ -88,7 +88,6 @@
         new AsyncTask<Void, Void, Void>() {
             @Override
             protected Void doInBackground(Void... unused) {
-                mIsInInvalidMsgState = mBackend.isInInvalidMsgState(mAppRow.pkg, mAppRow.uid);
                 ParceledListSlice<ConversationChannelWrapper> list =
                         mBackend.getConversations(mAppRow.pkg, mAppRow.uid);
                 if (list != null) {
@@ -117,12 +116,12 @@
         return R.string.conversations_category_title;
     }
 
-    private void populateList() {
+    protected void populateList() {
         if (mPreference == null) {
             return;
         }
 
-        if (!mIsInInvalidMsgState && !mConversations.isEmpty()) {
+        if (!mConversations.isEmpty()) {
             // TODO: if preference has children, compare with newly loaded list
             mPreference.removeAll();
             mPreference.setTitle(getTitleResId());
diff --git a/src/com/android/settings/notification/app/BubbleSummaryPreferenceController.java b/src/com/android/settings/notification/app/BubbleSummaryPreferenceController.java
index 06c6f3a..7519c23 100644
--- a/src/com/android/settings/notification/app/BubbleSummaryPreferenceController.java
+++ b/src/com/android/settings/notification/app/BubbleSummaryPreferenceController.java
@@ -49,7 +49,7 @@
         if (!super.isAvailable()) {
             return false;
         }
-        if (mAppRow == null && mChannel == null) {
+        if (mAppRow == null) {
             return false;
         }
         if (mChannel != null) {
@@ -62,7 +62,7 @@
                 return mAppRow != null;
             }
         }
-        return isGloballyEnabled();
+        return isGloballyEnabled() && mBackend.hasSentValidMsg(mAppRow.pkg, mAppRow.uid);
     }
 
     @Override
diff --git a/src/com/android/settings/notification/history/NotificationHistoryViewHolder.java b/src/com/android/settings/notification/history/NotificationHistoryViewHolder.java
index ef4f0da..4991548 100644
--- a/src/com/android/settings/notification/history/NotificationHistoryViewHolder.java
+++ b/src/com/android/settings/notification/history/NotificationHistoryViewHolder.java
@@ -45,7 +45,7 @@
 
     void setTitle(CharSequence title) {
         mTitle.setText(title);
-        mTitle.setVisibility(title != null ? View.VISIBLE : View.GONE);
+        mTitle.setVisibility(title != null ? View.VISIBLE : View.INVISIBLE);
     }
 
     void setPostedTime(long postedTime) {
diff --git a/src/com/android/settings/password/ChooseLockGeneric.java b/src/com/android/settings/password/ChooseLockGeneric.java
index f55d65c..81d5036 100644
--- a/src/com/android/settings/password/ChooseLockGeneric.java
+++ b/src/com/android/settings/password/ChooseLockGeneric.java
@@ -297,7 +297,8 @@
                     getSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE);
 
             // Can only run during setup if factory reset protection has already been cleared
-            return (pdbm != null && pdbm.getDataBlockSize() == 0);
+            // or if the device does not support FRP.
+            return (pdbm == null || pdbm.getDataBlockSize() == 0);
         }
 
         protected Class<? extends ChooseLockGeneric.InternalActivity> getInternalActivityClass() {
diff --git a/src/com/android/settings/slices/CustomSliceRegistry.java b/src/com/android/settings/slices/CustomSliceRegistry.java
index 78a2943..12397e4 100644
--- a/src/com/android/settings/slices/CustomSliceRegistry.java
+++ b/src/com/android/settings/slices/CustomSliceRegistry.java
@@ -33,11 +33,9 @@
 import com.android.settings.homepage.contextualcards.slices.BatteryFixSlice;
 import com.android.settings.homepage.contextualcards.slices.BluetoothDevicesSlice;
 import com.android.settings.homepage.contextualcards.slices.ContextualAdaptiveSleepSlice;
-import com.android.settings.homepage.contextualcards.slices.ContextualNotificationChannelSlice;
 import com.android.settings.homepage.contextualcards.slices.DarkThemeSlice;
 import com.android.settings.homepage.contextualcards.slices.FaceSetupSlice;
 import com.android.settings.homepage.contextualcards.slices.LowStorageSlice;
-import com.android.settings.homepage.contextualcards.slices.NotificationChannelSlice;
 import com.android.settings.location.LocationSlice;
 import com.android.settings.media.MediaOutputGroupSlice;
 import com.android.settings.media.MediaOutputIndicatorSlice;
@@ -98,16 +96,6 @@
             .build();
 
     /**
-     * Backing Uri for Contextual Notification channel Slice.
-     */
-    public static final Uri CONTEXTUAL_NOTIFICATION_CHANNEL_SLICE_URI = new Uri.Builder()
-            .scheme(ContentResolver.SCHEME_CONTENT)
-            .authority(SettingsSliceProvider.SLICE_AUTHORITY)
-            .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
-            .appendPath("contextual_notification_channel")
-            .build();
-
-    /**
      * Backing Uri for the Wifi Slice.
      */
     public static final Uri CONTEXTUAL_WIFI_SLICE_URI = new Uri.Builder()
@@ -181,15 +169,6 @@
             .appendPath("mobile_data")
             .build();
     /**
-     * Backing Uri for Notification channel Slice.
-     */
-    public static final Uri NOTIFICATION_CHANNEL_SLICE_URI = new Uri.Builder()
-            .scheme(ContentResolver.SCHEME_CONTENT)
-            .authority(SettingsSliceProvider.SLICE_AUTHORITY)
-            .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
-            .appendPath("notification_channel")
-            .build();
-    /**
      * Backing Uri for the storage slice.
      */
     public static final Uri STORAGE_SLICE_URI = new Uri.Builder()
@@ -333,8 +312,6 @@
         sUriToSlice.put(BATTERY_FIX_SLICE_URI, BatteryFixSlice.class);
         sUriToSlice.put(BLUETOOTH_DEVICES_SLICE_URI, BluetoothDevicesSlice.class);
         sUriToSlice.put(CONTEXTUAL_ADAPTIVE_SLEEP_URI, ContextualAdaptiveSleepSlice.class);
-        sUriToSlice.put(CONTEXTUAL_NOTIFICATION_CHANNEL_SLICE_URI,
-                ContextualNotificationChannelSlice.class);
         sUriToSlice.put(CONTEXTUAL_WIFI_SLICE_URI, ContextualWifiSlice.class);
         sUriToSlice.put(FACE_ENROLL_SLICE_URI, FaceSetupSlice.class);
         sUriToSlice.put(FLASHLIGHT_SLICE_URI, FlashlightSlice.class);
@@ -343,7 +320,6 @@
         sUriToSlice.put(MEDIA_OUTPUT_INDICATOR_SLICE_URI, MediaOutputIndicatorSlice.class);
         sUriToSlice.put(MEDIA_OUTPUT_SLICE_URI, MediaOutputSlice.class);
         sUriToSlice.put(MOBILE_DATA_SLICE_URI, MobileDataSlice.class);
-        sUriToSlice.put(NOTIFICATION_CHANNEL_SLICE_URI, NotificationChannelSlice.class);
         sUriToSlice.put(STORAGE_SLICE_URI, StorageSlice.class);
         sUriToSlice.put(WIFI_SLICE_URI, WifiSlice.class);
         sUriToSlice.put(DARK_THEME_SLICE_URI, DarkThemeSlice.class);
diff --git a/src/com/android/settings/users/AppRestrictionsFragment.java b/src/com/android/settings/users/AppRestrictionsFragment.java
index 1caf49c..9f6a2b6 100644
--- a/src/com/android/settings/users/AppRestrictionsFragment.java
+++ b/src/com/android/settings/users/AppRestrictionsFragment.java
@@ -97,15 +97,8 @@
     /** Key for extra passed in from calling fragment to indicate if this is a newly created user */
     public static final String EXTRA_NEW_USER = "new_user";
 
-    /**
-     * Key for extra passed in from calling fragment to indicate if
-     * switch to user should be shown
-     */
-    public static final String EXTRA_SHOW_SWITCH_USER = "enable_switch";
-
     private boolean mFirstTime = true;
     private boolean mNewUser;
-    protected boolean mShowSwitchUser;
     private boolean mAppListChanged;
     protected boolean mRestrictedProfile;
 
@@ -216,6 +209,12 @@
         }
     }
 
+    @Override
+    public void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+        init(icicle);
+    }
+
     protected void init(Bundle icicle) {
         if (icicle != null) {
             mUser = new UserHandle(icicle.getInt(EXTRA_USER_ID));
@@ -226,7 +225,6 @@
                     mUser = new UserHandle(args.getInt(EXTRA_USER_ID));
                 }
                 mNewUser = args.getBoolean(EXTRA_NEW_USER, false);
-                mShowSwitchUser = args.getBoolean(EXTRA_SHOW_SWITCH_USER, false);
             }
         }
 
diff --git a/src/com/android/settings/users/EditUserInfoController.java b/src/com/android/settings/users/EditUserInfoController.java
index 373d6a9..d205968 100644
--- a/src/com/android/settings/users/EditUserInfoController.java
+++ b/src/com/android/settings/users/EditUserInfoController.java
@@ -18,8 +18,10 @@
 
 import android.app.Activity;
 import android.app.Dialog;
+import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
+import android.content.pm.UserInfo;
 import android.graphics.Bitmap;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
@@ -77,7 +79,9 @@
     }
 
     public void clear() {
-        mEditUserPhotoController.removeNewUserPhotoBitmapFile();
+        if (mEditUserPhotoController != null) {
+            mEditUserPhotoController.removeNewUserPhotoBitmapFile();
+        }
         mEditUserInfoDialog = null;
         mSavedPhoto = null;
     }
@@ -116,7 +120,7 @@
     public void onActivityResult(int requestCode, int resultCode, Intent data) {
         mWaitingForActivityResult = false;
 
-        if (mEditUserInfoDialog != null) {
+        if (mEditUserPhotoController != null && mEditUserInfoDialog != null) {
             mEditUserPhotoController.onActivityResult(requestCode, resultCode, data);
         }
     }
@@ -137,6 +141,14 @@
         userNameView.setText(currentUserName);
 
         final ImageView userPhotoView = (ImageView) content.findViewById(R.id.user_photo);
+
+        boolean canChangePhoto = mUserManager != null &&
+                canChangePhoto(activity, mUserManager.getUserInfo(user.getIdentifier()));
+        if (!canChangePhoto) {
+            // some users can't change their photos so we need to remove suggestive
+            // background from the photoView
+            userPhotoView.setBackground(null);
+        }
         Drawable drawable = null;
         if (mSavedPhoto != null) {
             drawable = CircleFramedDrawable.getInstance(activity, mSavedPhoto);
@@ -144,7 +156,10 @@
             drawable = currentUserIcon;
         }
         userPhotoView.setImageDrawable(drawable);
-        mEditUserPhotoController = createEditUserPhotoController(fragment, userPhotoView, drawable);
+        if (canChangePhoto) {
+            mEditUserPhotoController =
+                    createEditUserPhotoController(fragment, userPhotoView, drawable);
+        }
         mEditUserInfoDialog = new AlertDialog.Builder(activity)
                 .setTitle(title)
                 .setView(content)
@@ -158,21 +173,22 @@
                             if (!TextUtils.isEmpty(userName)) {
                                 if (currentUserName == null
                                         || !userName.toString().equals(
-                                                currentUserName.toString())) {
+                                        currentUserName.toString())) {
                                     if (callback != null) {
                                         callback.onLabelChanged(mUser, userName.toString());
                                     }
                                 }
                             }
                             // Update the photo if changed.
-                            Drawable drawable = mEditUserPhotoController.getNewUserPhotoDrawable();
-                            if (drawable != null && !drawable.equals(currentUserIcon)) {
-                                if (callback != null) {
+                            if (mEditUserPhotoController != null) {
+                                Drawable drawable =
+                                        mEditUserPhotoController.getNewUserPhotoDrawable();
+                                if (drawable != null && !drawable.equals(currentUserIcon)) {
+                                    if (callback != null) {
                                         callback.onPhotoChanged(mUser, drawable);
+                                    }
                                 }
                             }
-                            fragment.getActivity().removeDialog(
-                                    RestrictedProfileSettings.DIALOG_ID_EDIT_USER_INFO);
                         }
                         clear();
                         if (completeCallback != null) {
@@ -208,6 +224,13 @@
     }
 
     @VisibleForTesting
+    boolean canChangePhoto(Context context, UserInfo user) {
+        return PhotoCapabilityUtils.canCropPhoto(context) &&
+                (PhotoCapabilityUtils.canChoosePhoto(context)
+                        || PhotoCapabilityUtils.canTakePhoto(context));
+    }
+
+    @VisibleForTesting
     EditUserPhotoController createEditUserPhotoController(Fragment fragment,
             ImageView userPhotoView, Drawable drawable) {
         return new EditUserPhotoController(fragment, userPhotoView,
diff --git a/src/com/android/settings/users/EditUserPhotoController.java b/src/com/android/settings/users/EditUserPhotoController.java
index 3253f79..a20513a 100644
--- a/src/com/android/settings/users/EditUserPhotoController.java
+++ b/src/com/android/settings/users/EditUserPhotoController.java
@@ -21,7 +21,6 @@
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
-import android.content.pm.PackageManager;
 import android.database.Cursor;
 import android.graphics.Bitmap;
 import android.graphics.Bitmap.Config;
@@ -52,6 +51,7 @@
 import androidx.fragment.app.Fragment;
 
 import com.android.settings.R;
+import com.android.settings.Utils;
 import com.android.settingslib.RestrictedLockUtils;
 import com.android.settingslib.RestrictedLockUtilsInternal;
 import com.android.settingslib.drawable.CircleFramedDrawable;
@@ -141,14 +141,14 @@
     }
 
     private void showUpdatePhotoPopup() {
-        final boolean canTakePhoto = canTakePhoto();
-        final boolean canChoosePhoto = canChoosePhoto();
+        final Context context = mImageView.getContext();
+        final boolean canTakePhoto = PhotoCapabilityUtils.canTakePhoto(context);
+        final boolean canChoosePhoto = PhotoCapabilityUtils.canChoosePhoto(context);
 
         if (!canTakePhoto && !canChoosePhoto) {
             return;
         }
 
-        final Context context = mImageView.getContext();
         final List<EditUserPhotoController.RestrictedMenuItem> items = new ArrayList<>();
 
         if (canTakePhoto) {
@@ -200,19 +200,6 @@
         listPopupWindow.show();
     }
 
-    private boolean canTakePhoto() {
-        return mImageView.getContext().getPackageManager().queryIntentActivities(
-                new Intent(MediaStore.ACTION_IMAGE_CAPTURE),
-                PackageManager.MATCH_DEFAULT_ONLY).size() > 0;
-    }
-
-    private boolean canChoosePhoto() {
-        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
-        intent.setType("image/*");
-        return mImageView.getContext().getPackageManager().queryIntentActivities(
-                intent, 0).size() > 0;
-    }
-
     private void takePhoto() {
         Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
         appendOutputExtra(intent, mTakePictureUri);
@@ -369,8 +356,7 @@
         if (purge) {
             fullPath.delete();
         }
-        return FileProvider.getUriForFile(context,
-                RestrictedProfileSettings.FILE_PROVIDER_AUTHORITY, fullPath);
+        return FileProvider.getUriForFile(context, Utils.FILE_PROVIDER_AUTHORITY, fullPath);
     }
 
     File saveNewUserPhotoBitmap() {
diff --git a/src/com/android/settings/users/PhotoCapabilityUtils.java b/src/com/android/settings/users/PhotoCapabilityUtils.java
new file mode 100644
index 0000000..1e09857
--- /dev/null
+++ b/src/com/android/settings/users/PhotoCapabilityUtils.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2020 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.users;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.provider.MediaStore;
+
+class PhotoCapabilityUtils {
+
+    /**
+     * Check if the current user can perform any activity for
+     * android.media.action.IMAGE_CAPTURE action.
+     */
+    static boolean canTakePhoto(Context context) {
+        return context.getPackageManager().queryIntentActivities(
+                new Intent(MediaStore.ACTION_IMAGE_CAPTURE),
+                PackageManager.MATCH_DEFAULT_ONLY).size() > 0;
+    }
+
+    /**
+     * Check if the current user can perform any activity for
+     * android.intent.action.GET_CONTENT action for images.
+     */
+    static boolean canChoosePhoto(Context context) {
+        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
+        intent.setType("image/*");
+        return context.getPackageManager().queryIntentActivities(intent, 0).size() > 0;
+    }
+
+    /**
+     * Check if the current user can perform any activity for
+     * com.android.camera.action.CROP action for images.
+     */
+    static boolean canCropPhoto(Context context) {
+        Intent intent = new Intent("com.android.camera.action.CROP");
+        intent.setType("image/*");
+        return context.getPackageManager().queryIntentActivities(intent, 0).size() > 0;
+    }
+
+}
diff --git a/src/com/android/settings/users/RestrictedProfileSettings.java b/src/com/android/settings/users/RestrictedProfileSettings.java
deleted file mode 100644
index 44657cf..0000000
--- a/src/com/android/settings/users/RestrictedProfileSettings.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * Copyright (C) 2013 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.users;
-
-import android.app.ActivityManager;
-import android.app.Dialog;
-import android.app.settings.SettingsEnums;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.content.pm.UserInfo;
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.os.RemoteException;
-import android.os.UserHandle;
-import android.os.UserManager;
-import android.util.Log;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import com.android.internal.util.UserIcons;
-import com.android.settings.R;
-import com.android.settings.Utils;
-import com.android.settingslib.utils.ThreadUtils;
-
-public class RestrictedProfileSettings extends AppRestrictionsFragment
-        implements EditUserInfoController.OnContentChangedCallback {
-
-    private static final String TAG = RestrictedProfileSettings.class.getSimpleName();
-    public static final String FILE_PROVIDER_AUTHORITY = "com.android.settings.files";
-    static final int DIALOG_ID_EDIT_USER_INFO = 1;
-    private static final int DIALOG_CONFIRM_REMOVE = 2;
-
-    private View mHeaderView;
-    private ImageView mUserIconView;
-    private TextView mUserNameView;
-    private ImageView mDeleteButton;
-    private View mSwitchUserView;
-    private TextView mSwitchTitle;
-
-    private EditUserInfoController mEditUserInfoController =
-            new EditUserInfoController();
-
-    @Override
-    public void onCreate(Bundle icicle) {
-        super.onCreate(icicle);
-
-        if (icicle != null) {
-            mEditUserInfoController.onRestoreInstanceState(icicle);
-        }
-
-        init(icicle);
-    }
-
-    @Override
-    public void onActivityCreated(Bundle savedInstanceState) {
-        mHeaderView = setPinnedHeaderView(R.layout.user_info_header);
-        mHeaderView.setOnClickListener(this);
-        mUserIconView = (ImageView) mHeaderView.findViewById(android.R.id.icon);
-        mUserNameView = (TextView) mHeaderView.findViewById(android.R.id.title);
-        mDeleteButton = (ImageView) mHeaderView.findViewById(R.id.delete);
-        mDeleteButton.setOnClickListener(this);
-
-        mSwitchTitle = mHeaderView.findViewById(R.id.switchTitle);
-        mSwitchUserView = mHeaderView.findViewById(R.id.switch_pref);
-        mSwitchUserView.setOnClickListener(v -> switchUser());
-
-        // This is going to bind the preferences.
-        super.onActivityCreated(savedInstanceState);
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        mEditUserInfoController.onSaveInstanceState(outState);
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-        // Check if user still exists
-        UserInfo info = Utils.getExistingUser(mUserManager, mUser);
-        if (info == null) {
-            finishFragment();
-        } else {
-            ((TextView) mHeaderView.findViewById(android.R.id.title)).setText(info.name);
-            ((ImageView) mHeaderView.findViewById(android.R.id.icon)).setImageDrawable(
-                    com.android.settingslib.Utils.getUserIcon(getActivity(), mUserManager, info));
-
-            boolean canSwitchUser =
-                    mUserManager.getUserSwitchability() == UserManager.SWITCHABILITY_STATUS_OK;
-            if (mShowSwitchUser && canSwitchUser) {
-                mSwitchUserView.setVisibility(View.VISIBLE);
-                mSwitchTitle.setText(getString(com.android.settingslib.R.string.user_switch_to_user,
-                        info.name));
-            } else {
-                mSwitchUserView.setVisibility(View.GONE);
-            }
-        }
-    }
-
-    @Override
-    public void startActivityForResult(Intent intent, int requestCode) {
-        mEditUserInfoController.startingActivityForResult();
-        super.startActivityForResult(intent, requestCode);
-    }
-
-    @Override
-    public void onActivityResult(int requestCode, int resultCode, Intent data) {
-        super.onActivityResult(requestCode, resultCode, data);
-
-        mEditUserInfoController.onActivityResult(requestCode, resultCode, data);
-    }
-
-    @Override
-    public void onClick(View view) {
-        if (view == mHeaderView) {
-            showDialog(DIALOG_ID_EDIT_USER_INFO);
-        } else if (view == mDeleteButton) {
-            showDialog(DIALOG_CONFIRM_REMOVE);
-        } else {
-            super.onClick(view); // in AppRestrictionsFragment
-        }
-    }
-
-    @Override
-    public Dialog onCreateDialog(int dialogId) {
-        if (dialogId == DIALOG_ID_EDIT_USER_INFO) {
-            return mEditUserInfoController.createDialog(this, mUserIconView.getDrawable(),
-                    mUserNameView.getText(), getString(R.string.profile_info_settings_title),
-                    this, mUser, null);
-        } else if (dialogId == DIALOG_CONFIRM_REMOVE) {
-            Dialog dlg =
-                    UserDialogs.createRemoveDialog(getActivity(), mUser.getIdentifier(),
-                            new DialogInterface.OnClickListener() {
-                                public void onClick(DialogInterface dialog, int which) {
-                                    removeUser();
-                                }
-                            }
-                    );
-            return dlg;
-        }
-
-        return null;
-    }
-
-    @Override
-    public int getDialogMetricsCategory(int dialogId) {
-        switch (dialogId) {
-            case DIALOG_ID_EDIT_USER_INFO:
-                return SettingsEnums.DIALOG_USER_EDIT;
-            case DIALOG_CONFIRM_REMOVE:
-                return SettingsEnums.DIALOG_USER_REMOVE;
-            default:
-                return 0;
-        }
-    }
-
-    private void removeUser() {
-        getView().post(new Runnable() {
-            public void run() {
-                mUserManager.removeUser(mUser.getIdentifier());
-                finishFragment();
-            }
-        });
-    }
-
-    private void switchUser() {
-        try {
-            ActivityManager.getService().switchUser(mUser.getIdentifier());
-        } catch (RemoteException re) {
-            Log.e(TAG, "Error while switching to other user.");
-        } finally {
-            finishFragment();
-        }
-    }
-
-    @Override
-    public void onPhotoChanged(UserHandle user, Drawable photo) {
-        mUserIconView.setImageDrawable(photo);
-        ThreadUtils.postOnBackgroundThread(new Runnable() {
-            @Override
-            public void run() {
-                mUserManager.setUserIcon(user.getIdentifier(), UserIcons.convertToBitmap(photo));
-            }
-        });
-    }
-
-    @Override
-    public void onLabelChanged(UserHandle user, CharSequence label) {
-        mUserNameView.setText(label);
-        mUserManager.setUserName(user.getIdentifier(), label.toString());
-    }
-}
diff --git a/src/com/android/settings/users/UserDetailsSettings.java b/src/com/android/settings/users/UserDetailsSettings.java
index 2696ddc..c7cf90d 100644
--- a/src/com/android/settings/users/UserDetailsSettings.java
+++ b/src/com/android/settings/users/UserDetailsSettings.java
@@ -36,6 +36,7 @@
 import com.android.settings.R;
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.Utils;
+import com.android.settings.core.SubSettingLauncher;
 import com.android.settingslib.RestrictedLockUtils;
 import com.android.settingslib.RestrictedLockUtilsInternal;
 
@@ -56,6 +57,7 @@
     private static final String KEY_SWITCH_USER = "switch_user";
     private static final String KEY_ENABLE_TELEPHONY = "enable_calling";
     private static final String KEY_REMOVE_USER = "remove_user";
+    private static final String KEY_APP_AND_CONTENT_ACCESS = "app_and_content_access";
 
     /** Integer extra containing the userId to manage */
     static final String EXTRA_USER_ID = "user_id";
@@ -69,6 +71,8 @@
     Preference mSwitchUserPref;
     private SwitchPreference mPhonePref;
     @VisibleForTesting
+    Preference mAppAndContentAccessPref;
+    @VisibleForTesting
     Preference mRemoveUserPref;
 
     @VisibleForTesting
@@ -109,6 +113,8 @@
                 switchUser();
             }
             return true;
+        } else if (preference == mAppAndContentAccessPref) {
+            openAppAndContentAccessScreen(false);
         }
         return false;
     }
@@ -170,11 +176,14 @@
         if (userId == USER_NULL) {
             throw new IllegalStateException("Arguments to this fragment must contain the user id");
         }
+        boolean isNewUser =
+                arguments.getBoolean(AppRestrictionsFragment.EXTRA_NEW_USER, false);
         mUserInfo = mUserManager.getUserInfo(userId);
 
         mSwitchUserPref = findPreference(KEY_SWITCH_USER);
         mPhonePref = findPreference(KEY_ENABLE_TELEPHONY);
         mRemoveUserPref = findPreference(KEY_REMOVE_USER);
+        mAppAndContentAccessPref = findPreference(KEY_APP_AND_CONTENT_ACCESS);
 
         mSwitchUserPref.setTitle(
                 context.getString(com.android.settingslib.R.string.user_switch_to_user,
@@ -184,16 +193,24 @@
         if (!mUserManager.isAdminUser()) { // non admin users can't remove users and allow calls
             removePreference(KEY_ENABLE_TELEPHONY);
             removePreference(KEY_REMOVE_USER);
+            removePreference(KEY_APP_AND_CONTENT_ACCESS);
         } else {
             if (!Utils.isVoiceCapable(context)) { // no telephony
                 removePreference(KEY_ENABLE_TELEPHONY);
             }
 
-            if (!mUserInfo.isGuest()) {
-                mPhonePref.setChecked(!mUserManager.hasUserRestriction(
-                        UserManager.DISALLOW_OUTGOING_CALLS, new UserHandle(userId)));
-                mRemoveUserPref.setTitle(R.string.user_remove_user);
+            if (mUserInfo.isRestricted()) {
+                removePreference(KEY_ENABLE_TELEPHONY);
+                if (isNewUser) {
+                    // for newly created restricted users we should open the apps and content access
+                    // screen to initialize the default restrictions
+                    openAppAndContentAccessScreen(true);
+                }
             } else {
+                removePreference(KEY_APP_AND_CONTENT_ACCESS);
+            }
+
+            if (mUserInfo.isGuest()) {
                 // These are not for an existing user, just general Guest settings.
                 // Default title is for calling and SMS. Change to calling-only here
                 mPhonePref.setTitle(R.string.user_enable_calling);
@@ -201,6 +218,10 @@
                 mPhonePref.setChecked(
                         !mDefaultGuestRestrictions.getBoolean(UserManager.DISALLOW_OUTGOING_CALLS));
                 mRemoveUserPref.setTitle(R.string.user_exit_guest_title);
+            } else {
+                mPhonePref.setChecked(!mUserManager.hasUserRestriction(
+                        UserManager.DISALLOW_OUTGOING_CALLS, new UserHandle(userId)));
+                mRemoveUserPref.setTitle(R.string.user_remove_user);
             }
             if (RestrictedLockUtilsInternal.hasBaseUserRestriction(context,
                     UserManager.DISALLOW_REMOVE_USER, UserHandle.myUserId())) {
@@ -209,6 +230,7 @@
 
             mRemoveUserPref.setOnPreferenceClickListener(this);
             mPhonePref.setOnPreferenceChangeListener(this);
+            mAppAndContentAccessPref.setOnPreferenceClickListener(this);
         }
     }
 
@@ -283,4 +305,20 @@
         mUserManager.removeUser(mUserInfo.id);
         finishFragment();
     }
+
+    /**
+     * @param isNewUser indicates if a user was created recently, for new users
+     *                  AppRestrictionsFragment should set the default restrictions
+     */
+    private void openAppAndContentAccessScreen(boolean isNewUser) {
+        Bundle extras = new Bundle();
+        extras.putInt(AppRestrictionsFragment.EXTRA_USER_ID, mUserInfo.id);
+        extras.putBoolean(AppRestrictionsFragment.EXTRA_NEW_USER, isNewUser);
+        new SubSettingLauncher(getContext())
+                .setDestination(AppRestrictionsFragment.class.getName())
+                .setArguments(extras)
+                .setTitleRes(R.string.user_restrictions_title)
+                .setSourceMetricsCategory(getMetricsCategory())
+                .launch();
+    }
 }
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index 7d4ab5d..719ed4a 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -485,23 +485,13 @@
     private void onManageUserClicked(int userId, boolean newUser) {
         mAddingUser = false;
         UserInfo userInfo = mUserManager.getUserInfo(userId);
-        if (userInfo.isRestricted() && mUserCaps.mIsAdmin) {
-            Bundle extras = new Bundle();
-            extras.putInt(RestrictedProfileSettings.EXTRA_USER_ID, userId);
-            extras.putBoolean(RestrictedProfileSettings.EXTRA_NEW_USER, newUser);
-            extras.putBoolean(RestrictedProfileSettings.EXTRA_SHOW_SWITCH_USER, canSwitchUserNow());
-            new SubSettingLauncher(getContext())
-                    .setDestination(RestrictedProfileSettings.class.getName())
-                    .setArguments(extras)
-                    .setTitleRes(R.string.user_restrictions_title)
-                    .setSourceMetricsCategory(getMetricsCategory())
-                    .launch();
-        } else if (userId == UserHandle.myUserId()) {
+        if (userId == UserHandle.myUserId()) {
             // Jump to owner info panel
             OwnerInfoSettings.show(this);
         } else {
             Bundle extras = new Bundle();
             extras.putInt(UserDetailsSettings.EXTRA_USER_ID, userId);
+            extras.putBoolean(AppRestrictionsFragment.EXTRA_NEW_USER, newUser);
             new SubSettingLauncher(getContext())
                     .setDestination(UserDetailsSettings.class.getName())
                     .setArguments(extras)
@@ -963,10 +953,10 @@
                     pref.setSummary(R.string.user_summary_restricted_not_set_up);
                 } else {
                     pref.setSummary(R.string.user_summary_not_set_up);
+                    // Disallow setting up user which results in user switching when the
+                    // restriction is set.
+                    pref.setEnabled(!mUserCaps.mDisallowSwitchUser && canSwitchUserNow());
                 }
-                // Disallow setting up user which results in user switching when the restriction is
-                // set.
-                pref.setEnabled(!mUserCaps.mDisallowSwitchUser && canSwitchUserNow());
             } else if (user.isRestricted()) {
                 pref.setSummary(R.string.user_summary_restricted_profile);
             }
@@ -1137,17 +1127,14 @@
                 showDialog(DIALOG_CONFIRM_EXIT_GUEST);
                 return true;
             }
-            // If this is a limited user, launch the user info settings instead of profile editor
-            if (mUserManager.isRestrictedProfile()) {
-                onManageUserClicked(UserHandle.myUserId(), false);
-            } else {
-                showDialog(DIALOG_USER_PROFILE_EDITOR);
-            }
+            showDialog(DIALOG_USER_PROFILE_EDITOR);
         } else if (pref instanceof UserPreference) {
             int userId = ((UserPreference) pref).getUserId();
             // Get the latest status of the user
             UserInfo user = mUserManager.getUserInfo(userId);
-            if (!user.isInitialized()) {
+            if (!user.isInitialized() && isSecondaryUser(user)) {
+                // for uninitialized secondary users we should show a prompt dialog before
+                // starting the setup
                 mHandler.sendMessage(mHandler.obtainMessage(
                         MESSAGE_SETUP_USER, user.id, user.serialNumber));
             } else {
@@ -1279,4 +1266,7 @@
                 }
             };
 
+    private boolean isSecondaryUser(UserInfo user) {
+        return UserManager.USER_TYPE_FULL_SECONDARY.equals(user.userType);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/core/HideNonSystemOverlayMixinTest.java b/tests/robotests/src/com/android/settings/core/HideNonSystemOverlayMixinTest.java
index d4f43e2..cf0f138 100644
--- a/tests/robotests/src/com/android/settings/core/HideNonSystemOverlayMixinTest.java
+++ b/tests/robotests/src/com/android/settings/core/HideNonSystemOverlayMixinTest.java
@@ -20,7 +20,8 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import android.os.Build;
+import android.content.Context;
+import android.content.SharedPreferences;
 import android.os.Bundle;
 import android.view.WindowManager;
 
@@ -28,6 +29,7 @@
 import androidx.appcompat.app.AppCompatActivity;
 
 import com.android.settings.R;
+import com.android.settings.development.OverlaySettingsPreferenceController;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -35,7 +37,6 @@
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.android.controller.ActivityController;
-import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(RobolectricTestRunner.class)
 public class HideNonSystemOverlayMixinTest {
@@ -69,17 +70,27 @@
     }
 
     @Test
-    public void isEnabled_debug_false() {
-        ReflectionHelpers.setStaticField(Build.class, "IS_DEBUGGABLE", true);
+    public void isEnabled_isAllowedOverlaySettings_returnFalse() {
+        mActivityController.setup();
+        final TestActivity activity = mActivityController.get();
+        final SharedPreferences editor = activity.getSharedPreferences(
+                OverlaySettingsPreferenceController.SHARE_PERFS,
+                Context.MODE_PRIVATE);
+        editor.edit().putBoolean(OverlaySettingsPreferenceController.SHARE_PERFS, true).apply();
 
-        assertThat(new HideNonSystemOverlayMixin(null).isEnabled()).isFalse();
+        assertThat(new HideNonSystemOverlayMixin(activity).isEnabled()).isFalse();
     }
 
     @Test
-    public void isEnabled_user_true() {
-        ReflectionHelpers.setStaticField(Build.class, "IS_DEBUGGABLE", false);
+    public void isEnabled_isNotAllowedOverlaySettings_returnTrue() {
+        mActivityController.setup();
+        TestActivity activity = mActivityController.get();
+        final SharedPreferences editor = activity.getSharedPreferences(
+                OverlaySettingsPreferenceController.SHARE_PERFS,
+                Context.MODE_PRIVATE);
+        editor.edit().putBoolean(OverlaySettingsPreferenceController.SHARE_PERFS, false).apply();
 
-        assertThat(new HideNonSystemOverlayMixin(null).isEnabled()).isTrue();
+        assertThat(new HideNonSystemOverlayMixin(activity).isEnabled()).isTrue();
     }
 
     public static class TestActivity extends AppCompatActivity {
diff --git a/tests/robotests/src/com/android/settings/development/OverlaySettingsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/OverlaySettingsPreferenceControllerTest.java
new file mode 100644
index 0000000..4f04c38
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/OverlaySettingsPreferenceControllerTest.java
@@ -0,0 +1,120 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+
+import androidx.preference.SwitchPreference;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class OverlaySettingsPreferenceControllerTest {
+
+    private Context mContext;
+    private SwitchPreference mPreference;
+    private OverlaySettingsPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        mContext = RuntimeEnvironment.application;
+        mController = new OverlaySettingsPreferenceController(mContext);
+        mPreference = new SwitchPreference(mContext);
+    }
+
+    @Test
+    public void isAvailable_shouldReturnTrue() {
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void updateState_isOverlaySettingsEnabled_shouldCheckPreference() {
+        OverlaySettingsPreferenceController.setOverlaySettingsEnabled(mContext, true);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.isChecked()).isTrue();
+    }
+
+    @Test
+    public void updateState_isOverlaySettingsDisabled_shouldUncheckPreference() {
+        OverlaySettingsPreferenceController.setOverlaySettingsEnabled(mContext, false);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.isChecked()).isFalse();
+    }
+
+    @Test
+    public void onPreferenceChange_preferenceChecked_shouldEnableSettings() {
+        mController.onPreferenceChange(mPreference, true);
+
+        assertThat(OverlaySettingsPreferenceController.isOverlaySettingsEnabled(mContext)).isTrue();
+    }
+
+    @Test
+    public void onPreferenceChange_preferenceUnchecked_shouldDisableSettings() {
+        mController.onPreferenceChange(mPreference, false);
+
+        assertThat(
+                OverlaySettingsPreferenceController.isOverlaySettingsEnabled(mContext)).isFalse();
+    }
+
+    @Test
+    public void isOverlaySettingsEnabled_sharePreferenceSetTrue_shouldReturnTrue() {
+        final SharedPreferences editor = mContext.getSharedPreferences(
+                OverlaySettingsPreferenceController.SHARE_PERFS,
+                Context.MODE_PRIVATE);
+        editor.edit().putBoolean(OverlaySettingsPreferenceController.SHARE_PERFS, true).apply();
+
+        assertThat(OverlaySettingsPreferenceController.isOverlaySettingsEnabled(mContext)).isTrue();
+    }
+
+    @Test
+    public void isOverlaySettingsEnabled_sharePreferenceSetFalse_shouldReturnFalse() {
+        final SharedPreferences editor = mContext.getSharedPreferences(
+                OverlaySettingsPreferenceController.SHARE_PERFS,
+                Context.MODE_PRIVATE);
+        editor.edit().putBoolean(OverlaySettingsPreferenceController.SHARE_PERFS, false).apply();
+
+        assertThat(
+                OverlaySettingsPreferenceController.isOverlaySettingsEnabled(mContext)).isFalse();
+    }
+
+    @Test
+    public void setOverlaySettingsEnabled_setTrue_shouldStoreTrue() {
+        OverlaySettingsPreferenceController.setOverlaySettingsEnabled(mContext, true);
+
+        assertThat(
+                OverlaySettingsPreferenceController.isOverlaySettingsEnabled(mContext)).isTrue();
+    }
+
+    @Test
+    public void setOverlaySettingsEnabled_setFalse_shouldStoreTrue() {
+        OverlaySettingsPreferenceController.setOverlaySettingsEnabled(mContext, false);
+
+        assertThat(
+                OverlaySettingsPreferenceController.isOverlaySettingsEnabled(mContext)).isFalse();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsControllerTest.java
index 8654a4e..2919edc 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsControllerTest.java
@@ -8,6 +8,7 @@
 import android.provider.Settings;
 import android.provider.Settings.Global;
 import android.provider.Settings.Secure;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -59,9 +60,36 @@
     @Test
     public void setDefaultKey_any_defaultsToNoScheduleIfWarningNotSeen() {
         Secure.putString(
-            mContext.getContentResolver(), Secure.LOW_POWER_WARNING_ACKNOWLEDGED, "null");
+                mContext.getContentResolver(), Secure.LOW_POWER_WARNING_ACKNOWLEDGED, "null");
         mController.setDefaultKey(BatterySaverScheduleRadioButtonsController.KEY_ROUTINE);
         assertThat(mController.getDefaultKey())
                 .isEqualTo(BatterySaverScheduleRadioButtonsController.KEY_NO_SCHEDULE);
     }
+
+    @Test
+    public void setDefaultKey_percentage_shouldSuppressNotification() {
+        Secure.putInt(
+                mContext.getContentResolver(), Secure.LOW_POWER_WARNING_ACKNOWLEDGED, 1);
+        Settings.Global.putInt(mResolver, Global.AUTOMATIC_POWER_SAVE_MODE,
+                PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE);
+        Settings.Global.putInt(mResolver, Global.LOW_POWER_MODE_TRIGGER_LEVEL, 5);
+        mController.setDefaultKey(BatterySaverScheduleRadioButtonsController.KEY_PERCENTAGE);
+
+        final int result = Settings.Secure.getInt(mResolver,
+                Secure.SUPPRESS_AUTO_BATTERY_SAVER_SUGGESTION, 0);
+        assertThat(result).isEqualTo(1);
+    }
+
+    @Test
+    public void setDefaultKey_routine_shouldSuppressNotification() {
+        Secure.putInt(
+                mContext.getContentResolver(), Secure.LOW_POWER_WARNING_ACKNOWLEDGED, 1);
+        Settings.Global.putInt(mResolver, Global.AUTOMATIC_POWER_SAVE_MODE,
+                PowerManager.POWER_SAVE_MODE_TRIGGER_DYNAMIC);
+        mController.setDefaultKey(BatterySaverScheduleRadioButtonsController.KEY_ROUTINE);
+
+        final int result = Settings.Secure.getInt(mResolver,
+                Secure.SUPPRESS_AUTO_BATTERY_SAVER_SUGGESTION, 0);
+        assertThat(result).isEqualTo(1);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/gestures/DeviceControlsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/DeviceControlsPreferenceControllerTest.java
index c31971a..432a68d 100644
--- a/tests/robotests/src/com/android/settings/gestures/DeviceControlsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/DeviceControlsPreferenceControllerTest.java
@@ -19,6 +19,7 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Context;
+import android.content.pm.PackageManager;
 import android.provider.Settings;
 
 import com.android.settings.core.BasePreferenceController;
@@ -28,12 +29,15 @@
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
+import org.robolectric.shadows.ShadowPackageManager;
 
 @RunWith(RobolectricTestRunner.class)
 public class DeviceControlsPreferenceControllerTest {
 
     private Context mContext;
     private DeviceControlsPreferenceController mController;
+    private ShadowPackageManager mShadowPackageManager;
 
     private static final String KEY_GESTURE_PANEL = "gesture_device_controls";
     private static final String ENABLED_SETTING =
@@ -42,6 +46,7 @@
     @Before
     public void setUp() {
         mContext = RuntimeEnvironment.application;
+        mShadowPackageManager = Shadows.shadowOf(mContext.getPackageManager());
         mController = new DeviceControlsPreferenceController(mContext, KEY_GESTURE_PANEL);
     }
 
@@ -60,12 +65,22 @@
     }
 
     @Test
-    public void getAvailabilityStatus_panelAvailable() {
+    public void getAvailabilityStatus_hasSystemFeature_panelAvailable() {
+        mShadowPackageManager.setSystemFeature(PackageManager.FEATURE_CONTROLS, true);
+
         assertThat(mController.getAvailabilityStatus())
                 .isEqualTo(BasePreferenceController.AVAILABLE);
     }
 
     @Test
+    public void getAvailabilityStatus_hasntSystemFeature_panelUnsupported() {
+        mShadowPackageManager.setSystemFeature(PackageManager.FEATURE_CONTROLS, false);
+
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
+    }
+
+    @Test
     public void isSliceable_correctKey() {
         final DeviceControlsPreferenceController controller =
                 new DeviceControlsPreferenceController(mContext,
diff --git a/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerSummaryTest.java b/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerSummaryTest.java
new file mode 100644
index 0000000..7fa248c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerSummaryTest.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.gestures;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.annotation.StringRes;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.provider.Settings;
+
+import com.android.settings.R;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.ParameterizedRobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
+import org.robolectric.shadows.ShadowPackageManager;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+@RunWith(ParameterizedRobolectricTestRunner.class)
+public class PowerMenuPreferenceControllerSummaryTest {
+
+    private static final String KEY_GESTURE_POWER_MENU = "gesture_power_menu";
+    private static final String CONTROLS_ENABLED = Settings.Secure.CONTROLS_ENABLED;
+    private static final String CONTROLS_FEATURE = PackageManager.FEATURE_CONTROLS;
+    private static final String CARDS_ENABLED = Settings.Secure.GLOBAL_ACTIONS_PANEL_ENABLED;
+    private static final String CARDS_AVAILABLE = Settings.Secure.GLOBAL_ACTIONS_PANEL_AVAILABLE;
+
+    @ParameterizedRobolectricTestRunner.Parameters(
+            name = "ctrls available={0}, ctrls enabled={1}, cards available={2}, cards enabled={3}")
+    public static Collection data() {
+        return Arrays.asList(new Object[][]{
+                // controls available, controls enabled, cards available, cards enabled, summary
+                {false, false, false, false, R.string.power_menu_none},
+                {false, false, false, true, R.string.power_menu_none},
+                {false, false, true, false, R.string.power_menu_none},
+                {false, false, true, true, R.string.power_menu_cards_passes},
+                {false, true, false, false, R.string.power_menu_none},
+                {false, true, false, true, R.string.power_menu_none},
+                {false, true, true, false, R.string.power_menu_none},
+                {false, true, true, true, R.string.power_menu_cards_passes},
+                {true, false, false, false, R.string.power_menu_none},
+                {true, false, false, true, R.string.power_menu_none},
+                {true, false, true, false, R.string.power_menu_none},
+                {true, false, true, true, R.string.power_menu_cards_passes},
+                {true, true, false, false, R.string.power_menu_device_controls},
+                {true, true, false, true, R.string.power_menu_device_controls},
+                {true, true, true, false, R.string.power_menu_device_controls},
+                {true, true, true, true, R.string.power_menu_cards_passes_device_controls}
+        });
+    }
+
+    private Context mContext;
+    private PowerMenuPreferenceController mController;
+    private ShadowPackageManager mShadowPackageManager;
+
+    private boolean mControlsAvailable;
+    private boolean mControlsEnabled;
+    private boolean mCardsAvailable;
+    private boolean mCardsEnabled;
+    private @StringRes int mSummaryRes;
+
+    public PowerMenuPreferenceControllerSummaryTest(
+            boolean controlsAvailable,
+            boolean controlsEnabled,
+            boolean cardsAvailable,
+            boolean cardsEnabled,
+            @StringRes int summaryRes) {
+        mControlsAvailable = controlsAvailable;
+        mControlsEnabled = controlsEnabled;
+        mCardsAvailable = cardsAvailable;
+        mCardsEnabled = cardsEnabled;
+        mSummaryRes = summaryRes;
+    }
+
+    @Before
+    public void setUp() {
+        mContext = RuntimeEnvironment.application;
+        mShadowPackageManager = Shadows.shadowOf(mContext.getPackageManager());
+        mController = new PowerMenuPreferenceController(mContext, KEY_GESTURE_POWER_MENU);
+    }
+
+    @Test
+    public void getSummary_possiblyAvailableAndEnabled() {
+        mShadowPackageManager.setSystemFeature(CONTROLS_FEATURE, mControlsAvailable);
+        ContentResolver cr = mContext.getContentResolver();
+        Settings.Secure.putInt(cr, CONTROLS_ENABLED, mControlsEnabled ? 1 : 0);
+        Settings.Secure.putInt(cr, CARDS_AVAILABLE, mCardsAvailable ? 1 : 0);
+        Settings.Secure.putInt(cr, CARDS_ENABLED, mCardsEnabled ? 1 : 0);
+
+        assertThat(mController.getSummary()).isEqualTo(mContext.getText(mSummaryRes));
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerTest.java
index e14293e..570a680 100644
--- a/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerTest.java
@@ -19,118 +19,71 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Context;
+import android.content.pm.PackageManager;
 import android.provider.Settings;
 
-import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
+import org.robolectric.shadows.ShadowPackageManager;
 
 @RunWith(RobolectricTestRunner.class)
 public class PowerMenuPreferenceControllerTest {
     private Context mContext;
     private PowerMenuPreferenceController mController;
+    private ShadowPackageManager mShadowPackageManager;
 
     private static final String KEY_GESTURE_POWER_MENU = "gesture_power_menu";
     private static final String CONTROLS_ENABLED = Settings.Secure.CONTROLS_ENABLED;
+    private static final String CONTROLS_FEATURE = PackageManager.FEATURE_CONTROLS;
     private static final String CARDS_ENABLED = Settings.Secure.GLOBAL_ACTIONS_PANEL_ENABLED;
     private static final String CARDS_AVAILABLE = Settings.Secure.GLOBAL_ACTIONS_PANEL_AVAILABLE;
 
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
+        mShadowPackageManager = Shadows.shadowOf(mContext.getPackageManager());
         mController = new PowerMenuPreferenceController(mContext, KEY_GESTURE_POWER_MENU);
     }
 
     @Test
-    public void getAvailabilityStatus_available() {
+    public void getAvailabilityStatus_bothAvailable_available() {
+        Settings.Secure.putInt(mContext.getContentResolver(), CARDS_AVAILABLE, 1);
+        mShadowPackageManager.setSystemFeature(CONTROLS_FEATURE, true);
+
         assertThat(mController.getAvailabilityStatus()).isEqualTo(
                 BasePreferenceController.AVAILABLE);
     }
 
     @Test
-    public void getSummary_allDisabled() {
-        Settings.Secure.putInt(mContext.getContentResolver(), CONTROLS_ENABLED, 0);
-        Settings.Secure.putInt(mContext.getContentResolver(), CARDS_ENABLED, 0);
-        Settings.Secure.putInt(mContext.getContentResolver(), CARDS_AVAILABLE, 0);
-
-        assertThat(mController.getSummary())
-                .isEqualTo(mContext.getText(R.string.power_menu_none));
-    }
-
-    @Test
-    public void getSummary_onlyControlsEnabled() {
-        Settings.Secure.putInt(mContext.getContentResolver(), CONTROLS_ENABLED, 1);
-        Settings.Secure.putInt(mContext.getContentResolver(), CARDS_ENABLED, 0);
-        Settings.Secure.putInt(mContext.getContentResolver(), CARDS_AVAILABLE, 0);
-
-        assertThat(mController.getSummary())
-                .isEqualTo(mContext.getText(R.string.power_menu_device_controls));
-    }
-
-    @Test
-    public void getSummary_onlyCardsEnabled_notAvailable() {
-        Settings.Secure.putInt(mContext.getContentResolver(), CONTROLS_ENABLED, 0);
-        Settings.Secure.putInt(mContext.getContentResolver(), CARDS_ENABLED, 1);
-        Settings.Secure.putInt(mContext.getContentResolver(), CARDS_AVAILABLE, 0);
-
-        assertThat(mController.getSummary())
-                .isEqualTo(mContext.getText(R.string.power_menu_none));
-    }
-
-    @Test
-    public void getSummary_cardsAvailable_notEnabled() {
-        Settings.Secure.putInt(mContext.getContentResolver(), CONTROLS_ENABLED, 0);
-        Settings.Secure.putInt(mContext.getContentResolver(), CARDS_ENABLED, 0);
+    public void getAvailabilityStatus_onlyCardsAvailable_available() {
         Settings.Secure.putInt(mContext.getContentResolver(), CARDS_AVAILABLE, 1);
+        mShadowPackageManager.setSystemFeature(CONTROLS_FEATURE, false);
 
-        assertThat(mController.getSummary())
-                .isEqualTo(mContext.getText(R.string.power_menu_none));
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(
+                BasePreferenceController.AVAILABLE);
     }
 
     @Test
-    public void getSummary_allEnabled_cardsNotAvailable() {
-        Settings.Secure.putInt(mContext.getContentResolver(), CONTROLS_ENABLED, 1);
-        Settings.Secure.putInt(mContext.getContentResolver(), CARDS_ENABLED, 1);
+    public void getAvailabilityStatus_onlyControlsAvailable_available() {
         Settings.Secure.putInt(mContext.getContentResolver(), CARDS_AVAILABLE, 0);
+        mShadowPackageManager.setSystemFeature(CONTROLS_FEATURE, true);
 
-        assertThat(mController.getSummary())
-                .isEqualTo(mContext.getText(R.string.power_menu_device_controls));
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(
+                BasePreferenceController.AVAILABLE);
     }
 
     @Test
-    public void getSummary_controlsEnabled_cardsDisabledAvailable() {
-        Settings.Secure.putInt(mContext.getContentResolver(), CONTROLS_ENABLED, 1);
-        Settings.Secure.putInt(mContext.getContentResolver(), CARDS_ENABLED, 0);
-        Settings.Secure.putInt(mContext.getContentResolver(), CARDS_AVAILABLE, 1);
+    public void getAvailabilityStatus_bothUnavailable_unavailable() {
+        Settings.Secure.putInt(mContext.getContentResolver(), CARDS_AVAILABLE, 0);
+        mShadowPackageManager.setSystemFeature(CONTROLS_FEATURE, false);
 
-        assertThat(mController.getSummary())
-                .isEqualTo(mContext.getText(R.string.power_menu_device_controls));
-    }
-
-    @Test
-    public void getSummary_controlsDisabled() {
-        Settings.Secure.putInt(mContext.getContentResolver(), CONTROLS_ENABLED, 0);
-        Settings.Secure.putInt(mContext.getContentResolver(), CARDS_ENABLED, 1);
-        Settings.Secure.putInt(mContext.getContentResolver(), CARDS_AVAILABLE, 1);
-
-        assertThat(mController.getSummary())
-                .isEqualTo(mContext.getText(R.string.power_menu_cards_passes));
-    }
-
-    @Test
-    public void getSummary_allEnabled() {
-        Settings.Secure.putInt(mContext.getContentResolver(), CONTROLS_ENABLED, 1);
-        Settings.Secure.putInt(mContext.getContentResolver(), CARDS_ENABLED, 1);
-        Settings.Secure.putInt(mContext.getContentResolver(), CARDS_AVAILABLE, 1);
-
-        assertThat(mController.getSummary())
-                .isEqualTo(mContext.getText(R.string.power_menu_cards_passes_device_controls));
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(
+                BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/gestures/PowerMenuPrivacyPreferenceControllerAvailabilityTest.java b/tests/robotests/src/com/android/settings/gestures/PowerMenuPrivacyPreferenceControllerAvailabilityTest.java
new file mode 100644
index 0000000..40b94eb
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/gestures/PowerMenuPrivacyPreferenceControllerAvailabilityTest.java
@@ -0,0 +1,129 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.gestures;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.when;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.provider.Settings;
+
+import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.testutils.FakeFeatureFactory;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.ParameterizedRobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
+import org.robolectric.shadows.ShadowPackageManager;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+@RunWith(ParameterizedRobolectricTestRunner.class)
+public class PowerMenuPrivacyPreferenceControllerAvailabilityTest {
+
+    private static final String CONTROLS_ENABLED = Settings.Secure.CONTROLS_ENABLED;
+    private static final String CONTROLS_FEATURE = PackageManager.FEATURE_CONTROLS;
+    private static final String CARDS_ENABLED = Settings.Secure.GLOBAL_ACTIONS_PANEL_ENABLED;
+    private static final String CARDS_AVAILABLE = Settings.Secure.GLOBAL_ACTIONS_PANEL_AVAILABLE;
+
+    @ParameterizedRobolectricTestRunner.Parameters(
+            name = "ctrls available={0}, ctrls enabled={1}, cards available={2}, cards enabled={3}")
+    public static Collection data() {
+        return Arrays.asList(new Object[][]{
+                // controls available, controls enabled, cards available, cards enabled, available
+                {false, false, false, false, BasePreferenceController.DISABLED_DEPENDENT_SETTING},
+                {false, false, false, true, BasePreferenceController.DISABLED_DEPENDENT_SETTING},
+                {false, false, true, false, BasePreferenceController.DISABLED_DEPENDENT_SETTING},
+                {false, false, true, true, BasePreferenceController.AVAILABLE},
+                {false, true, false, false, BasePreferenceController.DISABLED_DEPENDENT_SETTING},
+                {false, true, false, true, BasePreferenceController.DISABLED_DEPENDENT_SETTING},
+                {false, true, true, false, BasePreferenceController.DISABLED_DEPENDENT_SETTING},
+                {false, true, true, true, BasePreferenceController.AVAILABLE},
+                {true, false, false, false, BasePreferenceController.DISABLED_DEPENDENT_SETTING},
+                {true, false, false, true, BasePreferenceController.DISABLED_DEPENDENT_SETTING},
+                {true, false, true, false, BasePreferenceController.DISABLED_DEPENDENT_SETTING},
+                {true, false, true, true, BasePreferenceController.AVAILABLE},
+                {true, true, false, false, BasePreferenceController.AVAILABLE},
+                {true, true, false, true, BasePreferenceController.AVAILABLE},
+                {true, true, true, false, BasePreferenceController.AVAILABLE},
+                {true, true, true, true, BasePreferenceController.AVAILABLE}
+        });
+    }
+
+    private Context mContext;
+    private PowerMenuPrivacyPreferenceController mController;
+    private ShadowPackageManager mShadowPackageManager;
+
+    @Mock
+    private LockPatternUtils mLockPatternUtils;
+
+    private boolean mControlsAvailable;
+    private boolean mControlsEnabled;
+    private boolean mCardsAvailable;
+    private boolean mCardsEnabled;
+    private int mAvailable;
+
+    public PowerMenuPrivacyPreferenceControllerAvailabilityTest(
+            boolean controlsAvailable,
+            boolean controlsEnabled,
+            boolean cardsAvailable,
+            boolean cardsEnabled,
+            int available) {
+        mControlsAvailable = controlsAvailable;
+        mControlsEnabled = controlsEnabled;
+        mCardsAvailable = cardsAvailable;
+        mCardsEnabled = cardsEnabled;
+        mAvailable = available;
+    }
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        mShadowPackageManager = Shadows.shadowOf(mContext.getPackageManager());
+        FakeFeatureFactory featureFactory = FakeFeatureFactory.setupForTest();
+
+        // For these tests we assume the device has a secure lock.
+        when(featureFactory.securityFeatureProvider.getLockPatternUtils(mContext))
+                .thenReturn(mLockPatternUtils);
+        when(mLockPatternUtils.isSecure(anyInt())).thenReturn(true);
+
+        mController = new PowerMenuPrivacyPreferenceController(mContext, "TEST_KEY");
+    }
+
+    @Test
+    public void getAvailabilityStatus_possiblyAvailableAndEnabled() {
+        mShadowPackageManager.setSystemFeature(CONTROLS_FEATURE, mControlsAvailable);
+        ContentResolver cr = mContext.getContentResolver();
+        Settings.Secure.putInt(cr, CONTROLS_ENABLED, mControlsEnabled ? 1 : 0);
+        Settings.Secure.putInt(cr, CARDS_AVAILABLE, mCardsAvailable ? 1 : 0);
+        Settings.Secure.putInt(cr, CARDS_ENABLED, mCardsEnabled ? 1 : 0);
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(mAvailable);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/PowerMenuPrivacyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/PowerMenuPrivacyPreferenceControllerTest.java
index 32048a1..994a3ee 100644
--- a/tests/robotests/src/com/android/settings/gestures/PowerMenuPrivacyPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/PowerMenuPrivacyPreferenceControllerTest.java
@@ -26,6 +26,7 @@
 
 import android.content.ContentResolver;
 import android.content.Context;
+import android.content.pm.PackageManager;
 import android.provider.Settings;
 
 import androidx.preference.Preference;
@@ -42,6 +43,8 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
+import org.robolectric.shadows.ShadowPackageManager;
 
 @RunWith(RobolectricTestRunner.class)
 public class PowerMenuPrivacyPreferenceControllerTest {
@@ -55,6 +58,7 @@
 
     private Context mContext;
     private ContentResolver mContentResolver;
+    private ShadowPackageManager mShadowPackageManager;
     private PowerMenuPrivacyPreferenceController mController;
 
     @Mock
@@ -66,6 +70,8 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
+        mShadowPackageManager = Shadows.shadowOf(mContext.getPackageManager());
+
         mContentResolver = mContext.getContentResolver();
         FakeFeatureFactory featureFactory = FakeFeatureFactory.setupForTest();
         when(featureFactory.securityFeatureProvider.getLockPatternUtils(mContext))
@@ -119,23 +125,39 @@
     }
 
     @Test
-    public void getSummary_cardsAvailable_isPower_menu_privacy_showString() {
+    public void getSummary_cardsControlsAvailable_isPower_menu_privacy_showString() {
         Settings.Secure.putInt(mContentResolver, CARDS_AVAILABLE_KEY, 1);
+        mShadowPackageManager.setSystemFeature(PackageManager.FEATURE_CONTROLS, true);
 
         assertThat(mController.getSummary()).isEqualTo(
                 mContext.getText(R.string.power_menu_privacy_show));
     }
 
     @Test
-    public void getSummary_cardsUnavailable_isPower_menu_privacy_show_controlsString() {
+    public void
+        getSummary_cardsUnavailableControlsAvailable_isPower_menu_privacy_show_controlsString() {
         Settings.Secure.putInt(mContentResolver, CARDS_AVAILABLE_KEY, 0);
+        mShadowPackageManager.setSystemFeature(PackageManager.FEATURE_CONTROLS, true);
 
         assertThat(mController.getSummary()).isEqualTo(
                 mContext.getText(R.string.power_menu_privacy_show_controls));
     }
 
     @Test
+    public void
+        getSummary_cardsAvailableControlsUnavailable_isPower_menu_privacy_show_cardsString() {
+        Settings.Secure.putInt(mContentResolver, CARDS_AVAILABLE_KEY, 1);
+        mShadowPackageManager.setSystemFeature(PackageManager.FEATURE_CONTROLS, false);
+
+        assertThat(mController.getSummary()).isEqualTo(
+                mContext.getText(R.string.power_menu_privacy_show_cards));
+    }
+
+    @Test
     public void updateState_onPreferenceRefreshed_preferenceEnabledAndSummaryChanged() {
+        mShadowPackageManager.setSystemFeature(PackageManager.FEATURE_CONTROLS, true);
+        Settings.Secure.putInt(mContentResolver, CARDS_AVAILABLE_KEY, 1);
+
         mController.updateState(mPreference);
 
         verify(mPreference).setEnabled(anyBoolean());
@@ -143,58 +165,10 @@
     }
 
     @Test
-    public void getAvailabilityStatus_allOff_returnsDisabled() {
-        Settings.Secure.putInt(mContentResolver, CARDS_AVAILABLE_KEY, 1);
-        Settings.Secure.putInt(mContentResolver, CARDS_ENABLED_KEY, 0);
-        Settings.Secure.putInt(mContentResolver, CONTROLS_ENABLED_KEY, 0);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(
-                BasePreferenceController.DISABLED_DEPENDENT_SETTING);
-    }
-
-    @Test
-    public void getAvailabilityStatus_cardsUnavailableControlsOff_returnsDisabled() {
-        Settings.Secure.putInt(mContentResolver, CARDS_AVAILABLE_KEY, 0);
-        Settings.Secure.putInt(mContentResolver, CONTROLS_ENABLED_KEY, 0);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(
-                BasePreferenceController.DISABLED_DEPENDENT_SETTING);
-    }
-
-    @Test
-    public void testAvailabilityStatus_cardsOnControlsOff_returnsAvailable() {
-        Settings.Secure.putInt(mContentResolver, CARDS_AVAILABLE_KEY, 1);
-        Settings.Secure.putInt(mContentResolver, CARDS_ENABLED_KEY, 1);
-        Settings.Secure.putInt(mContentResolver, CONTROLS_ENABLED_KEY, 0);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(
-                BasePreferenceController.AVAILABLE);
-    }
-
-    @Test
-    public void getAvailabilityStatus_cardsOffControlsOn_returnsAvailable() {
-        Settings.Secure.putInt(mContentResolver, CARDS_AVAILABLE_KEY, 1);
-        Settings.Secure.putInt(mContentResolver, CARDS_ENABLED_KEY, 0);
-        Settings.Secure.putInt(mContentResolver, CONTROLS_ENABLED_KEY, 1);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(
-                BasePreferenceController.AVAILABLE);
-    }
-
-    @Test
-    public void getAvailabilityStatus_allOn_returnsAvailable() {
-        Settings.Secure.putInt(mContentResolver, CARDS_AVAILABLE_KEY, 1);
-        Settings.Secure.putInt(mContentResolver, CARDS_ENABLED_KEY, 1);
-        Settings.Secure.putInt(mContentResolver, CONTROLS_ENABLED_KEY, 1);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(
-                BasePreferenceController.AVAILABLE);
-    }
-
-    @Test
     public void getAvailabilityStatus_allOnNotSecure_returnsDisabled() {
         when(mLockPatternUtils.isSecure(anyInt())).thenReturn(false);
 
+        mShadowPackageManager.setSystemFeature(PackageManager.FEATURE_CONTROLS, true);
         Settings.Secure.putInt(mContentResolver, CARDS_AVAILABLE_KEY, 1);
         Settings.Secure.putInt(mContentResolver, CARDS_ENABLED_KEY, 1);
         Settings.Secure.putInt(mContentResolver, CONTROLS_ENABLED_KEY, 1);
@@ -205,9 +179,8 @@
 
     @Test
     public void getAvailabilityStatus_controlsDeletedSecure_retursAvailable() {
-        when(mLockPatternUtils.isSecure(anyInt())).thenReturn(true);
-
         Settings.Secure.putString(mContentResolver, CONTROLS_ENABLED_KEY, null);
+        mShadowPackageManager.setSystemFeature(PackageManager.FEATURE_CONTROLS, true);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(
                 BasePreferenceController.AVAILABLE);
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImplTest.java
index 029dde8..6f327ab 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImplTest.java
@@ -16,40 +16,17 @@
 
 package com.android.settings.homepage.contextualcards;
 
-import static android.content.Context.MODE_PRIVATE;
-
-import static com.android.settings.homepage.contextualcards.slices.ContextualNotificationChannelSlice.PREFS;
-import static com.android.settings.homepage.contextualcards.slices.ContextualNotificationChannelSlice.PREF_KEY_INTERACTED_PACKAGES;
-import static com.android.settings.slices.CustomSliceRegistry.CONTEXTUAL_NOTIFICATION_CHANNEL_SLICE_URI;
-import static com.android.settings.slices.CustomSliceRegistry.FLASHLIGHT_SLICE_URI;
-
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-
 import android.annotation.Nullable;
-import android.app.PendingIntent;
 import android.content.ContentValues;
 import android.content.Context;
-import android.content.Intent;
-import android.content.SharedPreferences;
 import android.database.Cursor;
 import android.database.sqlite.SQLiteDatabase;
-import android.net.Uri;
-import android.os.Bundle;
-import android.util.ArraySet;
 
-import androidx.core.graphics.drawable.IconCompat;
-import androidx.slice.Slice;
 import androidx.slice.SliceProvider;
-import androidx.slice.builders.ListBuilder;
-import androidx.slice.builders.SliceAction;
 import androidx.slice.widget.SliceLiveData;
 
-import com.android.settings.R;
-import com.android.settings.SettingsActivity;
-import com.android.settings.applications.AppInfoBase;
 import com.android.settings.intelligence.ContextualCardProto;
 
 import org.junit.After;
@@ -61,14 +38,12 @@
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Set;
 
 @RunWith(RobolectricTestRunner.class)
 public class ContextualCardFeatureProviderImplTest {
 
     private Context mContext;
     private ContextualCardFeatureProviderImpl mImpl;
-    private SharedPreferences mSharedPreferences;
     private CardDatabaseHelper mCardDatabaseHelper;
     private SQLiteDatabase mDatabase;
 
@@ -76,7 +51,6 @@
     public void setUp() {
         mContext = RuntimeEnvironment.application;
         mImpl = new ContextualCardFeatureProviderImpl(mContext);
-        mSharedPreferences = mContext.getSharedPreferences(PREFS, MODE_PRIVATE);
         // Set-up specs for SliceMetadata.
         SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
         mCardDatabaseHelper = CardDatabaseHelper.getInstance(mContext);
@@ -87,7 +61,6 @@
     public void tearDown() {
         CardDatabaseHelper.getInstance(mContext).close();
         CardDatabaseHelper.sCardDatabaseHelper = null;
-        removeInteractedPackageFromSharedPreference();
     }
 
     @Test
@@ -128,37 +101,12 @@
         assertThat(rowsUpdated).isEqualTo(0);
     }
 
-    @Test
-    public void logNotificationPackage_isContextualNotificationChannel_shouldLogPackage() {
-        final String packageName = "com.android.test.app";
-        final Slice slice = buildSlice(CONTEXTUAL_NOTIFICATION_CHANNEL_SLICE_URI, packageName);
-
-        mImpl.logNotificationPackage(slice);
-
-        final Set<String> interactedPackages = mSharedPreferences.getStringSet(
-                PREF_KEY_INTERACTED_PACKAGES, new ArraySet<>());
-        assertThat(interactedPackages.contains(packageName)).isTrue();
-    }
-
-    @Test
-    public void logNotificationPackage_isNotContextualNotificationChannel_shouldNotLogPackage() {
-        final String packageName = "com.android.test.app";
-        final Slice slice = buildSlice(FLASHLIGHT_SLICE_URI, packageName);
-
-        mImpl.logNotificationPackage(slice);
-
-        final Set<String> interactedPackages = mSharedPreferences.getStringSet(
-                PREF_KEY_INTERACTED_PACKAGES, new ArraySet<>());
-        assertThat(interactedPackages.contains(packageName)).isFalse();
-    }
-
     private static void insertFakeCard(
             SQLiteDatabase db, String name, double score, String uri, @Nullable Long time) {
         final ContentValues value = new ContentValues();
         value.put(CardDatabaseHelper.CardColumns.NAME, name);
         value.put(CardDatabaseHelper.CardColumns.SCORE, score);
         value.put(CardDatabaseHelper.CardColumns.SLICE_URI, uri);
-
         value.put(CardDatabaseHelper.CardColumns.TYPE, ContextualCard.CardType.SLICE);
         value.put(CardDatabaseHelper.CardColumns.CATEGORY,
                 ContextualCardProto.ContextualCard.Category.DEFAULT.getNumber());
@@ -173,31 +121,4 @@
 
         db.insert(CardDatabaseHelper.CARD_TABLE, null, value);
     }
-
-    private Slice buildSlice(Uri sliceUri, String packageName) {
-        final Bundle args = new Bundle();
-        args.putString(AppInfoBase.ARG_PACKAGE_NAME, packageName);
-        final Intent intent = new Intent("action");
-        intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS, args);
-
-        final PendingIntent pendingIntent = spy(
-                PendingIntent.getActivity(mContext, 0 /* requestCode */, intent, 0 /* flags */));
-        doReturn(intent).when(pendingIntent).getIntent();
-        final IconCompat icon = IconCompat.createWithResource(mContext, R.drawable.empty_icon);
-        final SliceAction action = SliceAction.createDeeplink(pendingIntent, icon,
-                ListBuilder.SMALL_IMAGE, "title");
-
-        return new ListBuilder(mContext, sliceUri, ListBuilder.INFINITY)
-                .addRow(new ListBuilder.RowBuilder()
-                        .addEndItem(icon, ListBuilder.ICON_IMAGE)
-                        .setTitle("title")
-                        .setPrimaryAction(action))
-                .build();
-    }
-
-    private void removeInteractedPackageFromSharedPreference() {
-        if (mSharedPreferences.contains(PREF_KEY_INTERACTED_PACKAGES)) {
-            mSharedPreferences.edit().remove(PREF_KEY_INTERACTED_PACKAGES).apply();
-        }
-    }
 }
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/EligibleCardCheckerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/EligibleCardCheckerTest.java
index 23ae2f3..613062f 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/EligibleCardCheckerTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/EligibleCardCheckerTest.java
@@ -114,6 +114,17 @@
                 .isFalse();
     }
 
+    @Test
+    public void isCardEligibleToDisplay_sliceNotNull_cacheSliceToCard() {
+        final ContextualWifiSlice wifiSlice = new ContextualWifiSlice(mContext);
+        final Slice slice = wifiSlice.getSlice();
+        doReturn(slice).when(mEligibleCardChecker).bindSlice(any(Uri.class));
+
+        mEligibleCardChecker.isCardEligibleToDisplay(getContextualCard(TEST_SLICE_URI));
+
+        assertThat(mEligibleCardChecker.mCard.getSlice()).isNotNull();
+    }
+
     private ContextualCard getContextualCard(Uri sliceUri) {
         return new ContextualCard.Builder()
                 .setName("test_card")
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSliceTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSliceTest.java
index 8fad638..68c97cf 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSliceTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSliceTest.java
@@ -32,9 +32,11 @@
 import com.android.internal.os.BatteryStatsHelper;
 import com.android.settings.R;
 import com.android.settings.fuelgauge.BatteryStatsHelperLoader;
+import com.android.settings.fuelgauge.batterytip.AppInfo;
 import com.android.settings.fuelgauge.batterytip.BatteryTipLoader;
 import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
 import com.android.settings.fuelgauge.batterytip.tips.EarlyWarningTip;
+import com.android.settings.fuelgauge.batterytip.tips.HighUsageTip;
 import com.android.settings.fuelgauge.batterytip.tips.LowBatteryTip;
 import com.android.settings.slices.SliceBackgroundWorker;
 
@@ -95,8 +97,14 @@
     @Test
     public void getSlice_unimportantSlice_shouldSkip() {
         final List<BatteryTip> tips = new ArrayList<>();
+        final List<AppInfo> appList = new ArrayList<>();
+        appList.add(new AppInfo.Builder()
+                .setPackageName("com.android.settings")
+                .setScreenOnTimeMs(10000L)
+                .build());
         tips.add(new LowBatteryTip(BatteryTip.StateType.INVISIBLE, false, ""));
         tips.add(new EarlyWarningTip(BatteryTip.StateType.HANDLED, false));
+        tips.add(new HighUsageTip(1000L, appList));
         ShadowBatteryTipLoader.setBatteryTips(tips);
 
         BatteryFixSlice.refreshBatteryTips(mContext);
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/ContextualNotificationChannelSliceTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/ContextualNotificationChannelSliceTest.java
deleted file mode 100644
index 8541a30..0000000
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/ContextualNotificationChannelSliceTest.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.homepage.contextualcards.slices;
-
-import static android.content.Context.MODE_PRIVATE;
-
-import static com.android.settings.homepage.contextualcards.slices.ContextualNotificationChannelSlice.PREFS;
-import static com.android.settings.homepage.contextualcards.slices.ContextualNotificationChannelSlice.PREF_KEY_INTERACTED_PACKAGES;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.net.Uri;
-import android.util.ArraySet;
-
-import com.android.settings.R;
-import com.android.settings.slices.CustomSliceRegistry;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-import java.util.Set;
-
-@RunWith(RobolectricTestRunner.class)
-public class ContextualNotificationChannelSliceTest {
-
-    private static final String PACKAGE_NAME = "package_name";
-
-    private Context mContext;
-    private ContextualNotificationChannelSlice mNotificationChannelSlice;
-    private SharedPreferences mSharedPreferences;
-
-    @Before
-    public void setUp() {
-        mContext = RuntimeEnvironment.application;
-        mNotificationChannelSlice = new ContextualNotificationChannelSlice(mContext);
-        mSharedPreferences = mContext.getSharedPreferences(PREFS, MODE_PRIVATE);
-    }
-
-    @After
-    public void tearDown() {
-        removeInteractedPackageFromSharedPreference();
-    }
-
-    @Test
-    public void getUri_shouldBeContextualNotificationChannelSliceUri() {
-        final Uri uri = mNotificationChannelSlice.getUri();
-
-        assertThat(uri).isEqualTo(CustomSliceRegistry.CONTEXTUAL_NOTIFICATION_CHANNEL_SLICE_URI);
-    }
-
-    @Test
-    public void getSubTitle_shouldBeRecentlyInstalledApp() {
-        final CharSequence subTitle = mNotificationChannelSlice.getSubTitle("com.test.package", 0);
-
-        assertThat(subTitle).isEqualTo(mContext.getText(R.string.recently_installed_app));
-    }
-
-    @Test
-    public void isUserInteracted_hasInteractedPackage_shouldBeTrue() {
-        addInteractedPackageToSharedPreference();
-
-        final boolean isInteracted = mNotificationChannelSlice.isUserInteracted(PACKAGE_NAME);
-
-        assertThat(isInteracted).isTrue();
-    }
-
-    @Test
-    public void isUserInteracted_noInteractedPackage_shouldBeFalse() {
-        final boolean isInteracted = mNotificationChannelSlice.isUserInteracted(PACKAGE_NAME);
-
-        assertThat(isInteracted).isFalse();
-    }
-
-    private void addInteractedPackageToSharedPreference() {
-        final Set<String> interactedPackages = new ArraySet<>();
-        interactedPackages.add(PACKAGE_NAME);
-
-        mSharedPreferences.edit().putStringSet(PREF_KEY_INTERACTED_PACKAGES,
-                interactedPackages).apply();
-    }
-
-    private void removeInteractedPackageFromSharedPreference() {
-        if (mSharedPreferences.contains(PREF_KEY_INTERACTED_PACKAGES)) {
-            mSharedPreferences.edit().remove(PREF_KEY_INTERACTED_PACKAGES).apply();
-        }
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/NotificationChannelSliceTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/NotificationChannelSliceTest.java
deleted file mode 100644
index 335e99f..0000000
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/NotificationChannelSliceTest.java
+++ /dev/null
@@ -1,420 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.homepage.contextualcards.slices;
-
-import static android.app.NotificationManager.IMPORTANCE_LOW;
-import static android.app.NotificationManager.IMPORTANCE_NONE;
-import static android.app.slice.Slice.HINT_LIST_ITEM;
-import static android.app.slice.SliceItem.FORMAT_SLICE;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-import static org.robolectric.Shadows.shadowOf;
-
-import android.app.NotificationChannel;
-import android.app.NotificationChannelGroup;
-import android.app.role.RoleManager;
-import android.content.Context;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.ParceledListSlice;
-import android.util.ArrayMap;
-
-import androidx.core.graphics.drawable.IconCompat;
-import androidx.slice.Slice;
-import androidx.slice.SliceItem;
-import androidx.slice.SliceMetadata;
-import androidx.slice.SliceProvider;
-import androidx.slice.core.SliceQuery;
-import androidx.slice.widget.SliceLiveData;
-
-import com.android.settings.R;
-import com.android.settings.notification.NotificationBackend;
-import com.android.settings.notification.NotificationBackend.AppRow;
-import com.android.settings.notification.NotificationBackend.NotificationsSentState;
-import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowPackageManager;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-@RunWith(RobolectricTestRunner.class)
-public class NotificationChannelSliceTest {
-    private static final String APP_LABEL = "Example App";
-    private static final int CHANNEL_COUNT = 3;
-    private static final String CHANNEL_NAME_PREFIX = "channel";
-    private static final int NOTIFICATION_COUNT =
-            NotificationChannelSlice.MIN_NOTIFICATION_SENT_COUNT + 1;
-    private static final String PACKAGE_NAME = "com.test.notification.channel.slice";
-    private static final int UID = 2019;
-
-    @Mock
-    private NotificationBackend mNotificationBackend;
-    private Context mContext;
-    private IconCompat mIcon;
-    private NotificationChannelSlice mNotificationChannelSlice;
-    private ShadowPackageManager mPackageManager;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
-
-        // Shadow PackageManager to add mock package.
-        mPackageManager = shadowOf(mContext.getPackageManager());
-
-        // Set-up specs for SliceMetadata.
-        SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
-
-        mNotificationChannelSlice = spy(new NotificationChannelSlice(mContext));
-
-        doReturn(UID).when(mNotificationChannelSlice).getApplicationUid(any(String.class));
-        mIcon = IconCompat.createWithResource(mContext, R.drawable.ic_settings_24dp);
-        doReturn(mIcon).when(mNotificationChannelSlice).getApplicationIcon(any(String.class));
-
-        // Assign mock NotificationBackend to build notification related data.
-        mNotificationChannelSlice.mNotificationBackend = mNotificationBackend;
-    }
-
-    @After
-    public void tearDown() {
-        mPackageManager.removePackage(PACKAGE_NAME);
-        ShadowRestrictedLockUtilsInternal.reset();
-    }
-
-    @Test
-    @Config(shadows = ShadowRestrictedLockUtilsInternal.class)
-    public void getSlice_hasSuggestedApp_shouldHaveNotificationChannelTitle() {
-        addMockPackageToPackageManager(true /* isRecentlyInstalled */,
-                ApplicationInfo.FLAG_INSTALLED);
-        mockNotificationBackend(CHANNEL_COUNT, NOTIFICATION_COUNT, false /* banned */,
-                false /* isChannelBlocked */);
-
-        final Slice slice = mNotificationChannelSlice.getSlice();
-
-        final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
-        assertThat(metadata.getTitle()).isEqualTo(
-                mContext.getString(R.string.manage_app_notification, APP_LABEL));
-    }
-
-    @Test
-    @Config(shadows = ShadowRestrictedLockUtilsInternal.class)
-    public void getSlice_hasSuggestedApp_shouldSortByNotificationSentCount() {
-        addMockPackageToPackageManager(true /* isRecentlyInstalled */,
-                ApplicationInfo.FLAG_INSTALLED);
-        mockNotificationBackend(CHANNEL_COUNT, NOTIFICATION_COUNT, false /* banned */,
-                false /* isChannelBlocked */);
-
-        final Slice slice = mNotificationChannelSlice.getSlice();
-
-        // Get all RowBuilders from Slice.
-        final List<SliceItem> rowItems = SliceQuery.findAll(slice, FORMAT_SLICE, HINT_LIST_ITEM,
-                null /* nonHints */);
-
-        // Ensure the total size of rows is equal to the notification channel count with header.
-        assertThat(rowItems).isNotNull();
-        assertThat(rowItems.size()).isEqualTo(CHANNEL_COUNT + 1);
-
-        // Remove the header of slice.
-        rowItems.remove(0);
-
-        // Test the rows of slice are sorted with notification sent count by descending.
-        for (int i = 0; i < rowItems.size(); i++) {
-            // Assert the summary text is the same as expectation.
-            assertThat(getSummaryFromSliceItem(rowItems.get(i))).isEqualTo(
-                    mContext.getResources().getQuantityString(R.plurals.notifications_sent_weekly,
-                            CHANNEL_COUNT - i, CHANNEL_COUNT - i));
-        }
-    }
-
-    @Test
-    public void getSlice_noRecentlyInstalledApp_shouldHaveNoSuggestedAppTitle() {
-        addMockPackageToPackageManager(false /* isRecentlyInstalled */,
-                ApplicationInfo.FLAG_INSTALLED);
-        mockNotificationBackend(CHANNEL_COUNT, NOTIFICATION_COUNT, false /* banned */,
-                false /* isChannelBlocked */);
-
-        final Slice slice = mNotificationChannelSlice.getSlice();
-
-        final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
-        assertThat(metadata.getTitle()).isEqualTo(mContext.getString(R.string.no_suggested_app));
-    }
-
-    @Test
-    public void getSlice_noMultiChannelApp_shouldHaveNoSuggestedAppTitle() {
-        addMockPackageToPackageManager(true /* isRecentlyInstalled */,
-                ApplicationInfo.FLAG_INSTALLED);
-        mockNotificationBackend(1 /* channelCount */, NOTIFICATION_COUNT, false /* banned */,
-                false /* isChannelBlocked */);
-
-        final Slice slice = mNotificationChannelSlice.getSlice();
-
-        final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
-        assertThat(metadata.getTitle()).isEqualTo(mContext.getString(R.string.no_suggested_app));
-    }
-
-    @Test
-    @Config(shadows = ShadowRestrictedLockUtilsInternal.class)
-    public void getSlice_insufficientNotificationSentCount_shouldHaveNoSuggestedAppTitle() {
-        addMockPackageToPackageManager(true /* isRecentlyInstalled */,
-                ApplicationInfo.FLAG_INSTALLED);
-        mockNotificationBackend(CHANNEL_COUNT, 1 /* notificationCount */, false /* banned */,
-                false /* isChannelBlocked */);
-
-        final Slice slice = mNotificationChannelSlice.getSlice();
-
-        final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
-        assertThat(metadata.getTitle()).isEqualTo(mContext.getString(R.string.no_suggested_app));
-    }
-
-    @Test
-    public void getSlice_isSystemApp_shouldHaveNoSuggestedAppTitle() {
-        addMockPackageToPackageManager(true /* isRecentlyInstalled */, ApplicationInfo.FLAG_SYSTEM);
-        mockNotificationBackend(CHANNEL_COUNT, NOTIFICATION_COUNT, false /* banned */,
-                false /* isChannelBlocked */);
-
-        final Slice slice = mNotificationChannelSlice.getSlice();
-
-        final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
-        assertThat(metadata.getTitle()).isEqualTo(mContext.getString(R.string.no_suggested_app));
-    }
-
-    @Test
-    public void getSlice_isNotificationBanned_shouldHaveNoSuggestedAppTitle() {
-        addMockPackageToPackageManager(true /* isRecentlyInstalled */,
-                ApplicationInfo.FLAG_INSTALLED);
-        mockNotificationBackend(CHANNEL_COUNT, NOTIFICATION_COUNT, true /* banned */,
-                false /* isChannelBlocked */);
-
-        final Slice slice = mNotificationChannelSlice.getSlice();
-
-        final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
-        assertThat(metadata.getTitle()).isEqualTo(mContext.getString(R.string.no_suggested_app));
-    }
-
-    @Test
-    @Config(shadows = ShadowRestrictedLockUtilsInternal.class)
-    public void getSlice_exceedDefaultRowCount_shouldOnlyShowDefaultRows() {
-        addMockPackageToPackageManager(true /* isRecentlyInstalled */,
-                ApplicationInfo.FLAG_INSTALLED);
-        mockNotificationBackend(NotificationChannelSlice.DEFAULT_EXPANDED_ROW_COUNT * 2,
-                NOTIFICATION_COUNT, false /* banned */, false /* isChannelBlocked */);
-
-        final Slice slice = mNotificationChannelSlice.getSlice();
-
-        // Get the number of RowBuilders from Slice.
-        final int rows = SliceQuery.findAll(slice, FORMAT_SLICE, HINT_LIST_ITEM,
-                null /* nonHints */).size();
-        // The header of this slice is built by RowBuilder. Hence, the row count will contain it.
-        assertThat(rows).isEqualTo(NotificationChannelSlice.DEFAULT_EXPANDED_ROW_COUNT + 1);
-    }
-
-    @Test
-    @Config(shadows = ShadowRestrictedLockUtilsInternal.class)
-    public void getSlice_channelCountIsLessThanDefaultRows_subTitleShouldNotHaveTapToManagerAll() {
-        addMockPackageToPackageManager(true /* isRecentlyInstalled */,
-                ApplicationInfo.FLAG_INSTALLED);
-        mockNotificationBackend(CHANNEL_COUNT - 1, NOTIFICATION_COUNT, false /* banned */,
-                false /* isChannelBlocked */);
-
-        final Slice slice = mNotificationChannelSlice.getSlice();
-
-        final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
-        assertThat(metadata.getSubtitle()).isEqualTo(mContext.getResources().getQuantityString(
-                R.plurals.notification_few_channel_count_summary, CHANNEL_COUNT - 1,
-                CHANNEL_COUNT - 1));
-    }
-
-    @Test
-    @Config(shadows = ShadowRestrictedLockUtilsInternal.class)
-    public void getSlice_channelCountIsEqualToDefaultRows_subTitleShouldNotHaveTapToManagerAll() {
-        addMockPackageToPackageManager(true /* isRecentlyInstalled */,
-                ApplicationInfo.FLAG_INSTALLED);
-        mockNotificationBackend(CHANNEL_COUNT, NOTIFICATION_COUNT, false /* banned */,
-                false /* isChannelBlocked */);
-
-        final Slice slice = mNotificationChannelSlice.getSlice();
-
-        final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
-        assertThat(metadata.getSubtitle()).isEqualTo(mContext.getResources().getQuantityString(
-                R.plurals.notification_few_channel_count_summary, CHANNEL_COUNT, CHANNEL_COUNT));
-    }
-
-    @Test
-    @Config(shadows = ShadowRestrictedLockUtilsInternal.class)
-    public void getSlice_channelCountIsMoreThanDefaultRows_subTitleShouldHaveTapToManagerAll() {
-        addMockPackageToPackageManager(true /* isRecentlyInstalled */,
-                ApplicationInfo.FLAG_INSTALLED);
-        mockNotificationBackend(CHANNEL_COUNT + 1, NOTIFICATION_COUNT, false /* banned */,
-                false /* isChannelBlocked */);
-
-        final Slice slice = mNotificationChannelSlice.getSlice();
-
-        final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
-        assertThat(metadata.getSubtitle()).isEqualTo(
-                mContext.getString(R.string.notification_many_channel_count_summary,
-                        CHANNEL_COUNT + 1));
-    }
-
-    @Test
-    @Config(shadows = ShadowRestrictedLockUtilsInternal.class)
-    public void getSlice_isAllDisplayableChannelBlocked_shouldHaveNoSuggestedAppTitle() {
-        addMockPackageToPackageManager(true /* isRecentlyInstalled */,
-                ApplicationInfo.FLAG_INSTALLED);
-        mockNotificationBackend(CHANNEL_COUNT, NOTIFICATION_COUNT, false /* banned */,
-                true /* isChannelBlocked */);
-
-        final Slice slice = mNotificationChannelSlice.getSlice();
-
-        final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
-        assertThat(metadata.getTitle()).isEqualTo(mContext.getString(R.string.no_suggested_app));
-    }
-
-    @Test
-    @Config(shadows = ShadowRestrictedLockUtilsInternal.class)
-    public void getSlice_isInteractedPackage_shouldHaveNoSuggestedAppTitle() {
-        addMockPackageToPackageManager(true /* isRecentlyInstalled */,
-                ApplicationInfo.FLAG_INSTALLED);
-        mockNotificationBackend(CHANNEL_COUNT, NOTIFICATION_COUNT, false /* banned */,
-                false /* isChannelBlocked */);
-        doReturn(true).when(mNotificationChannelSlice).isUserInteracted(any(String.class));
-
-        final Slice slice = mNotificationChannelSlice.getSlice();
-
-        final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
-        assertThat(metadata.getTitle()).isEqualTo(mContext.getString(R.string.no_suggested_app));
-    }
-
-    private void addMockPackageToPackageManager(boolean isRecentlyInstalled, int flags) {
-        final ApplicationInfo applicationInfo = new ApplicationInfo();
-        applicationInfo.name = APP_LABEL;
-        applicationInfo.uid = UID;
-        applicationInfo.flags = flags;
-        applicationInfo.packageName = PACKAGE_NAME;
-
-        final PackageInfo packageInfo = new PackageInfo();
-        packageInfo.packageName = PACKAGE_NAME;
-        packageInfo.applicationInfo = applicationInfo;
-        packageInfo.firstInstallTime = createAppInstallTime(isRecentlyInstalled);
-        mPackageManager.addPackage(packageInfo);
-    }
-
-    private long createAppInstallTime(boolean isRecentlyInstalled) {
-        if (isRecentlyInstalled) {
-            return System.currentTimeMillis() - NotificationChannelSlice.DURATION_END_DAYS;
-        }
-
-        return System.currentTimeMillis();
-    }
-
-    private void mockNotificationBackend(int channelCount, int notificationCount, boolean banned,
-            boolean isChannelBlocked) {
-        final List<NotificationChannel> channels = buildNotificationChannel(channelCount,
-                isChannelBlocked);
-        final AppRow appRow = buildAppRow(channelCount, notificationCount, banned);
-
-        doReturn(buildNotificationChannelGroups(channels)).when(mNotificationBackend).getGroups(
-                any(String.class), any(int.class));
-        doReturn(appRow).when(mNotificationBackend).loadAppRow(any(Context.class),
-                any(PackageManager.class), any(RoleManager.class), any(PackageInfo.class));
-        doReturn(channelCount).when(mNotificationBackend).getChannelCount(
-                any(String.class), any(int.class));
-    }
-
-    private AppRow buildAppRow(int channelCount, int sentCount, boolean banned) {
-        final AppRow appRow = new AppRow();
-        appRow.pkg = PACKAGE_NAME;
-        appRow.uid = UID;
-        appRow.banned = banned;
-        appRow.channelCount = channelCount;
-        appRow.sentByApp = new NotificationsSentState();
-        appRow.sentByApp.sentCount = sentCount;
-        appRow.sentByChannel = buildNotificationSentStates(channelCount, sentCount);
-
-        return appRow;
-    }
-
-    private List<NotificationChannel> buildNotificationChannel(int channelCount,
-            boolean isChannelBlock) {
-        final List<NotificationChannel> channels = new ArrayList<>();
-        for (int i = 0; i < channelCount; i++) {
-            channels.add(new NotificationChannel(CHANNEL_NAME_PREFIX + i, CHANNEL_NAME_PREFIX + i,
-                    isChannelBlock ? IMPORTANCE_NONE : IMPORTANCE_LOW));
-        }
-
-        return channels;
-    }
-
-    private ParceledListSlice<NotificationChannelGroup> buildNotificationChannelGroups(
-            List<NotificationChannel> channels) {
-        final NotificationChannelGroup notificationChannelGroup = new NotificationChannelGroup(
-                "group", "group");
-        notificationChannelGroup.setBlocked(false);
-        notificationChannelGroup.setChannels(channels);
-
-        return new ParceledListSlice(Arrays.asList(notificationChannelGroup));
-    }
-
-    private Map<String, NotificationsSentState> buildNotificationSentStates(int channelCount,
-            int sentCount) {
-        final Map<String, NotificationBackend.NotificationsSentState> states = new ArrayMap<>();
-        for (int i = 0; i < channelCount; i++) {
-            final NotificationsSentState state = new NotificationsSentState();
-            // Set the avgSentWeekly for each channel: channel0 is 1, channel1: 2, channel2: 3.
-            state.avgSentWeekly = i + 1;
-            state.sentCount = sentCount;
-            states.put(CHANNEL_NAME_PREFIX + i, state);
-        }
-
-        return states;
-    }
-
-    private CharSequence getSummaryFromSliceItem(SliceItem rowItem) {
-        if (rowItem == null) {
-            return null;
-        }
-
-        final Slice rowSlice = rowItem.getSlice();
-        if (rowSlice == null) {
-            return null;
-        }
-
-        final List<SliceItem> rowSliceItems = rowSlice.getItems();
-        if (rowSliceItems == null || rowSliceItems.size() < 2) {
-            return null;
-        }
-
-        // Index 0: title; Index 1: summary.
-        return rowSliceItems.get(1).getText();
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/NotificationChannelWorkerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/NotificationChannelWorkerTest.java
deleted file mode 100644
index 6ac8b70..0000000
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/NotificationChannelWorkerTest.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.homepage.contextualcards.slices;
-
-import static android.content.Context.MODE_PRIVATE;
-
-import static com.android.settings.homepage.contextualcards.slices.ContextualNotificationChannelSlice.PREFS;
-import static com.android.settings.homepage.contextualcards.slices.ContextualNotificationChannelSlice.PREF_KEY_INTERACTED_PACKAGES;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.robolectric.Shadows.shadowOf;
-
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.content.pm.PackageInfo;
-import android.net.Uri;
-import android.util.ArraySet;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.shadows.ShadowPackageManager;
-
-import java.util.Set;
-
-@RunWith(RobolectricTestRunner.class)
-public class NotificationChannelWorkerTest {
-    private static final Uri URI = Uri.parse("content://com.android.settings.slices/test");
-    private static final String PACKAGE_NAME = "com.test.notification.channel.slice";
-
-    private Context mContext;
-    private NotificationChannelWorker mNotificationChannelWorker;
-    private ShadowPackageManager mPackageManager;
-    private SharedPreferences mSharedPreferences;
-
-
-    @Before
-    public void setUp() {
-        mContext = RuntimeEnvironment.application;
-        mNotificationChannelWorker = new NotificationChannelWorker(mContext, URI);
-
-        // Shadow PackageManager to add mock package.
-        mPackageManager = shadowOf(mContext.getPackageManager());
-
-        mSharedPreferences = mContext.getSharedPreferences(PREFS, MODE_PRIVATE);
-        addInteractedPackageToSharedPreference();
-    }
-
-    @After
-    public void tearDown() {
-        mPackageManager.removePackage(PACKAGE_NAME);
-        removeInteractedPackageFromSharedPreference();
-    }
-
-    @Test
-    public void onSliceUnpinned_interactedPackageIsUninstalled_shouldRemovePackage() {
-        mNotificationChannelWorker.onSliceUnpinned();
-
-        final Set<String> interactedPackages = mSharedPreferences.getStringSet(
-                PREF_KEY_INTERACTED_PACKAGES, new ArraySet<>());
-        assertThat(interactedPackages.contains(PACKAGE_NAME)).isFalse();
-    }
-
-    @Test
-    public void onSliceUnpinned_interactedPackageIsInstalled_shouldKeepPackage() {
-        mockInteractedPackageAsInstalled();
-
-        mNotificationChannelWorker.onSliceUnpinned();
-
-        final Set<String> interactedPackages = mSharedPreferences.getStringSet(
-                PREF_KEY_INTERACTED_PACKAGES, new ArraySet<>());
-        assertThat(interactedPackages.contains(PACKAGE_NAME)).isTrue();
-    }
-
-    private void mockInteractedPackageAsInstalled() {
-        final PackageInfo packageInfo = new PackageInfo();
-        packageInfo.packageName = PACKAGE_NAME;
-        mPackageManager.addPackage(packageInfo);
-    }
-
-    private void addInteractedPackageToSharedPreference() {
-        final Set<String> interactedPackages = new ArraySet<>();
-        interactedPackages.add(PACKAGE_NAME);
-
-        mSharedPreferences.edit().putStringSet(PREF_KEY_INTERACTED_PACKAGES,
-                interactedPackages).apply();
-    }
-
-    private void removeInteractedPackageFromSharedPreference() {
-        if (mSharedPreferences.contains(PREF_KEY_INTERACTED_PACKAGES)) {
-            mSharedPreferences.edit().remove(PREF_KEY_INTERACTED_PACKAGES).apply();
-        }
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/NotificationMultiChannelAppRowTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/NotificationMultiChannelAppRowTest.java
deleted file mode 100644
index c6222f1..0000000
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/NotificationMultiChannelAppRowTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.settings.homepage.contextualcards.slices;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-
-import android.app.role.RoleManager;
-import android.content.Context;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-
-import com.android.settings.notification.NotificationBackend;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(RobolectricTestRunner.class)
-public class NotificationMultiChannelAppRowTest {
-
-    @Mock
-    private NotificationBackend mNotificationBackend;
-    private Context mContext;
-    private NotificationMultiChannelAppRow mNotificationMultiChannelAppRow;
-    private PackageInfo mPackageInfo;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-
-        mContext = RuntimeEnvironment.application;
-        mPackageInfo = new PackageInfo();
-        mPackageInfo.applicationInfo = new ApplicationInfo();
-        mPackageInfo.applicationInfo.packageName = "com.android.test";
-        mNotificationMultiChannelAppRow = new NotificationMultiChannelAppRow(mContext,
-                mNotificationBackend, mPackageInfo);
-    }
-
-    @Test
-    public void call_isMultiChannel_shouldLoadAppRow() throws Exception {
-        doReturn(3).when(mNotificationBackend).getChannelCount(any(String.class),
-                any(int.class));
-
-        mNotificationMultiChannelAppRow.call();
-
-        verify(mNotificationBackend).loadAppRow(any(Context.class), any(PackageManager.class),
-                any(RoleManager.class), any(PackageInfo.class));
-    }
-
-    @Test
-    public void call_isNotMultiChannel_shouldNotLoadAppRow() throws Exception {
-        doReturn(1).when(mNotificationBackend).getChannelCount(any(String.class),
-                any(int.class));
-
-        mNotificationMultiChannelAppRow.call();
-
-        verify(mNotificationBackend, never()).loadAppRow(any(Context.class),
-                any(PackageManager.class), any(RoleManager.class), any(PackageInfo.class));
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
index 70761cf..722833c 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
@@ -17,10 +17,12 @@
 package com.android.settings.homepage.contextualcards.slices;
 
 import static com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_FULL_WIDTH;
+import static com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_STICKY;
 
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
 import android.app.Activity;
@@ -34,11 +36,14 @@
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 import androidx.slice.Slice;
+import androidx.slice.SliceProvider;
+import androidx.slice.widget.SliceLiveData;
 
 import com.android.settings.R;
 import com.android.settings.homepage.contextualcards.ContextualCard;
 import com.android.settings.homepage.contextualcards.ContextualCardsFragment;
 import com.android.settings.homepage.contextualcards.ControllerRendererPool;
+import com.android.settings.wifi.slice.ContextualWifiSlice;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -76,12 +81,13 @@
         mLifecycleOwner = new ContextualCardsFragment();
         mRenderer = new SliceContextualCardRenderer(mActivity, mLifecycleOwner,
                 mControllerRendererPool);
+        SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
     }
 
     @Test
     public void bindView_invalidScheme_sliceShouldBeNull() {
         final Uri sliceUri = Uri.parse("contet://com.android.settings.slices/action/flashlight");
-        RecyclerView.ViewHolder viewHolder = getSliceViewHolder();
+        final RecyclerView.ViewHolder viewHolder = getSliceViewHolder();
 
         mRenderer.bindView(viewHolder, buildContextualCard(sliceUri));
 
@@ -91,6 +97,29 @@
     }
 
     @Test
+    public void bindView_viewTypeFullWidth_shouldSetCachedSlice() {
+        final RecyclerView.ViewHolder viewHolder = getSliceViewHolder();
+
+        mRenderer.bindView(viewHolder, buildContextualCard(TEST_SLICE_URI));
+
+        assertThat(
+                ((SliceFullCardRendererHelper.SliceViewHolder) viewHolder).sliceView.getSlice())
+                .isNotNull();
+    }
+
+    @Test
+    public void bindView_viewTypeSticky_shouldSetCachedSlice() {
+        final RecyclerView.ViewHolder viewHolder = spy(getStickyViewHolder());
+        doReturn(VIEW_TYPE_STICKY).when(viewHolder).getItemViewType();
+
+        mRenderer.bindView(viewHolder, buildContextualCard(TEST_SLICE_URI));
+
+        assertThat(
+                ((SliceFullCardRendererHelper.SliceViewHolder) viewHolder).sliceView.getSlice())
+                .isNotNull();
+    }
+
+    @Test
     public void bindView_newSliceLiveData_shouldAddDataToMap() {
         mRenderer.bindView(getSliceViewHolder(), buildContextualCard(TEST_SLICE_URI));
 
@@ -246,12 +275,23 @@
         return mRenderer.createViewHolder(view, VIEW_TYPE_FULL_WIDTH);
     }
 
+    private RecyclerView.ViewHolder getStickyViewHolder() {
+        final RecyclerView recyclerView = new RecyclerView(mActivity);
+        recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
+        final View view = LayoutInflater.from(mActivity).inflate(VIEW_TYPE_STICKY, recyclerView,
+                false);
+
+        return mRenderer.createViewHolder(view, VIEW_TYPE_STICKY);
+    }
+
     private ContextualCard buildContextualCard(Uri sliceUri) {
+        final Slice slice = new ContextualWifiSlice(mActivity).getSlice();
         return new ContextualCard.Builder()
                 .setName("test_name")
                 .setCardType(ContextualCard.CardType.SLICE)
                 .setSliceUri(sliceUri)
                 .setViewType(VIEW_TYPE_FULL_WIDTH)
+                .setSlice(slice)
                 .build();
     }
 }
diff --git a/tests/robotests/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java
index 7f4b33c..a818852 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java
@@ -60,6 +60,7 @@
     private static final int SUB_ID = 2;
     public static final String KEY = "enabled_network";
 
+    private static final long ALLOWED_ALL_NETWORK_TYPE = -1;
     private static final long DISABLED_5G_NETWORK_TYPE = ~TelephonyManager.NETWORK_TYPE_BITMASK_NR;
 
     @Mock
@@ -97,6 +98,7 @@
         doReturn(mPersistableBundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
         mPreference = new ListPreference(mContext);
         mController = new EnabledNetworkModePreferenceController(mContext, KEY);
+        mockAllowedNetworkTypes(ALLOWED_ALL_NETWORK_TYPE);
         mockAccessFamily(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA);
         mController.init(mLifecycle, SUB_ID);
         mPreference.setKey(mController.getPreferenceKey());
@@ -183,6 +185,76 @@
     }
 
     @Test
+    public void updateState_disAllowed5g_5gOptionHidden() {
+        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
+        mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
+        mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
+        mController.init(mLifecycle, SUB_ID);
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
+                TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getEntryValues())
+                .asList()
+                .doesNotContain(
+                        String.valueOf(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA));
+    }
+
+    @Test
+    public void updateState_disAllowed5g_selectOn4gOption() {
+        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
+        mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
+        mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
+        mController.init(mLifecycle, SUB_ID);
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
+                TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getValue()).isEqualTo(
+                String.valueOf(
+                        TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
+    }
+
+    @Test
+    public void updateState_GlobalDisAllowed5g_GlobalWithoutNR() {
+        mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
+        mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
+        mController.init(mLifecycle, SUB_ID);
+        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
+                TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getEntryValues())
+                .asList()
+                .doesNotContain(
+                        String.valueOf(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA));
+    }
+
+    @Test
+    public void updateState_GlobalDisAllowed5g_SelectOnGlobal() {
+        mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
+        mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
+        mController.init(mLifecycle, SUB_ID);
+        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
+                TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getValue()).isEqualTo(
+                String.valueOf(
+                        TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
+    }
+
+    @Test
     public void updateState_updateByNetworkMode() {
         mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA);
         Settings.Global.putInt(mContext.getContentResolver(),
@@ -279,6 +351,10 @@
         }
     }
 
+    private void mockAllowedNetworkTypes(long allowedNetworkType) {
+        doReturn(allowedNetworkType).when(mTelephonyManager).getAllowedNetworkTypes();
+    }
+
     private void mockAccessFamily(int networkMode) {
         doReturn(MobileNetworkUtils.getRafFromNetworkType(networkMode))
                 .when(mTelephonyManager)
diff --git a/tests/robotests/src/com/android/settings/notification/app/BubbleSummaryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/BubbleSummaryPreferenceControllerTest.java
index 9d664ac..af7b108 100644
--- a/tests/robotests/src/com/android/settings/notification/app/BubbleSummaryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/BubbleSummaryPreferenceControllerTest.java
@@ -31,6 +31,8 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
@@ -59,6 +61,7 @@
     private Context mContext;
     @Mock
     private NotificationBackend mBackend;
+    NotificationBackend.AppRow mAppRow;
 
     private BubbleSummaryPreferenceController mController;
 
@@ -67,6 +70,10 @@
         MockitoAnnotations.initMocks(this);
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         mContext = RuntimeEnvironment.application;
+        when(mBackend.hasSentValidMsg(anyString(), anyInt())).thenReturn(true);
+        mAppRow = new NotificationBackend.AppRow();
+        mAppRow.pkg = "pkg";
+        mAppRow.uid = 0;
         mController = spy(new BubbleSummaryPreferenceController(mContext, mBackend));
     }
 
@@ -85,20 +92,27 @@
     }
 
     @Test
-    public void isAvailable_nullChannelNOTIFICATION_BUBBLESisOn_shouldReturnTrue() {
+    public void isAvailable_NOTIFICATION_BUBBLESisOn_shouldReturnTrue() {
         Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
-        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
-        mController.onResume(appRow, null, null, null, null, null);
+        mController.onResume(mAppRow, null, null, null, null, null);
 
         assertTrue(mController.isAvailable());
     }
 
     @Test
-    public void isAvailable_nullChannelNOTIFICATION_BUBBLESisOff_shouldReturnFalse() {
+    public void isAvailable_NOTIFICATION_BUBBLESisOn_neverSentMsg_shouldReturnFalse() {
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        mController.onResume(mAppRow, null, null, null, null, null);
+        when(mBackend.hasSentValidMsg(anyString(), anyInt())).thenReturn(false);
+
+        assertFalse(mController.isAvailable());
+    }
+
+    @Test
+    public void isAvailable_NOTIFICATION_BUBBLESisOff_shouldReturnFalse() {
         Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
                 SYSTEM_WIDE_OFF);
-        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
-        mController.onResume(appRow, null, null, null, null, null);
+        mController.onResume(mAppRow, null, null, null, null, null);
 
         assertFalse(mController.isAvailable());
     }
@@ -107,10 +121,9 @@
     public void isAvailable_nonNullChannelNOTIFICATION_BUBBLESisOff_shouldReturnFalse() {
         Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
                 SYSTEM_WIDE_OFF);
-        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         NotificationChannel channel = mock(NotificationChannel.class);
         when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
-        mController.onResume(appRow, channel, null, null, null, null);
+        mController.onResume(mAppRow, channel, null, null, null, null);
 
         assertFalse(mController.isAvailable());
     }
@@ -118,20 +131,18 @@
     @Test
     public void isAvailable_defaultChannelNOTIFICATION_BUBBLESisOn_shouldReturnTrue() {
         Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
-        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         NotificationChannel channel = mock(NotificationChannel.class);
         when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
         when(channel.getId()).thenReturn(DEFAULT_CHANNEL_ID);
-        mController.onResume(appRow, channel, null, null, null, null);
+        mController.onResume(mAppRow, channel, null, null, null, null);
 
         assertTrue(mController.isAvailable());
     }
 
     @Test
     public void updateState_setsIntent() {
-        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
-        appRow.bubblePreference = BUBBLE_PREFERENCE_ALL;
-        mController.onResume(appRow, null, null, null, null, null);
+        mAppRow.bubblePreference = BUBBLE_PREFERENCE_ALL;
+        mController.onResume(mAppRow, null, null, null, null, null);
 
         Preference pref = new Preference(mContext);
         mController.updateState(pref);
diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockGenericTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockGenericTest.java
index b535bc1..036df2c 100644
--- a/tests/robotests/src/com/android/settings/password/ChooseLockGenericTest.java
+++ b/tests/robotests/src/com/android/settings/password/ChooseLockGenericTest.java
@@ -34,6 +34,7 @@
 
 import android.app.Activity;
 import android.app.admin.DevicePolicyManager;
+import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
 import android.provider.Settings.Global;
@@ -48,7 +49,6 @@
 import com.android.settings.password.ChooseLockGeneric.ChooseLockGenericFragment;
 import com.android.settings.search.SearchFeatureProvider;
 import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
-import com.android.settings.testutils.shadow.ShadowPersistentDataBlockManager;
 import com.android.settings.testutils.shadow.ShadowStorageManager;
 import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settings.testutils.shadow.ShadowUtils;
@@ -62,6 +62,8 @@
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
+import org.robolectric.shadows.ShadowPersistentDataBlockManager;
 
 @RunWith(RobolectricTestRunner.class)
 @Config(
@@ -100,6 +102,17 @@
     }
 
     @Test
+    public void onCreate_deviceNotProvisioned_persistentDataServiceNotAvailable_shouldNotFinish() {
+        Global.putInt(application.getContentResolver(), Global.DEVICE_PROVISIONED, 0);
+        ShadowPersistentDataBlockManager.setDataBlockSize(1000);
+        ShadowApplication.getInstance().setSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE,
+                null);
+
+        initActivity(null);
+        assertThat(mActivity.isFinishing()).isFalse();
+    }
+
+    @Test
     public void onActivityResult_nullIntentData_shouldNotCrash() {
         initActivity(null);
         mFragment.onActivityResult(
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPersistentDataBlockManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPersistentDataBlockManager.java
deleted file mode 100644
index dbbdd3d..0000000
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPersistentDataBlockManager.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.testutils.shadow;
-
-import android.service.persistentdata.PersistentDataBlockManager;
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-import org.robolectric.annotation.Resetter;
-
-@Implements(PersistentDataBlockManager.class)
-public class ShadowPersistentDataBlockManager {
-    private static int sDataBlockSize = 0;
-
-    @Resetter
-    public static void reset() {
-        sDataBlockSize = 0;
-    }
-
-    @Implementation
-    protected int getDataBlockSize() {
-        return sDataBlockSize;
-    }
-
-    public static void setDataBlockSize(int dataBlockSize) {
-        sDataBlockSize = dataBlockSize;
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowRestrictedLockUtilsInternal.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowRestrictedLockUtilsInternal.java
index d98379c..e39056c 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowRestrictedLockUtilsInternal.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowRestrictedLockUtilsInternal.java
@@ -37,7 +37,6 @@
     private static DevicePolicyManager sDevicePolicyManager;
     private static String[] sDisabledTypes;
     private static int sKeyguardDisabledFeatures;
-    private static boolean sIsSuspended;
 
     @Resetter
     public static void reset() {
@@ -46,7 +45,6 @@
         sKeyguardDisabledFeatures = 0;
         sDisabledTypes = new String[0];
         sMaximumTimeToLockIsSet = false;
-        sIsSuspended = false;
     }
 
     @Implementation
@@ -103,12 +101,6 @@
         return sMaximumTimeToLockIsSet ? new EnforcedAdmin() : null;
     }
 
-    @Implementation
-    protected static EnforcedAdmin checkIfApplicationIsSuspended(Context context,
-            String packageName, int userId) {
-        return sIsSuspended ? new EnforcedAdmin() : null;
-    }
-
     public static void setRestricted(boolean restricted) {
         sIsRestricted = restricted;
     }
@@ -140,8 +132,4 @@
     public static void setMaximumTimeToLockIsSet(boolean isSet) {
         sMaximumTimeToLockIsSet = isSet;
     }
-
-    public static void setSuspended(boolean suspended) {
-        sIsRestricted = suspended;
-    }
 }
diff --git a/tests/robotests/src/com/android/settings/users/EditUserInfoControllerTest.java b/tests/robotests/src/com/android/settings/users/EditUserInfoControllerTest.java
index 1c191fa..db9872f 100644
--- a/tests/robotests/src/com/android/settings/users/EditUserInfoControllerTest.java
+++ b/tests/robotests/src/com/android/settings/users/EditUserInfoControllerTest.java
@@ -28,7 +28,9 @@
 import static org.mockito.Mockito.when;
 
 import android.app.Dialog;
+import android.content.Context;
 import android.content.Intent;
+import android.content.pm.UserInfo;
 import android.graphics.drawable.Drawable;
 import android.widget.EditText;
 import android.widget.ImageView;
@@ -62,6 +64,8 @@
     @Mock
     private Drawable mCurrentIcon;
 
+    private boolean mCanChangePhoto;
+
     private FragmentActivity mActivity;
     private TestEditUserInfoController mController;
 
@@ -78,6 +82,11 @@
             mPhotoController = mock(EditUserPhotoController.class, Answers.RETURNS_DEEP_STUBS);
             return mPhotoController;
         }
+
+        @Override
+        boolean canChangePhoto(Context context, UserInfo user) {
+            return mCanChangePhoto;
+        }
     }
 
     @Before
@@ -86,6 +95,7 @@
         mActivity = spy(ActivityController.of(new FragmentActivity()).get());
         when(mFragment.getActivity()).thenReturn(mActivity);
         mController = new TestEditUserInfoController();
+        mCanChangePhoto = true;
     }
 
     @Test
@@ -256,4 +266,17 @@
         verify(dialogCompleteCallback, times(1)).onPositive();
         verify(dialogCompleteCallback, times(0)).onNegativeOrCancel();
     }
+
+    @Test
+    public void createDialog_canNotChangePhoto_nullPhotoController() {
+        mCanChangePhoto = false;
+
+        mController.createDialog(
+                mFragment, mCurrentIcon, "test",
+                "title", null,
+                android.os.Process.myUserHandle(),
+                null);
+
+        assertThat(mController.mPhotoController).isNull();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java b/tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java
index 6c54782..56e4957 100644
--- a/tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java
@@ -32,9 +32,11 @@
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.robolectric.Shadows.shadowOf;
 
 import android.content.ComponentName;
 import android.content.Context;
+import android.content.Intent;
 import android.content.pm.UserInfo;
 import android.os.Bundle;
 import android.os.UserHandle;
@@ -47,6 +49,8 @@
 import androidx.preference.SwitchPreference;
 
 import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.SubSettings;
 import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
 import com.android.settings.testutils.shadow.ShadowUserManager;
 
@@ -61,6 +65,7 @@
 import org.robolectric.android.controller.ActivityController;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowIntent;
 import org.robolectric.util.ReflectionHelpers;
 
 import java.util.ArrayList;
@@ -76,6 +81,7 @@
     private static final String KEY_SWITCH_USER = "switch_user";
     private static final String KEY_ENABLE_TELEPHONY = "enable_calling";
     private static final String KEY_REMOVE_USER = "remove_user";
+    private static final String KEY_APP_AND_CONTENT_ACCESS = "app_and_content_access";
 
     private static final int DIALOG_CONFIRM_REMOVE = 1;
 
@@ -90,6 +96,8 @@
     private SwitchPreference mPhonePref;
     @Mock
     private Preference mRemoveUserPref;
+    @Mock
+    private Preference mAppAndContentAccessPref;
 
     private FragmentActivity mActivity;
     private Context mContext;
@@ -114,14 +122,15 @@
 
         ReflectionHelpers.setField(mFragment, "mUserManager", userManager);
         doReturn(mActivity).when(mFragment).getActivity();
-        doReturn(mContext).when(mFragment).getContext();
+        doReturn(mActivity).when(mFragment).getContext();
 
         doReturn(mock(PreferenceScreen.class)).when(mFragment).getPreferenceScreen();
-        doReturn("").when(mActivity).getString(anyInt(), anyString());
 
         doReturn(mSwitchUserPref).when(mFragment).findPreference(KEY_SWITCH_USER);
         doReturn(mPhonePref).when(mFragment).findPreference(KEY_ENABLE_TELEPHONY);
         doReturn(mRemoveUserPref).when(mFragment).findPreference(KEY_REMOVE_USER);
+        doReturn(mAppAndContentAccessPref)
+                .when(mFragment).findPreference(KEY_APP_AND_CONTENT_ACCESS);
     }
 
     @After
@@ -170,6 +179,24 @@
     }
 
     @Test
+    public void initialize_userSelected_shouldNotShowAppAndContentPref() {
+        setupSelectedUser();
+
+        mFragment.initialize(mActivity, mArguments);
+
+        verify(mFragment).removePreference(KEY_APP_AND_CONTENT_ACCESS);
+    }
+
+    @Test
+    public void initialize_guestSelected_shouldNotShowAppAndContentPref() {
+        setupSelectedGuest();
+
+        mFragment.initialize(mActivity, mArguments);
+
+        verify(mFragment).removePreference(KEY_APP_AND_CONTENT_ACCESS);
+    }
+
+    @Test
     public void onResume_canSwitch_shouldEnableSwitchPref() {
         mUserManager.setSwitchabilityStatus(SWITCHABILITY_STATUS_OK);
         mFragment.mSwitchUserPref = mSwitchUserPref;
@@ -249,6 +276,16 @@
     }
 
     @Test
+    public void initialize_nonAdmin_shouldNotShowAppAndContentPref() {
+        setupSelectedUser();
+        mUserManager.setIsAdminUser(false);
+
+        mFragment.initialize(mActivity, mArguments);
+
+        verify(mFragment).removePreference(KEY_APP_AND_CONTENT_ACCESS);
+    }
+
+    @Test
     public void initialize_adminSelectsSecondaryUser_shouldShowRemovePreference() {
         setupSelectedUser();
         mUserManager.setIsAdminUser(true);
@@ -261,6 +298,57 @@
     }
 
     @Test
+    public void initialize_adminSelectsNewRestrictedUser_shouldOpenAppContentScreen() {
+        setupSelectedRestrictedUser();
+        mUserManager.setIsAdminUser(true);
+        mArguments.putBoolean(AppRestrictionsFragment.EXTRA_NEW_USER, true);
+
+        mFragment.initialize(mActivity, mArguments);
+
+        Intent startedIntent = shadowOf(mActivity).getNextStartedActivity();
+        ShadowIntent shadowIntent = shadowOf(startedIntent);
+        assertThat(shadowIntent.getIntentClass()).isEqualTo(SubSettings.class);
+        assertThat(startedIntent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
+                .isEqualTo(AppRestrictionsFragment.class.getName());
+        Bundle arguments = startedIntent.getBundleExtra(
+                SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS);
+        assertThat(arguments).isNotNull();
+        assertThat(arguments.getInt(AppRestrictionsFragment.EXTRA_USER_ID, 0))
+                .isEqualTo(mUserInfo.id);
+        assertThat(arguments.getBoolean(AppRestrictionsFragment.EXTRA_NEW_USER, false))
+                .isEqualTo(true);
+    }
+
+    @Test
+    public void initialize_adminSelectsRestrictedUser_shouldSetupPreferences() {
+        setupSelectedRestrictedUser();
+        mUserManager.setIsAdminUser(true);
+        doReturn(true).when(mTelephonyManager).isVoiceCapable();
+
+        mFragment.initialize(mActivity, mArguments);
+
+        verify(mFragment, never()).removePreference(KEY_REMOVE_USER);
+        verify(mFragment, never()).removePreference(KEY_SWITCH_USER);
+        verify(mFragment, never()).removePreference(KEY_APP_AND_CONTENT_ACCESS);
+        verify(mFragment).removePreference(KEY_ENABLE_TELEPHONY);
+        verify(mSwitchUserPref).setTitle("Switch to " + mUserInfo.name);
+        verify(mAppAndContentAccessPref).setOnPreferenceClickListener(mFragment);
+        verify(mSwitchUserPref).setOnPreferenceClickListener(mFragment);
+        verify(mRemoveUserPref).setOnPreferenceClickListener(mFragment);
+    }
+
+    @Test
+    public void initialize_adminSelectsExistingRestrictedUser_shouldNotStartAppAndContentAccess() {
+        setupSelectedRestrictedUser();
+        mUserManager.setIsAdminUser(true);
+        mArguments.putBoolean(AppRestrictionsFragment.EXTRA_NEW_USER, false);
+
+        mFragment.initialize(mActivity, mArguments);
+
+        verify(mActivity, never()).startActivity(any(Intent.class));
+    }
+
+    @Test
     public void initialize_adminSelectsGuest_shouldShowRemovePreference() {
         setupSelectedGuest();
         mUserManager.setIsAdminUser(true);
@@ -344,6 +432,7 @@
         mUserManager.setSwitchabilityStatus(SWITCHABILITY_STATUS_OK);
         mFragment.mSwitchUserPref = mSwitchUserPref;
         mFragment.mRemoveUserPref = mRemoveUserPref;
+        mFragment.mAppAndContentAccessPref = mAppAndContentAccessPref;
         mFragment.mUserInfo = mUserInfo;
 
         mFragment.onPreferenceClick(mSwitchUserPref);
@@ -357,6 +446,7 @@
         mUserManager.setSwitchabilityStatus(SWITCHABILITY_STATUS_USER_SWITCH_DISALLOWED);
         mFragment.mSwitchUserPref = mSwitchUserPref;
         mFragment.mRemoveUserPref = mRemoveUserPref;
+        mFragment.mAppAndContentAccessPref = mAppAndContentAccessPref;
         mFragment.mUserInfo = mUserInfo;
 
         mFragment.onPreferenceClick(mSwitchUserPref);
@@ -371,6 +461,7 @@
         mUserManager.setIsAdminUser(true);
         mFragment.mSwitchUserPref = mSwitchUserPref;
         mFragment.mRemoveUserPref = mRemoveUserPref;
+        mFragment.mAppAndContentAccessPref = mAppAndContentAccessPref;
         doNothing().when(mFragment).showDialog(anyInt());
 
         mFragment.onPreferenceClick(mRemoveUserPref);
@@ -386,6 +477,7 @@
         mUserManager.setIsAdminUser(false);
         mFragment.mSwitchUserPref = mSwitchUserPref;
         mFragment.mRemoveUserPref = mRemoveUserPref;
+        mFragment.mAppAndContentAccessPref = mAppAndContentAccessPref;
         doNothing().when(mFragment).showDialog(anyInt());
 
         mFragment.onPreferenceClick(mRemoveUserPref);
@@ -395,11 +487,36 @@
     }
 
     @Test
+    public void onPreferenceClick_selectRestrictedUser_appAndContentAccessClicked_startActivity() {
+        setupSelectedRestrictedUser();
+        mFragment.mUserInfo = mUserInfo;
+        mUserManager.setIsAdminUser(true);
+        mFragment.mSwitchUserPref = mSwitchUserPref;
+        mFragment.mRemoveUserPref = mRemoveUserPref;
+        mFragment.mAppAndContentAccessPref = mAppAndContentAccessPref;
+
+        mFragment.onPreferenceClick(mAppAndContentAccessPref);
+
+        Intent startedIntent = shadowOf(mActivity).getNextStartedActivity();
+        ShadowIntent shadowIntent = shadowOf(startedIntent);
+        assertThat(shadowIntent.getIntentClass()).isEqualTo(SubSettings.class);
+        assertThat(startedIntent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
+                .isEqualTo(AppRestrictionsFragment.class.getName());
+        Bundle arguments = startedIntent.getBundleExtra(
+                SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS);
+        assertThat(arguments.getInt(AppRestrictionsFragment.EXTRA_USER_ID, 0))
+                .isEqualTo(mUserInfo.id);
+        assertThat(arguments.getBoolean(AppRestrictionsFragment.EXTRA_NEW_USER, true))
+                .isEqualTo(false);
+    }
+
+    @Test
     public void onPreferenceClick_unknownPreferenceClicked_doNothing() {
         setupSelectedUser();
         mFragment.mUserInfo = mUserInfo;
         mFragment.mSwitchUserPref = mSwitchUserPref;
         mFragment.mRemoveUserPref = mRemoveUserPref;
+        mFragment.mAppAndContentAccessPref = mAppAndContentAccessPref;
 
         mFragment.onPreferenceClick(mock(UserPreference.class));
 
@@ -464,4 +581,13 @@
 
         mUserManager.addProfile(mUserInfo);
     }
+
+    private void setupSelectedRestrictedUser() {
+        mArguments.putInt("user_id", 21);
+        mUserInfo = new UserInfo(21, "Bob", null,
+                UserInfo.FLAG_FULL | UserInfo.FLAG_INITIALIZED | UserInfo.FLAG_RESTRICTED,
+                UserManager.USER_TYPE_FULL_RESTRICTED);
+
+        mUserManager.addProfile(mUserInfo);
+    }
 }
