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

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

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

parents bf1fe9ae d0c78f9f
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);