Restyle notif history to beter match shade

Test: manual
Fixes: 184695659
Fixes: 183949048
Fixes: 184695652
Fixes: 185271315
Change-Id: I79a937d7d64e6bdf0014ce3f939e6e96690556b9
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index da43847..7f73d2cc 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1296,7 +1296,7 @@
         <activity
             android:name=".notification.history.NotificationHistoryActivity"
             android:exported="true"
-            android:theme="@style/Theme.SubSettings"
+            android:theme="@android:style/Theme.DeviceDefault.DayNight"
             android:label="@string/notification_history_title">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.NOTIFICATION_HISTORY" />
diff --git a/res/drawable/rounded_bg.xml b/res/drawable/rounded_bg.xml
index fcdd761..3e4e91b 100644
--- a/res/drawable/rounded_bg.xml
+++ b/res/drawable/rounded_bg.xml
@@ -15,8 +15,9 @@
      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="?android:attr/colorBackgroundFloating" />
+    <solid android:color="?androidprv:attr/colorSurface" />
     <corners
         android:bottomLeftRadius="?android:attr/dialogCornerRadius"
         android:topLeftRadius="?android:attr/dialogCornerRadius"
diff --git a/res/layout/notification_history.xml b/res/layout/notification_history.xml
index d9fdfaa..fdcecb3 100644
--- a/res/layout/notification_history.xml
+++ b/res/layout/notification_history.xml
@@ -17,6 +17,7 @@
 <androidx.core.widget.NestedScrollView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/scroll"
+    android:background="?android:attr/colorBackgroundFloating"
     android:layout_width="match_parent"
     android:layout_height="match_parent">
 
diff --git a/res/layout/notification_history_app_layout.xml b/res/layout/notification_history_app_layout.xml
index 42edd70..78f2ef4 100644
--- a/res/layout/notification_history_app_layout.xml
+++ b/res/layout/notification_history_app_layout.xml
@@ -24,23 +24,26 @@
         android:id="@+id/app_header"
         android:layout_height="wrap_content"
         android:layout_width="match_parent"
+        android:clipChildren="true"
         android:background="@drawable/button_ripple_radius"
-        android:paddingTop="12dp"
+        android:paddingTop="24dp"
         android:orientation="horizontal"
-        android:paddingBottom="12dp"
+        android:paddingBottom="22dp"
         android:paddingStart="16dp">
         <ImageView
             android:id="@+id/icon"
             android:layout_height="24dp"
             android:layout_width="24dp"
             android:layout_marginTop="12dp"
+            android:layout_marginEnd="14dp"
             android:layout_gravity="center_vertical|start"
             android:scaleType="centerInside"/>
 
         <LinearLayout
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:paddingStart="32dp"
+            android:id="@+id/text"
+            android:layout_toEndOf="@+id/icon"
             android:orientation="vertical">
             <TextView
                 android:id="@+id/label"
@@ -54,18 +57,17 @@
                 android:layout_width="wrap_content"
                 android:layout_gravity="start|center_vertical"
                 android:textDirection="locale"
-                android:paddingTop="8dp"
+                android:paddingTop="4dp"
                 android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification.Title"/>
         </LinearLayout>
-        <ImageView
-            android:id="@+id/expand"
-            android:layout_alignParentEnd="true"
-            android:layout_centerVertical="true"
-            android:layout_height="48dp"
-            android:layout_width="48dp"
-            android:scaleType="center"
-            android:contentDescription="@null"
-            android:src="@*android:drawable/ic_expand_more"/>
+
+        <include layout="@*android:layout/notification_expand_button"
+                 android:layout_width="wrap_content"
+                 android:layout_height="wrap_content"
+                 android:layout_alignParentEnd="true"
+                 android:layout_centerVertical="true"
+        />
+
     </RelativeLayout>
 
     <View
diff --git a/res/layout/notification_history_log_row.xml b/res/layout/notification_history_log_row.xml
index 54a68e7..4a3c44c 100644
--- a/res/layout/notification_history_log_row.xml
+++ b/res/layout/notification_history_log_row.xml
@@ -20,9 +20,8 @@
     android:paddingTop="16dp"
     android:paddingBottom="16dp"
     android:paddingStart="?android:attr/listPreferredItemPaddingStart"
-    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+    android:paddingEnd="16dp"
     android:orientation="vertical"
-    android:background="?android:attr/colorBackgroundFloating"
     android:foreground="?android:attr/selectableItemBackground">
 
     <LinearLayout
@@ -40,7 +39,7 @@
             android:layout_marginStart="32dp"
             android:ellipsize="end"
             android:singleLine="true"
-            android:textAppearance="@style/TextAppearance.NotificationHistory.Title"
+            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification.Title"
             android:layout_toStartOf="@id/alerted_icon"
             android:textAlignment="viewStart"/>
 
@@ -66,7 +65,8 @@
             android:layout_centerVertical="true"
             android:ellipsize="end"
             android:singleLine="true"
-            android:textAppearance="@style/TextAppearance.NotificationHistory.AppName"
+            android:textSize="12sp"
+            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification"
             android:textAlignment="viewEnd"
         />
     </LinearLayout>
@@ -78,9 +78,10 @@
         android:layout_gravity="left|center_vertical"
         android:ellipsize="end"
         android:layout_marginStart="32dp"
-        android:maxLines="3"
-        android:paddingTop="3dp"
-        android:textAppearance="@style/TextAppearance.NotificationHistory.Text"
+        android:maxLines="7"
+        android:paddingTop="4dp"
+        android:textColor="?android:attr/textColorSecondary"
+        android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification"
         android:textAlignment="viewStart" />
 
 </LinearLayout>
diff --git a/res/layout/notification_sbn_log_row.xml b/res/layout/notification_sbn_log_row.xml
index f4ccd71..91d6600 100644
--- a/res/layout/notification_sbn_log_row.xml
+++ b/res/layout/notification_sbn_log_row.xml
@@ -22,8 +22,8 @@
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:paddingStart="?android:attr/listPreferredItemPaddingStart"
-        android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+        android:paddingStart="16dp"
+        android:layout_marginEnd="16dp"
         android:paddingTop="16dp"
         android:paddingBottom="16dp"
         android:orientation="vertical">
@@ -33,16 +33,15 @@
             android:layout_height="wrap_content"
             android:minHeight="@*android:dimen/status_bar_icon_size"
             android:gravity="center_vertical"
-            android:layout_marginBottom="6dp">
+            android:layout_marginBottom="11dp">
 
             <ImageView
                 android:id="@+id/icon"
                 android:layout_height="24dp"
                 android:layout_width="24dp"
-                android:layout_centerVertical="true"
-                android:layout_marginStart="0dp"
-                android:layout_marginEnd="8dp"
                 android:padding="4dp"
+                android:layout_centerVertical="true"
+                android:layout_marginEnd="14dp"
                 android:contentDescription="@null"
                 android:scaleType="centerInside" />
 
@@ -55,7 +54,8 @@
                 android:ellipsize="end"
                 android:singleLine="true"
                 android:textColor="?android:attr/textColorPrimary"
-                android:textAppearance="@style/TextAppearance.NotificationHistory.AppName"
+                android:textSize="12sp"
+                android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification"
                 android:marqueeRepeatLimit = "marquee_forever"
                 android:scrollHorizontally = "true"
                 android:textAlignment="viewStart" />
@@ -89,7 +89,8 @@
                 android:layout_alignParentEnd="true"
                 android:ellipsize="end"
                 android:singleLine="true"
-                android:textAppearance="@style/TextAppearance.NotificationHistory.AppName"
+                android:textSize="12sp"
+                android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification"
                 android:textAlignment="viewEnd"
                 />
         </LinearLayout>
@@ -97,7 +98,7 @@
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_marginStart="32dp"
+            android:paddingStart="38dp"
             android:orientation="vertical"
             android:layout_marginBottom="6dp"
             >
@@ -109,7 +110,7 @@
                 android:layout_gravity="left|center_vertical"
                 android:ellipsize="end"
                 android:singleLine="true"
-                android:textAppearance="@style/TextAppearance.NotificationHistory.Title"
+                android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification.Title"
                 android:textAlignment="viewStart"
             />
 
@@ -119,8 +120,10 @@
                 android:layout_height="wrap_content"
                 android:layout_gravity="left|center_vertical"
                 android:ellipsize="end"
-                android:maxLines="3"
-                android:textAppearance="@style/TextAppearance.NotificationHistory.Text"
+                android:paddingTop="4dp"
+                android:maxLines="7"
+                android:textColor="?android:attr/textColorSecondary"
+                android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification"
                 android:textAlignment="viewStart"
             />
 
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 078c6b6..735cc15 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -341,7 +341,7 @@
         <item name="android:padding">8dp</item>
     </style>
 
-    <style name="TextAppearance.NotificationHistory">
+    <style name="TextAppearance.NotificationHistory" parent="@android:style/Theme.DeviceDefault.DayNight">
         <item name="android:textSize">14sp</item>
     </style>
 
@@ -350,15 +350,6 @@
         <item name="android:textSize">12sp</item>
     </style>
 
-    <style name="TextAppearance.NotificationHistory.Title">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item>
-    </style>
-
-    <style name="TextAppearance.NotificationHistory.Text">
-        <item name="android:fontFamily">@*android:string/config_bodyFontFamily</item>
-        <item name="android:textColor">?android:attr/textColorSecondary</item>
-    </style>
-
     <style name="TextAppearance.ContextualCardDismissalText"
            parent="@*android:style/TextAppearance.DeviceDefault.Body1">
         <item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item>
diff --git a/src/com/android/settings/notification/history/NotificationHistoryActivity.java b/src/com/android/settings/notification/history/NotificationHistoryActivity.java
index 7fb4a48..bbe36d1 100644
--- a/src/com/android/settings/notification/history/NotificationHistoryActivity.java
+++ b/src/com/android/settings/notification/history/NotificationHistoryActivity.java
@@ -20,12 +20,15 @@
 
 import static androidx.core.view.accessibility.AccessibilityEventCompat.TYPE_VIEW_ACCESSIBILITY_FOCUSED;
 
+import android.annotation.AttrRes;
+import android.annotation.ColorInt;
 import android.app.ActionBar;
 import android.app.ActivityManager;
 import android.app.INotificationManager;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.pm.PackageManager;
+import android.content.res.Resources;
 import android.content.res.TypedArray;
 import android.graphics.Outline;
 import android.os.Bundle;
@@ -39,6 +42,7 @@
 import android.util.Log;
 import android.util.Slog;
 import android.util.TypedValue;
+import android.view.ContextThemeWrapper;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -52,6 +56,7 @@
 import com.android.internal.logging.UiEvent;
 import com.android.internal.logging.UiEventLogger;
 import com.android.internal.logging.UiEventLoggerImpl;
+import com.android.internal.widget.NotificationExpandButton;
 import com.android.settings.R;
 import com.android.settings.notification.NotificationBackend;
 import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity;
@@ -148,7 +153,8 @@
         findViewById(R.id.today_list).setVisibility(
                 notifications.isEmpty() ? View.GONE : View.VISIBLE);
         mCountdownLatch.countDown();
-        mTodayView.setClipToOutline(true);
+        View recyclerView = mTodayView.findViewById(R.id.apps);
+        recyclerView.setClipToOutline(true);
         mTodayView.setOutlineProvider(mOutlineProvider);
         // for each package, new header and recycler view
         for (int i = 0, notificationsSize = notifications.size(); i < notificationsSize; i++) {
@@ -159,7 +165,13 @@
             final View container = viewForPackage.findViewById(R.id.notification_list);
             container.setVisibility(View.GONE);
             View header = viewForPackage.findViewById(R.id.app_header);
-            ImageView expand = viewForPackage.findViewById(R.id.expand);
+            NotificationExpandButton expand = viewForPackage.findViewById(
+                    com.android.internal.R.id.expand_button);
+            int textColor = obtainThemeColor(android.R.attr.textColorPrimary);
+            int backgroundColor = obtainThemeColor(android.R.attr.colorBackgroundFloating);
+            expand.setDefaultPillColor(backgroundColor);
+            expand.setDefaultTextColor(textColor);
+            expand.setExpanded(false);
             header.setStateDescription(container.getVisibility() == View.VISIBLE
                     ? getString(R.string.condition_expand_hide)
                     : getString(R.string.condition_expand_show));
@@ -167,9 +179,7 @@
             header.setOnClickListener(v -> {
                 container.setVisibility(container.getVisibility() == View.VISIBLE
                         ? View.GONE : View.VISIBLE);
-                expand.setImageResource(container.getVisibility() == View.VISIBLE
-                        ? R.drawable.ic_expand_less
-                        : com.android.internal.R.drawable.ic_expand_more);
+                expand.setExpanded(container.getVisibility() == View.VISIBLE);
                 header.setStateDescription(container.getVisibility() == View.VISIBLE
                         ? getString(R.string.condition_expand_hide)
                         : getString(R.string.condition_expand_show));
@@ -217,8 +227,9 @@
         mTodayView = findViewById(R.id.apps);
         mSnoozeView = findViewById(R.id.snoozed_list);
         mDismissView = findViewById(R.id.recently_dismissed_list);
-        mDismissView.setClipToOutline(true);
-        mDismissView.setOutlineProvider(mOutlineProvider);
+        View recyclerView = mDismissView.findViewById(R.id.notification_list);
+        recyclerView.setClipToOutline(true);
+        recyclerView.setOutlineProvider(mOutlineProvider);
         mHistoryOff = findViewById(R.id.history_off);
         mHistoryOn = findViewById(R.id.history_on);
         mHistoryEmpty = findViewById(R.id.history_on_empty);
@@ -301,6 +312,14 @@
         return true;
     }
 
+    private @ColorInt int obtainThemeColor(@AttrRes int attrRes) {
+        Resources.Theme theme = new ContextThemeWrapper(this,
+                android.R.style.Theme_DeviceDefault_DayNight).getTheme();
+        try (TypedArray ta = theme.obtainStyledAttributes(new int[]{attrRes})) {
+            return ta == null ? 0 : ta.getColor(0, 0);
+        }
+    }
+
     private void bindSwitch() {
         if (mSwitchBar != null) {
             mSwitchBar.show();