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

Commit 0dac7f58 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "CEC: Make dumpsys message history size editable"

parents 4172a3bc 49b51e67
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -294,6 +294,16 @@ public final class HdmiControlServiceWrapper {
            HdmiControlServiceWrapper.this.removeHdmiCecVolumeControlFeatureListener(listener);
        }

        @Override
        public int getMessageHistorySize() {
            return HdmiControlServiceWrapper.this.getMessageHistorySize();
        }

        @Override
        public boolean setMessageHistorySize(int newSize) {
            return HdmiControlServiceWrapper.this.setMessageHistorySize(newSize);
        }

        @Override
        public void addCecSettingChangeListener(String name,
                IHdmiCecSettingChangeListener listener) {
@@ -522,6 +532,16 @@ public final class HdmiControlServiceWrapper {
    public void removeHdmiCecVolumeControlFeatureListener(
            IHdmiCecVolumeControlFeatureListener listener) {}

    /** @hide */
    public int getMessageHistorySize() {
        return 0;
    }

    /** @hide */
    public boolean setMessageHistorySize(int newSize) {
        return true;
    }

    /** @hide */
    public void addCecSettingChangeListener(String name,
            IHdmiCecSettingChangeListener listener) {}
+2 −0
Original line number Diff line number Diff line
@@ -88,6 +88,8 @@ interface IHdmiControlService {
    void setStandbyMode(boolean isStandbyModeOn);
    void reportAudioStatus(int deviceType, int volume, int maxVolume, boolean isMute);
    void setSystemAudioModeOnForAudioOnlySource();
    boolean setMessageHistorySize(int newSize);
    int getMessageHistorySize();
    void addCecSettingChangeListener(String name, IHdmiCecSettingChangeListener listener);
    void removeCecSettingChangeListener(String name, IHdmiCecSettingChangeListener listener);
    List<String> getUserCecSettings();
+11 −0
Original line number Diff line number Diff line
@@ -375,6 +375,17 @@ public class HdmiAudioSystemClientTest {
                IHdmiCecVolumeControlFeatureListener listener) {
        }

        @Override
        public int getMessageHistorySize() {
            return 0;
        }

        @Override
        public boolean setMessageHistorySize(int newSize) {
            return true;
        }


        @Override
        public List<String> getUserCecSettings() {
            return new ArrayList<>();
+35 −6
Original line number Diff line number Diff line
@@ -90,7 +90,7 @@ final class HdmiCecController {

    private static final int MAX_DEDICATED_ADDRESS = 11;

    private static final int MAX_HDMI_MESSAGE_HISTORY = 250;
    private static final int INITIAL_HDMI_MESSAGE_HISTORY_SIZE = 250;

    private static final int INVALID_PHYSICAL_ADDRESS = 0xFFFF;

@@ -138,8 +138,10 @@ final class HdmiCecController {
    private final HdmiControlService mService;

    // Stores recent CEC messages and HDMI Hotplug event history for debugging purpose.
    private final ArrayBlockingQueue<Dumpable> mMessageHistory =
            new ArrayBlockingQueue<>(MAX_HDMI_MESSAGE_HISTORY);
    private ArrayBlockingQueue<Dumpable> mMessageHistory =
            new ArrayBlockingQueue<>(INITIAL_HDMI_MESSAGE_HISTORY_SIZE);

    private final Object mMessageHistoryLock = new Object();

    private final NativeWrapper mNativeWrapperImpl;

@@ -750,11 +752,38 @@ final class HdmiCecController {
    }

    private void addEventToHistory(Dumpable event) {
        synchronized (mMessageHistoryLock) {
            if (!mMessageHistory.offer(event)) {
                mMessageHistory.poll();
                mMessageHistory.offer(event);
            }
        }
    }

    int getMessageHistorySize() {
        synchronized (mMessageHistoryLock) {
            return mMessageHistory.size() + mMessageHistory.remainingCapacity();
        }
    }

    boolean setMessageHistorySize(int newSize) {
        if (newSize < INITIAL_HDMI_MESSAGE_HISTORY_SIZE) {
            return false;
        }
        ArrayBlockingQueue<Dumpable> newMessageHistory = new ArrayBlockingQueue<>(newSize);

        synchronized (mMessageHistoryLock) {
            if (newSize < mMessageHistory.size()) {
                for (int i = 0; i < mMessageHistory.size() - newSize; i++) {
                    mMessageHistory.poll();
                }
            }

            newMessageHistory.addAll(mMessageHistory);
            mMessageHistory = newMessageHistory;
        }
        return true;
    }

    void dump(final IndentingPrintWriter pw) {
        pw.println("CEC message history:");
+19 −0
Original line number Diff line number Diff line
@@ -2365,6 +2365,25 @@ public class HdmiControlService extends SystemService {
            }
        }

        @Override
        public boolean setMessageHistorySize(int newSize) {
            enforceAccessPermission();
            if (mCecController == null) {
                return false;
            }
            return mCecController.setMessageHistorySize(newSize);
        }

        @Override
        public int getMessageHistorySize() {
            enforceAccessPermission();
            if (mCecController != null) {
                return mCecController.getMessageHistorySize();
            } else {
                return 0;
            }
        }

        @Override
        public void addCecSettingChangeListener(String name,
                final IHdmiCecSettingChangeListener listener) {
Loading