Loading core/java/android/os/UserManager.java +34 −0 Original line number Diff line number Diff line Loading @@ -5668,6 +5668,33 @@ public class UserManager { } } private static final String CACHE_KEY_QUIET_MODE_ENABLED_PROPERTY = PropertyInvalidatedCache.createPropertyName( PropertyInvalidatedCache.MODULE_SYSTEM, "quiet_mode_enabled"); private final PropertyInvalidatedCache<Integer, Boolean> mQuietModeEnabledCache = new PropertyInvalidatedCache<Integer, Boolean>( 32, CACHE_KEY_QUIET_MODE_ENABLED_PROPERTY) { @Override public Boolean recompute(Integer query) { try { return mService.isQuietModeEnabled(query); } catch (RemoteException re) { throw re.rethrowFromSystemServer(); } } @Override public boolean bypass(Integer query) { return query < 0; } }; /** @hide */ public static final void invalidateQuietModeEnabledCache() { PropertyInvalidatedCache.invalidateCache(CACHE_KEY_QUIET_MODE_ENABLED_PROPERTY); } /** * Returns whether the given profile is in quiet mode or not. * Loading @@ -5675,6 +5702,13 @@ public class UserManager { * @return true if the profile is in quiet mode, false otherwise. */ public boolean isQuietModeEnabled(UserHandle userHandle) { if (android.multiuser.Flags.cacheQuietModeState()){ final int userId = userHandle.getIdentifier(); if (userId < 0) { return false; } return mQuietModeEnabledCache.query(userId); } try { return mService.isQuietModeEnabled(userHandle.getIdentifier()); } catch (RemoteException re) { Loading services/core/java/com/android/server/pm/UserManagerService.java +1 −0 Original line number Diff line number Diff line Loading @@ -1901,6 +1901,7 @@ public class UserManagerService extends IUserManager.Stub { Slog.i(LOG_TAG, "Quiet mode is already " + enableQuietMode); return; } UserManager.invalidateQuietModeEnabledCache(); profile.flags ^= UserInfo.FLAG_QUIET_MODE; profileUserData = getUserDataLU(profile.id); } Loading services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java +19 −0 Original line number Diff line number Diff line Loading @@ -1862,6 +1862,25 @@ public final class UserManagerTest { assertThat(profilesExcludingHidden).asList().doesNotContain(profile.id); } /** * Test that UserManager.isQuietModeEnabled return false for unsupported * arguments such as UserHandle.NULL, UserHandle.CURRENT or UserHandle.ALL. **/ @MediumTest @Test public void testQuietModeEnabledForUnsupportedUserHandles() throws Exception { assumeManagedUsersSupported(); final int mainUserId = mUserManager.getMainUser().getIdentifier(); UserInfo userInfo = createProfileForUser("Profile", UserManager.USER_TYPE_PROFILE_MANAGED, mainUserId); mUserManager.requestQuietModeEnabled(true, userInfo.getUserHandle()); assertThat(mUserManager.isQuietModeEnabled(userInfo.getUserHandle())).isTrue(); assertThat(mUserManager.isQuietModeEnabled(UserHandle.of(UserHandle.USER_NULL))).isFalse(); assertThat(mUserManager.isQuietModeEnabled(UserHandle.CURRENT)).isFalse(); assertThat(mUserManager.isQuietModeEnabled(UserHandle.CURRENT_OR_SELF)).isFalse(); assertThat(mUserManager.isQuietModeEnabled(UserHandle.ALL)).isFalse(); } private String generateLongString() { String partialString = "Test Name Test Name Test Name Test Name Test Name Test Name Test " + "Name Test Name Test Name Test Name "; //String of length 100 Loading Loading
core/java/android/os/UserManager.java +34 −0 Original line number Diff line number Diff line Loading @@ -5668,6 +5668,33 @@ public class UserManager { } } private static final String CACHE_KEY_QUIET_MODE_ENABLED_PROPERTY = PropertyInvalidatedCache.createPropertyName( PropertyInvalidatedCache.MODULE_SYSTEM, "quiet_mode_enabled"); private final PropertyInvalidatedCache<Integer, Boolean> mQuietModeEnabledCache = new PropertyInvalidatedCache<Integer, Boolean>( 32, CACHE_KEY_QUIET_MODE_ENABLED_PROPERTY) { @Override public Boolean recompute(Integer query) { try { return mService.isQuietModeEnabled(query); } catch (RemoteException re) { throw re.rethrowFromSystemServer(); } } @Override public boolean bypass(Integer query) { return query < 0; } }; /** @hide */ public static final void invalidateQuietModeEnabledCache() { PropertyInvalidatedCache.invalidateCache(CACHE_KEY_QUIET_MODE_ENABLED_PROPERTY); } /** * Returns whether the given profile is in quiet mode or not. * Loading @@ -5675,6 +5702,13 @@ public class UserManager { * @return true if the profile is in quiet mode, false otherwise. */ public boolean isQuietModeEnabled(UserHandle userHandle) { if (android.multiuser.Flags.cacheQuietModeState()){ final int userId = userHandle.getIdentifier(); if (userId < 0) { return false; } return mQuietModeEnabledCache.query(userId); } try { return mService.isQuietModeEnabled(userHandle.getIdentifier()); } catch (RemoteException re) { Loading
services/core/java/com/android/server/pm/UserManagerService.java +1 −0 Original line number Diff line number Diff line Loading @@ -1901,6 +1901,7 @@ public class UserManagerService extends IUserManager.Stub { Slog.i(LOG_TAG, "Quiet mode is already " + enableQuietMode); return; } UserManager.invalidateQuietModeEnabledCache(); profile.flags ^= UserInfo.FLAG_QUIET_MODE; profileUserData = getUserDataLU(profile.id); } Loading
services/tests/servicestests/src/com/android/server/pm/UserManagerTest.java +19 −0 Original line number Diff line number Diff line Loading @@ -1862,6 +1862,25 @@ public final class UserManagerTest { assertThat(profilesExcludingHidden).asList().doesNotContain(profile.id); } /** * Test that UserManager.isQuietModeEnabled return false for unsupported * arguments such as UserHandle.NULL, UserHandle.CURRENT or UserHandle.ALL. **/ @MediumTest @Test public void testQuietModeEnabledForUnsupportedUserHandles() throws Exception { assumeManagedUsersSupported(); final int mainUserId = mUserManager.getMainUser().getIdentifier(); UserInfo userInfo = createProfileForUser("Profile", UserManager.USER_TYPE_PROFILE_MANAGED, mainUserId); mUserManager.requestQuietModeEnabled(true, userInfo.getUserHandle()); assertThat(mUserManager.isQuietModeEnabled(userInfo.getUserHandle())).isTrue(); assertThat(mUserManager.isQuietModeEnabled(UserHandle.of(UserHandle.USER_NULL))).isFalse(); assertThat(mUserManager.isQuietModeEnabled(UserHandle.CURRENT)).isFalse(); assertThat(mUserManager.isQuietModeEnabled(UserHandle.CURRENT_OR_SELF)).isFalse(); assertThat(mUserManager.isQuietModeEnabled(UserHandle.ALL)).isFalse(); } private String generateLongString() { String partialString = "Test Name Test Name Test Name Test Name Test Name Test Name Test " + "Name Test Name Test Name Test Name "; //String of length 100 Loading