Update FrontendStatusReadiness APIs.

Bug: 216640182
Fix: 216640182
Test: atest android.media.tv.tuner.cts
Change-Id: I54abc1014bab2a2cb6128e33a381aabbe571dc58
This commit is contained in:
Hongguang
2022-01-27 11:19:36 -08:00
parent 33b42f50df
commit 679b24c698
3 changed files with 15 additions and 12 deletions

View File

@@ -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<android.media.tv.tuner.frontend.FrontendStatusReadiness> 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

View File

@@ -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<FrontendStatusReadiness> 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();
}

View File

@@ -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,