Fix status mismatch in TunerCallbackAdapter

In onTuneFailed method in TunerCallbackAdapter, error status was
converted according to TunerResultType instead.

Bug: 280699939
Test: atest TunerAdapterTest
Change-Id: I5707edfebda0217af4b2e3adc5bb9150f521f344
This commit is contained in:
Weilin Xu
2023-05-04 03:40:41 +00:00
parent 11ffcbfa09
commit 7bce4ddf1e
2 changed files with 18 additions and 0 deletions

View File

@@ -144,6 +144,9 @@ final class TunerCallbackAdapter extends ITunerCallback.Stub {
int errorCode;
switch (status) {
case RadioTuner.TUNER_RESULT_CANCELED:
errorCode = RadioTuner.ERROR_CANCELLED;
break;
case RadioManager.STATUS_PERMISSION_DENIED:
case RadioManager.STATUS_DEAD_OBJECT:
errorCode = RadioTuner.ERROR_SERVER_DIED;
@@ -152,10 +155,16 @@ final class TunerCallbackAdapter extends ITunerCallback.Stub {
case RadioManager.STATUS_NO_INIT:
case RadioManager.STATUS_BAD_VALUE:
case RadioManager.STATUS_INVALID_OPERATION:
case RadioTuner.TUNER_RESULT_INTERNAL_ERROR:
case RadioTuner.TUNER_RESULT_INVALID_ARGUMENTS:
case RadioTuner.TUNER_RESULT_INVALID_STATE:
case RadioTuner.TUNER_RESULT_NOT_SUPPORTED:
case RadioTuner.TUNER_RESULT_UNKNOWN_ERROR:
Log.i(TAG, "Got an error with no mapping to the legacy API (" + status
+ "), doing a best-effort conversion to ERROR_SCAN_TIMEOUT");
// fall through
case RadioManager.STATUS_TIMED_OUT:
case RadioTuner.TUNER_RESULT_TIMEOUT:
default:
errorCode = RadioTuner.ERROR_SCAN_TIMEOUT;
}

View File

@@ -749,6 +749,15 @@ public final class TunerAdapterTest {
verify(mCallbackMock, after(CALLBACK_TIMEOUT_MS).never()).onProgramInfoChanged(any());
}
@Test
public void onTuneFailed_withCanceledResult() throws Exception {
mTunerCallback.onTuneFailed(RadioTuner.TUNER_RESULT_CANCELED, FM_SELECTOR);
verify(mCallbackMock, timeout(CALLBACK_TIMEOUT_MS)).onTuneFailed(
RadioTuner.TUNER_RESULT_CANCELED, FM_SELECTOR);
verify(mCallbackMock, timeout(CALLBACK_TIMEOUT_MS)).onError(RadioTuner.ERROR_CANCELLED);
}
@Test
public void onProgramListChanged_forTunerCallbackAdapter() throws Exception {
mTunerCallback.onProgramListChanged();