diff --git a/api/test-current.txt b/api/test-current.txt index 5dc7bdb9a9407..a163dea357555 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -1728,6 +1728,15 @@ package android.media.audiopolicy { } +package android.media.tv { + + public final class TvInputManager { + method public void addHardwareDevice(int); + method public void removeHardwareDevice(int); + } + +} + package android.metrics { public class LogMaker { diff --git a/data/etc/privapp-permissions-platform.xml b/data/etc/privapp-permissions-platform.xml index bdb6bcc1f19f3..8d73f8a94dae7 100644 --- a/data/etc/privapp-permissions-platform.xml +++ b/data/etc/privapp-permissions-platform.xml @@ -409,6 +409,8 @@ applications that come with the platform + + diff --git a/media/java/android/media/tv/ITvInputManager.aidl b/media/java/android/media/tv/ITvInputManager.aidl index 508a46f492dd9..1fbb672608952 100644 --- a/media/java/android/media/tv/ITvInputManager.aidl +++ b/media/java/android/media/tv/ITvInputManager.aidl @@ -111,4 +111,8 @@ interface ITvInputManager { // For preview channels and programs void sendTvInputNotifyIntent(in Intent intent, int userId); void requestChannelBrowsable(in Uri channelUri, int userId); + + // For CTS purpose only. Add/remove a TvInputHardware device + void addHardwareDevice(in int deviceId); + void removeHardwareDevice(in int deviceId); } diff --git a/media/java/android/media/tv/TvInputManager.java b/media/java/android/media/tv/TvInputManager.java index e701055c28941..98a01a4cb449c 100644 --- a/media/java/android/media/tv/TvInputManager.java +++ b/media/java/android/media/tv/TvInputManager.java @@ -23,6 +23,7 @@ import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.SystemService; +import android.annotation.TestApi; import android.content.Context; import android.content.Intent; import android.graphics.Rect; @@ -1801,6 +1802,40 @@ public final class TvInputManager { executor, callback); } + /** + * API to add a hardware device in the TvInputHardwareManager for CTS testing + * purpose. + * + * @param deviceId Id of the adding hardware device. + * + * @hide + */ + @TestApi + public void addHardwareDevice(int deviceId) { + try { + mService.addHardwareDevice(deviceId); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + + /** + * API to remove a hardware device in the TvInputHardwareManager for CTS testing + * purpose. + * + * @param deviceId Id of the removing hardware device. + * + * @hide + */ + @TestApi + public void removeHardwareDevice(int deviceId) { + try { + mService.removeHardwareDevice(deviceId); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + private Hardware acquireTvInputHardwareInternal(int deviceId, TvInputInfo info, String tvInputSessionId, int priorityHint, Executor executor, final HardwareCallback callback) { diff --git a/packages/Shell/AndroidManifest.xml b/packages/Shell/AndroidManifest.xml index b85c7714bf960..a0130f8e9b830 100644 --- a/packages/Shell/AndroidManifest.xml +++ b/packages/Shell/AndroidManifest.xml @@ -300,6 +300,9 @@ + + +