Include changes that happen when history is open am: 8b031276b7

Change-Id: Ia3745b7d99ef5acae3becb123be35548f8dacda6
This commit is contained in:
Automerger Merge Worker
2020-02-26 16:13:15 +00:00
2 changed files with 49 additions and 19 deletions

View File

@@ -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);
}
}
};
}

View File

@@ -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,