DO NOT MERGE: add interim startDream api.

DreamManager#startDream has been updated on QPR and master which removes
the unnecessary component name parameter, but it breaks TM CTS tests.
The interim api added in this change will prevent breakage on TM, and
should not be merged downstream.

Test: atest DreamManagerServiceTests
Fix: 245223722
Fix: 245058392
Fix: 245070240
Change-Id: Id9e8cc67003da9fc3e03bffd6ec50643d10652b5
diff --git a/core/api/test-current.txt b/core/api/test-current.txt
index 2b09e6ba..36888c4 100644
--- a/core/api/test-current.txt
+++ b/core/api/test-current.txt
@@ -287,6 +287,7 @@
     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 setSystemDreamComponent(@Nullable android.content.ComponentName);
+    method @RequiresPermission(android.Manifest.permission.WRITE_DREAM_STATE) public void startDream(@Nullable android.content.ComponentName);
     method @RequiresPermission(android.Manifest.permission.WRITE_DREAM_STATE) public void startDream();
     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 7c8b0fd..3bb6658 100644
--- a/core/java/android/app/DreamManager.java
+++ b/core/java/android/app/DreamManager.java
@@ -87,6 +87,25 @@
     /**
      * Starts dreaming.
      *
+     * This API is equivalent to {@link DreamManager#startDream()} but with a nullable component
+     * name to be compatible with TM CTS tests.
+     *
+     * <p>This is only used for testing the dream service APIs.
+     *
+     * @see DreamManager#startDream()
+     *
+     * @hide
+     */
+    @TestApi
+    @UserHandleAware
+    @RequiresPermission(android.Manifest.permission.WRITE_DREAM_STATE)
+    public void startDream(@Nullable ComponentName name) {
+        startDream();
+    }
+
+    /**
+     * 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}.