diff options
-rwxr-xr-x | services/core/java/com/android/server/notification/NotificationManagerService.java | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java index d5a9e3c0d4f8..e58836659189 100755 --- a/services/core/java/com/android/server/notification/NotificationManagerService.java +++ b/services/core/java/com/android/server/notification/NotificationManagerService.java @@ -10635,17 +10635,17 @@ public class NotificationManagerService extends SystemService { return true; } } - String toastMessage = "Indirect activity start from " + packageName; String logcatMessage = "Indirect notification activity start (trampoline) from " + packageName; - + // Call to toast() method is posted to mHandler below to offload PM lookup from the + // activity start path if (CompatChanges.isChangeEnabled(NOTIFICATION_TRAMPOLINE_BLOCK, uid)) { - toast(toastMessage + " blocked."); + mHandler.post(() -> toast(packageName, uid, /* blocked */ true)); Slog.e(TAG, logcatMessage + " blocked"); return false; } else { if (mPackagesShown.add(packageName)) { - toast(toastMessage + ". This will be blocked in S."); + mHandler.post(() -> toast(packageName, uid, /* blocked */ false)); } Slog.w(TAG, logcatMessage + ", this should be avoided for performance reasons"); return true; @@ -10661,10 +10661,19 @@ public class NotificationManagerService extends SystemService { && !CompatChanges.isChangeEnabled(NOTIFICATION_TRAMPOLINE_BLOCK, uid); } - private void toast(String message) { - mUiHandler.post(() -> - Toast.makeText(getUiContext(), message + "\nSee g.co/dev/trampolines.", - Toast.LENGTH_LONG).show()); + private void toast(String packageName, int uid, boolean blocked) { + final CharSequence label; + try { + label = mPackageManagerClient.getApplicationLabel( + mPackageManager.getApplicationInfo(packageName, 0, + UserHandle.getUserId(uid))); + } catch (RemoteException e) { + Slog.e(TAG, "Unexpected exception obtaining app label from PackageManager", e); + return; + } + mUiHandler.post(() -> Toast.makeText(getUiContext(), + label + " launch " + (blocked ? "blocked" : "will be blocked") + + "\ng.co/dev/trampolines", Toast.LENGTH_LONG).show()); } } } |