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

Commit cbcb5e58 authored by Kyeongkab.Nam's avatar Kyeongkab.Nam Committed by android-build-merger
Browse files

Merge "CEC: Make TV try to dispatch the message first" am: aa397020

am: bea3ddf9

Change-Id: Ia05bb1395ef854f03d3f4165fc3f0abf922407c8
parents dc903efb bea3ddf9
Loading
Loading
Loading
Loading
+10 −9
Original line number Diff line number Diff line
@@ -303,19 +303,19 @@ public final class HdmiControlService extends SystemService {
    private final class CecMessageBuffer {
        private List<HdmiCecMessage> mBuffer = new ArrayList<>();

        public void bufferMessage(HdmiCecMessage message) {
        public boolean bufferMessage(HdmiCecMessage message) {
            switch (message.getOpcode()) {
                case Constants.MESSAGE_ACTIVE_SOURCE:
                    bufferActiveSource(message);
                    break;
                    return true;
                case Constants.MESSAGE_IMAGE_VIEW_ON:
                case Constants.MESSAGE_TEXT_VIEW_ON:
                    bufferImageOrTextViewOn(message);
                    break;
                    return true;
                    // Add here if new message that needs to buffer
                default:
                    // Do not need to buffer messages other than above
                    break;
                    return false;
            }
        }

@@ -869,10 +869,6 @@ public final class HdmiControlService extends SystemService {
    @ServiceThreadOnly
    boolean handleCecCommand(HdmiCecMessage message) {
        assertRunOnServiceThread();
        if (!mAddressAllocated) {
            mCecMessageBuffer.bufferMessage(message);
            return true;
        }
        int errorCode = mMessageValidator.isValid(message);
        if (errorCode != HdmiCecMessageValidator.OK) {
            // We'll not response on the messages with the invalid source or destination
@@ -882,7 +878,12 @@ public final class HdmiControlService extends SystemService {
            }
            return true;
        }
        return dispatchMessageToLocalDevice(message);

        if (dispatchMessageToLocalDevice(message)) {
            return true;
        }

        return (!mAddressAllocated) ? mCecMessageBuffer.bufferMessage(message) : false;
    }

    void enableAudioReturnChannel(int portId, boolean enabled) {