From ff8308d067c6b7eb77f3a205c13511a5fcf90502 Mon Sep 17 00:00:00 2001 From: Bryce Lee Date: Fri, 11 Feb 2022 12:29:41 -0800 Subject: [PATCH] Add TestAPI access to settings through DreamManager. This changelist provides access to whether dreams are supported and enabled through the DreamManager. These methods are hidden and part of the Test API. Bug: 215744456 Test: atest DreamServiceTest DreamManagerServiceTests Change-Id: Ie2245429c580ad0f7a3d510b26d4001c26a8ad9c --- core/api/test-current.txt | 3 ++ core/java/android/app/DreamManager.java | 38 +++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/core/api/test-current.txt b/core/api/test-current.txt index d683190f46e2d..063c158e6e02e 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -270,9 +270,12 @@ package android.app { } public class DreamManager { + method public boolean areDreamsSupported(); method @RequiresPermission(android.Manifest.permission.READ_DREAM_STATE) public boolean isDreaming(); + method public boolean isScreensaverEnabled(); method @RequiresPermission(android.Manifest.permission.WRITE_DREAM_STATE) public void setActiveDream(@Nullable android.content.ComponentName); method @RequiresPermission(android.Manifest.permission.WRITE_DREAM_STATE) public void setDreamOverlay(@Nullable android.content.ComponentName); + method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setScreensaverEnabled(boolean); method @RequiresPermission(android.Manifest.permission.WRITE_DREAM_STATE) public void startDream(@NonNull android.content.ComponentName); method @RequiresPermission(android.Manifest.permission.WRITE_DREAM_STATE) public void stopDream(); } diff --git a/core/java/android/app/DreamManager.java b/core/java/android/app/DreamManager.java index 34ae08fd9b9a7..00af1c02d92dd 100644 --- a/core/java/android/app/DreamManager.java +++ b/core/java/android/app/DreamManager.java @@ -16,6 +16,8 @@ package android.app; +import static android.Manifest.permission.WRITE_SECURE_SETTINGS; + import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; @@ -26,6 +28,8 @@ import android.content.ComponentName; import android.content.Context; import android.os.RemoteException; import android.os.ServiceManager; +import android.os.UserHandle; +import android.provider.Settings; import android.service.dreams.DreamService; import android.service.dreams.IDreamManager; @@ -47,6 +51,40 @@ public class DreamManager { mContext = context; } + /** + * Returns whether Settings.Secure.SCREENSAVER_ENABLED is enabled. + * + * @hide + */ + @TestApi + public boolean isScreensaverEnabled() { + return Settings.Secure.getIntForUser(mContext.getContentResolver(), + Settings.Secure.SCREENSAVER_ENABLED, 0, UserHandle.USER_CURRENT) != 0; + } + + /** + * Sets whether Settings.Secure.SCREENSAVER_ENABLED is enabled. + * + * @hide + */ + @TestApi + @RequiresPermission(WRITE_SECURE_SETTINGS) + public void setScreensaverEnabled(boolean enabled) { + Settings.Secure.putIntForUser(mContext.getContentResolver(), + Settings.Secure.SCREENSAVER_ENABLED, enabled ? 1 : 0, UserHandle.USER_CURRENT); + } + + /** + * Returns whether dreams are supported. + * + * @hide + */ + @TestApi + public boolean areDreamsSupported() { + return mContext.getResources().getBoolean( + com.android.internal.R.bool.config_dreamsSupported); + } + /** * Starts dream service with name "name". *