diff --git a/res/layout/panel_layout.xml b/res/layout/panel_layout.xml
index 895d09b..5f33c32 100644
--- a/res/layout/panel_layout.xml
+++ b/res/layout/panel_layout.xml
@@ -36,6 +36,7 @@
             android:visibility="gone">
 
             <LinearLayout
+                android:id="@+id/title_group"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:orientation="horizontal"
diff --git a/res/raw/bubble_notification_animation.mp4 b/res/raw/bubble_notification_animation.mp4
index 2994548..563e18d 100644
--- a/res/raw/bubble_notification_animation.mp4
+++ b/res/raw/bubble_notification_animation.mp4
Binary files differ
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 064d725..ccb17f7 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -506,9 +506,9 @@
     <string name="crypt_keeper_data_corrupt_summary" product="default" msgid="3200498792238652367">"‏كلمة المرور التي أدخلتها صحيحة، ولكن للأسف بياناتك تالفة. \n\nلاستئناف استخدام هاتفك، يلزمك إجراء إعادة الضبط على الإعدادات الأصلية. عند إعداد الهاتف بعد إعادة الضبط، ستكون لديك فرصة لاستعادة أي بيانات تم نسخها احتياطيًا في حسابك على Google."</string>
     <string name="crypt_keeper_switch_input_method" msgid="7712732134989470573">"تبديل أسلوب الإدخال"</string>
     <string name="suggested_lock_settings_title" msgid="7836065447159730217">"تأمين هاتفك"</string>
-    <string name="suggested_lock_settings_summary" product="tablet" msgid="3213718550422761562">"تعيين قفل شاشة لحماية الجهاز اللوحي"</string>
-    <string name="suggested_lock_settings_summary" product="device" msgid="8479766049078378225">"تعيين قفل شاشة لحماية الجهاز"</string>
-    <string name="suggested_lock_settings_summary" product="default" msgid="2443273582716671033">"تعيين قفل شاشة لحماية الهاتف"</string>
+    <string name="suggested_lock_settings_summary" product="tablet" msgid="3213718550422761562">"ضبط قفل شاشة لحماية الجهاز اللوحي"</string>
+    <string name="suggested_lock_settings_summary" product="device" msgid="8479766049078378225">"ضبط قفل شاشة لحماية الجهاز"</string>
+    <string name="suggested_lock_settings_summary" product="default" msgid="2443273582716671033">"ضبط قفل شاشة لحماية الهاتف"</string>
     <string name="suggested_fingerprint_lock_settings_title" msgid="3140266181874137984">"إضافة بصمة الإصبع لإلغاء القفل"</string>
     <string name="suggested_fingerprint_lock_settings_summary" product="tablet" msgid="1040265358906410746"></string>
     <string name="suggested_fingerprint_lock_settings_summary" product="device" msgid="1040265358906410746"></string>
@@ -1231,7 +1231,7 @@
     <string name="accessibility_work_account_title" msgid="7622485151217943839">"حساب العمل - <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
     <string name="accessibility_personal_account_title" msgid="8535265881509557013">"الحساب الشخصي - <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
     <string name="search_settings" msgid="7573686516434589771">"بحث"</string>
-    <string name="display_settings" msgid="7197750639709493852">"العرض"</string>
+    <string name="display_settings" msgid="7197750639709493852">"الشاشة"</string>
     <string name="accelerometer_title" msgid="7745991950833748909">"التدوير التلقائي للشاشة"</string>
     <string name="color_mode_title" msgid="8666690832113906028">"الألوان"</string>
     <string name="color_mode_option_natural" msgid="6192875655101283303">"طبيعية"</string>
@@ -4881,7 +4881,7 @@
       <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> تطبيق</item>
     </plurals>
     <string name="enterprise_privacy_input_method" msgid="3278314982700662246">"لوحة المفاتيح التلقائية"</string>
-    <string name="enterprise_privacy_input_method_name" msgid="2974859490559054584">"تعيين على <xliff:g id="APP_LABEL">%s</xliff:g>"</string>
+    <string name="enterprise_privacy_input_method_name" msgid="2974859490559054584">"ضبط على <xliff:g id="APP_LABEL">%s</xliff:g>"</string>
     <string name="enterprise_privacy_always_on_vpn_device" msgid="1735829327405126695">"‏تم تفعيل إعداد \"شبكة افتراضية خاصة (VPN) دائمة التفعيل\""</string>
     <string name="enterprise_privacy_always_on_vpn_personal" msgid="8395903360175064841">"‏تم تفعيل إعداد \"شبكة افتراضية خاصة (VPN) دائمة التفعيل\" في الملف الشخصي"</string>
     <string name="enterprise_privacy_always_on_vpn_work" msgid="2496961514592522377">"‏تم تفعيل \"شبكة افتراضية خاصة (VPN) دائمة التفعيل\" في الملف الشخصي للعمل"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index b4ffdf1..40bb3c2 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -2275,7 +2275,7 @@
     <string name="accessibility_vibration_summary_low" msgid="6482721005400340317">"За звъненето и известията е зададено „Слабо“"</string>
     <string name="accessibility_vibration_summary_medium" msgid="2348889320548746469">"За звъненето и известията е зададено „Средно“"</string>
     <string name="accessibility_vibration_summary_high" msgid="1764693979030913712">"За звъненето и известията е зададено „Силно“"</string>
-    <string name="accessibility_vibration_intensity_off" msgid="972159695404061944">"Изключено"</string>
+    <string name="accessibility_vibration_intensity_off" msgid="972159695404061944">"Изкл."</string>
     <string name="accessibility_vibration_intensity_low" msgid="6311161118835287335">"Слабо"</string>
     <string name="accessibility_vibration_intensity_medium" msgid="1734058611879392797">"Средно"</string>
     <string name="accessibility_vibration_intensity_high" msgid="5982896399775212514">"Силно"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 1300b13..0f2a723 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -3304,7 +3304,7 @@
     <string name="media_volume_option_title" msgid="5966569685119475630">"Volum de multimèdia"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"Volum emès"</string>
     <string name="call_volume_option_title" msgid="1461105986437268924">"Volum de trucada"</string>
-    <string name="alarm_volume_option_title" msgid="6398641749273697140">"Volum de l\'alarma"</string>
+    <string name="alarm_volume_option_title" msgid="6398641749273697140">"Volum d\'alarma"</string>
     <string name="ring_volume_option_title" msgid="1520802026403038560">"Volum de to i de notificacions"</string>
     <string name="notification_volume_option_title" msgid="4838818791683615978">"Volum de notificació"</string>
     <string name="ringtone_title" msgid="3271453110387368088">"So de trucada del telèfon"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index f5d7b82..f11d561 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -2275,7 +2275,7 @@
     <string name="accessibility_vibration_summary_low" msgid="6482721005400340317">"Baja para notificaciones y llamadas"</string>
     <string name="accessibility_vibration_summary_medium" msgid="2348889320548746469">"Media para notificaciones y llamadas"</string>
     <string name="accessibility_vibration_summary_high" msgid="1764693979030913712">"Alta para notificaciones y llamadas"</string>
-    <string name="accessibility_vibration_intensity_off" msgid="972159695404061944">"Desactivado"</string>
+    <string name="accessibility_vibration_intensity_off" msgid="972159695404061944">"Desactivada"</string>
     <string name="accessibility_vibration_intensity_low" msgid="6311161118835287335">"Baja"</string>
     <string name="accessibility_vibration_intensity_medium" msgid="1734058611879392797">"Media"</string>
     <string name="accessibility_vibration_intensity_high" msgid="5982896399775212514">"Alta"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index cd2fb9d..b3815f6 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -3529,7 +3529,7 @@
     <string name="lock_screen_notifs_redact_summary" msgid="1395483766035470612">"Afficher les contenus sensibles lorsque l\'écran est verrouillé"</string>
     <string name="lock_screen_notifs_redact_work" msgid="3833920196569208430">"Notifications de contenu sensible du profil professionnel"</string>
     <string name="lock_screen_notifs_redact_work_summary" msgid="3238238380405430156">"Afficher les contenus sensibles du profil professionnel lorsque l\'écran est verrouillé"</string>
-    <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Afficher tout le contenu des notifications"</string>
+    <string name="lock_screen_notifications_summary_show" msgid="6540443483088311328">"Affiche tout le contenu des notifications"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="7837303171531166789">"Afficher les contenus sensibles seulement si l\'appareil est déverrouillé"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3388290397947365744">"Ne pas afficher les notifications"</string>
     <string name="lock_screen_notifications_interstitial_message" msgid="4688399629301178487">"Que souhaitez-vous afficher sur l\'écran de verrouillage ?"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 8b3e9a4..c2d0795 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -3301,10 +3301,10 @@
     <string name="sound_settings_summary_vibrate" msgid="7192223433295988890">"रिंगर, कंपन (वाइब्रेशन) पर सेट है"</string>
     <string name="sound_settings_summary_silent" msgid="746662794579344761">"रिंगर मौन पर सेट है"</string>
     <string name="sound_settings_example_summary" msgid="8125110691864707925">"घंटी और सूचना की आवाज़ 80% है"</string>
-    <string name="media_volume_option_title" msgid="5966569685119475630">"मीडिया की आवाज़"</string>
+    <string name="media_volume_option_title" msgid="5966569685119475630">"मीडिया वॉल्यूम"</string>
     <string name="remote_media_volume_option_title" msgid="8760846743943305764">"आवाज़ कास्ट करें"</string>
-    <string name="call_volume_option_title" msgid="1461105986437268924">"कॉल की आवाज़"</string>
-    <string name="alarm_volume_option_title" msgid="6398641749273697140">"अलार्म की आवाज़"</string>
+    <string name="call_volume_option_title" msgid="1461105986437268924">"कॉल वॉल्‍यूम"</string>
+    <string name="alarm_volume_option_title" msgid="6398641749273697140">"अलार्म वॉल्यूम"</string>
     <string name="ring_volume_option_title" msgid="1520802026403038560">"घंटी और सूचना की आवाज़"</string>
     <string name="notification_volume_option_title" msgid="4838818791683615978">"सूचना की आवाज़"</string>
     <string name="ringtone_title" msgid="3271453110387368088">"फ़ोन रिंगटोन"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index cccd497..a261051 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -951,8 +951,8 @@
     <string name="wifi_wps_available_second_item" msgid="1717024103303480804">" (WPS-ը հասանելի է)"</string>
     <string name="wifi_carrier_connect" msgid="4511538300946413213">"Օպերատորի Wi‑Fi ցանց"</string>
     <string name="wifi_carrier_content" msgid="2876499905644083615">"Միանալ <xliff:g id="NAME">%1$s</xliff:g>-ի միջոցով"</string>
-    <string name="wifi_scan_always_turnon_message" msgid="2165909441512029921">"Տեղադրության ճշգրտությունը կատարելագործելու կամ այլ նպատակների համար` <xliff:g id="APP_NAME">%1$s</xliff:g>-ը ցանկանում է միացնել ցանցի սկանավորումը, նույնիսկ եթե Wi-Fi-ը անջատված է:\n\nԹույլատրե՞լ բոլոր սկանավորում ցանկացող ծրագրերին:"</string>
-    <string name="wifi_scan_always_turn_on_message_unknown" msgid="4903345360745717385">"Տեղորոշման ճշգրտությունն ու այլ գործառույթները բարելավելու նպատակով` անհայտ հավելվածին անհրաժեշտ է ցանցերի որոնման թույլտվություն, այդ թվում երբ Wi-Fi-ն անջատված է:\n\nԹույլատրե՞լ ցանցերի որոնումը բոլոր հավելվածներին:"</string>
+    <string name="wifi_scan_always_turnon_message" msgid="2165909441512029921">"Տեղադրության ճշգրտությունը կատարելագործելու կամ այլ նպատակների համար՝ <xliff:g id="APP_NAME">%1$s</xliff:g>-ը ցանկանում է միացնել ցանցի սկանավորումը, նույնիսկ եթե Wi-Fi-ը անջատված է:\n\nԹույլատրե՞լ բոլոր սկանավորում ցանկացող ծրագրերին:"</string>
+    <string name="wifi_scan_always_turn_on_message_unknown" msgid="4903345360745717385">"Տեղորոշման ճշգրտությունն ու այլ գործառույթները բարելավելու նպատակով` անհայտ հավելվածին անհրաժեշտ է ցանցերի որոնման թույլտվություն, այդ թվում երբ Wi-Fi-ն անջատված է:\n\nԹույլատրե՞լ ցանցերի որոնումը բոլոր հավելվածներին։"</string>
     <string name="wifi_scan_always_turnoff_message" msgid="93691286302680448">"Սա անջատելու համար գերբեռնված ցանկում անցեք Ընդլայնված:"</string>
     <string name="wifi_scan_always_confirm_allow" msgid="4154200627800959777">"Թույլատրել"</string>
     <string name="wifi_scan_always_confirm_deny" msgid="6997087934558839256">"Մերժել"</string>
@@ -1304,9 +1304,9 @@
     <string name="sim_change_pin" msgid="1104103818545005448">"SIM PIN"</string>
     <string name="sim_bad_pin" msgid="5416328363761048221">"Սխալ PIN"</string>
     <string name="sim_pins_dont_match" msgid="1540348773896609260">"PIN-երը չեն համընկնում"</string>
-    <string name="sim_change_failed" msgid="316723087029061740">"Չհաջողվեց փոխել PIN-ը:\nՀնարավոր է` PIN-ը սխալ է:"</string>
+    <string name="sim_change_failed" msgid="316723087029061740">"Չհաջողվեց փոխել PIN-ը:\nՀնարավոր է՝ PIN-ը սխալ է:"</string>
     <string name="sim_change_succeeded" msgid="3516905528149069739">"SIM քարտի PIN կոդը հաջողությամբ փոխվել է"</string>
-    <string name="sim_lock_failed" msgid="16360418201678317">"Հնարավոր չէ բացել SIM քարտի կողպված կարգավիճակը:\nՀնարավոր է` սխալ PIN է մուտքագրվել:"</string>
+    <string name="sim_lock_failed" msgid="16360418201678317">"Հնարավոր չէ բացել SIM քարտի կողպված կարգավիճակը:\nՀնարավոր է՝ սխալ PIN է մուտքագրվել:"</string>
     <string name="sim_pin_disable_failed" msgid="8719890393181032837">"Չհաջողվեց անջատել PIN կոդը"</string>
     <string name="sim_pin_enable_failed" msgid="5156513975085380284">"Չհաջողվեց միացնել PIN կոդը"</string>
     <string name="sim_enter_ok" msgid="3401715290135787531">"Հաստատել"</string>
@@ -1614,7 +1614,7 @@
     <string name="master_clear_desc_also_erases_esim" msgid="6418163562288667727"><li>"eSIM քարտեր"</li></string>
     <string name="master_clear_desc_no_cancel_mobile_plan" msgid="3112614935795369143">\n\n"Բջջային ծառայությունների ձեր փաթեթը չի չեղարկվի:"</string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="7088655731755912201">\n\n"Երաժշտությունը, նկարները և այլ տվյալները ջնջելու համար "<b>"USB կրիչը "</b>"պետք է ջնջվի:"</string>
-    <string name="master_clear_desc_erase_external_storage" product="default" msgid="4145566517710675883">\n\n"Երաժշտությունը, նկարները և այլ տվյալները "<b>"SD քարտից"</b>" մաքրելու համար` այն պետք է ջնջել:"</string>
+    <string name="master_clear_desc_erase_external_storage" product="default" msgid="4145566517710675883">\n\n"Երաժշտությունը, նկարները և այլ տվյալները "<b>"SD քարտից"</b>" մաքրելու համար՝ այն պետք է ջնջել:"</string>
     <string name="erase_external_storage" product="nosdcard" msgid="2182181846128639635">"Ջնջել USB կրիչը"</string>
     <string name="erase_external_storage" product="default" msgid="2610056855012660451">"Ջնջել SD քարտը"</string>
     <string name="erase_external_storage_description" product="nosdcard" msgid="6358699244894944843">"Ջնջել ներքին USB կրիչի բոլոր տվյալները, ինչպիսիք են երաժշտությունը կամ լուսանկարները"</string>
@@ -1722,8 +1722,8 @@
     <string name="location_neighborhood_level" msgid="3668890550358558267">"Թույլատրել ծրագրերին օգտագործել Google-ի տեղակայման ծառայությունները` ձեր տեղադրությունը ավելի արագ որոշելու համար: Անանուն տեղակայման տվյալները կհավաքագրվեն և կուղարկվեն Google-ին:"</string>
     <string name="location_neighborhood_level_wifi" msgid="6227393490651891977">"Տեղադրությունը որոշված է Wi‑Fi-ի օգնությամբ"</string>
     <string name="location_gps" msgid="8783616672454701134">"GPS արբանյակներ"</string>
-    <string name="location_street_level" product="tablet" msgid="865953107414742784">"Թույլատրել հավելվածին օգտագործել GPS-ը` ձեր տեղադրությունը պլանշետում ամրագրելու համար"</string>
-    <string name="location_street_level" product="default" msgid="3813836654645896185">"Թույլատրել հավելվածին օգտագործել GPS-ը` ձեր տեղադրությունը հեռախոսում  ամրագրելու համար"</string>
+    <string name="location_street_level" product="tablet" msgid="865953107414742784">"Թույլատրել հավելվածին օգտագործել GPS-ը՝ ձեր տեղադրությունը պլանշետում ամրագրելու համար"</string>
+    <string name="location_street_level" product="default" msgid="3813836654645896185">"Թույլատրել հավելվածին օգտագործել GPS-ը՝ ձեր տեղադրությունը հեռախոսում  ամրագրելու համար"</string>
     <string name="assisted_gps" msgid="1714546606018821498">"Օգատգործեք աջակցող GPS-ը"</string>
     <string name="assisted_gps_enabled" msgid="6220188450779319248">"Օգտագործեք սերվերը` GPS-ին միանալու համար (ապագնշեք` ցանցի օգտագործումը նվազեցնելու համար)"</string>
     <string name="assisted_gps_disabled" msgid="1062496503892849">"Օգտագործել սերվերը GPS աջակցման համար (ապընտրել` GPS-ի արդյունավետությունը բարելավելու համար)"</string>
@@ -1900,7 +1900,7 @@
     <string name="always_allow_bind_appwidgets_text" msgid="2069415023986858324">"Դուք ընտրել եք թույտարել այս ծրագրին ստեղծել վիջեթներ և մուտք գործել իրենց տվյալներ:"</string>
     <string name="auto_launch_disable_text" msgid="502648841250936209">"Լռելյայները կարգավորված չեն:"</string>
     <string name="clear_activities" msgid="341345438786077236">"Մաքրել լռելյայնները"</string>
-    <string name="screen_compatibility_text" msgid="5915767835411020274">"Հնարավոր է` այս ծրագիրը մշակված չէ ձեր էկրանի համար: Դուք կարող եք վերահսկել դրա` ձեր էկրանին հարմարեցումը:"</string>
+    <string name="screen_compatibility_text" msgid="5915767835411020274">"Հնարավոր է՝ այս ծրագիրը մշակված չէ ձեր էկրանի համար: Դուք կարող եք վերահսկել դրա` ձեր էկրանին հարմարեցումը:"</string>
     <string name="ask_compatibility" msgid="8388397595148476565">"Հարցնել մեկնարկելիս"</string>
     <string name="enable_compatibility" msgid="1163387233622859712">"Աստիճանակարգել հավելվածները"</string>
     <string name="unknown" msgid="8192160131923461175">"Անհայտ"</string>
@@ -2830,7 +2830,7 @@
     <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"Ինքնահամաժամացնել անձնական տվյալները"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"Ինքնահամաժամացնել աշխատանքային տվյալները"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"Ցիկլի փոփոխում…"</string>
-    <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Ամսվա մի օր` տվյալների օգտագործման աշխատաշրջանը սահմանելու համար`"</string>
+    <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"Ամսվա մի օր` տվյալների օգտագործման աշխատաշրջանը սահմանելու համար՝"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"Այս ընթացքում հավելվածները տվյալներ չեն օգտագործել:"</string>
     <string name="data_usage_label_foreground" msgid="8782117644558473624">"Ակտիվ ռեժիմ"</string>
     <string name="data_usage_label_background" msgid="8862781660427421859">"Ֆոնային ռեժիմ"</string>
@@ -2909,8 +2909,8 @@
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec սերվերի վկայական"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Ցույց տալ լրացուցիչ ընտրանքները"</string>
     <string name="vpn_search_domains" msgid="1973799969613962440">"DNS որոնման տիրույթներ"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS սերվերներ (օրինակ` 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Փոխանցման երթուղիներ (օրինակ` 10.0.0.0/8)"</string>
+    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS սերվերներ (օրինակ՝ 8.8.8.8)"</string>
+    <string name="vpn_routes" msgid="1218707725375594862">"Փոխանցման երթուղիներ (օրինակ՝ 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Օգտանուն"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Գաղտնաբառ"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Պահել հաշվի տեղեկությունները"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index ea29644..62e05ca 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -4672,7 +4672,7 @@
     <string name="change_wifi_state_app_detail_switch" msgid="1385358508267180745">"Izinkan aplikasi mengontrol Wi-Fi"</string>
     <string name="change_wifi_state_app_detail_summary" msgid="8230854855584217111">"Izinkan aplikasi ini mengaktifkan atau menonaktifkan Wi-Fi, memindai, dan menghubungkan ke jaringan Wi-Fi, menambahkan atau menghapus jaringan, atau memulai hotspot khusus lokal"</string>
     <string name="media_output_title" msgid="8283629315159510680">"Putar media ke"</string>
-    <string name="media_output_label_title" msgid="4139048973886819148">"Putar <xliff:g id="LABEL">%s</xliff:g>"</string>
+    <string name="media_output_label_title" msgid="4139048973886819148">"Putar <xliff:g id="LABEL">%s</xliff:g> di"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Perangkat ini"</string>
     <string name="media_output_summary" product="default" msgid="4760338801715262899">"Ponsel"</string>
     <string name="media_output_summary" product="tablet" msgid="5138101426462250247">"Tablet"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 53954bf..a76b7c9 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -1167,7 +1167,7 @@
     <string name="brightness" msgid="6216871641021779698">"កម្រិត​ពន្លឺ"</string>
     <string name="brightness_title" msgid="5457874893085305155">"ពន្លឺ"</string>
     <string name="brightness_summary" msgid="6309641759293018049">"កែ​ពន្លឺ​អេក្រង់"</string>
-    <string name="auto_brightness_title" msgid="4239324728760986697">"ពន្លឺ​​ដែល​ចេះសម្រប​ខ្លួន"</string>
+    <string name="auto_brightness_title" msgid="4239324728760986697">"ពន្លឺ​មានភាពបត់បែន"</string>
     <string name="auto_brightness_summary" msgid="1737148869232725883">"ពន្លឺអេក្រង់​កែតម្រូវឱ្យស្របតាម​បរិយាកាស"</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"បើក"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"បិទ"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index fddbfb1..d6c2a5f 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -3094,7 +3094,7 @@
     <string name="call_manager_title" msgid="3397433159509629466">"통화 관리자"</string>
     <!-- no translation found for call_manager_summary (2558839230880919191) -->
     <skip />
-    <string name="cell_broadcast_settings" msgid="2416980110093867199">"무선 긴급 경보"</string>
+    <string name="cell_broadcast_settings" msgid="2416980110093867199">"재난문자"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"네트워크 이동통신사"</string>
     <string name="access_point_names" msgid="5768430498022188057">"액세스 포인트 이름(APN)"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="6624700245232361149">"VoLTE"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index f3af65f..4c6d522 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -4672,7 +4672,7 @@
     <string name="change_wifi_state_app_detail_switch" msgid="1385358508267180745">"Дозволете апликацијата да контролира Wi-Fi"</string>
     <string name="change_wifi_state_app_detail_summary" msgid="8230854855584217111">"Дозволете апликацијава да вклучува или исклучува Wi-Fi, да скенира и да се поврзува на Wi-Fi мрежи, да додава или отстранува мрежи или да започне локална точка на пристап"</string>
     <string name="media_output_title" msgid="8283629315159510680">"Пуштај содржини на"</string>
-    <string name="media_output_label_title" msgid="4139048973886819148">"Пушти на <xliff:g id="LABEL">%s</xliff:g>"</string>
+    <string name="media_output_label_title" msgid="4139048973886819148">"Пуштај <xliff:g id="LABEL">%s</xliff:g> на"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Овој уред"</string>
     <string name="media_output_summary" product="default" msgid="4760338801715262899">"Телефон"</string>
     <string name="media_output_summary" product="tablet" msgid="5138101426462250247">"Таблет"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 84a3315..936f755 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -1197,7 +1197,7 @@
     <string name="adaptive_sleep_summary_on" msgid="313187971631243800">"Hidup / Skrin tidak akan dimatikan jika anda melihat pada skrin"</string>
     <string name="adaptive_sleep_summary_off" msgid="5272156339202897523">"Mati"</string>
     <string name="adaptive_sleep_title_no_permission" msgid="1719759921214237016">"Akses kamera diperlukan"</string>
-    <string name="adaptive_sleep_summary_no_permission" msgid="5107880175176848307">"Ketik untuk mengurus kebenaran bagi Perkhidmatan Pemperibadian Peranti"</string>
+    <string name="adaptive_sleep_summary_no_permission" msgid="5107880175176848307">"Ketik untuk mengurus kebenaran bagi Perkhidmatan Pemeribadian Peranti"</string>
     <string name="adaptive_sleep_description" msgid="1835321775327187860">"Menghalang skrin daripada dimatikan jika anda memandang skrin"</string>
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Perhatian skrin menggunakan kamera depan untuk melihat sama ada seseorang sedang memandang skrin. Ciri ini berfungsi pada peranti dan imej tidak sekali-kali disimpan atau dihantar kepada Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Hidupkan perhatian skrin"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 1aa857d..832ee93 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -3804,10 +3804,10 @@
     <string name="zen_mode_system_summary" msgid="7225581762792177522">"ਕੀ-ਬੋਰਡ ਅਤੇ ਹੋਰ ਬਟਨਾਂ ਤੋਂ ਧੁਨੀਆਂ"</string>
     <string name="zen_mode_system_list" msgid="2256218792042306434">"ਸਪਰਸ਼ ਧੁਨੀਆਂ"</string>
     <string name="zen_mode_system_list_first" msgid="8590078626001067855">"ਸਪਰਸ਼ ਧੁਨੀਆਂ"</string>
-    <string name="zen_mode_reminders" msgid="1970224691551417906">"ਯਾਦ-ਸੂਚਨਾਵਾਂ"</string>
+    <string name="zen_mode_reminders" msgid="1970224691551417906">"ਰਿਮਾਈਂਡਰ"</string>
     <string name="zen_mode_reminders_summary" msgid="3961627037429412382">"ਕਾਰਜਾਂ ਅਤੇ ਯਾਦ-ਸੂਚਨਾਵਾਂ ਤੋਂ"</string>
-    <string name="zen_mode_reminders_list" msgid="3133513621980999858">"ਯਾਦ-ਸੂਚਨਾਵਾਂ"</string>
-    <string name="zen_mode_reminders_list_first" msgid="1130470396012190814">"ਯਾਦ-ਸੂਚਨਾਵਾਂ"</string>
+    <string name="zen_mode_reminders_list" msgid="3133513621980999858">"ਰਿਮਾਈਂਡਰ"</string>
+    <string name="zen_mode_reminders_list_first" msgid="1130470396012190814">"ਰਿਮਾਈਂਡਰ"</string>
     <string name="zen_mode_events" msgid="7425795679353531794">"ਕੈਲੰਡਰ ਇਵੈਂਟ"</string>
     <string name="zen_mode_events_summary" msgid="3241903481309766428">"ਆਗਾਮੀ ਕੈਲੰਡਰ ਇਵੈਂਟਾਂ ਤੋਂ"</string>
     <string name="zen_mode_events_list" msgid="7191316245742097229">"ਇਵੈਂਟ"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index a6619a1..2e514b6 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -2664,7 +2664,7 @@
     <string name="tts_reset" msgid="9047681050813970031">"Rivendos"</string>
     <string name="tts_play" msgid="2945513377250757221">"Luaj"</string>
     <string name="vpn_settings_title" msgid="9131315656202257272">"VPN"</string>
-    <string name="adaptive_connectivity_title" msgid="7464959640138428192">"Përshtatja e lidhshmërisë"</string>
+    <string name="adaptive_connectivity_title" msgid="7464959640138428192">"Lidhshmëria me përshtatje"</string>
     <string name="adaptive_connectivity_summary" msgid="3648731530666326885">"Rrit kohëzgjatjen e baterisë dhe përmirëson cilësinë e funksionimit të pajisjes duke menaxhuar automatikisht lidhjet e rrjetit"</string>
     <string name="credentials_title" msgid="7535942196886123656">"Ruajtja e kredencialeve"</string>
     <string name="credentials_install" msgid="3933218407598415827">"Instalo një certifikatë"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 68a9060..56cc6ce 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -2740,7 +2740,7 @@
     <string name="tts_reset" msgid="9047681050813970031">"Скинути"</string>
     <string name="tts_play" msgid="2945513377250757221">"Відтворити"</string>
     <string name="vpn_settings_title" msgid="9131315656202257272">"VPN"</string>
-    <string name="adaptive_connectivity_title" msgid="7464959640138428192">"Адаптивне з\'єднання"</string>
+    <string name="adaptive_connectivity_title" msgid="7464959640138428192">"Адаптивне підключення"</string>
     <string name="adaptive_connectivity_summary" msgid="3648731530666326885">"Подовжує час роботи акумулятора й покращує продуктивність пристрою завдяки автоматичному керуванню з\'єднанням із мережею"</string>
     <string name="credentials_title" msgid="7535942196886123656">"Сховище облікових даних"</string>
     <string name="credentials_install" msgid="3933218407598415827">"Установити сертифікат"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 3235dee..d97056f 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -314,7 +314,7 @@
     <string name="lockscreen_settings_what_to_show_category" msgid="9205490627927741254">"Nội dung hiển thị"</string>
     <string name="security_settings_summary" msgid="1627059516127354233">"Đặt Vị trí của tôi, mở khóa màn hình, khóa thẻ SIM, khóa bộ nhớ thông tin xác thực"</string>
     <string name="cdma_security_settings_summary" msgid="2455517905101186330">"Đặt Vị trí của tôi, mở khóa màn hình, khóa bộ nhớ thông tin xác thực"</string>
-    <string name="security_passwords_title" msgid="4154420930973818581">"Bảo mật"</string>
+    <string name="security_passwords_title" msgid="4154420930973818581">"Quyền riêng tư"</string>
     <string name="disabled_by_administrator_summary" msgid="5424846182313851124">"Chưa có"</string>
     <string name="security_status_title" msgid="6958004275337618656">"Trạng thái bảo mật"</string>
     <string name="security_dashboard_summary_face" msgid="4198949293847206382">"Phương thức khóa màn hình, mở khóa bằng khuôn mặt"</string>
@@ -2112,7 +2112,7 @@
     <string name="vision_settings_suggestion_title" msgid="4689275412658803919">"Thay đổi cỡ chữ"</string>
     <string name="screen_reader_category_title" msgid="6195867428854871553">"Trình đọc màn hình"</string>
     <string name="audio_and_captions_category_title" msgid="5049122378290004050">"Âm thanh và văn bản trên màn hình"</string>
-    <string name="display_category_title" msgid="6638191682294461408">"Màn hình"</string>
+    <string name="display_category_title" msgid="6638191682294461408">"Hiển thị"</string>
     <string name="interaction_control_category_title" msgid="2696474616743882372">"Điều khiển tương tác"</string>
     <string name="user_installed_services_category_title" msgid="2639470729311439731">"Ứng dụng đã tải xuống"</string>
     <string name="experimental_category_title" msgid="898904396646344152">"Thử nghiệm"</string>
@@ -2275,7 +2275,7 @@
     <string name="accessibility_vibration_summary_low" msgid="6482721005400340317">"Đổ chuông và thông báo được đặt thành thấp"</string>
     <string name="accessibility_vibration_summary_medium" msgid="2348889320548746469">"Đổ chuông và thông báo được đặt thành trung bình"</string>
     <string name="accessibility_vibration_summary_high" msgid="1764693979030913712">"Độ rung khi đổ chuông và có thông báo được đặt thành cao"</string>
-    <string name="accessibility_vibration_intensity_off" msgid="972159695404061944">"Tắt"</string>
+    <string name="accessibility_vibration_intensity_off" msgid="972159695404061944">"Đang tắt"</string>
     <string name="accessibility_vibration_intensity_low" msgid="6311161118835287335">"Thấp"</string>
     <string name="accessibility_vibration_intensity_medium" msgid="1734058611879392797">"Trung bình"</string>
     <string name="accessibility_vibration_intensity_high" msgid="5982896399775212514">"Cao"</string>
@@ -3492,7 +3492,7 @@
     <string name="bubbles_feature_disabled_dialog_text" msgid="5275666953364031055">"Thao tác bật bong bóng cho ứng dụng này cũng sẽ bật bong bóng cho thiết bị của bạn.\n\nViệc này sẽ ảnh hưởng đến các ứng dụng hoặc cuộc trò chuyện khác được phép bật bong bóng."</string>
     <string name="bubbles_feature_disabled_button_approve" msgid="2042628067101419871">"Bật"</string>
     <string name="bubbles_feature_disabled_button_cancel" msgid="8963409459448350600">"Hủy"</string>
-    <string name="notifications_bubble_setting_on_summary" msgid="4641572377430901196">"Bật / Các cuộc trò chuyện có thể hiển thị ở dạng biểu tượng nổi"</string>
+    <string name="notifications_bubble_setting_on_summary" msgid="4641572377430901196">"Đang bật / Các cuộc trò chuyện có thể hiển thị ở dạng biểu tượng nổi"</string>
     <string name="notifications_bubble_setting_title" msgid="8287649393774855268">"Cho phép các ứng dụng hiển thị bong bóng"</string>
     <string name="notifications_bubble_setting_description" msgid="7336770088735025981">"Một số cuộc trò chuyện sẽ hiển thị dưới dạng biểu tượng nổi ở phía trên cùng của các ứng dụng khác"</string>
     <string name="bubble_app_setting_all" msgid="312524752846978277">"Mọi cuộc trò chuyện đều có thể tạo bong bóng"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 15494e4..a9b832d 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -4672,7 +4672,7 @@
     <string name="change_wifi_state_app_detail_switch" msgid="1385358508267180745">"允許應用程式控制 Wi-Fi"</string>
     <string name="change_wifi_state_app_detail_summary" msgid="8230854855584217111">"允許這個應用程式開啟或關閉 Wi-Fi、掃描及連上 Wi-Fi 網路、新增或移除網路，或啟動僅限本機的無線基地台"</string>
     <string name="media_output_title" msgid="8283629315159510680">"播放媒體"</string>
-    <string name="media_output_label_title" msgid="4139048973886819148">"透過以下裝置播放「<xliff:g id="LABEL">%s</xliff:g>」中的媒體"</string>
+    <string name="media_output_label_title" msgid="4139048973886819148">"透過以下裝置播放「<xliff:g id="LABEL">%s</xliff:g>」"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"這個裝置"</string>
     <string name="media_output_summary" product="default" msgid="4760338801715262899">"手機"</string>
     <string name="media_output_summary" product="tablet" msgid="5138101426462250247">"平板電腦"</string>
diff --git a/src/com/android/settings/TetherSettings.java b/src/com/android/settings/TetherSettings.java
index 0325842..26c699b 100644
--- a/src/com/android/settings/TetherSettings.java
+++ b/src/com/android/settings/TetherSettings.java
@@ -80,6 +80,10 @@
     @VisibleForTesting
     static final String KEY_TETHER_PREFS_FOOTER = "tether_prefs_footer";
 
+    @VisibleForTesting
+    static final String BLUETOOTH_TETHERING_STATE_CHANGED =
+            "android.bluetooth.pan.profile.action.TETHERING_STATE_CHANGED";
+
     private static final String TAG = "TetheringSettings";
 
     private SwitchPreference mUsbTether;
@@ -154,9 +158,7 @@
                     BluetoothProfile.PAN);
         }
 
-        mUsbTether = (SwitchPreference) findPreference(KEY_USB_TETHER_SETTINGS);
-        mBluetoothTether = (SwitchPreference) findPreference(KEY_ENABLE_BLUETOOTH_TETHERING);
-        mEthernetTether = (SwitchPreference) findPreference(KEY_ENABLE_ETHERNET_TETHERING);
+        setupTetherPreference();
         setFooterPreferenceTitle();
 
         mDataSaverBackend.addListener(this);
@@ -208,6 +210,13 @@
         super.onDestroy();
     }
 
+    @VisibleForTesting
+    void setupTetherPreference() {
+        mUsbTether = (SwitchPreference) findPreference(KEY_USB_TETHER_SETTINGS);
+        mBluetoothTether = (SwitchPreference) findPreference(KEY_ENABLE_BLUETOOTH_TETHERING);
+        mEthernetTether = (SwitchPreference) findPreference(KEY_ENABLE_ETHERNET_TETHERING);
+    }
+
     @Override
     public void onDataSaverChanged(boolean isDataSaving) {
         mDataSaverEnabled = isDataSaving;
@@ -281,6 +290,8 @@
                     }
                 }
                 updateState();
+            } else if (action.equals(BLUETOOTH_TETHERING_STATE_CHANGED)) {
+                updateState();
             }
         }
     }
@@ -297,32 +308,13 @@
             return;
         }
 
-        final Activity activity = getActivity();
 
         mStartTetheringCallback = new OnStartTetheringCallback(this);
         mTetheringEventCallback = new TetheringEventCallback();
         mTm.registerTetheringEventCallback(new HandlerExecutor(mHandler), mTetheringEventCallback);
 
         mMassStorageActive = Environment.MEDIA_SHARED.equals(Environment.getExternalStorageState());
-        mTetherChangeReceiver = new TetherChangeReceiver();
-        IntentFilter filter = new IntentFilter(ConnectivityManager.ACTION_TETHER_STATE_CHANGED);
-        Intent intent = activity.registerReceiver(mTetherChangeReceiver, filter);
-
-        filter = new IntentFilter();
-        filter.addAction(UsbManager.ACTION_USB_STATE);
-        activity.registerReceiver(mTetherChangeReceiver, filter);
-
-        filter = new IntentFilter();
-        filter.addAction(Intent.ACTION_MEDIA_SHARED);
-        filter.addAction(Intent.ACTION_MEDIA_UNSHARED);
-        filter.addDataScheme("file");
-        activity.registerReceiver(mTetherChangeReceiver, filter);
-
-        filter = new IntentFilter();
-        filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
-        activity.registerReceiver(mTetherChangeReceiver, filter);
-
-        if (intent != null) mTetherChangeReceiver.onReceive(activity, intent);
+        registerReceiver();
 
         mEthernetListener = new EthernetListener();
         if (mEm != null)
@@ -348,10 +340,38 @@
         mEthernetListener = null;
     }
 
+    @VisibleForTesting
+    void registerReceiver() {
+        final Activity activity = getActivity();
+
+        mTetherChangeReceiver = new TetherChangeReceiver();
+        IntentFilter filter = new IntentFilter(ConnectivityManager.ACTION_TETHER_STATE_CHANGED);
+        final Intent intent = activity.registerReceiver(mTetherChangeReceiver, filter);
+
+        filter = new IntentFilter();
+        filter.addAction(UsbManager.ACTION_USB_STATE);
+        activity.registerReceiver(mTetherChangeReceiver, filter);
+
+        filter = new IntentFilter();
+        filter.addAction(Intent.ACTION_MEDIA_SHARED);
+        filter.addAction(Intent.ACTION_MEDIA_UNSHARED);
+        filter.addDataScheme("file");
+        activity.registerReceiver(mTetherChangeReceiver, filter);
+
+        filter = new IntentFilter();
+        filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
+        filter.addAction(BLUETOOTH_TETHERING_STATE_CHANGED);
+        activity.registerReceiver(mTetherChangeReceiver, filter);
+
+        if (intent != null) mTetherChangeReceiver.onReceive(activity, intent);
+    }
+
     private void updateState() {
-        String[] available = mCm.getTetherableIfaces();
-        String[] tethered = mCm.getTetheredIfaces();
-        String[] errored = mCm.getTetheringErroredIfaces();
+        final ConnectivityManager cm =
+                (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
+        final String[] available = cm.getTetherableIfaces();
+        final String[] tethered = cm.getTetheredIfaces();
+        final String[] errored = cm.getTetheringErroredIfaces();
         updateState(available, tethered, errored);
     }
 
@@ -362,7 +382,8 @@
         updateEthernetState(available, tethered);
     }
 
-    private void updateUsbState(String[] available, String[] tethered,
+    @VisibleForTesting
+    void updateUsbState(String[] available, String[] tethered,
             String[] errored) {
         boolean usbAvailable = mUsbConnected && !mMassStorageActive;
         int usbError = ConnectivityManager.TETHER_ERROR_NO_ERROR;
@@ -400,20 +421,33 @@
         }
     }
 
-    private void updateBluetoothState() {
+    @VisibleForTesting
+    int getBluetoothState() {
         BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
         if (adapter == null) {
+            return BluetoothAdapter.ERROR;
+        }
+        return adapter.getState();
+    }
+
+    @VisibleForTesting
+    boolean isBluetoothTetheringOn() {
+        final BluetoothPan bluetoothPan = mBluetoothPan.get();
+        return bluetoothPan != null && bluetoothPan.isTetheringOn();
+    }
+
+    private void updateBluetoothState() {
+        final int btState = getBluetoothState();
+        if (btState == BluetoothAdapter.ERROR) {
             return;
         }
-        int btState = adapter.getState();
+
         if (btState == BluetoothAdapter.STATE_TURNING_OFF) {
             mBluetoothTether.setEnabled(false);
         } else if (btState == BluetoothAdapter.STATE_TURNING_ON) {
             mBluetoothTether.setEnabled(false);
         } else {
-            BluetoothPan bluetoothPan = mBluetoothPan.get();
-            if (btState == BluetoothAdapter.STATE_ON && bluetoothPan != null
-                    && bluetoothPan.isTetheringOn()) {
+            if (btState == BluetoothAdapter.STATE_ON && isBluetoothTetheringOn()) {
                 mBluetoothTether.setChecked(true);
                 mBluetoothTether.setEnabled(!mDataSaverEnabled);
             } else {
@@ -423,7 +457,8 @@
         }
     }
 
-    private void updateEthernetState(String[] available, String[] tethered) {
+    @VisibleForTesting
+    void updateEthernetState(String[] available, String[] tethered) {
 
         boolean isAvailable = false;
         boolean isTethered = false;
diff --git a/src/com/android/settings/bluetooth/DevicePickerFragment.java b/src/com/android/settings/bluetooth/DevicePickerFragment.java
index 02625bb..ab8eea5 100644
--- a/src/com/android/settings/bluetooth/DevicePickerFragment.java
+++ b/src/com/android/settings/bluetooth/DevicePickerFragment.java
@@ -18,6 +18,7 @@
 
 import static android.os.UserManager.DISALLOW_CONFIG_BLUETOOTH;
 
+import android.Manifest;
 import android.app.settings.SettingsEnums;
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
@@ -192,6 +193,6 @@
         if (mLaunchPackage != null && mLaunchClass != null) {
             intent.setClassName(mLaunchPackage, mLaunchClass);
         }
-        getActivity().sendBroadcast(intent);
+        getActivity().sendBroadcast(intent, Manifest.permission.BLUETOOTH_ADMIN);
     }
 }
diff --git a/src/com/android/settings/notification/BubbleNotificationPreferenceController.java b/src/com/android/settings/notification/BubbleNotificationPreferenceController.java
index 0fa480c..1c7b4df 100644
--- a/src/com/android/settings/notification/BubbleNotificationPreferenceController.java
+++ b/src/com/android/settings/notification/BubbleNotificationPreferenceController.java
@@ -18,6 +18,7 @@
 
 import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
 
+import android.app.ActivityManager;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.database.ContentObserver;
@@ -81,7 +82,8 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return AVAILABLE;
+        ActivityManager am = mContext.getSystemService(ActivityManager.class);
+        return am.isLowRamDevice() ? UNSUPPORTED_ON_DEVICE : AVAILABLE;
     }
 
     @Override
diff --git a/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceController.java b/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceController.java
index f123c51..a99155f 100644
--- a/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceController.java
+++ b/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceController.java
@@ -18,6 +18,7 @@
 
 import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
 
+import android.app.ActivityManager;
 import android.content.Context;
 import android.provider.Settings;
 
@@ -48,7 +49,8 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return AVAILABLE;
+        ActivityManager am = mContext.getSystemService(ActivityManager.class);
+        return am.isLowRamDevice() ? UNSUPPORTED_ON_DEVICE : AVAILABLE;
     }
 
     private boolean areBubblesEnabled() {
diff --git a/src/com/android/settings/notification/app/BubblePreferenceController.java b/src/com/android/settings/notification/app/BubblePreferenceController.java
index 722b279..8f452f7 100644
--- a/src/com/android/settings/notification/app/BubblePreferenceController.java
+++ b/src/com/android/settings/notification/app/BubblePreferenceController.java
@@ -19,6 +19,7 @@
 import static android.app.NotificationManager.BUBBLE_PREFERENCE_NONE;
 import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
 
+import android.app.ActivityManager;
 import android.annotation.Nullable;
 import android.content.Context;
 import android.provider.Settings;
@@ -139,7 +140,8 @@
     }
 
     private boolean isGloballyEnabled() {
-        return Settings.Global.getInt(mContext.getContentResolver(),
+        ActivityManager am = mContext.getSystemService(ActivityManager.class);
+        return !am.isLowRamDevice() && Settings.Global.getInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, SYSTEM_WIDE_OFF) == SYSTEM_WIDE_ON;
     }
 
diff --git a/src/com/android/settings/notification/app/BubbleSummaryPreferenceController.java b/src/com/android/settings/notification/app/BubbleSummaryPreferenceController.java
index 7519c23..236e628 100644
--- a/src/com/android/settings/notification/app/BubbleSummaryPreferenceController.java
+++ b/src/com/android/settings/notification/app/BubbleSummaryPreferenceController.java
@@ -20,6 +20,7 @@
 import static android.app.NotificationManager.BUBBLE_PREFERENCE_NONE;
 import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
 
+import android.app.ActivityManager;
 import android.content.Context;
 import android.content.Intent;
 import android.content.res.Resources;
@@ -99,7 +100,8 @@
     }
 
     private boolean isGloballyEnabled() {
-        return Settings.Global.getInt(mContext.getContentResolver(),
+        ActivityManager am = mContext.getSystemService(ActivityManager.class);
+        return !am.isLowRamDevice() && Settings.Global.getInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, ON) == ON;
     }
 }
diff --git a/src/com/android/settings/panel/MediaOutputPanel.java b/src/com/android/settings/panel/MediaOutputPanel.java
index 6a296b7..7caf7dd 100644
--- a/src/com/android/settings/panel/MediaOutputPanel.java
+++ b/src/com/android/settings/panel/MediaOutputPanel.java
@@ -25,11 +25,7 @@
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.Intent;
-import android.content.pm.PackageManager;
 import android.graphics.Bitmap;
-import android.graphics.Canvas;
-import android.graphics.drawable.BitmapDrawable;
-import android.graphics.drawable.Drawable;
 import android.media.MediaMetadata;
 import android.media.session.MediaController;
 import android.media.session.MediaSessionManager;
@@ -109,8 +105,7 @@
     @Override
     public IconCompat getIcon() {
         if (mMediaController == null) {
-            return IconCompat.createWithResource(mContext, R.drawable.ic_media_stream).setTint(
-                    Utils.getColorAccentDefaultColor(mContext));
+            return null;
         }
         final MediaMetadata metadata = mMediaController.getMetadata();
         if (metadata != null) {
@@ -124,25 +119,6 @@
             }
         }
         Log.d(TAG, "Media meta data does not contain icon information");
-        return getPackageIcon();
-    }
-
-    private IconCompat getPackageIcon() {
-        try {
-            final Drawable drawable = mContext.getPackageManager().getApplicationIcon(mPackageName);
-            if (drawable instanceof BitmapDrawable) {
-                return IconCompat.createWithBitmap(((BitmapDrawable) drawable).getBitmap());
-            }
-            final Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(),
-                    drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
-            final Canvas canvas = new Canvas(bitmap);
-            drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
-            drawable.draw(canvas);
-
-            return IconCompat.createWithBitmap(bitmap);
-        } catch (PackageManager.NameNotFoundException e) {
-            Log.e(TAG, "Package is not found. Unable to get package icon.");
-        }
         return null;
     }
 
diff --git a/src/com/android/settings/panel/PanelFragment.java b/src/com/android/settings/panel/PanelFragment.java
index d34a09f..6f2d59b 100644
--- a/src/com/android/settings/panel/PanelFragment.java
+++ b/src/com/android/settings/panel/PanelFragment.java
@@ -93,6 +93,7 @@
     private String mPanelClosedKey;
     private LinearLayout mPanelHeader;
     private ImageView mTitleIcon;
+    private LinearLayout mTitleGroup;
     private TextView mHeaderTitle;
     private TextView mHeaderSubtitle;
     private int mMaxHeight;
@@ -195,6 +196,7 @@
         mTitleView = mLayoutView.findViewById(R.id.panel_title);
         mPanelHeader = mLayoutView.findViewById(R.id.panel_header);
         mTitleIcon = mLayoutView.findViewById(R.id.title_icon);
+        mTitleGroup = mLayoutView.findViewById(R.id.title_group);
         mHeaderTitle = mLayoutView.findViewById(R.id.header_title);
         mHeaderSubtitle = mLayoutView.findViewById(R.id.header_subtitle);
         mFooterDivider = mLayoutView.findViewById(R.id.footer_divider);
@@ -231,26 +233,13 @@
 
         final IconCompat icon = mPanel.getIcon();
         final CharSequence title = mPanel.getTitle();
-        if (icon == null) {
+
+        if (icon != null || mPanel.getViewType() == PanelContent.VIEW_TYPE_SLIDER_LARGE_ICON) {
+            enablePanelHeader(icon, title);
+        } else {
             mTitleView.setVisibility(View.VISIBLE);
             mPanelHeader.setVisibility(View.GONE);
             mTitleView.setText(title);
-        } else {
-            mTitleView.setVisibility(View.GONE);
-            mPanelHeader.setVisibility(View.VISIBLE);
-            mPanelHeader.setAccessibilityPaneTitle(title);
-            mTitleIcon.setImageIcon(icon.toIcon(getContext()));
-            mHeaderTitle.setText(title);
-            mHeaderSubtitle.setText(mPanel.getSubTitle());
-            if (mPanel.getHeaderIconIntent() != null) {
-                mTitleIcon.setOnClickListener(getHeaderIconListener());
-                mTitleIcon.setLayoutParams(new LinearLayout.LayoutParams(
-                        ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
-            } else {
-                final int size = getResources().getDimensionPixelSize(
-                        R.dimen.output_switcher_panel_icon_size);
-                mTitleIcon.setLayoutParams(new LinearLayout.LayoutParams(size, size));
-            }
         }
 
         if (mPanel.getViewType() == PanelContent.VIEW_TYPE_SLIDER_LARGE_ICON) {
@@ -284,6 +273,29 @@
                 0 /* value */);
     }
 
+    private void enablePanelHeader(IconCompat icon, CharSequence title) {
+        mTitleView.setVisibility(View.GONE);
+        mPanelHeader.setVisibility(View.VISIBLE);
+        mPanelHeader.setAccessibilityPaneTitle(title);
+        mHeaderTitle.setText(title);
+        mHeaderSubtitle.setText(mPanel.getSubTitle());
+        if (icon != null) {
+            mTitleGroup.setVisibility(View.VISIBLE);
+            mTitleIcon.setImageIcon(icon.toIcon(getContext()));
+            if (mPanel.getHeaderIconIntent() != null) {
+                mTitleIcon.setOnClickListener(getHeaderIconListener());
+                mTitleIcon.setLayoutParams(new LinearLayout.LayoutParams(
+                        ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+            } else {
+                final int size = getResources().getDimensionPixelSize(
+                        R.dimen.output_switcher_panel_icon_size);
+                mTitleIcon.setLayoutParams(new LinearLayout.LayoutParams(size, size));
+            }
+        } else {
+            mTitleGroup.setVisibility(View.GONE);
+        }
+    }
+
     private void loadAllSlices() {
         mSliceLiveData.clear();
         final List<Uri> sliceUris = mPanel.getSlices();
@@ -480,7 +492,13 @@
         @Override
         public void onHeaderChanged() {
             ThreadUtils.postOnMainThread(() -> {
-                mTitleIcon.setImageIcon(mPanel.getIcon().toIcon(getContext()));
+                final IconCompat icon = mPanel.getIcon();
+                if (icon != null) {
+                    mTitleIcon.setImageIcon(icon.toIcon(getContext()));
+                    mTitleGroup.setVisibility(View.VISIBLE);
+                } else {
+                    mTitleGroup.setVisibility(View.GONE);
+                }
                 mHeaderTitle.setText(mPanel.getTitle());
                 mHeaderSubtitle.setText(mPanel.getSubTitle());
             });
diff --git a/tests/robotests/src/com/android/settings/TetherSettingsTest.java b/tests/robotests/src/com/android/settings/TetherSettingsTest.java
index 3c38c51d..99c112c 100644
--- a/tests/robotests/src/com/android/settings/TetherSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/TetherSettingsTest.java
@@ -18,6 +18,8 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
@@ -25,20 +27,27 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.bluetooth.BluetoothAdapter;
+import android.content.BroadcastReceiver;
 import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
 import android.net.ConnectivityManager;
 import android.net.wifi.WifiManager;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.util.FeatureFlagUtils;
 
+import androidx.fragment.app.FragmentActivity;
 import androidx.preference.Preference;
+import androidx.preference.SwitchPreference;
 
 import com.android.settings.core.FeatureFlags;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
@@ -160,6 +169,80 @@
         verify(mockPreference).setTitle(R.string.tethering_footer_info_sta_ap_concurrency);
     }
 
+    @Test
+    public void testBluetoothState_updateBluetoothState_bluetoothTetheringStateOn() {
+        final TetherSettings spyTetherSettings = spy(new TetherSettings());
+        when(spyTetherSettings.getContext()).thenReturn(mContext);
+        final SwitchPreference mockSwitchPreference = mock(SwitchPreference.class);
+        when(spyTetherSettings.findPreference(TetherSettings.KEY_ENABLE_BLUETOOTH_TETHERING))
+            .thenReturn(mockSwitchPreference);
+        final FragmentActivity mockActivity = mock(FragmentActivity.class);
+        when(spyTetherSettings.getActivity()).thenReturn(mockActivity);
+        final ArgumentCaptor<BroadcastReceiver> captor =
+                ArgumentCaptor.forClass(BroadcastReceiver.class);
+        when(mockActivity.registerReceiver(captor.capture(), any(IntentFilter.class)))
+            .thenReturn(null);
+        // Bluetooth tethering state is on
+        when(spyTetherSettings.getBluetoothState()).thenReturn(BluetoothAdapter.STATE_ON);
+        when(spyTetherSettings.isBluetoothTetheringOn()).thenReturn(true);
+
+        spyTetherSettings.setupTetherPreference();
+        spyTetherSettings.registerReceiver();
+        updateOnlyBluetoothState(spyTetherSettings);
+
+        // Simulate Bluetooth tethering state changed
+        final BroadcastReceiver receiver = captor.getValue();
+        final Intent bluetoothTetheringChanged =
+                new Intent(TetherSettings.BLUETOOTH_TETHERING_STATE_CHANGED);
+        receiver.onReceive(mockActivity, bluetoothTetheringChanged);
+
+        verify(mockSwitchPreference).setEnabled(true);
+        verify(mockSwitchPreference).setChecked(true);
+    }
+
+    @Test
+    public void testBluetoothState_updateBluetoothState_bluetoothTetheringStateOff() {
+        final TetherSettings spyTetherSettings = spy(new TetherSettings());
+        when(spyTetherSettings.getContext()).thenReturn(mContext);
+        final SwitchPreference mockSwitchPreference = mock(SwitchPreference.class);
+        when(spyTetherSettings.findPreference(TetherSettings.KEY_ENABLE_BLUETOOTH_TETHERING))
+            .thenReturn(mockSwitchPreference);
+        final FragmentActivity mockActivity = mock(FragmentActivity.class);
+        when(spyTetherSettings.getActivity()).thenReturn(mockActivity);
+        final ArgumentCaptor<BroadcastReceiver> captor =
+                ArgumentCaptor.forClass(BroadcastReceiver.class);
+        when(mockActivity.registerReceiver(captor.capture(), any(IntentFilter.class)))
+            .thenReturn(null);
+        // Bluetooth tethering state is off
+        when(spyTetherSettings.getBluetoothState()).thenReturn(BluetoothAdapter.STATE_ON);
+        when(spyTetherSettings.isBluetoothTetheringOn()).thenReturn(false);
+
+        spyTetherSettings.setupTetherPreference();
+        spyTetherSettings.registerReceiver();
+        updateOnlyBluetoothState(spyTetherSettings);
+
+        // Simulate Bluetooth tethering state changed
+        final BroadcastReceiver receiver = captor.getValue();
+        final Intent bluetoothTetheringChanged =
+                new Intent(TetherSettings.BLUETOOTH_TETHERING_STATE_CHANGED);
+        receiver.onReceive(mockActivity, bluetoothTetheringChanged);
+
+        verify(mockSwitchPreference).setEnabled(true);
+        verify(mockSwitchPreference).setChecked(false);
+    }
+
+    private void updateOnlyBluetoothState(TetherSettings tetherSettings) {
+        doReturn(mConnectivityManager).when(tetherSettings)
+            .getSystemService(Context.CONNECTIVITY_SERVICE);
+        when(mConnectivityManager.getTetherableIfaces()).thenReturn(new String[0]);
+        when(mConnectivityManager.getTetheredIfaces()).thenReturn(new String[0]);
+        when(mConnectivityManager.getTetheringErroredIfaces()).thenReturn(new String[0]);
+        doNothing().when(tetherSettings).updateUsbState(any(String[].class), any(String[].class),
+                any(String[].class));
+        doNothing().when(tetherSettings).updateEthernetState(any(String[].class),
+                any(String[].class));
+    }
+
     private void setupIsTetherAvailable(boolean returnValue) {
         when(mConnectivityManager.isTetheringSupported()).thenReturn(true);
 
diff --git a/tests/robotests/src/com/android/settings/notification/BubbleNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/BubbleNotificationPreferenceControllerTest.java
index b2cf55b..871de0f 100644
--- a/tests/robotests/src/com/android/settings/notification/BubbleNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/BubbleNotificationPreferenceControllerTest.java
@@ -19,6 +19,7 @@
 import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
 
 import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
 import static com.android.settings.notification.BadgingNotificationPreferenceController.OFF;
 import static com.android.settings.notification.BadgingNotificationPreferenceController.ON;
 
@@ -29,6 +30,7 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.ActivityManager;
 import android.content.Context;
 import android.provider.Settings;
 
@@ -44,6 +46,8 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowActivityManager;
 
 @RunWith(RobolectricTestRunner.class)
 public class BubbleNotificationPreferenceControllerTest {
@@ -69,7 +73,18 @@
     }
 
     @Test
-    public void getAvilabilityStatus_returnsAvailable() {
+    public void isAvailable_lowRam_returnsUnsupported() {
+        final ShadowActivityManager activityManager =
+               Shadow.extract(mContext.getSystemService(ActivityManager.class));
+        activityManager.setIsLowRamDevice(true);
+        assertEquals(UNSUPPORTED_ON_DEVICE, mController.getAvailabilityStatus());
+    }
+
+    @Test
+    public void isAvailable_notLowRam_returnsAvailable() {
+        final ShadowActivityManager activityManager =
+               Shadow.extract(mContext.getSystemService(ActivityManager.class));
+        activityManager.setIsLowRamDevice(false);
         assertEquals(AVAILABLE, mController.getAvailabilityStatus());
     }
 
diff --git a/tests/robotests/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceControllerTest.java
index b5f505b..88de7ac 100644
--- a/tests/robotests/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceControllerTest.java
@@ -18,11 +18,14 @@
 
 import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
 
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
 import static com.android.settings.notification.BadgingNotificationPreferenceController.OFF;
 import static com.android.settings.notification.BadgingNotificationPreferenceController.ON;
 
 import static com.google.common.truth.Truth.assertThat;
 
+import android.app.ActivityManager;
 import android.content.Context;
 import android.provider.Settings;
 
@@ -35,6 +38,8 @@
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowActivityManager;
 
 @RunWith(RobolectricTestRunner.class)
 public class BubbleSummaryNotificationPreferenceControllerTest {
@@ -68,4 +73,20 @@
         String onString = mContext.getString(R.string.notifications_bubble_setting_on_summary);
         assertThat(mController.getSummary()).isEqualTo(onString);
     }
+
+    @Test
+    public void isAvailable_lowRam_returnsUnsupported() {
+        final ShadowActivityManager activityManager =
+                Shadow.extract(mContext.getSystemService(ActivityManager.class));
+        activityManager.setIsLowRamDevice(true);
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
+    public void isAvailable_notLowRam_returnsAvailable() {
+        final ShadowActivityManager activityManager =
+                Shadow.extract(mContext.getSystemService(ActivityManager.class));
+        activityManager.setIsLowRamDevice(false);
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/notification/app/BubblePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/BubblePreferenceControllerTest.java
index afb3d1b..ea963e3 100644
--- a/tests/robotests/src/com/android/settings/notification/app/BubblePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/BubblePreferenceControllerTest.java
@@ -42,6 +42,7 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.ActivityManager;
 import android.app.NotificationChannel;
 import android.app.NotificationManager;
 import android.content.Context;
@@ -67,7 +68,9 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowApplication;
+import org.robolectric.shadows.ShadowActivityManager;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -159,6 +162,18 @@
     }
 
     @Test
+    public void isNotAvailable_ifLowRam() {
+        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+        mController.onResume(appRow, null, null, null, null, null);
+
+        final ShadowActivityManager activityManager =
+                Shadow.extract(mContext.getSystemService(ActivityManager.class));
+        activityManager.setIsLowRamDevice(true);
+        assertFalse(mController.isAvailable());
+    }
+
+
+    @Test
     public void isAvailable_notIfOffGlobally_channel() {
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         NotificationChannel channel = mock(NotificationChannel.class);
@@ -171,6 +186,18 @@
     }
 
     @Test
+    public void isAvailable_ifNotLowRam() {
+        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+        mController.onResume(appRow, null, null, null, null, null);
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+
+        final ShadowActivityManager activityManager =
+                Shadow.extract(mContext.getSystemService(ActivityManager.class));
+        activityManager.setIsLowRamDevice(false);
+        assertTrue(mController.isAvailable());
+    }
+
+    @Test
     public void isAvailable_app_evenIfOffGlobally() {
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         mAppPageController.onResume(appRow, null, null, null, null, null);
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 af7b108..f851c96 100644
--- a/tests/robotests/src/com/android/settings/notification/app/BubbleSummaryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/BubbleSummaryPreferenceControllerTest.java
@@ -23,6 +23,8 @@
 import static android.app.NotificationManager.IMPORTANCE_HIGH;
 import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
 
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
 import static com.android.settings.notification.app.BubblePreferenceController.SYSTEM_WIDE_OFF;
 import static com.android.settings.notification.app.BubblePreferenceController.SYSTEM_WIDE_ON;
 
@@ -37,6 +39,7 @@
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
 
+import android.app.ActivityManager;
 import android.app.NotificationChannel;
 import android.content.Context;
 import android.provider.Settings;
@@ -53,6 +56,8 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowActivityManager;
 import org.robolectric.shadows.ShadowApplication;
 
 @RunWith(RobolectricTestRunner.class)
@@ -140,6 +145,28 @@
     }
 
     @Test
+    public void isAvailable_lowRam_shouldReturnFalse() {
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        mController.onResume(mAppRow, null, null, null, null, null);
+
+        final ShadowActivityManager activityManager =
+                Shadow.extract(mContext.getSystemService(ActivityManager.class));
+        activityManager.setIsLowRamDevice(true);
+        assertFalse(mController.isAvailable());
+    }
+
+    @Test
+    public void isAvailable_notLowRam_shouldReturnTrue() {
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        mController.onResume(mAppRow, null, null, null, null, null);
+
+        final ShadowActivityManager activityManager =
+               Shadow.extract(mContext.getSystemService(ActivityManager.class));
+        activityManager.setIsLowRamDevice(false);
+        assertTrue(mController.isAvailable());
+    }
+
+    @Test
     public void updateState_setsIntent() {
         mAppRow.bubblePreference = BUBBLE_PREFERENCE_ALL;
         mController.onResume(mAppRow, null, null, null, null, null);
diff --git a/tests/robotests/src/com/android/settings/panel/MediaOutputPanelTest.java b/tests/robotests/src/com/android/settings/panel/MediaOutputPanelTest.java
index 2ab428d..207a644 100644
--- a/tests/robotests/src/com/android/settings/panel/MediaOutputPanelTest.java
+++ b/tests/robotests/src/com/android/settings/panel/MediaOutputPanelTest.java
@@ -317,4 +317,20 @@
     public void getViewType_checkType() {
         assertThat(mPanel.getViewType()).isEqualTo(PanelContent.VIEW_TYPE_SLIDER_LARGE_ICON);
     }
+
+    @Test
+    public void getIcon_mediaControllerIsNull_returnNull() {
+        mMediaControllers.clear();
+        mPanel.onStart();
+
+        assertThat(mPanel.getIcon()).isNull();
+    }
+
+    @Test
+    public void getIcon_mediaMetadataIsNull_returnNull() {
+        mPanel.onStart();
+        when(mMediaController.getMetadata()).thenReturn(null);
+
+        assertThat(mPanel.getIcon()).isNull();
+    }
 }
