diff options
| -rw-r--r-- | services/core/java/com/android/server/notification/PermissionHelper.java | 8 | ||||
| -rw-r--r-- | services/tests/uiservicestests/src/com/android/server/notification/PermissionHelperTest.java | 14 |
2 files changed, 15 insertions, 7 deletions
diff --git a/services/core/java/com/android/server/notification/PermissionHelper.java b/services/core/java/com/android/server/notification/PermissionHelper.java index 09ed56745e54..1b669322e553 100644 --- a/services/core/java/com/android/server/notification/PermissionHelper.java +++ b/services/core/java/com/android/server/notification/PermissionHelper.java @@ -16,6 +16,7 @@ package com.android.server.notification; +import static android.content.pm.PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT; import static android.content.pm.PackageManager.FLAG_PERMISSION_USER_SET; import static android.content.pm.PackageManager.GET_PERMISSIONS; import static android.content.pm.PackageManager.PERMISSION_GRANTED; @@ -175,12 +176,15 @@ public final class PermissionHelper { mPermManager.revokeRuntimePermission(packageName, NOTIFICATION_PERMISSION, userId, TAG); } + int flagMask = userSet || !grant + ? FLAG_PERMISSION_USER_SET | FLAG_PERMISSION_GRANTED_BY_DEFAULT : + FLAG_PERMISSION_USER_SET; if (userSet) { mPermManager.updatePermissionFlags(packageName, NOTIFICATION_PERMISSION, - FLAG_PERMISSION_USER_SET, FLAG_PERMISSION_USER_SET, true, userId); + flagMask, FLAG_PERMISSION_USER_SET, true, userId); } else { mPermManager.updatePermissionFlags(packageName, NOTIFICATION_PERMISSION, - 0, FLAG_PERMISSION_USER_SET, true, userId); + flagMask, 0, true, userId); } } catch (RemoteException e) { Slog.e(TAG, "Could not reach system server", e); diff --git a/services/tests/uiservicestests/src/com/android/server/notification/PermissionHelperTest.java b/services/tests/uiservicestests/src/com/android/server/notification/PermissionHelperTest.java index 4c7e8433b15b..d4886e440c41 100644 --- a/services/tests/uiservicestests/src/com/android/server/notification/PermissionHelperTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/PermissionHelperTest.java @@ -183,7 +183,8 @@ public class PermissionHelperTest extends UiServiceTestCase { verify(mPermManager).grantRuntimePermission( "pkg", Manifest.permission.POST_NOTIFICATIONS, 10); verify(mPermManager).updatePermissionFlags("pkg", Manifest.permission.POST_NOTIFICATIONS, - FLAG_PERMISSION_USER_SET, FLAG_PERMISSION_USER_SET, true, 10); + FLAG_PERMISSION_USER_SET | FLAG_PERMISSION_GRANTED_BY_DEFAULT, + FLAG_PERMISSION_USER_SET, true, 10); } @Test @@ -201,7 +202,8 @@ public class PermissionHelperTest extends UiServiceTestCase { verify(mPermManager).grantRuntimePermission( "pkg", Manifest.permission.POST_NOTIFICATIONS, 10); verify(mPermManager).updatePermissionFlags("pkg", Manifest.permission.POST_NOTIFICATIONS, - FLAG_PERMISSION_USER_SET, FLAG_PERMISSION_USER_SET, true, 10); + FLAG_PERMISSION_USER_SET | FLAG_PERMISSION_GRANTED_BY_DEFAULT, + FLAG_PERMISSION_USER_SET, true, 10); } @Test @@ -214,7 +216,8 @@ public class PermissionHelperTest extends UiServiceTestCase { verify(mPermManager).revokeRuntimePermission( eq("pkg"), eq(Manifest.permission.POST_NOTIFICATIONS), eq(10), anyString()); verify(mPermManager).updatePermissionFlags("pkg", Manifest.permission.POST_NOTIFICATIONS, - FLAG_PERMISSION_USER_SET, FLAG_PERMISSION_USER_SET, true, 10); + FLAG_PERMISSION_USER_SET | FLAG_PERMISSION_GRANTED_BY_DEFAULT, + FLAG_PERMISSION_USER_SET, true, 10); } @Test @@ -227,7 +230,7 @@ public class PermissionHelperTest extends UiServiceTestCase { verify(mPermManager).grantRuntimePermission( "pkg", Manifest.permission.POST_NOTIFICATIONS, 10); verify(mPermManager).updatePermissionFlags("pkg", Manifest.permission.POST_NOTIFICATIONS, - 0, FLAG_PERMISSION_USER_SET, true, 10); + FLAG_PERMISSION_USER_SET, 0, true, 10); } @Test @@ -240,7 +243,8 @@ public class PermissionHelperTest extends UiServiceTestCase { verify(mPermManager).revokeRuntimePermission( eq("pkg"), eq(Manifest.permission.POST_NOTIFICATIONS), eq(10), anyString()); verify(mPermManager).updatePermissionFlags("pkg", Manifest.permission.POST_NOTIFICATIONS, - 0, FLAG_PERMISSION_USER_SET, true, 10); + FLAG_PERMISSION_USER_SET | FLAG_PERMISSION_GRANTED_BY_DEFAULT, 0, + true, 10); } @Test |