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

Commit 84c4e9f6 authored by Tomasz Wasilczyk's avatar Tomasz Wasilczyk Committed by Android (Google) Code Review
Browse files

Merge "Implement part of ITunerSession interface."

parents 25d2bf9c ca98cde2
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1654,8 +1654,8 @@ public class RadioManager {
        TunerCallbackAdapter halCallback = new TunerCallbackAdapter(callback, handler);
        try {
            tuner = mService.openTuner(moduleId, config, withAudio, halCallback);
        } catch (RemoteException e) {
            Log.e(TAG, "Failed to open tuner", e);
        } catch (RemoteException | IllegalArgumentException ex) {
            Log.e(TAG, "Failed to open tuner", ex);
            return null;
        }
        if (tuner == null) {
+1 −0
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@ class TunerAdapter extends RadioTuner {

    @Override
    public int setConfiguration(RadioManager.BandConfig config) {
        if (config == null) return RadioManager.STATUS_BAD_VALUE;
        try {
            mTuner.setConfiguration(config);
            mBand = config.getType();
+5 −13
Original line number Diff line number Diff line
@@ -149,6 +149,10 @@ public class RadioTunerTest {

        mRadioTuner = mRadioManager.openTuner(mModule.getId(),
                mFmBandConfig, withAudio, mCallback, null);
        if (!withAudio) {
            // non-audio sessions might not be supported - if so, then skip the test
            assumeNotNull(mRadioTuner);
        }
        assertNotNull(mRadioTuner);
        verify(mCallback, timeout(kConfigCallbackTimeoutMs)).onConfigurationChanged(any());
        resetCallback();
@@ -207,20 +211,8 @@ public class RadioTunerTest {
    public void testSetBadConfiguration() throws Throwable {
        openTuner();

        // set bad config
        Constructor<RadioManager.AmBandConfig> configConstr =
                RadioManager.AmBandConfig.class.getDeclaredConstructor(
                        int.class, int.class, int.class, int.class, int.class, boolean.class);
        configConstr.setAccessible(true);
        RadioManager.AmBandConfig badConfig = configConstr.newInstance(
                0 /*region*/, RadioManager.BAND_AM /*type*/,
                10000 /*lowerLimit*/, 1 /*upperLimit*/, 100 /*spacing*/, false /*stereo*/);
        int ret = mRadioTuner.setConfiguration(badConfig);
        assertEquals(RadioManager.STATUS_BAD_VALUE, ret);
        verify(mCallback, never()).onConfigurationChanged(any());

        // set null config
        ret = mRadioTuner.setConfiguration(null);
        int ret = mRadioTuner.setConfiguration(null);
        assertEquals(RadioManager.STATUS_BAD_VALUE, ret);
        verify(mCallback, never()).onConfigurationChanged(any());

+1 −1
Original line number Diff line number Diff line
@@ -94,7 +94,7 @@ public class BroadcastRadioService extends SystemService {
            }
            synchronized (mLock) {
                if (mHal2.hasModule(moduleId)) {
                    return mHal2.openSession(moduleId, callback);
                    return mHal2.openSession(moduleId, bandConfig, withAudio, callback);
                } else {
                    return mHal1.openTuner(moduleId, bandConfig, withAudio, callback);
                }
+10 −2
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.server.broadcastradio.hal2;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.hardware.radio.ITuner;
import android.hardware.radio.ITunerCallback;
import android.hardware.radio.RadioManager;
@@ -80,14 +81,21 @@ public class BroadcastRadioService {
        return mModules.containsKey(id);
    }

    public ITuner openSession(int moduleId, @NonNull ITunerCallback callback) {
    public ITuner openSession(int moduleId, @Nullable RadioManager.BandConfig legacyConfig,
        boolean withAudio, @NonNull ITunerCallback callback) {
        Objects.requireNonNull(callback);

        if (!withAudio) {
            throw new IllegalArgumentException("Non-audio sessions not supported with HAL 2.x");
        }

        RadioModule module = mModules.get(moduleId);
        if (module == null) {
            throw new IllegalArgumentException("Invalid module ID");
        }

        return module.openSession(callback);
        TunerSession session = module.openSession(callback);
        session.setConfiguration(legacyConfig);
        return session;
    }
}
Loading