summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorDarrell Shi <darrellshi@google.com>2022-09-01 16:41:32 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2022-09-01 16:41:32 +0000
commit68e81c211e8741f5000b5385684f00d128722fee (patch)
tree6d5d61a9e8cd294d0911a70bf579ecc1139ff7e3 /core/java/android
parent8055d0e9df0da930ab2dfa6bbc64134154a38a34 (diff)
parent3c94bacacd58807fe77fe3c6cb9c7d0a21de3023 (diff)
Merge "Add hidden system dream API in DreamManagerService." into tm-qpr-dev
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/app/DreamManager.java31
-rw-r--r--core/java/android/service/dreams/IDreamManager.aidl1
2 files changed, 29 insertions, 3 deletions
diff --git a/core/java/android/app/DreamManager.java b/core/java/android/app/DreamManager.java
index 00af1c02d92d..7c8b0fd499e3 100644
--- a/core/java/android/app/DreamManager.java
+++ b/core/java/android/app/DreamManager.java
@@ -18,7 +18,6 @@ package android.app;
import static android.Manifest.permission.WRITE_SECURE_SETTINGS;
-import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.annotation.SystemService;
@@ -86,16 +85,23 @@ public class DreamManager {
}
/**
- * Starts dream service with name "name".
+ * Starts dreaming.
+ *
+ * The system dream component, if set by {@link DreamManager#setSystemDreamComponent}, will be
+ * started.
+ * Otherwise, starts the active dream set by {@link DreamManager#setActiveDream}.
*
* <p>This is only used for testing the dream service APIs.
*
+ * @see DreamManager#setActiveDream(ComponentName)
+ * @see DreamManager#setSystemDreamComponent(ComponentName)
+ *
* @hide
*/
@TestApi
@UserHandleAware
@RequiresPermission(android.Manifest.permission.WRITE_DREAM_STATE)
- public void startDream(@NonNull ComponentName name) {
+ public void startDream() {
try {
mService.dream();
} catch (RemoteException e) {
@@ -142,6 +148,25 @@ public class DreamManager {
}
/**
+ * Sets or clears the system dream component.
+ *
+ * The system dream component, when set, will be shown instead of the user configured dream
+ * when the system starts dreaming (not dozing). If the system is dreaming at the time the
+ * system dream is set or cleared, it immediately switches dream.
+ *
+ * @hide
+ */
+ @TestApi
+ @RequiresPermission(android.Manifest.permission.WRITE_DREAM_STATE)
+ public void setSystemDreamComponent(@Nullable ComponentName dreamComponent) {
+ try {
+ mService.setSystemDreamComponent(dreamComponent);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+
+ /**
* Sets the active dream on the device to be "dreamComponent".
*
* <p>This is only used for testing the dream service APIs.
diff --git a/core/java/android/service/dreams/IDreamManager.aidl b/core/java/android/service/dreams/IDreamManager.aidl
index 53ae6576ef95..609425c95b0d 100644
--- a/core/java/android/service/dreams/IDreamManager.aidl
+++ b/core/java/android/service/dreams/IDreamManager.aidl
@@ -43,5 +43,6 @@ interface IDreamManager {
void forceAmbientDisplayEnabled(boolean enabled);
ComponentName[] getDreamComponentsForUser(int userId);
void setDreamComponentsForUser(int userId, in ComponentName[] componentNames);
+ void setSystemDreamComponent(in ComponentName componentName);
void registerDreamOverlayService(in ComponentName componentName);
}