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". *