From 76d6a2c48af184d266e4c01f887cf3514d350f6b Mon Sep 17 00:00:00 2001 From: shubang Date: Thu, 1 Oct 2020 21:01:26 -0700 Subject: [PATCH] Unhide TunedInfo APIs Bug: 163350497 Test: atest android.media.tv.cts.TvInputManagerTest#testGetTunedInfos Change-Id: Ib01d0359f25d9d0034c3176336d6f3f673798682 --- api/system-current.txt | 21 +++++++++++++++++++ media/java/android/media/tv/TunedInfo.java | 2 ++ .../java/android/media/tv/TvInputManager.java | 9 ++++---- non-updatable-api/system-current.txt | 21 +++++++++++++++++++ 4 files changed, 49 insertions(+), 4 deletions(-) diff --git a/api/system-current.txt b/api/system-current.txt index 1404f7e1c554b..6cb217dd0cf8c 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -4769,6 +4769,22 @@ package android.media.tv { field @NonNull public static final android.os.Parcelable.Creator CREATOR; } + public final class TunedInfo implements android.os.Parcelable { + method public int describeContents(); + method public int getAppTag(); + method public int getAppType(); + method @Nullable public android.net.Uri getChannelUri(); + method @NonNull public String getInputId(); + method public boolean isForeground(); + method public boolean isRecordingSession(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field public static final int APP_TAG_SELF = 0; // 0x0 + field public static final int APP_TYPE_NON_SYSTEM = 3; // 0x3 + field public static final int APP_TYPE_SELF = 1; // 0x1 + field public static final int APP_TYPE_SYSTEM = 2; // 0x2 + field @NonNull public static final android.os.Parcelable.Creator CREATOR; + } + public final class TvContentRatingSystemInfo implements android.os.Parcelable { method public static android.media.tv.TvContentRatingSystemInfo createTvContentRatingSystemInfo(int, android.content.pm.ApplicationInfo); method public int describeContents(); @@ -4884,6 +4900,7 @@ package android.media.tv { method @RequiresPermission(android.Manifest.permission.MODIFY_PARENTAL_CONTROLS) public void addBlockedRating(@NonNull android.media.tv.TvContentRating); method @RequiresPermission(android.Manifest.permission.CAPTURE_TV_INPUT) public boolean captureFrame(String, android.view.Surface, android.media.tv.TvStreamConfig); method @RequiresPermission(android.Manifest.permission.CAPTURE_TV_INPUT) public java.util.List getAvailableTvStreamConfigList(String); + method @NonNull @RequiresPermission("com.android.providers.tv.permission.ACCESS_WATCHED_PROGRAMS") public java.util.List getCurrentTunedInfos(); method @NonNull @RequiresPermission("android.permission.DVB_DEVICE") public java.util.List getDvbDeviceList(); method @RequiresPermission(android.Manifest.permission.TV_INPUT_HARDWARE) public java.util.List getHardwareList(); method @RequiresPermission(android.Manifest.permission.READ_CONTENT_RATING_SYSTEMS) public java.util.List getTvContentRatingSystemList(); @@ -4909,6 +4926,10 @@ package android.media.tv { method public abstract void onStreamConfigChanged(android.media.tv.TvStreamConfig[]); } + public abstract static class TvInputManager.TvInputCallback { + method public void onCurrentTunedInfosUpdated(@NonNull java.util.List); + } + public abstract class TvInputService extends android.app.Service { method @Nullable public android.media.tv.TvInputInfo onHardwareAdded(android.media.tv.TvInputHardwareInfo); method @Nullable public String onHardwareRemoved(android.media.tv.TvInputHardwareInfo); diff --git a/media/java/android/media/tv/TunedInfo.java b/media/java/android/media/tv/TunedInfo.java index 6fc57841ed3b7..6199c89fe4fad 100644 --- a/media/java/android/media/tv/TunedInfo.java +++ b/media/java/android/media/tv/TunedInfo.java @@ -19,6 +19,7 @@ package android.media.tv; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.SystemApi; import android.net.Uri; import android.os.Parcel; import android.os.Parcelable; @@ -35,6 +36,7 @@ import java.util.Objects; * or pass-through input. * @hide */ +@SystemApi public final class TunedInfo implements Parcelable { static final String TAG = "TunedInfo"; diff --git a/media/java/android/media/tv/TvInputManager.java b/media/java/android/media/tv/TvInputManager.java index 73539fb8a0148..e9959be249ece 100644 --- a/media/java/android/media/tv/TvInputManager.java +++ b/media/java/android/media/tv/TvInputManager.java @@ -906,8 +906,8 @@ public final class TvInputManager { * @param tunedInfos a list of {@link TunedInfo} objects of new tuned information. * @hide */ - public void onCurrentTunedInfosUpdated( - @NonNull List tunedInfos) { + @SystemApi + public void onCurrentTunedInfosUpdated(@NonNull List tunedInfos) { } } @@ -969,7 +969,7 @@ public final class TvInputManager { }); } - public void onCurrentTunedInfosUpdated(final List currentTunedInfos) { + public void postCurrentTunedInfosUpdated(final List currentTunedInfos) { mHandler.post(new Runnable() { @Override public void run() { @@ -1286,7 +1286,7 @@ public final class TvInputManager { public void onCurrentTunedInfosUpdated(List currentTunedInfos) { synchronized (mLock) { for (TvInputCallbackRecord record : mCallbackRecords) { - record.onCurrentTunedInfosUpdated(currentTunedInfos); + record.postCurrentTunedInfosUpdated(currentTunedInfos); } } } @@ -1988,6 +1988,7 @@ public final class TvInputManager { * {@link TunedInfo#getChannelUri()} returns {@code null}. * @hide */ + @SystemApi @RequiresPermission("com.android.providers.tv.permission.ACCESS_WATCHED_PROGRAMS") @NonNull public List getCurrentTunedInfos() { diff --git a/non-updatable-api/system-current.txt b/non-updatable-api/system-current.txt index 515c2737029c9..ed3b55ae2dbfc 100644 --- a/non-updatable-api/system-current.txt +++ b/non-updatable-api/system-current.txt @@ -4709,6 +4709,22 @@ package android.media.tv { field @NonNull public static final android.os.Parcelable.Creator CREATOR; } + public final class TunedInfo implements android.os.Parcelable { + method public int describeContents(); + method public int getAppTag(); + method public int getAppType(); + method @Nullable public android.net.Uri getChannelUri(); + method @NonNull public String getInputId(); + method public boolean isForeground(); + method public boolean isRecordingSession(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field public static final int APP_TAG_SELF = 0; // 0x0 + field public static final int APP_TYPE_NON_SYSTEM = 3; // 0x3 + field public static final int APP_TYPE_SELF = 1; // 0x1 + field public static final int APP_TYPE_SYSTEM = 2; // 0x2 + field @NonNull public static final android.os.Parcelable.Creator CREATOR; + } + public final class TvContentRatingSystemInfo implements android.os.Parcelable { method public static android.media.tv.TvContentRatingSystemInfo createTvContentRatingSystemInfo(int, android.content.pm.ApplicationInfo); method public int describeContents(); @@ -4824,6 +4840,7 @@ package android.media.tv { method @RequiresPermission(android.Manifest.permission.MODIFY_PARENTAL_CONTROLS) public void addBlockedRating(@NonNull android.media.tv.TvContentRating); method @RequiresPermission(android.Manifest.permission.CAPTURE_TV_INPUT) public boolean captureFrame(String, android.view.Surface, android.media.tv.TvStreamConfig); method @RequiresPermission(android.Manifest.permission.CAPTURE_TV_INPUT) public java.util.List getAvailableTvStreamConfigList(String); + method @NonNull @RequiresPermission("com.android.providers.tv.permission.ACCESS_WATCHED_PROGRAMS") public java.util.List getCurrentTunedInfos(); method @NonNull @RequiresPermission("android.permission.DVB_DEVICE") public java.util.List getDvbDeviceList(); method @RequiresPermission(android.Manifest.permission.TV_INPUT_HARDWARE) public java.util.List getHardwareList(); method @RequiresPermission(android.Manifest.permission.READ_CONTENT_RATING_SYSTEMS) public java.util.List getTvContentRatingSystemList(); @@ -4849,6 +4866,10 @@ package android.media.tv { method public abstract void onStreamConfigChanged(android.media.tv.TvStreamConfig[]); } + public abstract static class TvInputManager.TvInputCallback { + method public void onCurrentTunedInfosUpdated(@NonNull java.util.List); + } + public abstract class TvInputService extends android.app.Service { method @Nullable public android.media.tv.TvInputInfo onHardwareAdded(android.media.tv.TvInputHardwareInfo); method @Nullable public String onHardwareRemoved(android.media.tv.TvInputHardwareInfo);