Include changes that happen when history is open am: 8b031276b7
Change-Id: Ia3745b7d99ef5acae3becb123be35548f8dacda6
This commit is contained in:
@@ -236,39 +236,44 @@ public class NotificationHistoryActivity extends Activity {
|
||||
};
|
||||
|
||||
private final NotificationListenerService mListener = new NotificationListenerService() {
|
||||
private RecyclerView mDismissedRv;
|
||||
private RecyclerView mSnoozedRv;
|
||||
|
||||
@Override
|
||||
public void onListenerConnected() {
|
||||
StatusBarNotification[] snoozed = getSnoozedNotifications();
|
||||
mSnoozedRv = mSnoozeView.findViewById(R.id.notification_list);
|
||||
LinearLayoutManager lm = new LinearLayoutManager(NotificationHistoryActivity.this);
|
||||
mSnoozedRv.setLayoutManager(lm);
|
||||
mSnoozedRv.setAdapter(
|
||||
new NotificationSbnAdapter(NotificationHistoryActivity.this, mPm));
|
||||
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(
|
||||
mSnoozedRv.getContext(), lm.getOrientation());
|
||||
mSnoozedRv.addItemDecoration(dividerItemDecoration);
|
||||
mSnoozedRv.setNestedScrollingEnabled(false);
|
||||
|
||||
if (snoozed == null || snoozed.length == 0) {
|
||||
mSnoozeView.setVisibility(View.GONE);
|
||||
} else {
|
||||
RecyclerView rv = mSnoozeView.findViewById(R.id.notification_list);
|
||||
LinearLayoutManager lm = new LinearLayoutManager(NotificationHistoryActivity.this);
|
||||
rv.setLayoutManager(lm);
|
||||
rv.setAdapter(new NotificationSbnAdapter(NotificationHistoryActivity.this, mPm));
|
||||
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(
|
||||
rv.getContext(), lm.getOrientation());
|
||||
rv.addItemDecoration(dividerItemDecoration);
|
||||
rv.setNestedScrollingEnabled(false);
|
||||
|
||||
((NotificationSbnAdapter) rv.getAdapter()).onRebuildComplete(
|
||||
((NotificationSbnAdapter) mSnoozedRv.getAdapter()).onRebuildComplete(
|
||||
new ArrayList<>(Arrays.asList(snoozed)));
|
||||
}
|
||||
|
||||
try {
|
||||
StatusBarNotification[] dismissed = mNm.getHistoricalNotifications(
|
||||
NotificationHistoryActivity.this.getPackageName(), 6, false);
|
||||
RecyclerView rv = mDismissView.findViewById(R.id.notification_list);
|
||||
LinearLayoutManager lm = new LinearLayoutManager(NotificationHistoryActivity.this);
|
||||
rv.setLayoutManager(lm);
|
||||
rv.setAdapter(new NotificationSbnAdapter(NotificationHistoryActivity.this, mPm));
|
||||
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(
|
||||
rv.getContext(), lm.getOrientation());
|
||||
rv.addItemDecoration(dividerItemDecoration);
|
||||
rv.setNestedScrollingEnabled(false);
|
||||
mDismissedRv = mDismissView.findViewById(R.id.notification_list);
|
||||
LinearLayoutManager dismissLm =
|
||||
new LinearLayoutManager(NotificationHistoryActivity.this);
|
||||
mDismissedRv.setLayoutManager(dismissLm);
|
||||
mDismissedRv.setAdapter(
|
||||
new NotificationSbnAdapter(NotificationHistoryActivity.this, mPm));
|
||||
DividerItemDecoration dismissDivider = new DividerItemDecoration(
|
||||
mDismissedRv.getContext(), dismissLm.getOrientation());
|
||||
mDismissedRv.addItemDecoration(dismissDivider);
|
||||
mDismissedRv.setNestedScrollingEnabled(false);
|
||||
|
||||
((NotificationSbnAdapter) rv.getAdapter()).onRebuildComplete(
|
||||
((NotificationSbnAdapter) mDismissedRv.getAdapter()).onRebuildComplete(
|
||||
new ArrayList<>(Arrays.asList(dismissed)));
|
||||
mDismissView.setVisibility(View.VISIBLE);
|
||||
} catch (Exception e) {
|
||||
@@ -276,5 +281,22 @@ public class NotificationHistoryActivity extends Activity {
|
||||
mDismissView.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNotificationPosted(StatusBarNotification sbn) {
|
||||
// making lint happy
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNotificationRemoved(StatusBarNotification sbn, RankingMap rankingMap,
|
||||
int reason) {
|
||||
if (reason == REASON_SNOOZED) {
|
||||
((NotificationSbnAdapter) mSnoozedRv.getAdapter()).addSbn(sbn);
|
||||
mSnoozeView.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
((NotificationSbnAdapter) mDismissedRv.getAdapter()).addSbn(sbn);
|
||||
mDismissView.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@@ -108,6 +108,14 @@ public class NotificationSbnAdapter extends
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public void addSbn(StatusBarNotification sbn) {
|
||||
if (sbn.isGroup() && sbn.getNotification().isGroupSummary()) {
|
||||
return;
|
||||
}
|
||||
mValues.add(0, sbn);
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
private @NonNull CharSequence loadPackageName(String pkg) {
|
||||
try {
|
||||
ApplicationInfo info = mPm.getApplicationInfo(pkg,
|
||||
|
Reference in New Issue
Block a user