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

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

Merge "Implement hasControl/isClosed call of ITuner."

parents fe22579b 468a53b7
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -22,6 +22,8 @@ import android.hardware.radio.RadioManager;
interface ITuner {
interface ITuner {
    void close();
    void close();


    boolean isClosed();

    /**
    /**
     * @throws IllegalArgumentException if config is not valid or null
     * @throws IllegalArgumentException if config is not valid or null
     */
     */
+6 −2
Original line number Original line Diff line number Diff line
@@ -227,7 +227,11 @@ class TunerAdapter extends RadioTuner {


    @Override
    @Override
    public boolean hasControl() {
    public boolean hasControl() {
        // TODO(b/36863239): forward to mTuner
        try {
        throw new RuntimeException("Not implemented");
            // don't rely on mIsClosed, as tuner might get closed internally
            return !mTuner.isClosed();
        } catch (RemoteException e) {
            return false;
        }
    }
    }
}
}
+6 −1
Original line number Original line Diff line number Diff line
@@ -92,13 +92,18 @@ class Tuner extends ITuner.Stub {
    public void close() {
    public void close() {
        synchronized (mLock) {
        synchronized (mLock) {
            if (mIsClosed) return;
            if (mIsClosed) return;
            mIsClosed = true;
            mTunerCallback.detach();
            mTunerCallback.detach();
            mClientCallback.asBinder().unlinkToDeath(mDeathRecipient, 0);
            mClientCallback.asBinder().unlinkToDeath(mDeathRecipient, 0);
            nativeClose(mNativeContext);
            nativeClose(mNativeContext);
            mIsClosed = true;
        }
        }
    }
    }


    @Override
    public boolean isClosed() {
        return mIsClosed;
    }

    private void checkNotClosedLocked() {
    private void checkNotClosedLocked() {
        if (mIsClosed) {
        if (mIsClosed) {
            throw new IllegalStateException("Tuner is closed, no further operations are allowed");
            throw new IllegalStateException("Tuner is closed, no further operations are allowed");