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

Commit 9b49d1de authored by Julia Reynolds's avatar Julia Reynolds Committed by android-build-team Robot
Browse files

Remove icon name from NR dump

While occasionally useful, the call to create the Resources
object can take long enough that threads waiting on
the notificationlist lock (that we hold while dump()-ing) will
ANR and crash system_process.

Test: none
Fixes: 134505821
Change-Id: I8c6246cb1debc2c3d548c300e76d9279e29e2d4f
(cherry picked from commit c4ced654)
(cherry picked from commit e9ebf622)
parent d82776b8
Loading
Loading
Loading
Loading
+1 −31
Original line number Original line Diff line number Diff line
@@ -34,11 +34,8 @@ import android.content.ContentResolver;
import android.content.Context;
import android.content.Context;
import android.content.Intent;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.PackageManagerInternal;
import android.content.pm.PackageManagerInternal;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Bitmap;
import android.graphics.drawable.Icon;
import android.media.AudioAttributes;
import android.media.AudioAttributes;
import android.media.AudioSystem;
import android.media.AudioSystem;
import android.metrics.LogMaker;
import android.metrics.LogMaker;
@@ -453,16 +450,11 @@ public final class NotificationRecord {


    void dump(PrintWriter pw, String prefix, Context baseContext, boolean redact) {
    void dump(PrintWriter pw, String prefix, Context baseContext, boolean redact) {
        final Notification notification = sbn.getNotification();
        final Notification notification = sbn.getNotification();
        final Icon icon = notification.getSmallIcon();
        String iconStr = String.valueOf(icon);
        if (icon != null && icon.getType() == Icon.TYPE_RESOURCE) {
            iconStr += " / " + idDebugString(baseContext, icon.getResPackage(), icon.getResId());
        }
        pw.println(prefix + this);
        pw.println(prefix + this);
        prefix = prefix + "  ";
        prefix = prefix + "  ";
        pw.println(prefix + "uid=" + sbn.getUid() + " userId=" + sbn.getUserId());
        pw.println(prefix + "uid=" + sbn.getUid() + " userId=" + sbn.getUserId());
        pw.println(prefix + "opPkg=" + sbn.getOpPkg());
        pw.println(prefix + "opPkg=" + sbn.getOpPkg());
        pw.println(prefix + "icon=" + iconStr);
        pw.println(prefix + "icon=" + notification.getSmallIcon());
        pw.println(prefix + "flags=0x" + Integer.toHexString(notification.flags));
        pw.println(prefix + "flags=0x" + Integer.toHexString(notification.flags));
        pw.println(prefix + "pri=" + notification.priority);
        pw.println(prefix + "pri=" + notification.priority);
        pw.println(prefix + "key=" + sbn.getKey());
        pw.println(prefix + "key=" + sbn.getKey());
@@ -592,28 +584,6 @@ public final class NotificationRecord {
        pw.println(prefix + "mAdjustments=" + mAdjustments);
        pw.println(prefix + "mAdjustments=" + mAdjustments);
    }
    }



    static String idDebugString(Context baseContext, String packageName, int id) {
        Context c;

        if (packageName != null) {
            try {
                c = baseContext.createPackageContext(packageName, 0);
            } catch (NameNotFoundException e) {
                c = baseContext;
            }
        } else {
            c = baseContext;
        }

        Resources r = c.getResources();
        try {
            return r.getResourceName(id);
        } catch (Resources.NotFoundException e) {
            return "<name unknown>";
        }
    }

    @Override
    @Override
    public final String toString() {
    public final String toString() {
        return String.format(
        return String.format(