Clean up notification settings

- Reorganize settings
- Fix dividers
- Add icons
- Fix titles
- Fix colors
- Fix indentation
- Add summaries

Fixes: 190079590
Test: manual inspection, robotests

Change-Id: Ia03219575d3b0c78f9f9b088aa3cdaa29cfdf412
diff --git a/res/drawable/button_border_selected.xml b/res/drawable/button_border_selected.xml
index 29acbce..5d2388a 100644
--- a/res/drawable/button_border_selected.xml
+++ b/res/drawable/button_border_selected.xml
@@ -15,9 +15,10 @@
   limitations under the License.
   -->
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
+       xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
        android:shape="rectangle">
     <solid
-        android:color="@color/notification_importance_selection_bg" />
+        android:color="?androidprv:attr/colorSurface" />
     <stroke
         android:width="2dp"
         android:color="?android:attr/colorAccent"/>
diff --git a/res/drawable/empty_icon.xml b/res/drawable/empty_icon.xml
index db55af5..8e5fd20 100644
--- a/res/drawable/empty_icon.xml
+++ b/res/drawable/empty_icon.xml
@@ -16,6 +16,6 @@
 
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
         android:shape="rectangle">
-   <size android:width="32dip" android:height="32dip" />
+   <size android:width="24dp" android:height="24dp" />
    <solid android:color="@android:color/transparent" />
 </shape>
diff --git a/res/drawable/ic_demote_conversation.xml b/res/drawable/ic_demote_conversation.xml
index ef25bad..056ff58 100644
--- a/res/drawable/ic_demote_conversation.xml
+++ b/res/drawable/ic_demote_conversation.xml
@@ -17,8 +17,8 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
         android:width="24dp"
         android:height="24dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0"
+        android:viewportWidth="24"
+        android:viewportHeight="24"
         android:tint="?android:attr/colorControlNormal">
     <path
         android:fillColor="@android:color/white"
diff --git a/res/drawable/ic_notification_dot.xml b/res/drawable/ic_notification_dot.xml
new file mode 100644
index 0000000..25fec48
--- /dev/null
+++ b/res/drawable/ic_notification_dot.xml
@@ -0,0 +1,25 @@
+<!--
+    Copyright (C) 2021 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24"
+        android:viewportHeight="24"
+        android:tint="?android:attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M22,6.98V16c0,1.1 -0.9,2 -2,2H6l-4,4V4c0,-1.1 0.9,-2 2,-2h10.1C14.04,2.32 14,2.66 14,3s0.04,0.68 0.1,1H4v12h16V7.9C20.74,7.75 21.42,7.42 22,6.98zM16,3c0,1.66 1.34,3 3,3s3,-1.34 3,-3s-1.34,-3 -3,-3S16,1.34 16,3z"/>
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_notification_min.xml b/res/drawable/ic_notification_min.xml
new file mode 100644
index 0000000..90101dd
--- /dev/null
+++ b/res/drawable/ic_notification_min.xml
@@ -0,0 +1,25 @@
+<!--
+    Copyright (C) 2021 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?android:attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M6,19h12v2H6v-2z"/>
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_notification_peek.xml b/res/drawable/ic_notification_peek.xml
new file mode 100644
index 0000000..51d6948
--- /dev/null
+++ b/res/drawable/ic_notification_peek.xml
@@ -0,0 +1,25 @@
+<!--
+    Copyright (C) 2021 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24"
+        android:viewportHeight="24"
+        android:tint="?android:attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M17,1L7,1c-1.1,0 -2,0.9 -2,2v18c0,1.1 0.9,2 2,2h10c1.1,0 2,-0.9 2,-2L19,3c0,-1.1 -0.9,-2 -2,-2zM17,21L7,21v-1h10v1zM17,18L7,18L7,6h10v12zM17,4L7,4L7,3h10v1zM8,7h8v2L8,9z"/>
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_notification_vis_override.xml b/res/drawable/ic_notification_vis_override.xml
new file mode 100644
index 0000000..067128e
--- /dev/null
+++ b/res/drawable/ic_notification_vis_override.xml
@@ -0,0 +1,25 @@
+<!--
+    Copyright (C) 2021 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?android:attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M17,1.01L7,1c-1.1,0 -2,0.9 -2,2v18c0,1.1 0.9,2 2,2h10c1.1,0 2,-0.9 2,-2L19,3c0,-1.1 -0.9,-1.99 -2,-1.99zM17,21L7,21v-1h10v1zM17,18L7,18L7,6h10v12zM7,4L7,3h10v1L7,4zM14.25,10.5v-0.66c0,-1.13 -1.03,-2.09 -2.25,-2.09s-2.25,0.96 -2.25,2.09v0.66L9,10.5L9,16h6v-5.5h-0.75zM12.75,10.5h-1.5v-0.66c0,-0.29 0.38,-0.59 0.75,-0.59s0.75,0.3 0.75,0.59v0.66z"/>
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_volume_ringer_vibrate.xml b/res/drawable/ic_volume_ringer_vibrate.xml
index 4663b75..cd50414 100644
--- a/res/drawable/ic_volume_ringer_vibrate.xml
+++ b/res/drawable/ic_volume_ringer_vibrate.xml
@@ -17,8 +17,8 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
         android:width="24dp"
         android:height="24dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0"
+        android:viewportWidth="24"
+        android:viewportHeight="24"
         android:tint="?android:attr/colorControlNormal">
     <path
         android:fillColor="#FFFFFF"
diff --git a/res/layout/notif_importance_preference.xml b/res/layout/notif_importance_preference.xml
index 6e4786e..b2a02d1 100644
--- a/res/layout/notif_importance_preference.xml
+++ b/res/layout/notif_importance_preference.xml
@@ -22,7 +22,7 @@
     android:layout_height="wrap_content"
     android:gravity="center"
     android:layout_marginStart="24dp"
-    android:layout_marginEnd="24dp"
+    android:layout_marginEnd="16dp"
     android:paddingTop="@dimen/notification_importance_toggle_marginTop"
     android:paddingBottom="@dimen/notification_importance_toggle_marginTop"
     android:orientation="vertical">
diff --git a/res/layout/notif_priority_conversation_preference.xml b/res/layout/notif_priority_conversation_preference.xml
index c93abf2..4601c00 100644
--- a/res/layout/notif_priority_conversation_preference.xml
+++ b/res/layout/notif_priority_conversation_preference.xml
@@ -21,7 +21,10 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:gravity="center"
-    android:padding="@dimen/notification_importance_toggle_marginTop"
+    android:layout_marginStart="24dp"
+    android:layout_marginEnd="16dp"
+    android:paddingTop="@dimen/notification_importance_toggle_marginTop"
+    android:paddingBottom="@dimen/notification_importance_toggle_marginTop"
     android:orientation="vertical">
 
     <com.android.settings.notification.NotificationButtonRelativeLayout
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 1fba96c..100df2a 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -8797,11 +8797,14 @@
     <string name="recent_notifications_see_all_title">See all from last 7 days</string>
 
     <!-- notification header for general notification settings [CHAR LIMIT=80]-->
-    <string name="general_notification_header">General</string>
+    <string name="general_notification_header">Manage</string>
 
     <!-- notification preference for app specific notification settings [CHAR LIMIT=80]-->
     <string name="app_notification_field">App settings</string>
 
+    <!-- notification preference summary for app specific notification settings [CHAR LIMIT=120]-->
+    <string name="app_notification_field_summary">Control notifications from individual apps</string>
+
     <!-- Configure Notifications: Advanced section header [CHAR LIMIT=30] -->
     <string name="advanced_section_header">General</string>
 
@@ -9251,7 +9254,7 @@
     <!-- Sound & notification > Advanced section: Title for managing notification listeners option. [CHAR LIMIT=60] -->
     <string name="manage_notification_access_title">Device &amp; app notifications</string>
 
-    <string name="manage_notification_access_summary">Control which notifications show on your apps and devices</string>
+    <string name="manage_notification_access_summary">Control which apps and devices can read notifications</string>
 
     <!-- Notification Access section: Indicates that the work profile admin doesn't allow this
          notification listener to access work profile notifications [CHAR LIMIT=100] -->
diff --git a/res/xml/app_notification_settings.xml b/res/xml/app_notification_settings.xml
index 5270b09..5b744fb 100644
--- a/res/xml/app_notification_settings.xml
+++ b/res/xml/app_notification_settings.xml
@@ -58,7 +58,16 @@
         android:key="channels"
         android:layout="@layout/empty_view"
         settings:allowDividerAbove="true"
-        settings:allowDividerBelow="false" />
+        settings:allowDividerBelow="true" />
+
+    <!-- Show badge -->
+    <com.android.settingslib.RestrictedSwitchPreference
+        android:key="badge"
+        android:title="@string/notification_badge_title"
+        settings:useAdditionalSummary="true"
+        android:order="1001"
+        settings:allowDividerAbove="true"
+        settings:restrictedSwitchSummary="@string/enabled_by_admin" />
 
     <!-- Importance toggle -->
     <com.android.settingslib.RestrictedSwitchPreference
@@ -75,26 +84,14 @@
     <com.android.settingslib.RestrictedSwitchPreference
         android:key="bypass_dnd"
         android:title="@string/app_notification_override_dnd_title"
-        android:summary="@string/app_notification_override_dnd_summary"
-        settings:useAdditionalSummary="true"/>
+        android:summary="@string/app_notification_override_dnd_summary"/>
 
-    <PreferenceCategory
-        android:key="app_advanced"
-        android:order="1000">
-        <!-- Show badge -->
-        <com.android.settingslib.RestrictedSwitchPreference
-            android:key="badge"
-            android:title="@string/notification_badge_title"
-            settings:useAdditionalSummary="true"
-            android:order="1001"
-            settings:restrictedSwitchSummary="@string/enabled_by_admin" />
         <Preference
             android:key="app_link"
             android:order="1003"
+            android:icon="@drawable/ic_settings_24dp"
             android:title="@string/app_settings_link" />
 
-    </PreferenceCategory>
-
     <com.android.settingslib.widget.FooterPreference
         android:key="desc"
         android:order="5000" />
diff --git a/res/xml/channel_notification_settings.xml b/res/xml/channel_notification_settings.xml
index 97dcc26..a3895e3 100644
--- a/res/xml/channel_notification_settings.xml
+++ b/res/xml/channel_notification_settings.xml
@@ -34,26 +34,26 @@
         android:key="allow_sound"
         android:order="3"
         android:title="@string/allow_interruption"
+        android:icon="@drawable/empty_icon"
         android:summary="@string/allow_interruption_summary" />
 
     <!-- Importance -->
     <com.android.settings.notification.app.ImportancePreference
         android:key="importance"
         android:order="4"
-        android:title="@string/notification_importance_title"
-        settings:allowDividerBelow="true"/>
+        android:title="@string/notification_importance_title" />
 
     <com.android.settingslib.RestrictedSwitchPreference
         android:key="min_importance"
         android:order="5"
-        settings:allowDividerAbove="true"
+        android:icon="@drawable/ic_notification_min"
         android:title="@string/notification_importance_min_title"
         android:summary="@string/notification_channel_summary_min"/>
 
     <com.android.settingslib.RestrictedSwitchPreference
         android:key="high_importance"
         android:order="6"
-        settings:allowDividerAbove="true"
+        android:icon="@drawable/ic_notification_peek"
         android:title="@string/notification_importance_high_title"
         android:summary="@string/notification_channel_summary_high"/>
 
@@ -62,14 +62,14 @@
         android:order="7"
         android:icon="@drawable/ic_promote_conversation"
         android:title="@string/promote_conversation_title"
-        android:summary="@string/promote_conversation_summary"
-        settings:allowDividerAbove="true"/>
+        android:summary="@string/promote_conversation_summary" />
 
     <!-- Default ringtone -->
     <com.android.settings.notification.app.NotificationSoundPreference
         android:key="ringtone"
         android:title="@string/notification_channel_sound_title"
         android:dialogTitle="@string/notification_channel_sound_title"
+        android:icon="@drawable/ic_notifications"
         android:order="11"
         android:showSilent="true"
         android:showDefault="true"/>
@@ -78,49 +78,47 @@
     <com.android.settingslib.RestrictedSwitchPreference
         android:key="vibrate"
         android:order="12"
-        android:title="@string/notification_vibrate_title"
-        settings:useAdditionalSummary="true" />
+        android:icon="@drawable/ic_volume_ringer_vibrate"
+        android:title="@string/notification_vibrate_title" />
 
     <!-- Visibility Override -->
     <com.android.settings.RestrictedListPreference
         android:key="visibility_override"
         android:order="13"
+        android:icon="@drawable/ic_notification_vis_override"
         android:title="@string/app_notification_visibility_override_title"/>
 
     <!-- Lights -->
     <com.android.settingslib.RestrictedSwitchPreference
         android:key="lights"
         android:order="14"
-        android:title="@string/notification_show_lights_title"
-        settings:useAdditionalSummary="true"/>
+        android:icon="@drawable/ic_lightbulb_outline_24"
+        android:title="@string/notification_show_lights_title" />
 
     <!-- Show badge -->
     <com.android.settingslib.RestrictedSwitchPreference
         android:key="badge"
         android:order="15"
         android:title="@string/notification_channel_badge_title"
-        settings:useAdditionalSummary="true"
+        android:icon="@drawable/ic_notification_dot"
         settings:restrictedSwitchSummary="@string/enabled_by_admin"/>
 
     <!-- Bypass DND -->
     <com.android.settingslib.RestrictedSwitchPreference
         android:key="bypass_dnd"
         android:order="17"
+        android:icon="@drawable/ic_do_not_disturb_on_24dp"
         android:title="@string/app_notification_override_dnd_title"
-        android:summary="@string/app_notification_override_dnd_summary"
-        settings:useAdditionalSummary="true"/>
+        android:summary="@string/app_notification_override_dnd_summary" />
 
     <Preference
         android:key="app_link"
         android:order="18"
         android:title="@string/app_settings_link"
+        android:icon="@drawable/ic_settings_24dp"
         settings:allowDividerAbove="true"/>
 
     <com.android.settingslib.widget.FooterPreference
-        android:key="desc"
-        android:order="100"/>
-
-    <com.android.settingslib.widget.FooterPreference
         android:key="block_desc"
         android:order="110"
         settings:allowDividerAbove="false"/>
diff --git a/res/xml/configure_notification_settings.xml b/res/xml/configure_notification_settings.xml
index cce790b..4e58e66 100644
--- a/res/xml/configure_notification_settings.xml
+++ b/res/xml/configure_notification_settings.xml
@@ -26,6 +26,7 @@
             android:key="all_notifications"
             android:order="10"
             android:title="@string/app_notification_field"
+            android:summary="@string/app_notification_field_summary"
             android:fragment="com.android.settings.applications.manageapplications.ManageApplications"
             settings:searchable="false">
             <extra
@@ -42,13 +43,6 @@
                 android:targetPackage="com.android.settings"
                 android:targetClass="com.android.settings.notification.history.NotificationHistoryActivity" />
         </Preference>
-        <Preference
-            android:key="notification_access"
-            android:order="12"
-            android:title="@string/manage_notification_access_title"
-            android:summary="@string/manage_notification_access_summary"
-            android:fragment="com.android.settings.notification.NotificationAccessSettings"
-            settings:controller="com.android.settings.applications.specialaccess.notificationaccess.NotificationAccessController" />
     </PreferenceCategory>
 
     <PreferenceCategory
@@ -75,6 +69,13 @@
     <PreferenceCategory
         android:key="configure_notifications_lock"
         android:title="@string/lock_screen_notifications_title">
+        <Preference
+            android:key="notification_access"
+            android:order="12"
+            android:title="@string/manage_notification_access_title"
+            android:summary="@string/manage_notification_access_summary"
+            android:fragment="com.android.settings.notification.NotificationAccessSettings"
+            settings:controller="com.android.settings.applications.specialaccess.notificationaccess.NotificationAccessController" />
         <!-- When device is locked -->
         <com.android.settings.RestrictedListPreference
             android:key="lock_screen_notifications"
diff --git a/res/xml/conversation_notification_settings.xml b/res/xml/conversation_notification_settings.xml
index 7e475be..af82140 100644
--- a/res/xml/conversation_notification_settings.xml
+++ b/res/xml/conversation_notification_settings.xml
@@ -32,41 +32,23 @@
         settings:allowDividerAbove="true"
         settings:allowDividerBelow="true"/>
 
-    <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
-        android:key="demote"
-        android:icon="@drawable/ic_demote_conversation"
-        android:title="@string/demote_conversation_title"
-        android:summary="@string/demote_conversation_summary"
-        settings:allowDividerAbove="true"/>
+    <!-- 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" />
 
     <com.android.settingslib.widget.FooterPreference
         android:key="block_desc"
         settings:allowDividerAbove="false"/>
 
-
         <!-- peeking -->
         <com.android.settingslib.RestrictedSwitchPreference
             android:key="high_importance"
             android:title="@string/notification_importance_high_title"
+            android:icon="@drawable/ic_notification_peek"
             android:summary="@string/notification_channel_summary_high"/>
 
         <!-- ringtone -->
@@ -81,27 +63,34 @@
         <!-- Visibility Override -->
         <com.android.settings.RestrictedListPreference
             android:key="visibility_override"
-            android:icon="@drawable/ic_lock_closed"
+            android:icon="@drawable/ic_notification_vis_override"
             android:title="@string/app_notification_visibility_override_title"/>
 
         <!-- Show badge -->
         <com.android.settingslib.RestrictedSwitchPreference
             android:key="badge"
             android:title="@string/notification_channel_badge_title"
-            settings:useAdditionalSummary="true"
+            android:icon="@drawable/ic_notification_dot"
             settings:restrictedSwitchSummary="@string/enabled_by_admin"/>
 
         <!-- Lights -->
         <com.android.settingslib.RestrictedSwitchPreference
             android:key="lights"
-            android:title="@string/notification_show_lights_title"
-            settings:useAdditionalSummary="true"/>
+            android:icon="@drawable/ic_lightbulb_outline_24"
+            android:title="@string/notification_show_lights_title"/>
 
         <!-- Vibration -->
         <com.android.settingslib.RestrictedSwitchPreference
             android:key="vibrate"
             android:icon="@drawable/ic_volume_ringer_vibrate"
-            android:title="@string/notification_vibrate_title"
-            settings:useAdditionalSummary="true" />
+            android:title="@string/notification_vibrate_title" />
+
+    <!-- demote -->
+    <Preference
+        android:key="demote"
+        android:icon="@drawable/ic_demote_conversation"
+        android:title="@string/demote_conversation_title"
+        android:summary="@string/demote_conversation_summary"
+        settings:allowDividerAbove="true"/>
 
 </PreferenceScreen>
diff --git a/src/com/android/settings/notification/app/AppNotificationSettings.java b/src/com/android/settings/notification/app/AppNotificationSettings.java
index d7694d7..ebcd261 100644
--- a/src/com/android/settings/notification/app/AppNotificationSettings.java
+++ b/src/com/android/settings/notification/app/AppNotificationSettings.java
@@ -25,9 +25,11 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceGroup;
 import androidx.preference.PreferenceScreen;
+import androidx.recyclerview.widget.RecyclerView;
 
 import com.android.internal.widget.LockPatternUtils;
 import com.android.settings.R;
+import com.android.settings.Utils;
 import com.android.settingslib.core.AbstractPreferenceController;
 
 import java.util.ArrayList;
@@ -38,35 +40,11 @@
     private static final String TAG = "AppNotificationSettings";
     private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
 
-    private static String KEY_ADVANCED_CATEGORY = "app_advanced";
-    private static String KEY_BADGE = "badge";
-    private static String KEY_APP_LINK = "app_link";
-    private static String[] LEGACY_NON_ADVANCED_KEYS = {KEY_BADGE, KEY_APP_LINK};
-
     @Override
     public int getMetricsCategory() {
         return SettingsEnums.NOTIFICATION_APP_NOTIFICATION;
     }
 
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        final PreferenceScreen screen = getPreferenceScreen();
-        if (mShowLegacyChannelConfig && screen != null) {
-            // if showing legacy settings, pull advanced settings out of the advanced category
-            PreferenceGroup advanced = (PreferenceGroup) findPreference(KEY_ADVANCED_CATEGORY);
-            removePreference(KEY_ADVANCED_CATEGORY);
-            if (advanced != null) {
-                for (String key : LEGACY_NON_ADVANCED_KEYS) {
-                    Preference pref = advanced.findPreference(key);
-                    advanced.removePreference(pref);
-                    if (pref != null) {
-                        screen.addPreference(pref);
-                    }
-                }
-            }
-        }
-    }
 
     @Override
     public void onResume() {
@@ -78,6 +56,8 @@
             return;
         }
 
+        getActivity().setTitle(mAppRow.label);
+
         for (NotificationPreferenceController controller : mControllers) {
             controller.onResume(mAppRow, mChannel, mChannelGroup, null, null, mSuspendedAppsAdmin,
                     null);
diff --git a/src/com/android/settings/notification/app/ChannelListPreferenceController.java b/src/com/android/settings/notification/app/ChannelListPreferenceController.java
index b1109ec..12c15c2 100644
--- a/src/com/android/settings/notification/app/ChannelListPreferenceController.java
+++ b/src/com/android/settings/notification/app/ChannelListPreferenceController.java
@@ -322,7 +322,7 @@
         if (channel.getImportance() > IMPORTANCE_LOW) {
             channelPref.setIcon(getAlertingIcon());
         } else {
-            channelPref.setIcon(null);
+            channelPref.setIcon(R.drawable.empty_icon);
         }
         channelPref.setIconSize(PrimarySwitchPreference.ICON_SIZE_SMALL);
         channelPref.setTitle(channel.getName());
@@ -350,7 +350,7 @@
                     channel.setImportance(importance);
                     channel.lockFields(NotificationChannel.USER_LOCKED_IMPORTANCE);
                     PrimarySwitchPreference channelPref1 = (PrimarySwitchPreference) preference;
-                    channelPref1.setIcon(null);
+                    channelPref1.setIcon(R.drawable.empty_icon);
                     if (channel.getImportance() > IMPORTANCE_LOW) {
                         channelPref1.setIcon(getAlertingIcon());
                     }
diff --git a/src/com/android/settings/notification/app/ChannelNotificationSettings.java b/src/com/android/settings/notification/app/ChannelNotificationSettings.java
index 296863c..a7aba52 100644
--- a/src/com/android/settings/notification/app/ChannelNotificationSettings.java
+++ b/src/com/android/settings/notification/app/ChannelNotificationSettings.java
@@ -66,8 +66,9 @@
             return;
         }
 
-        if (mChannel != null && !TextUtils.isEmpty(mChannel.getConversationId())
-            && !mChannel.isDemoted()) {
+        getActivity().setTitle(mChannel.getName());
+
+        if (!TextUtils.isEmpty(mChannel.getConversationId()) && !mChannel.isDemoted()) {
             Intent intent = new SubSettingLauncher(mContext)
                     .setDestination(ConversationNotificationSettings.class.getName())
                     .setArguments(getArguments())
@@ -128,7 +129,6 @@
                 mDependentFieldListener, mBackend));
         mControllers.add(new VibrationPreferenceController(context, mBackend));
         mControllers.add(new AppLinkPreferenceController(context));
-        mControllers.add(new DescriptionPreferenceController(context));
         mControllers.add(new VisibilityPreferenceController(context, new LockPatternUtils(context),
                 mBackend));
         mControllers.add(new LightsPreferenceController(context, mBackend));
diff --git a/src/com/android/settings/notification/app/ConversationNotificationSettings.java b/src/com/android/settings/notification/app/ConversationNotificationSettings.java
index d712c84..d659c54 100644
--- a/src/com/android/settings/notification/app/ConversationNotificationSettings.java
+++ b/src/com/android/settings/notification/app/ConversationNotificationSettings.java
@@ -41,11 +41,13 @@
     @Override
     public void onResume() {
         super.onResume();
-        if (mUid < 0 || TextUtils.isEmpty(mPkg) || mPkgInfo == null || mChannel == null) {
+        if (mUid < 0 || TextUtils.isEmpty(mPkg) || mPkgInfo == null || mChannel == null
+                || mConversationInfo == null) {
             Log.w(TAG, "Missing package or uid or packageinfo or channel");
             finish();
             return;
         }
+        getActivity().setTitle(mConversationInfo.getLabel());
 
         for (NotificationPreferenceController controller : mControllers) {
             controller.onResume(mAppRow, mChannel, mChannelGroup, mConversationDrawable,
diff --git a/src/com/android/settings/notification/app/HeaderPreferenceController.java b/src/com/android/settings/notification/app/HeaderPreferenceController.java
index 974ac79..7379d55 100644
--- a/src/com/android/settings/notification/app/HeaderPreferenceController.java
+++ b/src/com/android/settings/notification/app/HeaderPreferenceController.java
@@ -84,6 +84,7 @@
             pref = mHeaderController.setIcon(mAppRow.icon)
                     .setLabel(getLabel())
                     .setSummary(getSummary())
+                    .setSecondSummary(getSecondSummary())
                     .setPackageName(mAppRow.pkg)
                     .setUid(mAppRow.uid)
                     .setButtonActions(EntityHeaderController.ActionType.ACTION_NOTIF_PREFERENCE,
@@ -96,25 +97,11 @@
         }
     }
 
-    @Override
-    public CharSequence getSummary() {
+    public CharSequence getLabel() {
         if (mChannel != null && !isDefaultChannel()) {
-            if (mChannelGroup != null
-                    && !TextUtils.isEmpty(mChannelGroup.getName())) {
-                final SpannableStringBuilder summary = new SpannableStringBuilder();
-                BidiFormatter bidi = BidiFormatter.getInstance();
-                summary.append(bidi.unicodeWrap(mAppRow.label.toString()));
-                summary.append(bidi.unicodeWrap(mContext.getText(
-                        R.string.notification_header_divider_symbol_with_spaces)));
-                summary.append(bidi.unicodeWrap(mChannelGroup.getName().toString()));
-                return summary.toString();
-            } else {
-                return mAppRow.label.toString();
-            }
-        } else if (mChannelGroup != null) {
-            return mAppRow.label.toString();
+            return mChannel.getName();
         } else {
-            return "";
+            return mAppRow.label;
         }
     }
 
@@ -123,11 +110,26 @@
         mStarted = true;
     }
 
-    @VisibleForTesting
-    CharSequence getLabel() {
-        return (mChannel != null && !isDefaultChannel()) ? mChannel.getName()
-                : mChannelGroup != null
-                        ? mChannelGroup.getName()
-                        : mAppRow.label;
+    @Override
+    public CharSequence getSummary() {
+        if (mChannel != null) {
+            if (mChannelGroup != null
+                    && !TextUtils.isEmpty(mChannelGroup.getName())) {
+                final SpannableStringBuilder summary = new SpannableStringBuilder();
+                BidiFormatter bidi = BidiFormatter.getInstance();
+                summary.append(bidi.unicodeWrap(mAppRow.label));
+                summary.append(bidi.unicodeWrap(mContext.getText(
+                        R.string.notification_header_divider_symbol_with_spaces)));
+                summary.append(bidi.unicodeWrap(mChannelGroup.getName().toString()));
+                return summary.toString();
+            } else {
+                return mAppRow.label.toString();
+            }
+        }
+        return "";
+    }
+
+    public CharSequence getSecondSummary() {
+        return mChannel == null ? null : mChannel.getDescription();
     }
 }
diff --git a/tests/robotests/src/com/android/settings/notification/app/HeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/HeaderPreferenceControllerTest.java
index 9f90a16..e0a221a 100644
--- a/tests/robotests/src/com/android/settings/notification/app/HeaderPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/HeaderPreferenceControllerTest.java
@@ -118,7 +118,7 @@
 
         NotificationChannelGroup group = new NotificationChannelGroup("id", "name");
         mController.onResume(appRow, null, group, null, null, null, null);
-        assertEquals(group.getName(), mController.getLabel());
+        assertEquals(appRow.label, mController.getLabel());
 
         NotificationChannel channel = new NotificationChannel("cid", "cname", IMPORTANCE_NONE);
         mController.onResume(appRow, channel, group, null, null, null, null);
@@ -155,4 +155,24 @@
         mController.onResume(appRow, defaultChannel, null, null, null, null, null);
         assertEquals("", mController.getSummary());
     }
+
+    @Test
+    public void testGetSecondSummary() {
+        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+        appRow.label = "bananas";
+        mController.onResume(appRow, null, null, null, null, null, null);
+        assertEquals("", mController.getSecondSummary());
+
+        NotificationChannelGroup group = new NotificationChannelGroup("id", "name");
+        mController.onResume(appRow, null, group, null, null, null, null);
+        assertEquals("", mController.getSecondSummary());
+
+        NotificationChannel channel = new NotificationChannel("cid", "cname", IMPORTANCE_NONE);
+        mController.onResume(appRow, channel, group, null, null, null, null);
+        assertEquals("", mController.getSecondSummary());
+
+        channel.setDescription("description");
+        mController.onResume(appRow, channel, group, null, null, null, null);
+        assertEquals("description", mController.getSecondSummary());
+    }
 }