From 11ad58507e37077bc65ff919aeca19dc4429848e Mon Sep 17 00:00:00 2001 From: mrulhania Date: Tue, 17 Dec 2024 14:10:42 -0800 Subject: Handle null in Activity#requestPermissions optimization The recent optimization introduced in ag/30469303 caused NPE. App may pass null as an element accidentally in `permissions` collection parameter, the optimization shouldn't change the behavior. Fix: 383954592 Test: atest android.permissionui.cts.PermissionTest23#testNullAndRealPermission FLAG: EXEMPT bug fix Change-Id: Ic271664391afaa3512c1e34f26ef7e792e03213f --- core/java/android/app/Activity.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index fee8cdb1ce51..c3ef104075f2 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -5834,7 +5834,11 @@ public class Activity extends ContextThemeWrapper final int size = permissions.length; int[] results = new int[size]; for (int i = 0; i < size; i++) { - results[i] = deviceContext.getPermissionRequestState(permissions[i]); + if (permissions[i] == null) { + results[i] = Context.PERMISSION_REQUEST_STATE_UNREQUESTABLE; + } else { + results[i] = deviceContext.getPermissionRequestState(permissions[i]); + } } return results; } -- cgit v1.2.3-59-g8ed1b