Merge "Update FrontendStatusReadiness APIs."

This commit is contained in:
TreeHugger Robot
2022-01-28 00:13:14 +00:00
committed by Android (Google) Code Review
3 changed files with 15 additions and 12 deletions

View File

@@ -6456,7 +6456,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);
@@ -7701,7 +7701,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,