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

Commit 69d210c7 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Some notification history fixes" into rvc-dev

parents 86b50342 ef4c0440
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -76,7 +76,7 @@
        android:layout_height="wrap_content"
        android:layout_gravity="left|center_vertical"
        android:ellipsize="end"
        android:singleLine="true"
        android:maxLines="3"
        android:paddingTop="3dp"
        android:textAppearance="@style/TextAppearance.NotificationHistory.Text"
        android:textAlignment="viewStart" />
+1 −1
Original line number Diff line number Diff line
@@ -125,7 +125,7 @@
                android:layout_height="wrap_content"
                android:layout_gravity="left|center_vertical"
                android:ellipsize="end"
                android:singleLine="true"
                android:maxLines="3"
                android:textAppearance="@style/TextAppearance.NotificationHistory.Text"
                android:textAlignment="viewStart"
            />
+9 −1
Original line number Diff line number Diff line
@@ -140,7 +140,15 @@ public class NotificationHistoryActivity extends Activity {

            final NotificationHistoryRecyclerView rv =
                    viewForPackage.findViewById(R.id.notification_list);
            rv.setAdapter(new NotificationHistoryAdapter(mNm, rv));
            rv.setAdapter(new NotificationHistoryAdapter(mNm, rv,
                    newCount -> {
                        count.setText(getResources().getQuantityString(
                                R.plurals.notification_history_count,
                                newCount, newCount));
                        if (newCount == 0) {
                            viewForPackage.setVisibility(View.GONE);
                        }
                    }));
            ((NotificationHistoryAdapter) rv.getAdapter()).onRebuildComplete(
                    new ArrayList<>(nhp.notifications));

+9 −1
Original line number Diff line number Diff line
@@ -49,13 +49,16 @@ public class NotificationHistoryAdapter extends

    private INotificationManager mNm;
    private List<HistoricalNotification> mValues;
    private OnItemDeletedListener mListener;

    public NotificationHistoryAdapter(INotificationManager nm,
            NotificationHistoryRecyclerView listView) {
            NotificationHistoryRecyclerView listView,
            OnItemDeletedListener listener) {
        mValues = new ArrayList<>();
        setHasStableIds(true);
        listView.setOnItemSwipeDeleteListener(this);
        mNm = nm;
        mListener = listener;
    }

    @Override
@@ -134,6 +137,11 @@ public class NotificationHistoryAdapter extends
                Slog.e(TAG, "Failed to delete item", e);
            }
        }
        mListener.onItemDeleted(mValues.size());
        notifyItemRemoved(position);
    }

    interface OnItemDeletedListener {
        void onItemDeleted(int newCount);
    }
}
+14 −0
Original line number Diff line number Diff line
@@ -20,12 +20,16 @@ import static android.app.Notification.COLOR_DEFAULT;
import static android.content.pm.PackageManager.MATCH_ANY_USER;
import static android.content.pm.PackageManager.NameNotFoundException;
import static android.os.UserHandle.USER_ALL;
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 android.annotation.ColorInt;
import android.annotation.UserIdInt;
import android.app.ActivityManager;
import android.app.Notification;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
@@ -33,6 +37,7 @@ import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
import android.service.notification.StatusBarNotification;
import android.text.TextUtils;
import android.util.Log;
@@ -113,6 +118,15 @@ public class NotificationSbnAdapter extends
            holder.setProfileBadge(mUserBadgeCache.get(userId));
            holder.addOnClick(sbn.getPackageName(), sbn.getUserId(),
                    sbn.getNotification().contentIntent);
            holder.itemView.setOnLongClickListener(v -> {
                Intent intent =  new Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS)
                        .putExtra(EXTRA_APP_PACKAGE, sbn.getPackageName())
                        .putExtra(EXTRA_CHANNEL_ID, sbn.getNotification().getChannelId())
                        .putExtra(EXTRA_CONVERSATION_ID, sbn.getNotification().getShortcutId());
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                holder.itemView.getContext().startActivityAsUser(intent, UserHandle.of(userId));
                return true;
            });
        } else {
            Slog.w(TAG, "null entry in list at position " + position);
        }