diff options
| author | 2024-12-17 14:10:42 -0800 | |
|---|---|---|
| committer | 2024-12-17 14:18:09 -0800 | |
| commit | 11ad58507e37077bc65ff919aeca19dc4429848e (patch) | |
| tree | e821dce0097341957ddc86d9d2b90f3868158238 | |
| parent | 8d7d869dc31a0e6d1085cca007e787d185a6b485 (diff) | |
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
| -rw-r--r-- | core/java/android/app/Activity.java | 6 |
1 files changed, 5 insertions, 1 deletions
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; } |