diff --git a/res/values/strings.xml b/res/values/strings.xml
index 341ac90..e7bc9c4 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -8137,8 +8137,12 @@
     <string name="bubbles_feature_education">Some notifications and other content can appear as bubbles on the screen. To open a bubble, tap it. To dismiss it, drag it down the screen.</string>
     <!-- Title for the toggle shown on the app-level bubbles page  [CHAR LIMIT=60] -->
     <string name="bubbles_app_toggle_title">Bubbles</string>
+    <!-- Title on the conversation level screen; links back to the app level setting -->
+    <string name="bubbles_conversation_app_link">All Bubble settings</string>
+    <!-- Title for bubbles option on the conversation level screen -->
+    <string name="bubbles_conversation_toggle_title">Bubble this conversation</string>
     <!-- Summary for bubbles option on the conversation level screen -->
-    <string name="bubbles_conversation_toggle_summary">New messages will appear on screen</string>
+    <string name="bubbles_conversation_toggle_summary">Show floating icon on top of apps</string>
     <!-- Description for the toggle shown on the app-level bubbles page  [CHAR LIMIT=NONE] -->
     <string name="bubbles_app_toggle_summary">Allow <xliff:g id="app_name" example="YouTube">%1$s</xliff:g> to show some notifications as bubbles</string>
     <!-- Title of the dialog shown when the user has disabled bubbles at the feature level but tries to enable it for an app. [CHAR LIMIT=NONE] -->
diff --git a/res/xml/conversation_notification_settings.xml b/res/xml/conversation_notification_settings.xml
index be1c980..c034eb5 100644
--- a/res/xml/conversation_notification_settings.xml
+++ b/res/xml/conversation_notification_settings.xml
@@ -32,13 +32,23 @@
         settings:allowDividerAbove="true"
         settings:allowDividerBelow="true"/>
 
-    <!-- bubbles -->
-    <com.android.settingslib.RestrictedSwitchPreference
-        android:key="bubble_pref"
-        android:title="@string/notification_bubbles_title"
-        android:summary="@string/bubbles_conversation_toggle_summary"
-        android:icon="@drawable/ic_create_bubble"
-        settings:restrictedSwitchSummary="@string/enabled_by_admin" />
+    <PreferenceCategory
+        android:key="bubbles"
+        android:title="@string/notification_bubbles_title">
+
+        <!-- bubbles -->
+        <com.android.settingslib.RestrictedSwitchPreference
+            android:key="bubble_pref"
+            android:title="@string/bubbles_conversation_toggle_title"
+            android:summary="@string/bubbles_conversation_toggle_summary"
+            android:icon="@drawable/ic_create_bubble"
+            settings:restrictedSwitchSummary="@string/enabled_by_admin" />
+
+        <Preference
+            android:key="notification_bubbles"
+            android:title="@string/bubbles_conversation_app_link"
+        />
+    </PreferenceCategory>
 
     <!-- demote -->
     <Preference
diff --git a/src/com/android/settings/notification/app/BubbleCategoryPreferenceController.java b/src/com/android/settings/notification/app/BubbleCategoryPreferenceController.java
new file mode 100644
index 0000000..f8983ff
--- /dev/null
+++ b/src/com/android/settings/notification/app/BubbleCategoryPreferenceController.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.app;
+
+import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
+
+import android.content.Context;
+import android.content.Intent;
+import android.provider.Settings;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+
+public class BubbleCategoryPreferenceController extends NotificationPreferenceController {
+
+    private static final String KEY = "bubbles";
+    @VisibleForTesting
+    static final int ON = 1;
+
+    public BubbleCategoryPreferenceController(Context context) {
+        super(context, null);
+    }
+
+    @Override
+    public boolean isAvailable() {
+        if (!super.isAvailable()) {
+            return false;
+        }
+        return areBubblesEnabled();
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        super.updateState(preference);
+
+        if (mAppRow != null) {
+            final Intent intent = new Intent(Settings.ACTION_APP_NOTIFICATION_BUBBLE_SETTINGS);
+            intent.putExtra(Settings.EXTRA_APP_PACKAGE, mAppRow.pkg);
+            intent.putExtra(Settings.EXTRA_APP_UID, mAppRow.uid);
+            preference.setIntent(intent);
+        }
+    }
+
+
+    private boolean areBubblesEnabled() {
+        return Settings.Global.getInt(mContext.getContentResolver(),
+                NOTIFICATION_BUBBLES, ON) == ON;
+    }
+}
diff --git a/src/com/android/settings/notification/app/BubbleLinkPreferenceController.java b/src/com/android/settings/notification/app/BubbleLinkPreferenceController.java
new file mode 100644
index 0000000..ff27043
--- /dev/null
+++ b/src/com/android/settings/notification/app/BubbleLinkPreferenceController.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.app;
+
+import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
+
+import android.content.Context;
+import android.content.Intent;
+import android.provider.Settings;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+
+public class BubbleLinkPreferenceController extends NotificationPreferenceController {
+
+    private static final String KEY = "notification_bubbles";
+    @VisibleForTesting
+    static final int ON = 1;
+
+    public BubbleLinkPreferenceController(Context context) {
+        super(context, null);
+    }
+
+    @Override
+    public boolean isAvailable() {
+        if (!super.isAvailable()) {
+            return false;
+        }
+        return areBubblesEnabled();
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        super.updateState(preference);
+
+        if (mAppRow != null) {
+            final Intent intent = new Intent(Settings.ACTION_APP_NOTIFICATION_BUBBLE_SETTINGS);
+            intent.putExtra(Settings.EXTRA_APP_PACKAGE, mAppRow.pkg);
+            intent.putExtra(Settings.EXTRA_APP_UID, mAppRow.uid);
+            preference.setIntent(intent);
+        }
+    }
+
+
+    private boolean areBubblesEnabled() {
+        return Settings.Global.getInt(mContext.getContentResolver(),
+                NOTIFICATION_BUBBLES, ON) == ON;
+    }
+}
diff --git a/src/com/android/settings/notification/app/ConversationNotificationSettings.java b/src/com/android/settings/notification/app/ConversationNotificationSettings.java
index 210af20..9ee4a2c 100644
--- a/src/com/android/settings/notification/app/ConversationNotificationSettings.java
+++ b/src/com/android/settings/notification/app/ConversationNotificationSettings.java
@@ -94,6 +94,8 @@
         mControllers.add(new BubblePreferenceController(context, getChildFragmentManager(),
                 mBackend, false /* isAppPage */));
         mControllers.add(new ConversationDemotePreferenceController(context, this, mBackend));
+        mControllers.add(new BubbleCategoryPreferenceController(context));
+        mControllers.add(new BubbleLinkPreferenceController(context));
         return new ArrayList<>(mControllers);
     }
 }
