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

Commit 70c1c706 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Reconnect CEC HAL callback" am: f1df6bf3

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1422871

Change-Id: I1dcb74c11b66eb9e6fb26b366bb1ccde399cc772
parents 004f473e f1df6bf3
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.server.hdmi;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.hardware.hdmi.HdmiPortInfo;
import android.hardware.tv.cec.V1_0.CecMessage;
import android.hardware.tv.cec.V1_0.HotplugEvent;
@@ -725,6 +727,7 @@ final class HdmiCecController {
        private IHdmiCec mHdmiCec;
        private final Object mLock = new Object();
        private int mPhysicalAddress = INVALID_PHYSICAL_ADDRESS;
        @Nullable private HdmiCecCallback mCallback;

        @Override
        public String nativeInit() {
@@ -733,7 +736,7 @@ final class HdmiCecController {

        boolean connectToHal() {
            try {
                mHdmiCec = IHdmiCec.getService();
                mHdmiCec = IHdmiCec.getService(true);
                try {
                    mHdmiCec.linkToDeath(this, HDMI_CEC_HAL_DEATH_COOKIE);
                } catch (RemoteException e) {
@@ -747,7 +750,8 @@ final class HdmiCecController {
        }

        @Override
        public void setCallback(HdmiCecCallback callback) {
        public void setCallback(@NonNull HdmiCecCallback callback) {
            mCallback = callback;
            try {
                mHdmiCec.setCallback(callback);
            } catch (RemoteException e) {
@@ -887,6 +891,10 @@ final class HdmiCecController {
            if (cookie == HDMI_CEC_HAL_DEATH_COOKIE) {
                HdmiLogger.error(TAG, "Service died cokkie : " + cookie + "; reconnecting");
                connectToHal();
                // Reconnect the callback
                if (mCallback != null) {
                    setCallback(mCallback);
                }
            }
        }