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

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

Merge "Add tap targets to top 2 sections" into rvc-dev

parents 9c32d89a 4eb43058
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -8093,6 +8093,9 @@
    <!-- Notification history screen; content description describing what happens when you tap on a notification history entry [CHAR LIMIT=NONE] -->
    <string name="notification_history_view_settings">view notification settings</string>
    <!-- Notification history screen; content description describing what happens when you tap on a snoozed or recently dismissed notification [CHAR LIMIT=NONE] -->
    <string name="notification_history_open_notification">open notification</string>
    <!-- Configure Notifications: setting title, whether the snooze menu is shown on notifications [CHAR LIMIT=80] -->
    <string name="snooze_options_title">Allow notification snoozing</string>
+4 −4
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@ 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.os.UserHandle.USER_CURRENT;

import android.annotation.ColorInt;
import android.annotation.UserIdInt;
@@ -48,7 +47,6 @@ import com.android.internal.util.ContrastColorUtil;
import com.android.settings.R;

import java.util.ArrayList;
import java.util.Currency;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -92,7 +90,7 @@ public class NotificationSbnAdapter extends
        final StatusBarNotification sbn = mValues.get(position);
        if (sbn != null) {
            holder.setIcon(loadIcon(sbn));
            holder.setPackageName(loadPackageName(sbn.getPackageName()).toString());
            holder.setPackageLabel(loadPackageLabel(sbn.getPackageName()).toString());
            holder.setTitle(getTitleString(sbn.getNotification()));
            holder.setSummary(getTextString(mContext, sbn.getNotification()));
            holder.setPostedTime(sbn.getPostTime());
@@ -103,6 +101,8 @@ public class NotificationSbnAdapter extends
                mUserBadgeCache.put(userId, profile);
            }
            holder.setProfileBadge(mUserBadgeCache.get(userId));
            holder.addOnClick(sbn.getPackageName(), sbn.getUserId(),
                    sbn.getNotification().contentIntent);
        } else {
            Slog.w(TAG, "null entry in list at position " + position);
        }
@@ -133,7 +133,7 @@ public class NotificationSbnAdapter extends
        notifyDataSetChanged();
    }

    private @NonNull CharSequence loadPackageName(String pkg) {
    private @NonNull CharSequence loadPackageLabel(String pkg) {
        try {
            ApplicationInfo info = mPm.getApplicationInfo(pkg,
                    MATCH_ANY_USER);
+39 −2
Original line number Diff line number Diff line
@@ -16,19 +16,26 @@

package com.android.settings.notification.history;

import android.app.PendingIntent;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Icon;
import android.os.UserHandle;
import android.text.TextUtils;
import android.util.Slog;
import android.view.View;
import android.widget.DateTimeView;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.core.view.AccessibilityDelegateCompat;
import androidx.core.view.ViewCompat;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import androidx.recyclerview.widget.RecyclerView;

import com.android.settings.R;

public class NotificationSbnViewHolder extends RecyclerView.ViewHolder {
    private static final String TAG = "SbnViewHolder";

    private final TextView mPkgName;
    private final ImageView mIcon;
@@ -63,7 +70,7 @@ public class NotificationSbnViewHolder extends RecyclerView.ViewHolder {
        mIcon.setImageDrawable(icon);
    }

    void setPackageName(String pkg) {
    void setPackageLabel(String pkg) {
        mPkgName.setText(pkg);
    }

@@ -74,4 +81,34 @@ public class NotificationSbnViewHolder extends RecyclerView.ViewHolder {
    void setProfileBadge(Drawable badge) {
        mProfileBadge.setImageDrawable(badge);
    }

    void addOnClick(String pkg, int userId, PendingIntent pi) {
        itemView.setOnClickListener(v -> {
            if (pi != null) {
                try {
                    pi.send();
                } catch (PendingIntent.CanceledException e) {
                    Slog.e(TAG, "Could not launch", e);
                }
            } else {
                Intent appIntent = new Intent(Intent.ACTION_MAIN)
                        .setPackage(pkg);
                appIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                itemView.getContext().startActivityAsUser(appIntent, UserHandle.of(userId));
            }
        });
        ViewCompat.setAccessibilityDelegate(itemView, new AccessibilityDelegateCompat() {
            @Override
            public void onInitializeAccessibilityNodeInfo(View host,
                    AccessibilityNodeInfoCompat info) {
                super.onInitializeAccessibilityNodeInfo(host, info);
                CharSequence description = host.getResources().getText(
                        R.string.notification_history_open_notification);
                AccessibilityNodeInfoCompat.AccessibilityActionCompat customClick =
                        new AccessibilityNodeInfoCompat.AccessibilityActionCompat(
                                AccessibilityNodeInfoCompat.ACTION_CLICK, description);
                info.addAction(customClick);
            }
        });
    }
}