From e3a699976ee52dcfd892f37a70c69a327d9cdac2 Mon Sep 17 00:00:00 2001 From: Julia Reynolds Date: Wed, 10 Jul 2019 12:41:55 -0400 Subject: [PATCH] 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 c4ced6544d6e0160507e9477140a5903c72c2bf7) --- .../notification/NotificationRecord.java | 32 +------------------ 1 file changed, 1 insertion(+), 31 deletions(-) diff --git a/services/core/java/com/android/server/notification/NotificationRecord.java b/services/core/java/com/android/server/notification/NotificationRecord.java index c2e559a8a96bf..3c2169a446a1e 100644 --- a/services/core/java/com/android/server/notification/NotificationRecord.java +++ b/services/core/java/com/android/server/notification/NotificationRecord.java @@ -34,11 +34,8 @@ import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; -import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PackageManagerInternal; -import android.content.res.Resources; import android.graphics.Bitmap; -import android.graphics.drawable.Icon; import android.media.AudioAttributes; import android.media.AudioSystem; import android.metrics.LogMaker; @@ -453,16 +450,11 @@ public final class NotificationRecord { void dump(PrintWriter pw, String prefix, Context baseContext, boolean redact) { 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); prefix = prefix + " "; pw.println(prefix + "uid=" + sbn.getUid() + " userId=" + sbn.getUserId()); 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 + "pri=" + notification.priority); pw.println(prefix + "key=" + sbn.getKey()); @@ -592,28 +584,6 @@ public final class NotificationRecord { 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 ""; - } - } - @Override public final String toString() { return String.format(