diff --git a/res/values-bs/arrays.xml b/res/values-bs/arrays.xml
index 8a649e6..f17c338 100644
--- a/res/values-bs/arrays.xml
+++ b/res/values-bs/arrays.xml
@@ -362,9 +362,9 @@
     <item msgid="1319652728542138112">"Zadano"</item>
     <item msgid="1016452621833735880">"Sans-serif"</item>
     <item msgid="2496277987934654454">"Sans-serif kondenzovani"</item>
-    <item msgid="7247838127505318669">"Sans-serif fiksnog razmaka"</item>
+    <item msgid="7247838127505318669">"Sans-serif monospace"</item>
     <item msgid="4478414822462359763">"Serif"</item>
-    <item msgid="7502451783483660829">"Serif fiksnog razmaka"</item>
+    <item msgid="7502451783483660829">"Serif monospace"</item>
     <item msgid="639503332147461010">"Casual"</item>
     <item msgid="7967169925231332424">"Kurziv"</item>
     <item msgid="561832997193039673">"Mala početna slova"</item>
diff --git a/res/values-ca/arrays.xml b/res/values-ca/arrays.xml
index 6b8103f..a4454cd 100644
--- a/res/values-ca/arrays.xml
+++ b/res/values-ca/arrays.xml
@@ -380,7 +380,7 @@
     <item msgid="4733815704128258753">"Predeterminat"</item>
     <item msgid="3217099060748617005">"Cap"</item>
     <item msgid="7467615139904599420">"Contorn"</item>
-    <item msgid="5623165557468608975">"Ombra paral·lela"</item>
+    <item msgid="5623165557468608975">"Ombra"</item>
     <item msgid="8088451174058214588">"Elevat"</item>
     <item msgid="3821418743395480313">"Enfonsat"</item>
   </string-array>
diff --git a/res/values-eu/arrays.xml b/res/values-eu/arrays.xml
index ff5120f..b14ea41 100644
--- a/res/values-eu/arrays.xml
+++ b/res/values-eu/arrays.xml
@@ -350,7 +350,7 @@
     <item msgid="2404067308793740341">"Idatzi memorian"</item>
     <item msgid="5832543806893763620">"Aktibatu pantaila"</item>
     <item msgid="5258373962467495905">"Lortu kontuak"</item>
-    <item msgid="334625385979270703">"Abiarazi atzeko planoan"</item>
+    <item msgid="334625385979270703">"Exekutatu atzeko planoan"</item>
     <item msgid="9039213578110332702">"Erabilerraztasun-eginbideen bolumena"</item>
   </string-array>
   <string-array name="long_press_timeout_selector_titles">
@@ -443,7 +443,7 @@
     <item msgid="3396458970745718652">"Garrantzitsua (atzeko planokoa)"</item>
     <item msgid="5214825238247511992">"Babeskopiak"</item>
     <item msgid="311372689168254967">"Handia"</item>
-    <item msgid="7438189122367820362">"Zerbitzua (abian)"</item>
+    <item msgid="7438189122367820362">"Zerbitzua (exekutatzen)"</item>
     <item msgid="918687422516982498">"Zerbitzua (berrabiarazten)"</item>
     <item msgid="6807727069641853029">"Hargailua"</item>
     <item msgid="6782857406100845127">"Hasiera"</item>
diff --git a/res/values-fr/arrays.xml b/res/values-fr/arrays.xml
index cad7583..52b9675 100644
--- a/res/values-fr/arrays.xml
+++ b/res/values-fr/arrays.xml
@@ -485,7 +485,7 @@
     <item msgid="3863157480502955888">"Oui"</item>
   </string-array>
   <string-array name="dark_ui_mode_entries">
-    <item msgid="4047603501491142527">"Sombre"</item>
+    <item msgid="4047603501491142527">"Foncé"</item>
     <item msgid="2291969684082074001">"Clair"</item>
   </string-array>
   <string-array name="autofill_logging_level_entries">
diff --git a/res/values-hi/arrays.xml b/res/values-hi/arrays.xml
index 98deee9..80f3100 100644
--- a/res/values-hi/arrays.xml
+++ b/res/values-hi/arrays.xml
@@ -239,7 +239,7 @@
     <item msgid="4600463921908905030">"मैसेज (एसएमएस) पाएं"</item>
     <item msgid="5958926493289432745">"आपातकालीन मैसेज (एसएमएस) पाएं"</item>
     <item msgid="4945269495221089540">"मल्टीमीडिया मैसेज (एमएमएस) पाएं"</item>
-    <item msgid="5570472453573929087">"WAP पुश पाएं"</item>
+    <item msgid="5570472453573929087">"WAP पुश प्राप्त करें"</item>
     <item msgid="7125408150230860501">"मैसेज (एसएमएस) भेजें"</item>
     <item msgid="7080337936612188061">"ICC मैसेज (एसएमएस) पढ़ें"</item>
     <item msgid="587124103118495063">"ICC मैसेज (एसएमएस) लिखें"</item>
@@ -263,7 +263,7 @@
     <item msgid="2029227495214047094">"सचेत रखें"</item>
     <item msgid="26109888160231211">"जगह की निगरानी करें"</item>
     <item msgid="5753382310468855812">"उच्च पावर वाली जगह की निगरानी करें"</item>
-    <item msgid="3356591542543137332">"उपयोग के आंकड़े पाएं"</item>
+    <item msgid="3356591542543137332">"उपयोग के आंकड़े प्राप्त करें"</item>
     <item msgid="3073734345226842233">"माइक्रोफ़ोन म्यूट/अनम्यूट करें"</item>
     <item msgid="2111767435887685265">"टोस्ट दिखाएं"</item>
     <item msgid="1091168669714823370">"प्रोजेक्ट मीडिया"</item>
@@ -282,7 +282,7 @@
     <item msgid="3591971310048485247">"मेमोरी पढ़ें"</item>
     <item msgid="4041187808621866119">"मेमोरी लिखें"</item>
     <item msgid="6628873315024166197">"स्क्रीन चालू करें"</item>
-    <item msgid="3253368931113490863">"खाते पाएं"</item>
+    <item msgid="3253368931113490863">"खाते प्राप्त करें"</item>
     <item msgid="780392378084812901">"पृष्ठभूमि में चलाएं"</item>
     <item msgid="2629748510881309577">"सुलभता सुविधाओं के लिए आवाज़"</item>
   </string-array>
@@ -330,7 +330,7 @@
     <item msgid="4665183401128289653">"सचेत रखें"</item>
     <item msgid="8584357129746649222">"जगह"</item>
     <item msgid="7669257279311110599">"जगह"</item>
-    <item msgid="3459320345690097795">"उपयोग के आंकड़े पाएं"</item>
+    <item msgid="3459320345690097795">"उपयोग के आंकड़े प्राप्त करें"</item>
     <item msgid="1312534577834048535">"माइक्रोफ़ोन म्यूट/अनम्यूट करें"</item>
     <item msgid="427580389823724225">"टोस्ट दिखाएं"</item>
     <item msgid="4992007785575926253">"प्रोजेक्ट मीडिया"</item>
@@ -349,7 +349,7 @@
     <item msgid="1246296877820358565">"मेमोरी पढ़ें"</item>
     <item msgid="2404067308793740341">"मेमोरी लिखें"</item>
     <item msgid="5832543806893763620">"स्क्रीन चालू करें"</item>
-    <item msgid="5258373962467495905">"खाते पाएं"</item>
+    <item msgid="5258373962467495905">"खाते प्राप्त करें"</item>
     <item msgid="334625385979270703">"पृष्ठभूमि में चलाएं"</item>
     <item msgid="9039213578110332702">"सुलभता सुविधाओं के लिए आवाज़"</item>
   </string-array>
@@ -359,7 +359,7 @@
     <item msgid="2372711992605524591">"ज़्यादा"</item>
   </string-array>
   <string-array name="captioning_typeface_selector_titles">
-    <item msgid="1319652728542138112">"डिफ़ॉल्ट"</item>
+    <item msgid="1319652728542138112">"सामान्य"</item>
     <item msgid="1016452621833735880">"Sans-serif"</item>
     <item msgid="2496277987934654454">"Sans-serif condensed"</item>
     <item msgid="7247838127505318669">"Sans-serif monospace"</item>
diff --git a/res/values-hy/arrays.xml b/res/values-hy/arrays.xml
index 1b35ec4..3037194 100644
--- a/res/values-hy/arrays.xml
+++ b/res/values-hy/arrays.xml
@@ -88,7 +88,7 @@
     <item msgid="8937994881315223448">"Միացված է <xliff:g id="NETWORK_NAME">%1$s</xliff:g>-ին"</item>
     <item msgid="1330262655415760617">"Անջատված"</item>
     <item msgid="7698638434317271902">"Անջատվում է <xliff:g id="NETWORK_NAME">%1$s</xliff:g>-ից…"</item>
-    <item msgid="197508606402264311">"Անջատված է"</item>
+    <item msgid="197508606402264311">"Անջատած է"</item>
     <item msgid="8578370891960825148">"Անհաջող"</item>
     <item msgid="5660739516542454527">"Արգելափակված"</item>
     <item msgid="1805837518286731242">"Վատ ցանցից ժամանակավոր խուսափում"</item>
diff --git a/res/values-ne/arrays.xml b/res/values-ne/arrays.xml
index e6ac03c..bd35c42fc 100644
--- a/res/values-ne/arrays.xml
+++ b/res/values-ne/arrays.xml
@@ -473,7 +473,7 @@
   </string-array>
   <string-array name="wifi_metered_entries">
     <item msgid="5200910605264415911">"स्वतः पत्ता लगाउनुहोस्"</item>
-    <item msgid="8745603368609022803">"सशुल्क वाइफाइका रूपमा लिनुहोस्"</item>
+    <item msgid="8745603368609022803">"मिटर गरिएको रूपमा व्यवहार गर्नुहोस्"</item>
     <item msgid="2266114985518865625">"मिटर नगरिएको रूपमा व्यवहार गर्नुहोस्"</item>
   </string-array>
   <string-array name="wifi_privacy_entries">
diff --git a/res/values-ta/arrays.xml b/res/values-ta/arrays.xml
index fd1ce3e..c293c7d 100644
--- a/res/values-ta/arrays.xml
+++ b/res/values-ta/arrays.xml
@@ -372,7 +372,7 @@
   <string-array name="captioning_font_size_selector_titles">
     <item msgid="4800919809575254054">"மிகச் சிறியது"</item>
     <item msgid="6781094565687692782">"சிறியது"</item>
-    <item msgid="8222123259497646551">"சராசரி"</item>
+    <item msgid="8222123259497646551">"இயல்பானது"</item>
     <item msgid="5813217276778560466">"பெரியது"</item>
     <item msgid="9044232017390975191">"மிகப் பெரியது"</item>
   </string-array>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 97fb4e9..978ee30 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -4487,7 +4487,7 @@
     <string name="default_for_calls_and_sms" msgid="3862322027700754792">"அழைப்புகளுக்கும் மெசேஜூக்கும்"</string>
     <string name="default_for_mobile_data" msgid="955987144209828344">"மொபைல் டேட்டாவுக்கு இயல்பான தேர்வு"</string>
     <string name="mobile_data_active" msgid="5108294051762397700">"மொபைல் டேட்டா ஆனில் உள்ளது"</string>
-    <string name="mobile_data_off" msgid="5831854766113105657">"மொபைல் டேட்டா ஆஃபில் உள்ளது"</string>
+    <string name="mobile_data_off" msgid="5831854766113105657">"மொபைல் டேட்டா ஆஃப் செய்யப்பட்டுள்ளது"</string>
     <string name="subscription_available" msgid="6502502298446954785">"பயன்படுத்துவதற்குத் தயாராக உள்ளது"</string>
     <string name="mobile_network_in_range" msgid="8212440637838603215">"தொடர்பு எல்லையில் உள்ளது"</string>
     <string name="mobile_network_not_in_range" msgid="5287596455212313284">"தொடர்பு எல்லையில் இல்லை"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 3898c55..a009fe1 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -1827,7 +1827,7 @@
     <string name="advanced_settings_summary" msgid="4016682978071086747">"మరిన్ని సెట్టింగ్‌ల ఎంపికలను ప్రారంభించు"</string>
     <string name="application_info_label" msgid="5736524913065714880">"యాప్ సమాచారం"</string>
     <string name="storage_label" msgid="8700867073480107253">"నిల్వ"</string>
-    <string name="auto_launch_label" msgid="2669236885531442195">"డిఫాల్ట్‌గా తెరువు"</string>
+    <string name="auto_launch_label" msgid="2669236885531442195">"డిఫాల్ట్‌గా తెరవడం"</string>
     <string name="auto_launch_label_generic" msgid="3230569852551968694">"డిఫాల్ట్‌లు"</string>
     <string name="screen_compatibility_label" msgid="663250687205465394">"స్క్రీన్ అనుకూలత"</string>
     <string name="permissions_label" msgid="2605296874922726203">"అనుమతులు"</string>
@@ -3672,7 +3672,7 @@
     <string name="slot_number" msgid="3762676044904653577">"(స్లాట్<xliff:g id="SLOT_NUM">%1$d</xliff:g>)"</string>
     <string name="launch_by_default" msgid="1840761193189009248">"డిఫాల్ట్‌గా తెరువు"</string>
     <string name="app_launch_domain_links_title" msgid="1160925981363706090">"లింక్‌లను తెరవడం"</string>
-    <string name="app_launch_open_domain_urls_title" msgid="8914721351596745701">"మద్దతిచ్చే లింక్‌లను తెరవండి"</string>
+    <string name="app_launch_open_domain_urls_title" msgid="8914721351596745701">"మద్దతిచ్చే లింక్‌లను తెరవడం"</string>
     <string name="app_launch_open_domain_urls_summary" msgid="5367573364240712217">"అడగకుండానే తెరవాలి"</string>
     <string name="app_launch_supported_domain_urls_title" msgid="8250695258211477480">"మద్దతిచ్చే లింక్‌లు"</string>
     <string name="app_launch_other_defaults_title" msgid="2516812499807835178">"ఇతర డిఫాల్ట్‌లు"</string>
@@ -3725,7 +3725,7 @@
     <string name="filter_notif_blocked_channels" msgid="5880190882221644289">"వర్గాలు: ఆఫ్ చేయబడినవి"</string>
     <string name="filter_notif_dnd_channels" msgid="1817930848881696728">"వర్గాలు: అంతరాయం కలిగించవద్దు నియమం పాటించనివి"</string>
     <string name="advanced_apps" msgid="4812975097124803873">"అధునాతనం"</string>
-    <string name="configure_apps" msgid="6685680790825882528">"అనువర్తనాలను కాన్ఫిగర్ చేయండి"</string>
+    <string name="configure_apps" msgid="6685680790825882528">"యాప్‌లను కాన్ఫిగర్ చేయండి"</string>
     <string name="unknown_app" msgid="5275921288718717656">"తెలియని యాప్"</string>
     <string name="app_permissions" msgid="5584182129908141622">"అనుమతి మేనేజర్"</string>
     <string name="app_permissions_summary" msgid="5163974162150406324">"యాప్‌లు <xliff:g id="APPS">%1$s</xliff:g>‌ను ఉపయోగిస్తున్నాయి"</string>
@@ -3740,9 +3740,9 @@
       <item quantity="other">మద్దతు ఉన్న లింక్‌లను తెరవగల సామర్థ్యం <xliff:g id="COUNT">%d</xliff:g> అనువర్తనాలకు ఉంది</item>
       <item quantity="one">మద్దతు ఉన్న లింక్‌లను తెరవగల సామర్థ్యం ఒక అనువర్తనానికి ఉంది</item>
     </plurals>
-    <string name="app_link_open_always" msgid="2474058700623948148">"ఈ అనువర్తనంలో తెరుస్తుంది"</string>
-    <string name="app_link_open_ask" msgid="7800878430190575991">"ప్రతిసారి అడుగుతుంది"</string>
-    <string name="app_link_open_never" msgid="3407647600352398543">"ఈ అనువర్తనంలో తెరవదు"</string>
+    <string name="app_link_open_always" msgid="2474058700623948148">"ఈ యాప్‌లో తెరవాలి"</string>
+    <string name="app_link_open_ask" msgid="7800878430190575991">"ప్రతిసారి అడగాలి"</string>
+    <string name="app_link_open_never" msgid="3407647600352398543">"ఈ యాప్‌లో తెరవకూడదు"</string>
     <string name="default_apps_title" msgid="1660450272764331490">"డిఫాల్ట్"</string>
     <string name="default_for_work" msgid="9152194239366247932">"కార్యాలయం కోసం డిఫాల్ట్"</string>
     <string name="assist_and_voice_input_title" msgid="1733165754793221197">"సహాయకం &amp; వాయిస్ ఇన్‌పుట్"</string>
@@ -4071,7 +4071,7 @@
     <string name="data_saver_off" msgid="6892309031162738794">"ఆఫ్‌లో ఉంది"</string>
     <string name="data_saver_switch_title" msgid="836312690356005669">"డేటా సేవర్‌ని ఉపయోగించు"</string>
     <string name="unrestricted_app_title" msgid="4465437191723332066">"అనియంత్రిత డేటా వినియోగం"</string>
-    <string name="unrestricted_app_summary" msgid="6458008993501723912">"డేటా సేవర్ ఆన్‌లో ఉన్నప్పుడు అనియంత్రిత డేటా యాక్సెస్‌ను అనుమతించండి"</string>
+    <string name="unrestricted_app_summary" msgid="6458008993501723912">"డేటా సేవర్‌లో అనియంత్రిత డేటా"</string>
     <string name="home_app" msgid="4066188520886810030">"హోమ్ యాప్"</string>
     <string name="no_default_home" msgid="7184117487704520238">"డిఫాల్ట్ హోమ్ లేదు"</string>
     <string name="lockpattern_settings_require_cred_before_startup" msgid="3832020101401318248">"సురక్షిత ప్రారంభం"</string>
@@ -4240,7 +4240,7 @@
     <string name="oem_lock_info_message" msgid="9218313722236417510">"దయచేసి పరికర రక్షణ ఫీచర్‌ని ప్రారంభించడానికి పరికరాన్ని మళ్లీ ప్రారంభించండి."</string>
     <string name="automatic_storage_manager_freed_bytes" msgid="7517560170441007788">"మొత్తం <xliff:g id="SIZE">%1$s</xliff:g> అందుబాటులో ఉంచబడింది\n\nచివరిగా <xliff:g id="DATE">%2$s</xliff:g>న అమలు చేయబడింది"</string>
     <string name="web_action_enable_title" msgid="4051513950976670853">"తక్షణ యాప్‌లు"</string>
-    <string name="web_action_enable_summary" msgid="3108127559723396382">"లింక్‌లను యాప్‌లలో తెరవండి, వాటిని ఇన్‌స్టాల్ చేయకపోయినా ఫర్వాలేదు"</string>
+    <string name="web_action_enable_summary" msgid="3108127559723396382">"ఏవైనా యాప్‌లను ఇన్‌స్టాల్ చేయకపోయినా, వాటిలోనే లింక్‌లను తెరుస్తుంది"</string>
     <string name="web_action_section_title" msgid="7364647086538399136">"తక్షణ యాప్‌లు"</string>
     <string name="instant_apps_settings" msgid="8827777916518348213">"తక్షణ యాప్‌ల ప్రాధాన్యతలు"</string>
     <string name="domain_url_section_title" msgid="7046835219056428883">"ఇన్‌స్టాల్ చేయబడిన యాప్‌లు"</string>
diff --git a/src/com/android/settings/development/BubbleGlobalPreferenceController.java b/src/com/android/settings/development/BubbleGlobalPreferenceController.java
index 86d7be1..2f22d09 100644
--- a/src/com/android/settings/development/BubbleGlobalPreferenceController.java
+++ b/src/com/android/settings/development/BubbleGlobalPreferenceController.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.development;
 
-import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
-
 import android.content.Context;
 import android.provider.Settings;
 
@@ -42,7 +40,7 @@
 
     @Override
     public String getPreferenceKey() {
-        return NOTIFICATION_BUBBLES;
+        return Settings.Global.NOTIFICATION_BUBBLES;
     }
 
     @Override
@@ -64,12 +62,12 @@
     }
 
     private boolean isEnabled() {
-        return Settings.Secure.getInt(mContext.getContentResolver(),
-                NOTIFICATION_BUBBLES, OFF) == ON;
+        return Settings.Global.getInt(mContext.getContentResolver(),
+                Settings.Global.NOTIFICATION_BUBBLES, OFF) == ON;
     }
 
     private void writeSetting(boolean isEnabled) {
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                NOTIFICATION_BUBBLES, isEnabled ? ON : OFF);
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.NOTIFICATION_BUBBLES, isEnabled ? ON : OFF);
     }
 }
diff --git a/src/com/android/settings/notification/BubblePreferenceController.java b/src/com/android/settings/notification/BubblePreferenceController.java
index b68f11d..b57a911 100644
--- a/src/com/android/settings/notification/BubblePreferenceController.java
+++ b/src/com/android/settings/notification/BubblePreferenceController.java
@@ -16,7 +16,7 @@
 
 package com.android.settings.notification;
 
-import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
+import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
 
 import android.annotation.Nullable;
 import android.content.Context;
@@ -113,7 +113,7 @@
     }
 
     private boolean isGloballyEnabled() {
-        return Settings.Secure.getInt(mContext.getContentResolver(),
+        return Settings.Global.getInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, SYSTEM_WIDE_OFF) == SYSTEM_WIDE_ON;
     }
 
@@ -124,7 +124,7 @@
         backend.setAllowBubbles(pkg, uid, false);
         // changing the global settings will cause the observer on the host page to reload
         // correct preference state
-        Settings.Secure.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, SYSTEM_WIDE_OFF);
     }
 
@@ -134,7 +134,7 @@
         backend.setAllowBubbles(pkg, uid, true);
         // changing the global settings will cause the observer on the host page to reload
         // correct preference state
-        Settings.Secure.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
     }
 }
diff --git a/src/com/android/settings/notification/BubbleSummaryPreferenceController.java b/src/com/android/settings/notification/BubbleSummaryPreferenceController.java
index b1632c4..cc687cf 100644
--- a/src/com/android/settings/notification/BubbleSummaryPreferenceController.java
+++ b/src/com/android/settings/notification/BubbleSummaryPreferenceController.java
@@ -16,7 +16,7 @@
 
 package com.android.settings.notification;
 
-import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
+import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
 
 import android.app.settings.SettingsEnums;
 import android.content.Context;
@@ -100,7 +100,7 @@
     }
 
     private boolean isGloballyEnabled() {
-        return Settings.Secure.getInt(mContext.getContentResolver(),
+        return Settings.Global.getInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, SYSTEM_WIDE_OFF) == SYSTEM_WIDE_ON;
     }
 }
diff --git a/src/com/android/settings/notification/GentleNotificationsPreferenceController.java b/src/com/android/settings/notification/GentleNotificationsPreferenceController.java
index ea16e72..67a4707 100644
--- a/src/com/android/settings/notification/GentleNotificationsPreferenceController.java
+++ b/src/com/android/settings/notification/GentleNotificationsPreferenceController.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.notification;
 
-import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
-
 import android.content.Context;
 import android.provider.Settings;
 
diff --git a/src/com/android/settings/notification/GlobalBubblePermissionObserverMixin.java b/src/com/android/settings/notification/GlobalBubblePermissionObserverMixin.java
index 398931d..0118a95 100644
--- a/src/com/android/settings/notification/GlobalBubblePermissionObserverMixin.java
+++ b/src/com/android/settings/notification/GlobalBubblePermissionObserverMixin.java
@@ -47,8 +47,8 @@
 
     public void onStart() {
         mContext.getContentResolver().registerContentObserver(
-                Settings.Secure.getUriFor(
-                        Settings.Secure.NOTIFICATION_BUBBLES),
+                Settings.Global.getUriFor(
+                        Settings.Global.NOTIFICATION_BUBBLES),
                 false /* notifyForDescendants */,
                 this /* observer */);
     }
diff --git a/tests/robotests/src/com/android/settings/development/BubbleGlobalPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BubbleGlobalPreferenceControllerTest.java
index 11ca63f..9e52a88 100644
--- a/tests/robotests/src/com/android/settings/development/BubbleGlobalPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/BubbleGlobalPreferenceControllerTest.java
@@ -16,7 +16,7 @@
 
 package com.android.settings.development;
 
-import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
+import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
 
 import static com.android.settings.development.BubbleGlobalPreferenceController.OFF;
 import static com.android.settings.development.BubbleGlobalPreferenceController.ON;
@@ -77,7 +77,7 @@
 
     @Test
     public void updateState_settingEnabled_preferenceShouldBeChecked() {
-        Settings.Secure.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, 1 /* enabled */);
         mController.updateState(mPreference);
 
@@ -86,7 +86,7 @@
 
     @Test
     public void updateState_settingReset_defaultDisabled_preferenceShouldNotBeChecked() {
-        Settings.Secure.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, 0 /* enabled */);
         mController.updateState(mPreference);
 
@@ -104,7 +104,7 @@
     }
 
     private boolean isSettingEnabled() {
-        return Settings.Secure.getInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
+        return Settings.Global.getInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
                 OFF /* default off */) == ON;
     }
 
diff --git a/tests/robotests/src/com/android/settings/notification/BubblePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/BubblePreferenceControllerTest.java
index aafefb51..470cc27 100644
--- a/tests/robotests/src/com/android/settings/notification/BubblePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/BubblePreferenceControllerTest.java
@@ -20,7 +20,7 @@
 import static android.app.NotificationManager.IMPORTANCE_HIGH;
 import static android.app.NotificationManager.IMPORTANCE_LOW;
 import static android.app.NotificationManager.IMPORTANCE_NONE;
-import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
+import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
 
 import static com.android.settings.notification.BubblePreferenceController.SYSTEM_WIDE_OFF;
 import static com.android.settings.notification.BubblePreferenceController.SYSTEM_WIDE_ON;
@@ -103,7 +103,7 @@
 
     @Test
     public void testIsAvailable_notIfAppBlocked() {
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.banned = true;
         mController.onResume(appRow, mock(NotificationChannel.class), null, null);
@@ -112,7 +112,7 @@
 
     @Test
     public void testIsAvailable_notIfChannelBlocked() {
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        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_NONE);
@@ -122,7 +122,7 @@
 
     @Test
     public void testIsAvailable_channel_notIfAppOff() {
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.allowBubbles = false;
         NotificationChannel channel = mock(NotificationChannel.class);
@@ -136,7 +136,7 @@
     public void testIsNotAvailable_ifOffGlobally_app() {
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         mController.onResume(appRow, null, null, null);
-        Settings.Secure.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, SYSTEM_WIDE_OFF);
 
         assertFalse(mController.isAvailable());
@@ -148,7 +148,7 @@
         NotificationChannel channel = mock(NotificationChannel.class);
         when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
         mController.onResume(appRow, channel, null, null);
-        Settings.Secure.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, SYSTEM_WIDE_OFF);
 
         assertFalse(mController.isAvailable());
@@ -158,7 +158,7 @@
     public void testIsAvailable_app_evenIfOffGlobally() {
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         mAppPageController.onResume(appRow, null, null, null);
-        Settings.Secure.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, SYSTEM_WIDE_OFF);
 
         assertTrue(mAppPageController.isAvailable());
@@ -168,7 +168,7 @@
     public void testIsAvailable_app() {
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         mController.onResume(appRow, null, null, null);
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
 
         assertTrue(mController.isAvailable());
     }
@@ -181,7 +181,7 @@
         when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
         when(channel.getId()).thenReturn(DEFAULT_CHANNEL_ID);
         mController.onResume(appRow, channel, null, null);
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
 
         assertTrue(mController.isAvailable());
     }
@@ -193,7 +193,7 @@
         NotificationChannel channel = mock(NotificationChannel.class);
         when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
         mController.onResume(appRow, channel, null, null);
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
 
         assertTrue(mController.isAvailable());
     }
@@ -205,7 +205,7 @@
         NotificationChannel channel = mock(NotificationChannel.class);
         when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
         mController.onResume(appRow, channel, null, null);
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
 
         assertFalse(mController.isAvailable());
     }
@@ -225,7 +225,7 @@
 
     @Test
     public void testUpdateState_channelNotBlockable() {
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         NotificationChannel channel = mock(NotificationChannel.class);
         when(channel.isImportanceLockedByCriticalDeviceFunction()).thenReturn(true);
@@ -239,7 +239,7 @@
 
     @Test
     public void testUpdateState_channel() {
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         NotificationChannel channel = mock(NotificationChannel.class);
         when(channel.canBubble()).thenReturn(true);
@@ -259,7 +259,7 @@
 
     @Test
     public void testUpdateState_app() {
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.label = "App!";
         appRow.allowBubbles = true;
@@ -281,7 +281,7 @@
 
     @Test
     public void testUpdateState_app_offGlobally() {
-        Settings.Secure.putInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, SYSTEM_WIDE_OFF);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.label = "App!";
@@ -295,7 +295,7 @@
 
     @Test
     public void testOnPreferenceChange_on_channel() {
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.allowBubbles = true;
         NotificationChannel channel =
@@ -315,7 +315,7 @@
 
     @Test
     public void testOnPreferenceChange_off_channel() {
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.allowBubbles = true;
         NotificationChannel channel =
@@ -335,7 +335,7 @@
 
     @Test
     public void testOnPreferenceChange_on_app() {
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.allowBubbles = false;
         mController.onResume(appRow, null, null, null);
@@ -353,7 +353,7 @@
 
     @Test
     public void testOnPreferenceChange_off_app() {
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.allowBubbles = true;
         mController.onResume(appRow, null, null, null);
@@ -371,7 +371,7 @@
 
     @Test
     public void testOnPreferenceChange_on_app_offGlobally() {
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
                 SYSTEM_WIDE_OFF);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.allowBubbles = false;
diff --git a/tests/robotests/src/com/android/settings/notification/BubbleSummaryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/BubbleSummaryPreferenceControllerTest.java
index 04c8e4e..2710203 100644
--- a/tests/robotests/src/com/android/settings/notification/BubbleSummaryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/BubbleSummaryPreferenceControllerTest.java
@@ -20,7 +20,7 @@
 import static android.app.NotificationManager.IMPORTANCE_HIGH;
 import static android.app.NotificationManager.IMPORTANCE_LOW;
 import static android.app.NotificationManager.IMPORTANCE_NONE;
-import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
+import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
 
 import static com.android.settings.notification.BubbleSummaryPreferenceController.SYSTEM_WIDE_OFF;
 import static com.android.settings.notification.BubbleSummaryPreferenceController.SYSTEM_WIDE_ON;
@@ -98,7 +98,7 @@
         NotificationChannel channel = mock(NotificationChannel.class);
         when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
         mController.onResume(appRow, channel, null, null);
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
                 SYSTEM_WIDE_OFF);
 
         assertFalse(mController.isAvailable());
@@ -108,7 +108,7 @@
     public void testIsAvailable_app() {
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         mController.onResume(appRow, null, null, null);
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
 
         assertTrue(mController.isAvailable());
     }
@@ -117,7 +117,7 @@
     public void testIsNotAvailable_app_globalOff() {
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         mController.onResume(appRow, null, null, null);
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
                 SYSTEM_WIDE_OFF);
 
         assertFalse(mController.isAvailable());
@@ -131,7 +131,7 @@
         when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
         when(channel.getId()).thenReturn(DEFAULT_CHANNEL_ID);
         mController.onResume(appRow, channel, null, null);
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
 
         assertTrue(mController.isAvailable());
     }
@@ -149,18 +149,18 @@
 
     @Test
     public void testGetSummary() {
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.allowBubbles = true;
         mController.onResume(appRow, null, null, null);
 
         assertEquals("On", mController.getSummary());
 
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
                 SYSTEM_WIDE_OFF);
         assertEquals("Off", mController.getSummary());
 
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         appRow.allowBubbles = false;
         mController.onResume(appRow, null, null, null);
 
diff --git a/tests/robotests/src/com/android/settings/notification/GentleNotificationsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/GentleNotificationsPreferenceControllerTest.java
index 4821322..bd01379 100644
--- a/tests/robotests/src/com/android/settings/notification/GentleNotificationsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/GentleNotificationsPreferenceControllerTest.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.notification;
 
-import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
-
 import static com.android.settings.notification.BadgingNotificationPreferenceController.OFF;
 import static com.android.settings.notification.BadgingNotificationPreferenceController.ON;
 
