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

Commit 39ac2148 authored by Tomasz Wasilczyk's avatar Tomasz Wasilczyk
Browse files

Implement isAntennaConnected interface of ITuner.

Test: instrumentation
Bug: b/36863239
Change-Id: I325cc29a696a6163fd3db1f2a75e64a2b1ddf514
parent 615e77a6
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -84,4 +84,6 @@ interface ITuner {
     *         configuration.
     */
    void setAnalogForced(boolean isForced);

    boolean isAntennaConnected();
}
+5 −2
Original line number Diff line number Diff line
@@ -218,8 +218,11 @@ class TunerAdapter extends RadioTuner {

    @Override
    public boolean isAntennaConnected() {
        // TODO(b/36863239): forward to mTuner
        throw new RuntimeException("Not implemented");
        try {
            return mTuner.isAntennaConnected();
        } catch (RemoteException e) {
            throw new RuntimeException("service died", e);
        }
    }

    @Override
+14 −0
Original line number Diff line number Diff line
@@ -74,6 +74,8 @@ class Tuner extends ITuner.Stub {
    private native boolean nativeIsAnalogForced(long nativeContext);
    private native void nativeSetAnalogForced(long nativeContext, boolean isForced);

    private native boolean nativeIsAntennaConnected(long nativeContext);

    @Override
    public void close() {
        synchronized (mLock) {
@@ -177,6 +179,7 @@ class Tuner extends ITuner.Stub {
        }
    }

    @Override
    public boolean startBackgroundScan() {
        synchronized (mLock) {
            checkNotClosedLocked();
@@ -184,6 +187,7 @@ class Tuner extends ITuner.Stub {
        }
    }

    @Override
    public List<RadioManager.ProgramInfo> getProgramList(String filter) {
        synchronized (mLock) {
            checkNotClosedLocked();
@@ -195,6 +199,7 @@ class Tuner extends ITuner.Stub {
        }
    }

    @Override
    public boolean isAnalogForced() {
        synchronized (mLock) {
            checkNotClosedLocked();
@@ -202,10 +207,19 @@ class Tuner extends ITuner.Stub {
        }
    }

    @Override
    public void setAnalogForced(boolean isForced) {
        synchronized (mLock) {
            checkNotClosedLocked();
            nativeSetAnalogForced(mNativeContext, isForced);
        }
    }

    @Override
    public boolean isAntennaConnected() {
        synchronized (mLock) {
            checkNotClosedLocked();
            return nativeIsAntennaConnected(mNativeContext);
        }
    }
}
+16 −0
Original line number Diff line number Diff line
@@ -319,6 +319,21 @@ static void nativeSetAnalogForced(JNIEnv *env, jobject obj, jlong nativeContext,
    convert::ThrowIfFailed(env, halResult);
}

static bool nativeIsAntennaConnected(JNIEnv *env, jobject obj, jlong nativeContext) {
    ALOGV("nativeIsAntennaConnected()");
    auto halTuner = getHalTuner(nativeContext);
    if (halTuner == nullptr) return false;

    bool isConnected = false;
    Result halResult;
    auto hidlResult = halTuner->getConfiguration([&](Result result, const BandConfig& config) {
        halResult = result;
        isConnected = config.antennaConnected;
    });
    convert::ThrowIfFailed(env, hidlResult, halResult);
    return isConnected;
}

static const JNINativeMethod gTunerMethods[] = {
    { "nativeInit", "(I)J", (void*)nativeInit },
    { "nativeFinalize", "(J)V", (void*)nativeFinalize },
@@ -338,6 +353,7 @@ static const JNINativeMethod gTunerMethods[] = {
            (void*)nativeGetProgramList },
    { "nativeIsAnalogForced", "(J)Z", (void*)nativeIsAnalogForced },
    { "nativeSetAnalogForced", "(JZ)V", (void*)nativeSetAnalogForced },
    { "nativeIsAntennaConnected", "(J)Z", (void*)nativeIsAntennaConnected },
};

} // namespace Tuner
+2 −3
Original line number Diff line number Diff line
@@ -137,9 +137,8 @@ public class RadioTest {
    }

    private void checkAntenna() {
        // TODO(b/36863239): enable check when isAntennaConnected is implemented
        //boolean isConnected = mRadioTuner.isAntennaConnected();
        //assertTrue(isConnected);
        boolean isConnected = mRadioTuner.isAntennaConnected();
        assertTrue(isConnected);
    }

    @Test