clean up layout & styling of notification history

Test: manual
Fixes: 157161601
Fixes: 157162238
Fixes: 157160265
Fixes: 157161125
Fixes: 157160611
Fixes: 157158944
Change-Id: I9853426987549898b7996e9db43f7767e4c41641
diff --git a/res/layout/notification_history.xml b/res/layout/notification_history.xml
index 3d6edd5..3cbe036 100644
--- a/res/layout/notification_history.xml
+++ b/res/layout/notification_history.xml
@@ -136,12 +136,12 @@
                     android:layout_width="wrap_content"
                     android:text="@string/notification_history_snooze"
                     android:textColor="?android:attr/textColorPrimary"
-                    android:textAppearance="?android:attr/textAppearanceMedium"
+                    android:textAppearance="@style/TextAppearance.HomepageCardTitle"
                     android:paddingBottom="16dp" />
 
                     <androidx.recyclerview.widget.RecyclerView
                         android:id="@+id/notification_list"
-                        android:elevation="3dp"
+                        android:elevation="1dp"
                         android:background="@drawable/rounded_bg"
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
@@ -161,11 +161,11 @@
                     android:layout_width="wrap_content"
                     android:text="@string/notification_history_dismiss"
                     android:textColor="?android:attr/textColorPrimary"
-                    android:textAppearance="?android:attr/textAppearanceMedium"
+                    android:textAppearance="@style/TextAppearance.HomepageCardTitle"
                     android:paddingBottom="16dp" />
                 <androidx.recyclerview.widget.RecyclerView
                         android:id="@+id/notification_list"
-                        android:elevation="3dp"
+                        android:elevation="1dp"
                         android:background="@drawable/rounded_bg"
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
@@ -183,19 +183,18 @@
                     android:layout_width="wrap_content"
                     android:text="@string/notification_history_today"
                     android:textColor="?android:attr/textColorPrimary"
-                    android:textAppearance="?android:attr/textAppearanceMedium"
+                    android:textAppearance="@style/TextAppearance.HomepageCardTitle"
                     android:paddingBottom="16dp" />
                 <LinearLayout
                     android:id="@+id/apps"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:elevation="3dp"
+                    android:elevation="1dp"
                     android:orientation="vertical"
                     android:background="@drawable/rounded_bg">
                     <!-- app based recycler views added here -->
                 </LinearLayout>
             </LinearLayout>
         </LinearLayout>
-
     </LinearLayout>
 </androidx.core.widget.NestedScrollView>
\ No newline at end of file
diff --git a/res/layout/notification_history_app_layout.xml b/res/layout/notification_history_app_layout.xml
index e8d3316..a1b3be7 100644
--- a/res/layout/notification_history_app_layout.xml
+++ b/res/layout/notification_history_app_layout.xml
@@ -78,6 +78,7 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:clipChildren="true"
+            android:clipToPadding="true"
             android:importantForAccessibility="yes"
             android:scrollbars="none"/>
 
diff --git a/res/layout/notification_history_log_row.xml b/res/layout/notification_history_log_row.xml
index ab5e29d..4f45fec 100644
--- a/res/layout/notification_history_log_row.xml
+++ b/res/layout/notification_history_log_row.xml
@@ -17,12 +17,13 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:minHeight="48dp"
-    android:paddingBottom="6dp"
-    android:paddingTop="6dp"
+    android:paddingTop="16dp"
+    android:paddingBottom="16dp"
     android:paddingStart="?android:attr/listPreferredItemPaddingStart"
     android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
     android:orientation="vertical"
-    android:background="?android:attr/selectableItemBackground">
+    android:background="?android:attr/colorBackgroundFloating"
+    android:foreground="?android:attr/selectableItemBackground">
 
     <LinearLayout
         android:layout_width="match_parent"
@@ -38,7 +39,7 @@
             android:layout_centerVertical="true"
             android:ellipsize="end"
             android:singleLine="true"
-            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification.Title"
+            android:textAppearance="@style/TextAppearance.NotificationHistory.Title"
             android:layout_toStartOf="@id/alerted_icon"
             android:textAlignment="viewStart"/>
 
@@ -64,7 +65,7 @@
             android:layout_centerVertical="true"
             android:ellipsize="end"
             android:singleLine="true"
-            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification"
+            android:textAppearance="@style/TextAppearance.NotificationHistory.AppName"
             android:textAlignment="viewEnd"
         />
     </LinearLayout>
@@ -77,7 +78,7 @@
         android:ellipsize="end"
         android:singleLine="true"
         android:paddingTop="3dp"
-        android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification"
+        android:textAppearance="@style/TextAppearance.NotificationHistory.Text"
         android:textAlignment="viewStart" />
 
 </LinearLayout>
diff --git a/res/layout/notification_sbn_log_row.xml b/res/layout/notification_sbn_log_row.xml
index 049e940..a5b8dd0 100644
--- a/res/layout/notification_sbn_log_row.xml
+++ b/res/layout/notification_sbn_log_row.xml
@@ -16,18 +16,17 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
               android:layout_width="match_parent"
               android:layout_height="wrap_content"
-              android:paddingTop="6dp"
               android:minHeight="48dp"
               android:orientation="vertical"
-              android:background="?android:attr/selectableItemBackground"
->
-    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:background="?android:attr/selectableItemBackground">
+    <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:paddingStart="?android:attr/listPreferredItemPaddingStart"
         android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
-        android:orientation="vertical"
-        >
+        android:paddingTop="16dp"
+        android:paddingBottom="16dp"
+        android:orientation="vertical">
 
         <LinearLayout
             android:layout_width="match_parent"
@@ -56,10 +55,9 @@
                 android:ellipsize="end"
                 android:singleLine="true"
                 android:textColor="?android:attr/textColorPrimary"
-                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:textAppearance="@style/TextAppearance.NotificationHistory.AppName"
                 android:marqueeRepeatLimit = "marquee_forever"
                 android:scrollHorizontally = "true"
-                android:textStyle="bold"
                 android:textAlignment="viewStart" />
 
             <ImageView
@@ -98,7 +96,7 @@
                 android:layout_centerVertical="true"
                 android:ellipsize="end"
                 android:singleLine="true"
-                android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification"
+                android:textAppearance="@style/TextAppearance.NotificationHistory.AppName"
                 android:textAlignment="viewEnd"
                 />
         </LinearLayout>
@@ -107,7 +105,6 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:orientation="vertical"
-            android:layout_marginStart="30dp"
             android:layout_marginBottom="6dp"
             >
 
@@ -118,7 +115,7 @@
                 android:layout_gravity="left|center_vertical"
                 android:ellipsize="end"
                 android:singleLine="true"
-                android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification.Title"
+                android:textAppearance="@style/TextAppearance.NotificationHistory.Title"
                 android:textAlignment="viewStart"
             />
 
@@ -129,7 +126,7 @@
                 android:layout_gravity="left|center_vertical"
                 android:ellipsize="end"
                 android:singleLine="true"
-                android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification"
+                android:textAppearance="@style/TextAppearance.NotificationHistory.Text"
                 android:textAlignment="viewStart"
             />
 
@@ -140,6 +137,5 @@
         android:id="@+id/divider"
         android:layout_width="match_parent"
         android:layout_height="0.5dp"
-        android:layout_marginTop="17dp"
         android:background="@color/material_grey_300" />
 </LinearLayout>
\ No newline at end of file
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 98f340c..2fd0afb 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -334,6 +334,24 @@
         <item name="android:padding">8dp</item>
     </style>
 
+    <style name="TextAppearance.NotificationHistory">
+        <item name="android:textSize">14sp</item>
+    </style>
+
+    <style name="TextAppearance.NotificationHistory.AppName">
+        <item name="android:fontFamily">@*android:string/config_bodyFontFamily</item>
+        <item name="android:textSize">12sp</item>
+    </style>
+
+    <style name="TextAppearance.NotificationHistory.Title">
+        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+    </style>
+
+    <style name="TextAppearance.NotificationHistory.Text">
+        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</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 8b4bc9d..5531f12 100644
--- a/src/com/android/settings/notification/history/NotificationHistoryActivity.java
+++ b/src/com/android/settings/notification/history/NotificationHistoryActivity.java
@@ -20,6 +20,7 @@
 
 import static androidx.core.view.accessibility.AccessibilityEventCompat.TYPE_VIEW_ACCESSIBILITY_FOCUSED;
 
+import android.app.ActionBar;
 import android.app.Activity;
 import android.app.ActivityManager;
 import android.app.INotificationManager;
@@ -27,6 +28,8 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
+import android.content.res.TypedArray;
+import android.graphics.Outline;
 import android.os.Bundle;
 import android.os.RemoteException;
 import android.os.ServiceManager;
@@ -37,9 +40,11 @@
 import android.service.notification.StatusBarNotification;
 import android.util.Log;
 import android.util.Slog;
+import android.util.TypedValue;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.view.ViewOutlineProvider;
 import android.widget.ImageButton;
 import android.widget.ImageView;
 import android.widget.TextView;
@@ -82,6 +87,23 @@
         findViewById(R.id.today_list).setVisibility(
                 notifications.isEmpty() ? View.GONE : View.VISIBLE);
         mCountdownLatch.countDown();
+        mTodayView.setClipToOutline(true);
+        mTodayView.setOutlineProvider(new ViewOutlineProvider() {
+            @Override
+            public void getOutline(View view, Outline outline) {
+                final TypedArray ta = NotificationHistoryActivity.this.obtainStyledAttributes(
+                        new int[]{android.R.attr.dialogCornerRadius});
+                final float dialogCornerRadius = ta.getDimension(0, 0);
+                ta.recycle();
+                TypedValue v = new TypedValue();
+                NotificationHistoryActivity.this.getTheme().resolveAttribute(
+                        com.android.internal.R.attr.listDivider, v, true);
+                int bottomPadding = NotificationHistoryActivity.this.getDrawable(v.resourceId)
+                        .getIntrinsicHeight();
+                outline.setRoundRect(0, 0, view.getWidth(), (view.getHeight() - bottomPadding),
+                        dialogCornerRadius);
+            }
+        });
         // for each package, new header and recycler view
         for (NotificationHistoryPackage nhp : notifications) {
             View viewForPackage = LayoutInflater.from(this)
@@ -138,6 +160,13 @@
         mHistoryOn = findViewById(R.id.history_on);
         mHistoryEmpty = findViewById(R.id.history_on_empty);
         mSwitchBar = findViewById(R.id.switch_bar);
+
+        ActionBar actionBar = getActionBar();
+        if (actionBar != null) {
+            actionBar.setDisplayHomeAsUpEnabled(true);
+            actionBar.setHomeButtonEnabled(true);
+            actionBar.setDisplayShowTitleEnabled(true);
+        }
     }
 
     @Override
@@ -200,6 +229,12 @@
         super.onDestroy();
     }
 
+    @Override
+    public boolean onNavigateUp() {
+        finish();
+        return true;
+    }
+
     private void bindSwitch() {
         if (mSwitchBar != null) {
             mSwitchBar.setSwitchBarText(R.string.notification_history_toggle,
diff --git a/src/com/android/settings/notification/history/NotificationHistoryRecyclerView.java b/src/com/android/settings/notification/history/NotificationHistoryRecyclerView.java
index 6f6deb0..5a6ff7e 100644
--- a/src/com/android/settings/notification/history/NotificationHistoryRecyclerView.java
+++ b/src/com/android/settings/notification/history/NotificationHistoryRecyclerView.java
@@ -2,10 +2,7 @@
 
 import android.annotation.Nullable;
 import android.content.Context;
-import android.graphics.Canvas;
-import android.graphics.Rect;
 import android.util.AttributeSet;
-import android.view.View;
 
 import androidx.recyclerview.widget.DividerItemDecoration;
 import androidx.recyclerview.widget.ItemTouchHelper;
@@ -26,7 +23,8 @@
         this(context, attrs, 0);
     }
 
-    public NotificationHistoryRecyclerView(Context context, @Nullable AttributeSet attrs, int defStyle) {
+    public NotificationHistoryRecyclerView(Context context, @Nullable AttributeSet attrs,
+            int defStyle) {
         super(context, attrs, defStyle);
 
         setLayoutManager(new LinearLayoutManager(getContext()));