Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7bce4ddf authored by Weilin Xu's avatar Weilin Xu
Browse files

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
parent 11ffcbfa
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -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;
        }
+9 −0
Original line number Diff line number Diff line
@@ -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();