diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 66943031aeb5b..dbab5db337c11 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -6459,7 +6459,7 @@ package android.media.tv.tuner { method @Nullable public android.media.tv.tuner.DemuxCapabilities getDemuxCapabilities(); method @Nullable public android.media.tv.tuner.frontend.FrontendInfo getFrontendInfo(); method @Nullable public android.media.tv.tuner.frontend.FrontendStatus getFrontendStatus(@NonNull int[]); - method @Nullable public android.media.tv.tuner.frontend.FrontendStatusReadiness[] getFrontendStatusReadiness(@NonNull int[]); + method @NonNull public java.util.List getFrontendStatusReadiness(@NonNull int[]); method @IntRange(from=0xffffffff) public int getMaxNumberOfFrontends(int); method @RequiresPermission("android.permission.TUNER_RESOURCE_ACCESS") public boolean hasUnusedFrontend(int); method public boolean isLowestPriority(int); @@ -7704,7 +7704,7 @@ package android.media.tv.tuner.frontend { method public boolean isLocked(); } - public class FrontendStatusReadiness { + public final class FrontendStatusReadiness { method public int getStatusReadiness(); method public int getStatusType(); field public static final int FRONTEND_STATUS_READINESS_STABLE = 3; // 0x3 diff --git a/media/java/android/media/tv/tuner/Tuner.java b/media/java/android/media/tv/tuner/Tuner.java index ffc443306df52..1e32cadc27480 100644 --- a/media/java/android/media/tv/tuner/Tuner.java +++ b/media/java/android/media/tv/tuner/Tuner.java @@ -68,6 +68,7 @@ import java.lang.annotation.RetentionPolicy; import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -1602,25 +1603,27 @@ public class Tuner implements AutoCloseable { * * @param statusTypes an array of status types. * - * @return an array of current readiness states. {@code null} if the operation failed or - * unsupported versions. + * @return a list of current readiness states. It is empty if the operation fails or unsupported + * versions. * @throws IllegalStateException if there is no active frontend currently. */ - @Nullable - @SuppressLint("ArrayReturn") - @SuppressWarnings("NullableCollection") - public FrontendStatusReadiness[] getFrontendStatusReadiness( + @NonNull + public List getFrontendStatusReadiness( @NonNull @FrontendStatusType int[] statusTypes) { mFrontendLock.lock(); try { if (!TunerVersionChecker.checkHigherOrEqualVersionTo( - TunerVersionChecker.TUNER_VERSION_2_0, "Remove output PID")) { - return null; + TunerVersionChecker.TUNER_VERSION_2_0, "Get fronted status readiness")) { + return Collections.EMPTY_LIST; } if (mFrontend == null) { throw new IllegalStateException("frontend is not initialized"); } - return nativeGetFrontendStatusReadiness(statusTypes); + FrontendStatusReadiness[] readiness = nativeGetFrontendStatusReadiness(statusTypes); + if (readiness == null) { + return Collections.EMPTY_LIST; + } + return Arrays.asList(readiness); } finally { mFrontendLock.unlock(); } diff --git a/media/java/android/media/tv/tuner/frontend/FrontendStatusReadiness.java b/media/java/android/media/tv/tuner/frontend/FrontendStatusReadiness.java index 52527b3fb065e..c30753ccc3a02 100644 --- a/media/java/android/media/tv/tuner/frontend/FrontendStatusReadiness.java +++ b/media/java/android/media/tv/tuner/frontend/FrontendStatusReadiness.java @@ -30,7 +30,7 @@ import java.lang.annotation.RetentionPolicy; * @hide */ @SystemApi -public class FrontendStatusReadiness { +public final class FrontendStatusReadiness { /** @hide */ @IntDef({FRONTEND_STATUS_READINESS_UNDEFINED, FRONTEND_STATUS_READINESS_UNAVAILABLE, FRONTEND_STATUS_READINESS_UNSTABLE, FRONTEND_STATUS_READINESS_STABLE,