diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 7a22e373045d6..e36b64c273c72 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -7115,6 +7115,7 @@ package android.media.tv.tuner { public class Tuner implements java.lang.AutoCloseable { ctor @RequiresPermission(android.Manifest.permission.ACCESS_TV_TUNER) public Tuner(@NonNull android.content.Context, @Nullable String, int); + method public int applyFrontend(@NonNull android.media.tv.tuner.frontend.FrontendInfo); method public int cancelScanning(); method public int cancelTuning(); method public void clearOnTuneEventListener(); @@ -7145,7 +7146,6 @@ package android.media.tv.tuner { method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_SHARED_FILTER) public static android.media.tv.tuner.filter.SharedFilter openSharedFilter(@NonNull android.content.Context, @NonNull String, @NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.filter.SharedFilterCallback); method @Nullable public android.media.tv.tuner.filter.TimeFilter openTimeFilter(); method public int removeOutputPid(@IntRange(from=0) int); - method public int requestFrontendById(int); method public int scan(@NonNull android.media.tv.tuner.frontend.FrontendSettings, int, @NonNull java.util.concurrent.Executor, @NonNull android.media.tv.tuner.frontend.ScanCallback); method public int setLnaEnabled(boolean); method public int setMaxNumberOfFrontends(int, @IntRange(from=0) int); diff --git a/media/java/android/media/tv/tuner/Tuner.java b/media/java/android/media/tv/tuner/Tuner.java index 51b976bf9f698..fab63aa18097d 100644 --- a/media/java/android/media/tv/tuner/Tuner.java +++ b/media/java/android/media/tv/tuner/Tuner.java @@ -2376,19 +2376,20 @@ public class Tuner implements AutoCloseable { } /** - * Request a frontend by frontend id. + * Request a frontend by frontend info. * *
This API is used if the applications want to select a desired frontend before * {@link tune} to use a specific satellite or sending SatCR DiSEqC command for {@link tune}. * - * @param desiredId the desired fronted Id. It can be retrieved by + * @param desiredFrontendInfo the FrontendInfo of the desired fronted. It can be retrieved by * {@link getAvailableFrontendInfos} * * @return result status of open operation. * @throws SecurityException if the caller does not have appropriate permissions. */ @Result - public int requestFrontendById(int desiredId) { + public int applyFrontend(@NonNull FrontendInfo desiredFrontendInfo) { + Objects.requireNonNull(desiredFrontendInfo, "desiredFrontendInfo must not be null"); mFrontendLock.lock(); try { if (mFeOwnerTuner != null) { @@ -2399,17 +2400,12 @@ public class Tuner implements AutoCloseable { Log.e(TAG, "A frontend has been opened before"); return RESULT_INVALID_STATE; } - FrontendInfo frontendInfo = getFrontendInfoById(desiredId); - if (frontendInfo == null) { - Log.e(TAG, "Failed to get a FrontendInfo by frontend id: " + desiredId); - return RESULT_UNAVAILABLE; - } - int frontendType = frontendInfo.getType(); + mFrontendType = desiredFrontendInfo.getType(); + mDesiredFrontendId = desiredFrontendInfo.getId(); if (DEBUG) { - Log.d(TAG, "Opening frontend with type " + frontendType + ", id " + desiredId); + Log.d(TAG, "Applying frontend with type " + mFrontendType + ", id " + + mDesiredFrontendId); } - mFrontendType = frontendType; - mDesiredFrontendId = desiredId; if (!checkResource(TunerResourceManager.TUNER_RESOURCE_TYPE_FRONTEND, mFrontendLock)) { return RESULT_UNAVAILABLE; }