Merge "Restyle notif history to beter match shade" into sc-dev

This commit is contained in:
Julia Reynolds
2021-04-14 19:06:33 +00:00
committed by Android (Google) Code Review
8 changed files with 69 additions and 51 deletions

View File

@@ -1296,7 +1296,7 @@
<activity <activity
android:name=".notification.history.NotificationHistoryActivity" android:name=".notification.history.NotificationHistoryActivity"
android:exported="true" android:exported="true"
android:theme="@style/Theme.SubSettings" android:theme="@android:style/Theme.DeviceDefault.DayNight"
android:label="@string/notification_history_title"> android:label="@string/notification_history_title">
<intent-filter android:priority="1"> <intent-filter android:priority="1">
<action android:name="android.settings.NOTIFICATION_HISTORY" /> <action android:name="android.settings.NOTIFICATION_HISTORY" />

View File

@@ -15,8 +15,9 @@
limitations under the License. limitations under the License.
--> -->
<shape xmlns:android="http://schemas.android.com/apk/res/android" <shape xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
android:shape="rectangle"> android:shape="rectangle">
<solid android:color="?android:attr/colorBackgroundFloating" /> <solid android:color="?androidprv:attr/colorSurface" />
<corners <corners
android:bottomLeftRadius="?android:attr/dialogCornerRadius" android:bottomLeftRadius="?android:attr/dialogCornerRadius"
android:topLeftRadius="?android:attr/dialogCornerRadius" android:topLeftRadius="?android:attr/dialogCornerRadius"

View File

@@ -17,6 +17,7 @@
<androidx.core.widget.NestedScrollView <androidx.core.widget.NestedScrollView
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scroll" android:id="@+id/scroll"
android:background="?android:attr/colorBackgroundFloating"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">

View File

@@ -24,23 +24,26 @@
android:id="@+id/app_header" android:id="@+id/app_header"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_width="match_parent" android:layout_width="match_parent"
android:clipChildren="true"
android:background="@drawable/button_ripple_radius" android:background="@drawable/button_ripple_radius"
android:paddingTop="12dp" android:paddingTop="24dp"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingBottom="12dp" android:paddingBottom="22dp"
android:paddingStart="16dp"> android:paddingStart="16dp">
<ImageView <ImageView
android:id="@+id/icon" android:id="@+id/icon"
android:layout_height="24dp" android:layout_height="24dp"
android:layout_width="24dp" android:layout_width="24dp"
android:layout_marginTop="12dp" android:layout_marginTop="12dp"
android:layout_marginEnd="14dp"
android:layout_gravity="center_vertical|start" android:layout_gravity="center_vertical|start"
android:scaleType="centerInside"/> android:scaleType="centerInside"/>
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingStart="32dp" android:id="@+id/text"
android:layout_toEndOf="@+id/icon"
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView
android:id="@+id/label" android:id="@+id/label"
@@ -54,18 +57,17 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_gravity="start|center_vertical" android:layout_gravity="start|center_vertical"
android:textDirection="locale" android:textDirection="locale"
android:paddingTop="8dp" android:paddingTop="4dp"
android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification.Title"/> android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification.Title"/>
</LinearLayout> </LinearLayout>
<ImageView
android:id="@+id/expand" <include layout="@*android:layout/notification_expand_button"
android:layout_alignParentEnd="true" android:layout_width="wrap_content"
android:layout_centerVertical="true" android:layout_height="wrap_content"
android:layout_height="48dp" android:layout_alignParentEnd="true"
android:layout_width="48dp" android:layout_centerVertical="true"
android:scaleType="center" />
android:contentDescription="@null"
android:src="@*android:drawable/ic_expand_more"/>
</RelativeLayout> </RelativeLayout>
<View <View

View File

@@ -20,9 +20,8 @@
android:paddingTop="16dp" android:paddingTop="16dp"
android:paddingBottom="16dp" android:paddingBottom="16dp"
android:paddingStart="?android:attr/listPreferredItemPaddingStart" android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:paddingEnd="16dp"
android:orientation="vertical" android:orientation="vertical"
android:background="?android:attr/colorBackgroundFloating"
android:foreground="?android:attr/selectableItemBackground"> android:foreground="?android:attr/selectableItemBackground">
<LinearLayout <LinearLayout
@@ -40,7 +39,7 @@
android:layout_marginStart="32dp" android:layout_marginStart="32dp"
android:ellipsize="end" android:ellipsize="end"
android:singleLine="true" android:singleLine="true"
android:textAppearance="@style/TextAppearance.NotificationHistory.Title" android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification.Title"
android:layout_toStartOf="@id/alerted_icon" android:layout_toStartOf="@id/alerted_icon"
android:textAlignment="viewStart"/> android:textAlignment="viewStart"/>
@@ -66,7 +65,8 @@
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:ellipsize="end" android:ellipsize="end"
android:singleLine="true" android:singleLine="true"
android:textAppearance="@style/TextAppearance.NotificationHistory.AppName" android:textSize="12sp"
android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification"
android:textAlignment="viewEnd" android:textAlignment="viewEnd"
/> />
</LinearLayout> </LinearLayout>
@@ -78,9 +78,10 @@
android:layout_gravity="left|center_vertical" android:layout_gravity="left|center_vertical"
android:ellipsize="end" android:ellipsize="end"
android:layout_marginStart="32dp" android:layout_marginStart="32dp"
android:maxLines="3" android:maxLines="7"
android:paddingTop="3dp" android:paddingTop="4dp"
android:textAppearance="@style/TextAppearance.NotificationHistory.Text" android:textColor="?android:attr/textColorSecondary"
android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification"
android:textAlignment="viewStart" /> android:textAlignment="viewStart" />
</LinearLayout> </LinearLayout>

View File

@@ -22,8 +22,8 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingStart="?android:attr/listPreferredItemPaddingStart" android:paddingStart="16dp"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:layout_marginEnd="16dp"
android:paddingTop="16dp" android:paddingTop="16dp"
android:paddingBottom="16dp" android:paddingBottom="16dp"
android:orientation="vertical"> android:orientation="vertical">
@@ -33,16 +33,15 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:minHeight="@*android:dimen/status_bar_icon_size" android:minHeight="@*android:dimen/status_bar_icon_size"
android:gravity="center_vertical" android:gravity="center_vertical"
android:layout_marginBottom="6dp"> android:layout_marginBottom="11dp">
<ImageView <ImageView
android:id="@+id/icon" android:id="@+id/icon"
android:layout_height="24dp" android:layout_height="24dp"
android:layout_width="24dp" android:layout_width="24dp"
android:layout_centerVertical="true"
android:layout_marginStart="0dp"
android:layout_marginEnd="8dp"
android:padding="4dp" android:padding="4dp"
android:layout_centerVertical="true"
android:layout_marginEnd="14dp"
android:contentDescription="@null" android:contentDescription="@null"
android:scaleType="centerInside" /> android:scaleType="centerInside" />
@@ -55,7 +54,8 @@
android:ellipsize="end" android:ellipsize="end"
android:singleLine="true" android:singleLine="true"
android:textColor="?android:attr/textColorPrimary" 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:marqueeRepeatLimit = "marquee_forever"
android:scrollHorizontally = "true" android:scrollHorizontally = "true"
android:textAlignment="viewStart" /> android:textAlignment="viewStart" />
@@ -89,7 +89,8 @@
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:ellipsize="end" android:ellipsize="end"
android:singleLine="true" android:singleLine="true"
android:textAppearance="@style/TextAppearance.NotificationHistory.AppName" android:textSize="12sp"
android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification"
android:textAlignment="viewEnd" android:textAlignment="viewEnd"
/> />
</LinearLayout> </LinearLayout>
@@ -97,7 +98,7 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="32dp" android:paddingStart="38dp"
android:orientation="vertical" android:orientation="vertical"
android:layout_marginBottom="6dp" android:layout_marginBottom="6dp"
> >
@@ -109,7 +110,7 @@
android:layout_gravity="left|center_vertical" android:layout_gravity="left|center_vertical"
android:ellipsize="end" android:ellipsize="end"
android:singleLine="true" android:singleLine="true"
android:textAppearance="@style/TextAppearance.NotificationHistory.Title" android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification.Title"
android:textAlignment="viewStart" android:textAlignment="viewStart"
/> />
@@ -119,8 +120,10 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical" android:layout_gravity="left|center_vertical"
android:ellipsize="end" android:ellipsize="end"
android:maxLines="3" android:paddingTop="4dp"
android:textAppearance="@style/TextAppearance.NotificationHistory.Text" android:maxLines="7"
android:textColor="?android:attr/textColorSecondary"
android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification"
android:textAlignment="viewStart" android:textAlignment="viewStart"
/> />

View File

@@ -341,7 +341,7 @@
<item name="android:padding">8dp</item> <item name="android:padding">8dp</item>
</style> </style>
<style name="TextAppearance.NotificationHistory"> <style name="TextAppearance.NotificationHistory" parent="@android:style/Theme.DeviceDefault.DayNight">
<item name="android:textSize">14sp</item> <item name="android:textSize">14sp</item>
</style> </style>
@@ -350,15 +350,6 @@
<item name="android:textSize">12sp</item> <item name="android:textSize">12sp</item>
</style> </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" <style name="TextAppearance.ContextualCardDismissalText"
parent="@*android:style/TextAppearance.DeviceDefault.Body1"> parent="@*android:style/TextAppearance.DeviceDefault.Body1">
<item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item> <item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item>

View File

@@ -20,12 +20,15 @@ import static android.provider.Settings.Secure.NOTIFICATION_HISTORY_ENABLED;
import static androidx.core.view.accessibility.AccessibilityEventCompat.TYPE_VIEW_ACCESSIBILITY_FOCUSED; 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.ActionBar;
import android.app.ActivityManager; import android.app.ActivityManager;
import android.app.INotificationManager; import android.app.INotificationManager;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.content.res.TypedArray; import android.content.res.TypedArray;
import android.graphics.Outline; import android.graphics.Outline;
import android.os.Bundle; import android.os.Bundle;
@@ -39,6 +42,7 @@ import android.service.notification.StatusBarNotification;
import android.util.Log; import android.util.Log;
import android.util.Slog; import android.util.Slog;
import android.util.TypedValue; import android.util.TypedValue;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@@ -52,6 +56,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.android.internal.logging.UiEvent; import com.android.internal.logging.UiEvent;
import com.android.internal.logging.UiEventLogger; import com.android.internal.logging.UiEventLogger;
import com.android.internal.logging.UiEventLoggerImpl; import com.android.internal.logging.UiEventLoggerImpl;
import com.android.internal.widget.NotificationExpandButton;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.notification.NotificationBackend; import com.android.settings.notification.NotificationBackend;
import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity; import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity;
@@ -148,7 +153,8 @@ public class NotificationHistoryActivity extends CollapsingToolbarBaseActivity {
findViewById(R.id.today_list).setVisibility( findViewById(R.id.today_list).setVisibility(
notifications.isEmpty() ? View.GONE : View.VISIBLE); notifications.isEmpty() ? View.GONE : View.VISIBLE);
mCountdownLatch.countDown(); mCountdownLatch.countDown();
mTodayView.setClipToOutline(true); View recyclerView = mTodayView.findViewById(R.id.apps);
recyclerView.setClipToOutline(true);
mTodayView.setOutlineProvider(mOutlineProvider); mTodayView.setOutlineProvider(mOutlineProvider);
// for each package, new header and recycler view // for each package, new header and recycler view
for (int i = 0, notificationsSize = notifications.size(); i < notificationsSize; i++) { for (int i = 0, notificationsSize = notifications.size(); i < notificationsSize; i++) {
@@ -159,7 +165,13 @@ public class NotificationHistoryActivity extends CollapsingToolbarBaseActivity {
final View container = viewForPackage.findViewById(R.id.notification_list); final View container = viewForPackage.findViewById(R.id.notification_list);
container.setVisibility(View.GONE); container.setVisibility(View.GONE);
View header = viewForPackage.findViewById(R.id.app_header); 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 header.setStateDescription(container.getVisibility() == View.VISIBLE
? getString(R.string.condition_expand_hide) ? getString(R.string.condition_expand_hide)
: getString(R.string.condition_expand_show)); : getString(R.string.condition_expand_show));
@@ -167,9 +179,7 @@ public class NotificationHistoryActivity extends CollapsingToolbarBaseActivity {
header.setOnClickListener(v -> { header.setOnClickListener(v -> {
container.setVisibility(container.getVisibility() == View.VISIBLE container.setVisibility(container.getVisibility() == View.VISIBLE
? View.GONE : View.VISIBLE); ? View.GONE : View.VISIBLE);
expand.setImageResource(container.getVisibility() == View.VISIBLE expand.setExpanded(container.getVisibility() == View.VISIBLE);
? R.drawable.ic_expand_less
: com.android.internal.R.drawable.ic_expand_more);
header.setStateDescription(container.getVisibility() == View.VISIBLE header.setStateDescription(container.getVisibility() == View.VISIBLE
? getString(R.string.condition_expand_hide) ? getString(R.string.condition_expand_hide)
: getString(R.string.condition_expand_show)); : getString(R.string.condition_expand_show));
@@ -217,8 +227,9 @@ public class NotificationHistoryActivity extends CollapsingToolbarBaseActivity {
mTodayView = findViewById(R.id.apps); mTodayView = findViewById(R.id.apps);
mSnoozeView = findViewById(R.id.snoozed_list); mSnoozeView = findViewById(R.id.snoozed_list);
mDismissView = findViewById(R.id.recently_dismissed_list); mDismissView = findViewById(R.id.recently_dismissed_list);
mDismissView.setClipToOutline(true); View recyclerView = mDismissView.findViewById(R.id.notification_list);
mDismissView.setOutlineProvider(mOutlineProvider); recyclerView.setClipToOutline(true);
recyclerView.setOutlineProvider(mOutlineProvider);
mHistoryOff = findViewById(R.id.history_off); mHistoryOff = findViewById(R.id.history_off);
mHistoryOn = findViewById(R.id.history_on); mHistoryOn = findViewById(R.id.history_on);
mHistoryEmpty = findViewById(R.id.history_on_empty); mHistoryEmpty = findViewById(R.id.history_on_empty);
@@ -301,6 +312,14 @@ public class NotificationHistoryActivity extends CollapsingToolbarBaseActivity {
return true; 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() { private void bindSwitch() {
if (mSwitchBar != null) { if (mSwitchBar != null) {
mSwitchBar.show(); mSwitchBar.show();