Merge "Reconnect CEC HAL callback" am: f1df6bf33a am: 70c1c7069f

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

Change-Id: I62b4af1673c460375d4929991146218beeadc0e4
This commit is contained in:
Treehugger Robot
2020-10-05 10:27:25 +00:00
committed by Automerger Merge Worker

View File

@@ -16,6 +16,8 @@
package com.android.server.hdmi; package com.android.server.hdmi;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.hardware.hdmi.HdmiPortInfo; import android.hardware.hdmi.HdmiPortInfo;
import android.hardware.tv.cec.V1_0.CecMessage; import android.hardware.tv.cec.V1_0.CecMessage;
import android.hardware.tv.cec.V1_0.HotplugEvent; import android.hardware.tv.cec.V1_0.HotplugEvent;
@@ -725,6 +727,7 @@ final class HdmiCecController {
private IHdmiCec mHdmiCec; private IHdmiCec mHdmiCec;
private final Object mLock = new Object(); private final Object mLock = new Object();
private int mPhysicalAddress = INVALID_PHYSICAL_ADDRESS; private int mPhysicalAddress = INVALID_PHYSICAL_ADDRESS;
@Nullable private HdmiCecCallback mCallback;
@Override @Override
public String nativeInit() { public String nativeInit() {
@@ -733,7 +736,7 @@ final class HdmiCecController {
boolean connectToHal() { boolean connectToHal() {
try { try {
mHdmiCec = IHdmiCec.getService(); mHdmiCec = IHdmiCec.getService(true);
try { try {
mHdmiCec.linkToDeath(this, HDMI_CEC_HAL_DEATH_COOKIE); mHdmiCec.linkToDeath(this, HDMI_CEC_HAL_DEATH_COOKIE);
} catch (RemoteException e) { } catch (RemoteException e) {
@@ -747,7 +750,8 @@ final class HdmiCecController {
} }
@Override @Override
public void setCallback(HdmiCecCallback callback) { public void setCallback(@NonNull HdmiCecCallback callback) {
mCallback = callback;
try { try {
mHdmiCec.setCallback(callback); mHdmiCec.setCallback(callback);
} catch (RemoteException e) { } catch (RemoteException e) {
@@ -887,6 +891,10 @@ final class HdmiCecController {
if (cookie == HDMI_CEC_HAL_DEATH_COOKIE) { if (cookie == HDMI_CEC_HAL_DEATH_COOKIE) {
HdmiLogger.error(TAG, "Service died cokkie : " + cookie + "; reconnecting"); HdmiLogger.error(TAG, "Service died cokkie : " + cookie + "; reconnecting");
connectToHal(); connectToHal();
// Reconnect the callback
if (mCallback != null) {
setCallback(mCallback);
}
} }
} }