Loading core/res/res/values/config.xml +0 −6 Original line number Diff line number Diff line Loading @@ -2998,12 +2998,6 @@ </string-array> <!-- When migrating notification settings into the permission framework, whether all existing apps should be marked as 'user-set' (true) or whether only the apps that have explicitly modified notification settings should be marked as 'user-set' (false). Users will not see system generated permission prompts for 'user-set' apps. --> <bool name="config_notificationForceUserSetOnUpgrade">true</bool> <!-- Default Gravity setting for the system Toast view. Equivalent to: Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM --> <integer name="config_toastDefaultGravity">0x00000051</integer> Loading core/res/res/values/symbols.xml +0 −1 Original line number Diff line number Diff line Loading @@ -4776,7 +4776,6 @@ <java-symbol type="integer" name="config_bg_current_drain_exempted_types" /> <java-symbol type="bool" name="config_bg_current_drain_high_threshold_by_bg_location" /> <java-symbol type="drawable" name="ic_swap_horiz" /> <java-symbol type="bool" name="config_notificationForceUserSetOnUpgrade" /> <java-symbol type="array" name="config_deviceStatesAvailableForAppRequests" /> <java-symbol type="array" name="config_serviceStateLocationAllowedPackages" /> Loading services/core/java/com/android/server/notification/NotificationManagerService.java +1 −7 Original line number Diff line number Diff line Loading @@ -656,7 +656,6 @@ public class NotificationManagerService extends SystemService { private int mWarnRemoteViewsSizeBytes; private int mStripRemoteViewsSizeBytes; private boolean mForceUserSetOnUpgrade; private MetricsLogger mMetricsLogger; private NotificationChannelLogger mNotificationChannelLogger; Loading Loading @@ -2472,9 +2471,6 @@ public class NotificationManagerService extends SystemService { WorkerHandler handler = new WorkerHandler(Looper.myLooper()); mForceUserSetOnUpgrade = getContext().getResources().getBoolean( R.bool.config_notificationForceUserSetOnUpgrade); init(handler, new RankingHandlerWorker(mRankingThread.getLooper()), AppGlobals.getPackageManager(), getContext().getPackageManager(), getLocalService(LightsManager.class), Loading Loading @@ -2503,8 +2499,7 @@ public class NotificationManagerService extends SystemService { LocalServices.getService(ActivityManagerInternal.class), createToastRateLimiter(), new PermissionHelper(LocalServices.getService( PermissionManagerServiceInternal.class), AppGlobals.getPackageManager(), AppGlobals.getPermissionManager(), mForceUserSetOnUpgrade), AppGlobals.getPermissionManager()), LocalServices.getService(UsageStatsManagerInternal.class), getContext().getSystemService(TelecomManager.class), new NotificationChannelLoggerImpl()); Loading Loading @@ -6153,7 +6148,6 @@ public class NotificationManagerService extends SystemService { pw.println(" mMaxPackageEnqueueRate=" + mMaxPackageEnqueueRate); pw.println(" hideSilentStatusBar=" + mPreferencesHelper.shouldHideSilentStatusIcons()); pw.println(" mForceUserSetOnUpgrade=" + mForceUserSetOnUpgrade); } pw.println(" mArchive=" + mArchive.toString()); mArchive.dumpImpl(pw, filter); Loading services/core/java/com/android/server/notification/PermissionHelper.java +2 −5 Original line number Diff line number Diff line Loading @@ -55,14 +55,12 @@ public final class PermissionHelper { private final PermissionManagerServiceInternal mPmi; private final IPackageManager mPackageManager; private final IPermissionManager mPermManager; private final boolean mForceUserSetOnUpgrade; public PermissionHelper(PermissionManagerServiceInternal pmi, IPackageManager packageManager, IPermissionManager permManager, boolean forceUserSetOnUpgrade) { IPermissionManager permManager) { mPmi = pmi; mPackageManager = packageManager; mPermManager = permManager; mForceUserSetOnUpgrade = forceUserSetOnUpgrade; } /** Loading Loading @@ -212,9 +210,8 @@ public final class PermissionHelper { return; } if (!isPermissionFixed(pkgPerm.packageName, pkgPerm.userId)) { boolean userSet = mForceUserSetOnUpgrade ? true : pkgPerm.userModifiedSettings; setNotificationPermission(pkgPerm.packageName, pkgPerm.userId, pkgPerm.granted, userSet, !userSet); true /* userSet always true on upgrade */); } } Loading services/tests/uiservicestests/src/com/android/server/notification/PermissionHelperTest.java +1 −64 Original line number Diff line number Diff line Loading @@ -26,8 +26,6 @@ import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static com.google.common.truth.Truth.assertThat; import static junit.framework.Assert.fail; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyLong; Loading @@ -54,7 +52,6 @@ import com.android.server.pm.permission.PermissionManagerServiceInternal; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; import org.junit.Before; import org.junit.Test; Loading @@ -62,14 +59,7 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.lang.reflect.Parameter; import java.lang.reflect.Type; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Set; @SmallTest Loading @@ -88,7 +78,7 @@ public class PermissionHelperTest extends UiServiceTestCase { @Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); mPermissionHelper = new PermissionHelper(mPmi, mPackageManager, mPermManager, false); mPermissionHelper = new PermissionHelper(mPmi, mPackageManager, mPermManager); PackageInfo testPkgInfo = new PackageInfo(); testPkgInfo.requestedPermissions = new String[]{ Manifest.permission.POST_NOTIFICATIONS }; when(mPackageManager.getPackageInfo(anyString(), anyLong(), anyInt())) Loading Loading @@ -211,62 +201,9 @@ public class PermissionHelperTest extends UiServiceTestCase { FLAG_PERMISSION_REVIEW_REQUIRED, FLAG_PERMISSION_REVIEW_REQUIRED, true, 10); } @Test public void testSetNotificationPermission_pkgPerm_grantReviewRequired() throws Exception { when(mPmi.checkPermission(anyString(), anyString(), anyInt())) .thenReturn(PERMISSION_DENIED); PermissionHelper.PackagePermission pkgPerm = new PermissionHelper.PackagePermission( "pkg", 10, true, false); mPermissionHelper.setNotificationPermission(pkgPerm); verify(mPermManager, never()).revokeRuntimePermission( "pkg", Manifest.permission.POST_NOTIFICATIONS, 10, "PermissionHelper"); verify(mPermManager).updatePermissionFlags("pkg", Manifest.permission.POST_NOTIFICATIONS, FLAG_PERMISSION_REVIEW_REQUIRED, FLAG_PERMISSION_REVIEW_REQUIRED, true, 10); } @Test public void testSetNotificationPermission_pkgPerm_notUserSet_grantedByDefaultPermNotSet() throws Exception { when(mPmi.checkPermission(anyString(), anyString(), anyInt())) .thenReturn(PERMISSION_DENIED); when(mPermManager.getPermissionFlags(anyString(), eq(Manifest.permission.POST_NOTIFICATIONS), anyInt())).thenReturn(FLAG_PERMISSION_GRANTED_BY_DEFAULT); PermissionHelper.PackagePermission pkgPerm = new PermissionHelper.PackagePermission( "pkg", 10, true, false); mPermissionHelper.setNotificationPermission(pkgPerm); verify(mPermManager, never()).revokeRuntimePermission( anyString(), anyString(), anyInt(), anyString()); verify(mPermManager, never()).updatePermissionFlags( anyString(), anyString(), anyInt(), anyInt(), anyBoolean(), anyInt()); } @Test public void testSetNotificationPermission_pkgPerm_userSet_grantedByDefaultPermSet() throws Exception { when(mPmi.checkPermission(anyString(), anyString(), anyInt())) .thenReturn(PERMISSION_DENIED); when(mPermManager.getPermissionFlags(anyString(), eq(Manifest.permission.POST_NOTIFICATIONS), anyInt())).thenReturn(FLAG_PERMISSION_GRANTED_BY_DEFAULT); PermissionHelper.PackagePermission pkgPerm = new PermissionHelper.PackagePermission( "pkg", 10, true, true); mPermissionHelper.setNotificationPermission(pkgPerm); verify(mPermManager).grantRuntimePermission( "pkg", Manifest.permission.POST_NOTIFICATIONS, 10); verify(mPermManager).updatePermissionFlags("pkg", Manifest.permission.POST_NOTIFICATIONS, FLAG_PERMISSION_USER_SET | FLAG_PERMISSION_REVIEW_REQUIRED, FLAG_PERMISSION_USER_SET, true, 10); } @Test public void testSetNotificationPermission_pkgPerm_grantedByDefaultPermSet_allUserSet() throws Exception { mPermissionHelper = new PermissionHelper(mPmi, mPackageManager, mPermManager, true); when(mPmi.checkPermission(anyString(), anyString(), anyInt())) .thenReturn(PERMISSION_DENIED); when(mPermManager.getPermissionFlags(anyString(), Loading Loading
core/res/res/values/config.xml +0 −6 Original line number Diff line number Diff line Loading @@ -2998,12 +2998,6 @@ </string-array> <!-- When migrating notification settings into the permission framework, whether all existing apps should be marked as 'user-set' (true) or whether only the apps that have explicitly modified notification settings should be marked as 'user-set' (false). Users will not see system generated permission prompts for 'user-set' apps. --> <bool name="config_notificationForceUserSetOnUpgrade">true</bool> <!-- Default Gravity setting for the system Toast view. Equivalent to: Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM --> <integer name="config_toastDefaultGravity">0x00000051</integer> Loading
core/res/res/values/symbols.xml +0 −1 Original line number Diff line number Diff line Loading @@ -4776,7 +4776,6 @@ <java-symbol type="integer" name="config_bg_current_drain_exempted_types" /> <java-symbol type="bool" name="config_bg_current_drain_high_threshold_by_bg_location" /> <java-symbol type="drawable" name="ic_swap_horiz" /> <java-symbol type="bool" name="config_notificationForceUserSetOnUpgrade" /> <java-symbol type="array" name="config_deviceStatesAvailableForAppRequests" /> <java-symbol type="array" name="config_serviceStateLocationAllowedPackages" /> Loading
services/core/java/com/android/server/notification/NotificationManagerService.java +1 −7 Original line number Diff line number Diff line Loading @@ -656,7 +656,6 @@ public class NotificationManagerService extends SystemService { private int mWarnRemoteViewsSizeBytes; private int mStripRemoteViewsSizeBytes; private boolean mForceUserSetOnUpgrade; private MetricsLogger mMetricsLogger; private NotificationChannelLogger mNotificationChannelLogger; Loading Loading @@ -2472,9 +2471,6 @@ public class NotificationManagerService extends SystemService { WorkerHandler handler = new WorkerHandler(Looper.myLooper()); mForceUserSetOnUpgrade = getContext().getResources().getBoolean( R.bool.config_notificationForceUserSetOnUpgrade); init(handler, new RankingHandlerWorker(mRankingThread.getLooper()), AppGlobals.getPackageManager(), getContext().getPackageManager(), getLocalService(LightsManager.class), Loading Loading @@ -2503,8 +2499,7 @@ public class NotificationManagerService extends SystemService { LocalServices.getService(ActivityManagerInternal.class), createToastRateLimiter(), new PermissionHelper(LocalServices.getService( PermissionManagerServiceInternal.class), AppGlobals.getPackageManager(), AppGlobals.getPermissionManager(), mForceUserSetOnUpgrade), AppGlobals.getPermissionManager()), LocalServices.getService(UsageStatsManagerInternal.class), getContext().getSystemService(TelecomManager.class), new NotificationChannelLoggerImpl()); Loading Loading @@ -6153,7 +6148,6 @@ public class NotificationManagerService extends SystemService { pw.println(" mMaxPackageEnqueueRate=" + mMaxPackageEnqueueRate); pw.println(" hideSilentStatusBar=" + mPreferencesHelper.shouldHideSilentStatusIcons()); pw.println(" mForceUserSetOnUpgrade=" + mForceUserSetOnUpgrade); } pw.println(" mArchive=" + mArchive.toString()); mArchive.dumpImpl(pw, filter); Loading
services/core/java/com/android/server/notification/PermissionHelper.java +2 −5 Original line number Diff line number Diff line Loading @@ -55,14 +55,12 @@ public final class PermissionHelper { private final PermissionManagerServiceInternal mPmi; private final IPackageManager mPackageManager; private final IPermissionManager mPermManager; private final boolean mForceUserSetOnUpgrade; public PermissionHelper(PermissionManagerServiceInternal pmi, IPackageManager packageManager, IPermissionManager permManager, boolean forceUserSetOnUpgrade) { IPermissionManager permManager) { mPmi = pmi; mPackageManager = packageManager; mPermManager = permManager; mForceUserSetOnUpgrade = forceUserSetOnUpgrade; } /** Loading Loading @@ -212,9 +210,8 @@ public final class PermissionHelper { return; } if (!isPermissionFixed(pkgPerm.packageName, pkgPerm.userId)) { boolean userSet = mForceUserSetOnUpgrade ? true : pkgPerm.userModifiedSettings; setNotificationPermission(pkgPerm.packageName, pkgPerm.userId, pkgPerm.granted, userSet, !userSet); true /* userSet always true on upgrade */); } } Loading
services/tests/uiservicestests/src/com/android/server/notification/PermissionHelperTest.java +1 −64 Original line number Diff line number Diff line Loading @@ -26,8 +26,6 @@ import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static com.google.common.truth.Truth.assertThat; import static junit.framework.Assert.fail; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyLong; Loading @@ -54,7 +52,6 @@ import com.android.server.pm.permission.PermissionManagerServiceInternal; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; import org.junit.Before; import org.junit.Test; Loading @@ -62,14 +59,7 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.lang.reflect.Parameter; import java.lang.reflect.Type; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Set; @SmallTest Loading @@ -88,7 +78,7 @@ public class PermissionHelperTest extends UiServiceTestCase { @Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); mPermissionHelper = new PermissionHelper(mPmi, mPackageManager, mPermManager, false); mPermissionHelper = new PermissionHelper(mPmi, mPackageManager, mPermManager); PackageInfo testPkgInfo = new PackageInfo(); testPkgInfo.requestedPermissions = new String[]{ Manifest.permission.POST_NOTIFICATIONS }; when(mPackageManager.getPackageInfo(anyString(), anyLong(), anyInt())) Loading Loading @@ -211,62 +201,9 @@ public class PermissionHelperTest extends UiServiceTestCase { FLAG_PERMISSION_REVIEW_REQUIRED, FLAG_PERMISSION_REVIEW_REQUIRED, true, 10); } @Test public void testSetNotificationPermission_pkgPerm_grantReviewRequired() throws Exception { when(mPmi.checkPermission(anyString(), anyString(), anyInt())) .thenReturn(PERMISSION_DENIED); PermissionHelper.PackagePermission pkgPerm = new PermissionHelper.PackagePermission( "pkg", 10, true, false); mPermissionHelper.setNotificationPermission(pkgPerm); verify(mPermManager, never()).revokeRuntimePermission( "pkg", Manifest.permission.POST_NOTIFICATIONS, 10, "PermissionHelper"); verify(mPermManager).updatePermissionFlags("pkg", Manifest.permission.POST_NOTIFICATIONS, FLAG_PERMISSION_REVIEW_REQUIRED, FLAG_PERMISSION_REVIEW_REQUIRED, true, 10); } @Test public void testSetNotificationPermission_pkgPerm_notUserSet_grantedByDefaultPermNotSet() throws Exception { when(mPmi.checkPermission(anyString(), anyString(), anyInt())) .thenReturn(PERMISSION_DENIED); when(mPermManager.getPermissionFlags(anyString(), eq(Manifest.permission.POST_NOTIFICATIONS), anyInt())).thenReturn(FLAG_PERMISSION_GRANTED_BY_DEFAULT); PermissionHelper.PackagePermission pkgPerm = new PermissionHelper.PackagePermission( "pkg", 10, true, false); mPermissionHelper.setNotificationPermission(pkgPerm); verify(mPermManager, never()).revokeRuntimePermission( anyString(), anyString(), anyInt(), anyString()); verify(mPermManager, never()).updatePermissionFlags( anyString(), anyString(), anyInt(), anyInt(), anyBoolean(), anyInt()); } @Test public void testSetNotificationPermission_pkgPerm_userSet_grantedByDefaultPermSet() throws Exception { when(mPmi.checkPermission(anyString(), anyString(), anyInt())) .thenReturn(PERMISSION_DENIED); when(mPermManager.getPermissionFlags(anyString(), eq(Manifest.permission.POST_NOTIFICATIONS), anyInt())).thenReturn(FLAG_PERMISSION_GRANTED_BY_DEFAULT); PermissionHelper.PackagePermission pkgPerm = new PermissionHelper.PackagePermission( "pkg", 10, true, true); mPermissionHelper.setNotificationPermission(pkgPerm); verify(mPermManager).grantRuntimePermission( "pkg", Manifest.permission.POST_NOTIFICATIONS, 10); verify(mPermManager).updatePermissionFlags("pkg", Manifest.permission.POST_NOTIFICATIONS, FLAG_PERMISSION_USER_SET | FLAG_PERMISSION_REVIEW_REQUIRED, FLAG_PERMISSION_USER_SET, true, 10); } @Test public void testSetNotificationPermission_pkgPerm_grantedByDefaultPermSet_allUserSet() throws Exception { mPermissionHelper = new PermissionHelper(mPmi, mPackageManager, mPermManager, true); when(mPmi.checkPermission(anyString(), anyString(), anyInt())) .thenReturn(PERMISSION_DENIED); when(mPermManager.getPermissionFlags(anyString(), Loading