From e47c7237fb6569619f7454df538d2f301bdcdeab Mon Sep 17 00:00:00 2001 From: Hongguang Date: Tue, 26 Oct 2021 16:23:33 -0700 Subject: [PATCH] Return error if the a new tune() is called with different frontend type. Bug: 204235120 Test: atest android.media.tv.tuner.cts Change-Id: I914df11fc223d2902ecbdb20a9cecbbe726c904f --- media/java/android/media/tv/tuner/Tuner.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/media/java/android/media/tv/tuner/Tuner.java b/media/java/android/media/tv/tuner/Tuner.java index 9dc4949799cdd..405f9eedab14f 100644 --- a/media/java/android/media/tv/tuner/Tuner.java +++ b/media/java/android/media/tv/tuner/Tuner.java @@ -751,8 +751,13 @@ public class Tuner implements AutoCloseable { */ @Result public int tune(@NonNull FrontendSettings settings) { - Log.d(TAG, "Tune to " + settings.getFrequency()); - mFrontendType = settings.getType(); + final int type = settings.getType(); + if (mFrontendHandle != null && type != mFrontendType) { + Log.e(TAG, "Frontend was opened with type " + mFrontendType + ", new type is " + type); + return RESULT_INVALID_STATE; + } + Log.d(TAG, "Tune to " + settings.getFrequencyLong()); + mFrontendType = type; if (mFrontendType == FrontendSettings.TYPE_DTMB) { if (!TunerVersionChecker.checkHigherOrEqualVersionTo( TunerVersionChecker.TUNER_VERSION_1_1, "Tuner with DTMB Frontend")) {