Merge "Align history styling with Settings" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
f9b8f5af38
@@ -17,7 +17,6 @@
|
||||
<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">
|
||||
|
||||
@@ -132,7 +131,8 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="16dp">
|
||||
android:paddingTop="16dp"
|
||||
android:paddingBottom="16dp">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/snoozed_list"
|
||||
@@ -145,12 +145,12 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:text="@string/notification_history_snooze"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:layout_marginStart="?android:attr/listPreferredItemPaddingStart"
|
||||
android:textAppearance="@style/TextAppearance.HomepageCardTitle"
|
||||
android:paddingBottom="16dp" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/notification_list"
|
||||
android:background="@drawable/rounded_bg"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:clipChildren="true"
|
||||
@@ -170,10 +170,10 @@
|
||||
android:text="@string/notification_history_dismiss"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textAppearance="@style/TextAppearance.HomepageCardTitle"
|
||||
android:layout_marginStart="?android:attr/listPreferredItemPaddingStart"
|
||||
android:paddingBottom="16dp" />
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/notification_list"
|
||||
android:background="@drawable/rounded_bg"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:clipChildren="true"
|
||||
@@ -191,13 +191,13 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:textAppearance="@style/TextAppearance.HomepageCardTitle"
|
||||
android:layout_marginStart="?android:attr/listPreferredItemPaddingStart"
|
||||
android:paddingBottom="16dp" />
|
||||
<LinearLayout
|
||||
android:id="@+id/apps"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:background="@drawable/rounded_bg">
|
||||
android:orientation="vertical">
|
||||
<!-- app based recycler views added here -->
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
@@ -25,6 +25,8 @@
|
||||
android:id="@+id/app_header"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="?android:attr/listPreferredItemPaddingStart"
|
||||
android:layout_marginEnd="?android:attr/listPreferredItemPaddingEnd"
|
||||
android:paddingTop="20dp"
|
||||
android:paddingBottom="18dp"
|
||||
android:paddingStart="16dp"
|
||||
@@ -84,15 +86,12 @@
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="?android:attr/listDivider" />
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/notification_list_wrapper"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="?android:attr/listPreferredItemPaddingStart"
|
||||
android:layout_marginEnd="?android:attr/listPreferredItemPaddingEnd">
|
||||
|
||||
<com.android.settings.notification.history.NotificationHistoryRecyclerView
|
||||
android:id="@+id/notification_list"
|
||||
|
@@ -17,17 +17,22 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="48dp"
|
||||
android:paddingTop="16dp"
|
||||
android:paddingBottom="16dp"
|
||||
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
|
||||
android:paddingEnd="16dp"
|
||||
android:orientation="vertical"
|
||||
android:foreground="?android:attr/selectableItemBackground">
|
||||
|
||||
<View
|
||||
android:id="@+id/divider"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?android:attr/listDivider" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="@*android:dimen/status_bar_icon_size"
|
||||
android:layout_marginStart="54dp"
|
||||
android:paddingTop="16dp"
|
||||
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
|
||||
android:gravity="center_vertical">
|
||||
|
||||
<TextView
|
||||
@@ -36,7 +41,6 @@
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_marginStart="32dp"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification.Title"
|
||||
@@ -77,11 +81,14 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="left|center_vertical"
|
||||
android:ellipsize="end"
|
||||
android:layout_marginStart="32dp"
|
||||
android:layout_marginStart="54dp"
|
||||
android:maxLines="7"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
|
||||
android:textColor="?android:attr/textColorSecondary"
|
||||
android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Notification"
|
||||
android:textAlignment="viewStart" />
|
||||
android:textAlignment="viewStart"
|
||||
android:paddingBottom="16dp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
@@ -22,8 +22,10 @@
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="?android:attr/listPreferredItemPaddingStart"
|
||||
android:layout_marginEnd="?android:attr/listPreferredItemPaddingEnd"
|
||||
android:paddingStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
|
||||
android:paddingTop="16dp"
|
||||
android:paddingBottom="16dp"
|
||||
android:orientation="vertical">
|
||||
@@ -128,11 +130,5 @@
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
<View
|
||||
android:id="@+id/divider"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?android:attr/listDivider" />
|
||||
</LinearLayout>
|
@@ -17,11 +17,14 @@
|
||||
package com.android.settings.notification.history;
|
||||
|
||||
import static android.provider.Settings.Secure.NOTIFICATION_HISTORY_ENABLED;
|
||||
import static android.view.View.GONE;
|
||||
import static android.view.View.VISIBLE;
|
||||
|
||||
import static androidx.core.view.accessibility.AccessibilityEventCompat.TYPE_VIEW_ACCESSIBILITY_FOCUSED;
|
||||
|
||||
import android.annotation.AttrRes;
|
||||
import android.annotation.ColorInt;
|
||||
import android.annotation.DrawableRes;
|
||||
import android.app.ActionBar;
|
||||
import android.app.ActivityManager;
|
||||
import android.app.INotificationManager;
|
||||
@@ -30,7 +33,6 @@ 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;
|
||||
import android.os.RemoteException;
|
||||
import android.os.ServiceManager;
|
||||
@@ -41,12 +43,10 @@ import android.service.notification.NotificationListenerService;
|
||||
import android.service.notification.StatusBarNotification;
|
||||
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;
|
||||
import android.view.ViewOutlineProvider;
|
||||
import android.widget.CompoundButton.OnCheckedChangeListener;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
@@ -95,22 +95,7 @@ public class NotificationHistoryActivity extends CollapsingToolbarBaseActivity {
|
||||
private PackageManager mPm;
|
||||
private CountDownLatch mCountdownLatch;
|
||||
private Future mCountdownFuture;
|
||||
private final ViewOutlineProvider mOutlineProvider = 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);
|
||||
}
|
||||
};
|
||||
|
||||
private UiEventLogger mUiEventLogger = new UiEventLoggerImpl();
|
||||
|
||||
enum NotificationHistoryEvent implements UiEventLogger.UiEventEnum {
|
||||
@@ -158,20 +143,28 @@ public class NotificationHistoryActivity extends CollapsingToolbarBaseActivity {
|
||||
|
||||
private HistoryLoader.OnHistoryLoaderListener mOnHistoryLoaderListener = notifications -> {
|
||||
findViewById(R.id.today_list).setVisibility(
|
||||
notifications.isEmpty() ? View.GONE : View.VISIBLE);
|
||||
notifications.isEmpty() ? GONE : VISIBLE);
|
||||
mCountdownLatch.countDown();
|
||||
View recyclerView = mTodayView.findViewById(R.id.apps);
|
||||
recyclerView.setClipToOutline(true);
|
||||
mTodayView.setOutlineProvider(mOutlineProvider);
|
||||
mSnoozeView.setOutlineProvider(mOutlineProvider);
|
||||
// for each package, new header and recycler view
|
||||
for (int i = 0, notificationsSize = notifications.size(); i < notificationsSize; i++) {
|
||||
NotificationHistoryPackage nhp = notifications.get(i);
|
||||
View viewForPackage = LayoutInflater.from(this)
|
||||
.inflate(R.layout.notification_history_app_layout, null);
|
||||
|
||||
int cornerType = ROUND_CORNER_CENTER;
|
||||
if (i == (notificationsSize - 1)) {
|
||||
cornerType |= ROUND_CORNER_BOTTOM;
|
||||
}
|
||||
if (i == 0) {
|
||||
cornerType |= ROUND_CORNER_TOP;
|
||||
}
|
||||
int backgroundRes = NotificationHistoryActivity.getRoundCornerDrawableRes(cornerType);
|
||||
viewForPackage.setBackgroundResource(backgroundRes);
|
||||
|
||||
final View container = viewForPackage.findViewById(R.id.notification_list_wrapper);
|
||||
container.setVisibility(View.GONE);
|
||||
container.setVisibility(GONE);
|
||||
View header = viewForPackage.findViewById(R.id.app_header);
|
||||
NotificationExpandButton expand = viewForPackage.findViewById(
|
||||
com.android.internal.R.id.expand_button);
|
||||
@@ -181,19 +174,19 @@ public class NotificationHistoryActivity extends CollapsingToolbarBaseActivity {
|
||||
expand.setDefaultPillColor(pillColor);
|
||||
expand.setDefaultTextColor(textColor);
|
||||
expand.setExpanded(false);
|
||||
header.setStateDescription(container.getVisibility() == View.VISIBLE
|
||||
header.setStateDescription(container.getVisibility() == VISIBLE
|
||||
? getString(R.string.condition_expand_hide)
|
||||
: getString(R.string.condition_expand_show));
|
||||
int finalI = i;
|
||||
header.setOnClickListener(v -> {
|
||||
container.setVisibility(container.getVisibility() == View.VISIBLE
|
||||
? View.GONE : View.VISIBLE);
|
||||
expand.setExpanded(container.getVisibility() == View.VISIBLE);
|
||||
header.setStateDescription(container.getVisibility() == View.VISIBLE
|
||||
container.setVisibility(container.getVisibility() == VISIBLE
|
||||
? GONE : VISIBLE);
|
||||
expand.setExpanded(container.getVisibility() == VISIBLE);
|
||||
header.setStateDescription(container.getVisibility() == VISIBLE
|
||||
? getString(R.string.condition_expand_hide)
|
||||
: getString(R.string.condition_expand_show));
|
||||
header.sendAccessibilityEvent(TYPE_VIEW_ACCESSIBILITY_FOCUSED);
|
||||
mUiEventLogger.logWithPosition((container.getVisibility() == View.VISIBLE)
|
||||
mUiEventLogger.logWithPosition((container.getVisibility() == VISIBLE)
|
||||
? NotificationHistoryEvent.NOTIFICATION_HISTORY_PACKAGE_HISTORY_OPEN
|
||||
: NotificationHistoryEvent.NOTIFICATION_HISTORY_PACKAGE_HISTORY_CLOSE,
|
||||
nhp.uid, nhp.pkgName, finalI);
|
||||
@@ -217,7 +210,7 @@ public class NotificationHistoryActivity extends CollapsingToolbarBaseActivity {
|
||||
count.setText(StringUtil.getIcuPluralsString(this, newCount,
|
||||
R.string.notification_history_count));
|
||||
if (newCount == 0) {
|
||||
viewForPackage.setVisibility(View.GONE);
|
||||
viewForPackage.setVisibility(GONE);
|
||||
}
|
||||
}, mUiEventLogger));
|
||||
((NotificationHistoryAdapter) rv.getAdapter()).onRebuildComplete(
|
||||
@@ -227,11 +220,6 @@ public class NotificationHistoryActivity extends CollapsingToolbarBaseActivity {
|
||||
}
|
||||
};
|
||||
|
||||
private void configureNotificationList(View recyclerView) {
|
||||
recyclerView.setClipToOutline(true);
|
||||
recyclerView.setOutlineProvider(mOutlineProvider);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
@@ -240,8 +228,6 @@ public class NotificationHistoryActivity extends CollapsingToolbarBaseActivity {
|
||||
mTodayView = findViewById(R.id.apps);
|
||||
mSnoozeView = findViewById(R.id.snoozed_list);
|
||||
mDismissView = findViewById(R.id.recently_dismissed_list);
|
||||
configureNotificationList(mDismissView.findViewById(R.id.notification_list));
|
||||
configureNotificationList(mSnoozeView.findViewById(R.id.notification_list));
|
||||
mHistoryOff = findViewById(R.id.history_off);
|
||||
mHistoryOn = findViewById(R.id.history_on);
|
||||
mHistoryEmpty = findViewById(R.id.history_on_empty);
|
||||
@@ -289,11 +275,11 @@ public class NotificationHistoryActivity extends CollapsingToolbarBaseActivity {
|
||||
}
|
||||
ThreadUtils.postOnMainThread(() -> {
|
||||
if (mSwitchBar.isChecked()
|
||||
&& findViewById(R.id.today_list).getVisibility() == View.GONE
|
||||
&& mSnoozeView.getVisibility() == View.GONE
|
||||
&& mDismissView.getVisibility() == View.GONE) {
|
||||
mHistoryOn.setVisibility(View.GONE);
|
||||
mHistoryEmpty.setVisibility(View.VISIBLE);
|
||||
&& findViewById(R.id.today_list).getVisibility() == GONE
|
||||
&& mSnoozeView.getVisibility() == GONE
|
||||
&& mDismissView.getVisibility() == GONE) {
|
||||
mHistoryOn.setVisibility(GONE);
|
||||
mHistoryEmpty.setVisibility(VISIBLE);
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -320,6 +306,33 @@ public class NotificationHistoryActivity extends CollapsingToolbarBaseActivity {
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
public static final int ROUND_CORNER_CENTER = 1;
|
||||
public static final int ROUND_CORNER_TOP = 1 << 1;
|
||||
public static final int ROUND_CORNER_BOTTOM = 1 << 2;
|
||||
|
||||
public static @DrawableRes int getRoundCornerDrawableRes(int cornerType) {
|
||||
|
||||
if ((cornerType & ROUND_CORNER_CENTER) == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (((cornerType & ROUND_CORNER_TOP) != 0) && ((cornerType & ROUND_CORNER_BOTTOM) == 0)) {
|
||||
// the first
|
||||
return com.android.settingslib.widget.theme.R.drawable.settingslib_round_background_top;
|
||||
} else if (((cornerType & ROUND_CORNER_BOTTOM) != 0)
|
||||
&& ((cornerType & ROUND_CORNER_TOP) == 0)) {
|
||||
// the last
|
||||
return com.android.settingslib.widget.theme.R.drawable.settingslib_round_background_bottom;
|
||||
} else if (((cornerType & ROUND_CORNER_TOP) != 0)
|
||||
&& ((cornerType & ROUND_CORNER_BOTTOM) != 0)) {
|
||||
// the only one preference
|
||||
return com.android.settingslib.widget.theme.R.drawable.settingslib_round_background;
|
||||
} else {
|
||||
// in the center
|
||||
return com.android.settingslib.widget.theme.R.drawable.settingslib_round_background_center;
|
||||
}
|
||||
}
|
||||
|
||||
private @ColorInt int obtainThemeColor(@AttrRes int attrRes) {
|
||||
Resources.Theme theme = new ContextThemeWrapper(this,
|
||||
android.R.style.Theme_DeviceDefault_DayNight).getTheme();
|
||||
@@ -345,14 +358,14 @@ public class NotificationHistoryActivity extends CollapsingToolbarBaseActivity {
|
||||
|
||||
private void toggleViews(boolean isChecked) {
|
||||
if (isChecked) {
|
||||
mHistoryOff.setVisibility(View.GONE);
|
||||
mHistoryOn.setVisibility(View.VISIBLE);
|
||||
mHistoryOff.setVisibility(GONE);
|
||||
mHistoryOn.setVisibility(VISIBLE);
|
||||
} else {
|
||||
mHistoryOn.setVisibility(View.GONE);
|
||||
mHistoryOff.setVisibility(View.VISIBLE);
|
||||
mHistoryOn.setVisibility(GONE);
|
||||
mHistoryOff.setVisibility(VISIBLE);
|
||||
mTodayView.removeAllViews();
|
||||
}
|
||||
mHistoryEmpty.setVisibility(View.GONE);
|
||||
mHistoryEmpty.setVisibility(GONE);
|
||||
}
|
||||
|
||||
private final OnCheckedChangeListener mOnSwitchClickListener =
|
||||
@@ -372,13 +385,13 @@ public class NotificationHistoryActivity extends CollapsingToolbarBaseActivity {
|
||||
Log.d(TAG, "onSwitchChange history to " + isChecked);
|
||||
}
|
||||
// Reset UI visibility to ensure it matches real state.
|
||||
mHistoryOn.setVisibility(View.GONE);
|
||||
mHistoryOn.setVisibility(GONE);
|
||||
if (isChecked) {
|
||||
mHistoryEmpty.setVisibility(View.VISIBLE);
|
||||
mHistoryOff.setVisibility(View.GONE);
|
||||
mHistoryEmpty.setVisibility(VISIBLE);
|
||||
mHistoryOff.setVisibility(GONE);
|
||||
} else {
|
||||
mHistoryOff.setVisibility(View.VISIBLE);
|
||||
mHistoryEmpty.setVisibility(View.GONE);
|
||||
mHistoryOff.setVisibility(VISIBLE);
|
||||
mHistoryEmpty.setVisibility(GONE);
|
||||
}
|
||||
mTodayView.removeAllViews();
|
||||
};
|
||||
@@ -410,7 +423,7 @@ public class NotificationHistoryActivity extends CollapsingToolbarBaseActivity {
|
||||
mSnoozedRv.setNestedScrollingEnabled(false);
|
||||
|
||||
if (snoozed == null || snoozed.length == 0) {
|
||||
mSnoozeView.setVisibility(View.GONE);
|
||||
mSnoozeView.setVisibility(GONE);
|
||||
} else {
|
||||
((NotificationSbnAdapter) mSnoozedRv.getAdapter()).onRebuildComplete(
|
||||
new ArrayList<>(Arrays.asList(snoozed)));
|
||||
@@ -426,9 +439,9 @@ public class NotificationHistoryActivity extends CollapsingToolbarBaseActivity {
|
||||
mDismissedRv.setNestedScrollingEnabled(false);
|
||||
|
||||
if (dismissed == null || dismissed.length == 0) {
|
||||
mDismissView.setVisibility(View.GONE);
|
||||
mDismissView.setVisibility(GONE);
|
||||
} else {
|
||||
mDismissView.setVisibility(View.VISIBLE);
|
||||
mDismissView.setVisibility(VISIBLE);
|
||||
((NotificationSbnAdapter) mDismissedRv.getAdapter()).onRebuildComplete(
|
||||
new ArrayList<>(Arrays.asList(dismissed)));
|
||||
}
|
||||
@@ -446,10 +459,10 @@ public class NotificationHistoryActivity extends CollapsingToolbarBaseActivity {
|
||||
int reason) {
|
||||
if (reason == REASON_SNOOZED) {
|
||||
((NotificationSbnAdapter) mSnoozedRv.getAdapter()).addSbn(sbn);
|
||||
mSnoozeView.setVisibility(View.VISIBLE);
|
||||
mSnoozeView.setVisibility(VISIBLE);
|
||||
} else {
|
||||
((NotificationSbnAdapter) mDismissedRv.getAdapter()).addSbn(sbn);
|
||||
mDismissView.setVisibility(View.VISIBLE);
|
||||
mDismissView.setVisibility(VISIBLE);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@@ -9,7 +9,6 @@ import android.view.View;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.DividerItemDecoration;
|
||||
import androidx.recyclerview.widget.ItemTouchHelper;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
@@ -36,7 +35,6 @@ public class NotificationHistoryRecyclerView extends RecyclerView {
|
||||
super(context, attrs, defStyle);
|
||||
|
||||
setLayoutManager(new LinearLayoutManager(getContext()));
|
||||
addItemDecoration(new DividerItemDecoration(getContext(), LinearLayoutManager.VERTICAL));
|
||||
ItemTouchHelper touchHelper = new ItemTouchHelper(
|
||||
new DismissTouchHelper(0, ItemTouchHelper.START | ItemTouchHelper.END));
|
||||
touchHelper.attachToRecyclerView(this);
|
||||
|
@@ -24,6 +24,10 @@ import static android.provider.Settings.EXTRA_APP_PACKAGE;
|
||||
import static android.provider.Settings.EXTRA_CHANNEL_ID;
|
||||
import static android.provider.Settings.EXTRA_CONVERSATION_ID;
|
||||
|
||||
import static com.android.settings.notification.history.NotificationHistoryActivity.ROUND_CORNER_BOTTOM;
|
||||
import static com.android.settings.notification.history.NotificationHistoryActivity.ROUND_CORNER_CENTER;
|
||||
import static com.android.settings.notification.history.NotificationHistoryActivity.ROUND_CORNER_TOP;
|
||||
|
||||
import android.annotation.ColorInt;
|
||||
import android.annotation.UserIdInt;
|
||||
import android.app.ActivityManager;
|
||||
@@ -111,13 +115,22 @@ public class NotificationSbnAdapter extends
|
||||
int position) {
|
||||
final StatusBarNotification sbn = mValues.get(position);
|
||||
if (sbn != null) {
|
||||
int cornerType = ROUND_CORNER_CENTER;
|
||||
if (position == (getItemCount() - 1)) {
|
||||
cornerType |= ROUND_CORNER_BOTTOM;
|
||||
}
|
||||
if (position == 0) {
|
||||
cornerType |= ROUND_CORNER_TOP;
|
||||
}
|
||||
int backgroundRes = NotificationHistoryActivity.getRoundCornerDrawableRes(cornerType);
|
||||
holder.itemView.setBackgroundResource(backgroundRes);
|
||||
|
||||
holder.setIconBackground(loadBackground(sbn));
|
||||
holder.setIcon(loadIcon(sbn));
|
||||
holder.setPackageLabel(loadPackageLabel(sbn.getPackageName()).toString());
|
||||
holder.setTitle(getTitleString(sbn.getNotification()));
|
||||
holder.setSummary(getTextString(mContext, sbn.getNotification()));
|
||||
holder.setPostedTime(sbn.getPostTime());
|
||||
holder.setDividerVisible(position < (mValues.size() -1));
|
||||
int userId = normalizeUserId(sbn);
|
||||
if (!mUserBadgeCache.containsKey(userId)) {
|
||||
Drawable profile = mContext.getPackageManager().getUserBadgeForDensityNoBackground(
|
||||
|
@@ -49,7 +49,6 @@ public class NotificationSbnViewHolder extends RecyclerView.ViewHolder {
|
||||
private final TextView mTitle;
|
||||
private final TextView mSummary;
|
||||
private final ImageView mProfileBadge;
|
||||
private final View mDivider;
|
||||
|
||||
NotificationSbnViewHolder(View itemView) {
|
||||
super(itemView);
|
||||
@@ -59,7 +58,6 @@ public class NotificationSbnViewHolder extends RecyclerView.ViewHolder {
|
||||
mTitle = itemView.findViewById(R.id.title);
|
||||
mSummary = itemView.findViewById(R.id.text);
|
||||
mProfileBadge = itemView.findViewById(R.id.profile_badge);
|
||||
mDivider = itemView.findViewById(R.id.divider);
|
||||
}
|
||||
|
||||
void setSummary(CharSequence summary) {
|
||||
@@ -92,10 +90,6 @@ public class NotificationSbnViewHolder extends RecyclerView.ViewHolder {
|
||||
mProfileBadge.setVisibility(badge != null ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
void setDividerVisible(boolean visible) {
|
||||
mDivider.setVisibility(visible ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
void addOnClick(int position, String pkg, int uid, int userId, PendingIntent pi,
|
||||
InstanceId instanceId,
|
||||
boolean isSnoozed, UiEventLogger uiEventLogger) {
|
||||
|
Reference in New Issue
Block a user