Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8b031276 authored by Julia Reynolds's avatar Julia Reynolds
Browse files

Include changes that happen when history is open

Test: manual
Fixes: 150202759
Change-Id: Ic05be6c5c85a16567556d3f3902f4d557a8e7c1f
parent 9f6351b5
Loading
Loading
Loading
Loading
+42 −20
Original line number Diff line number Diff line
@@ -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();
            if (snoozed == null || snoozed.length == 0) {
                mSnoozeView.setVisibility(View.GONE);
            } else {
                RecyclerView rv = mSnoozeView.findViewById(R.id.notification_list);
            mSnoozedRv = mSnoozeView.findViewById(R.id.notification_list);
            LinearLayoutManager lm = new LinearLayoutManager(NotificationHistoryActivity.this);
                rv.setLayoutManager(lm);
                rv.setAdapter(new NotificationSbnAdapter(NotificationHistoryActivity.this, mPm));
            mSnoozedRv.setLayoutManager(lm);
            mSnoozedRv.setAdapter(
                    new NotificationSbnAdapter(NotificationHistoryActivity.this, mPm));
            DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(
                        rv.getContext(), lm.getOrientation());
                rv.addItemDecoration(dividerItemDecoration);
                rv.setNestedScrollingEnabled(false);
                    mSnoozedRv.getContext(), lm.getOrientation());
            mSnoozedRv.addItemDecoration(dividerItemDecoration);
            mSnoozedRv.setNestedScrollingEnabled(false);

                ((NotificationSbnAdapter) rv.getAdapter()).onRebuildComplete(
            if (snoozed == null || snoozed.length == 0) {
                mSnoozeView.setVisibility(View.GONE);
            } else {
                ((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);

                ((NotificationSbnAdapter) rv.getAdapter()).onRebuildComplete(
                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) 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);
            }
        }
    };
}
+8 −0
Original line number Diff line number Diff line
@@ -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,