From e1903416bb95e6ed9c91d800fb691f458cf2f6e6 Mon Sep 17 00:00:00 2001 From: Galia Peycheva Date: Tue, 14 Apr 2020 13:17:55 +0200 Subject: [PATCH] Add isDreaming method to DreamManager This CL adds isDreaming to DreamMaanger and changes the way it starts a dream to use IDreamManager.dream() DreamManager is only used for testing. So far it has been using the DreamManagerInternal.testDream() API to start the dream. This restricts the amount of verification that can be done in the dream tests because it doesn't put the device in a dreaming state - IDreamManager.isDreaming() is always false. IDreamManager.dream() puts the device in a dreaming state and enables better testing. Bug: 152994058 Test: atest DreamManagerServiceTests Change-Id: Id4d947e83eabcafa9724764b8d063357c5f2cb49 --- api/test-current.txt | 1 + core/java/android/app/DreamManager.java | 20 +++++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/api/test-current.txt b/api/test-current.txt index 44fb63017ace8..8955c68c6409e 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -431,6 +431,7 @@ package android.app { } public class DreamManager { + method @RequiresPermission("android.permission.READ_DREAM_STATE") public boolean isDreaming(); method @RequiresPermission("android.permission.WRITE_DREAM_STATE") public void setActiveDream(@NonNull android.content.ComponentName); method @RequiresPermission("android.permission.WRITE_DREAM_STATE") public void startDream(@NonNull android.content.ComponentName); method @RequiresPermission("android.permission.WRITE_DREAM_STATE") public void stopDream(); diff --git a/core/java/android/app/DreamManager.java b/core/java/android/app/DreamManager.java index fe13b8f26d789..f23681373f532 100644 --- a/core/java/android/app/DreamManager.java +++ b/core/java/android/app/DreamManager.java @@ -58,7 +58,7 @@ public class DreamManager { @RequiresPermission(android.Manifest.permission.WRITE_DREAM_STATE) public void startDream(@NonNull ComponentName name) { try { - mService.testDream(mContext.getUserId(), name); + mService.dream(); } catch (RemoteException e) { e.rethrowFromSystemServer(); } @@ -99,4 +99,22 @@ public class DreamManager { e.rethrowFromSystemServer(); } } + + /** + * Returns whether the device is Dreaming. + * + *

This is only used for testing the dream service APIs. + * + * @hide + */ + @TestApi + @RequiresPermission(android.Manifest.permission.READ_DREAM_STATE) + public boolean isDreaming() { + try { + return mService.isDreaming(); + } catch (RemoteException e) { + e.rethrowFromSystemServer(); + } + return false; + } }