Restrict screen saver settings searches to enabled users.

If a user can't enable screen saver, they shouldn't be able to
accidentally find screen saver related settings in Settings.

Bug: 260276394
Test: atest ScreenSaverPreferenceControllerTest
Test: manually by settings up a second user on a device that supports
screen saver, switching to that user, and making sure that searches for
"screen saver" don't accidentally reveal settings that can't be
accessed.

Change-Id: If2f465b2acb548455f0868507cf47217ea1a626f
This commit is contained in:
Will Leshner
2023-02-16 11:06:05 -08:00
parent 3a445a3ea1
commit ca1379f0b3
4 changed files with 43 additions and 21 deletions

View File

@@ -1293,4 +1293,15 @@ public final class Utils extends com.android.settingslib.Utils {
return context.createContextAsUser(mainUser, 0).getSystemService(UserManager.class)
.isUserForeground();
}
/**
* Returns if dreams are available to the current user.
*/
public static boolean areDreamsAvailableToCurrentUser(Context context) {
final boolean dreamsSupported = context.getResources().getBoolean(
com.android.internal.R.bool.config_dreamsSupported);
final boolean dreamsOnlyEnabledForDockUser = context.getResources().getBoolean(
com.android.internal.R.bool.config_dreamsOnlyEnabledForDockUser);
return dreamsSupported && (!dreamsOnlyEnabledForDockUser || canCurrentUserDream(context));
}
}