Merge "Add TestAPI access to settings through DreamManager."

This commit is contained in:
Bryce Lee
2022-02-16 00:39:50 +00:00
committed by Android (Google) Code Review
2 changed files with 41 additions and 0 deletions

View File

@@ -272,9 +272,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();
}

View File

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