Merge "Reconnect CEC HAL callback" am: f1df6bf33a am: 70c1c7069f am: 339cefd32a
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1422871 Change-Id: I06cb30773d309fed7bdbc108003d0db5e0e567b4
This commit is contained in:
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user