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

Commit 925804d8 authored by Tomasz Wasilczyk's avatar Tomasz Wasilczyk Committed by android-build-merger
Browse files

Merge "Fix empty program list filter handling." into pi-dev

am: 7a33063b

Change-Id: I4f0a2a4914e71654c17ec7cb5fa6ec966d61d6a8
parents 8f935b0f 7a33063b
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -260,6 +260,17 @@ public final class ProgramList implements AutoCloseable {
            mVendorFilter = null;
        }

        /**
         * @hide for framework use only
         */
        public Filter() {
            mIdentifierTypes = Collections.emptySet();
            mIdentifiers = Collections.emptySet();
            mIncludeCategories = false;
            mExcludeModifications = false;
            mVendorFilter = null;
        }

        /**
         * @hide for framework use only
         */
+2 −0
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@ class TunerAdapter extends RadioTuner {
                mLegacyListProxy.close();
                mLegacyListProxy = null;
            }
            mCallback.close();
        }
        try {
            mTuner.close();
@@ -278,6 +279,7 @@ class TunerAdapter extends RadioTuner {
            try {
                mTuner.startProgramListUpdates(filter);
            } catch (UnsupportedOperationException ex) {
                Log.i(TAG, "Program list is not supported with this hardware");
                return null;
            } catch (RemoteException ex) {
                mCallback.setProgramListObserver(null, () -> { });
+6 −0
Original line number Diff line number Diff line
@@ -53,6 +53,12 @@ class TunerCallbackAdapter extends ITunerCallback.Stub {
        }
    }

    void close() {
        synchronized (mLock) {
            if (mProgramList != null) mProgramList.close();
        }
    }

    void setProgramListObserver(@Nullable ProgramList programList,
            @NonNull ProgramList.OnCloseListener closeListener) {
        Objects.requireNonNull(closeListener);
+4 −2
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.server.broadcastradio.hal1;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.hardware.radio.ITuner;
import android.hardware.radio.ITunerCallback;
import android.hardware.radio.ProgramList;
@@ -87,8 +88,9 @@ class TunerCallback implements ITunerCallback {
        mTuner.close();
    }

    void startProgramListUpdates(@NonNull ProgramList.Filter filter) {
        mProgramListFilter.set(Objects.requireNonNull(filter));
    void startProgramListUpdates(@Nullable ProgramList.Filter filter) {
        if (filter == null) filter = new ProgramList.Filter();
        mProgramListFilter.set(filter);
        sendProgramListUpdate();
    }

+3 −1
Original line number Diff line number Diff line
@@ -375,7 +375,9 @@ class Convert {
        );
    }

    static @NonNull ProgramFilter programFilterToHal(@NonNull ProgramList.Filter filter) {
    static @NonNull ProgramFilter programFilterToHal(@Nullable ProgramList.Filter filter) {
        if (filter == null) filter = new ProgramList.Filter();

        ProgramFilter hwFilter = new ProgramFilter();

        filter.getIdentifierTypes().stream().forEachOrdered(hwFilter.identifierTypes::add);