break;
case Global.HDMI_CONTROL_AUTO_WAKEUP_ENABLED:
tv().setAutoWakeup(enabled);
- setOption(OPTION_CEC_AUTO_WAKEUP, toInt(enabled));
+ setCecOption(OPTION_CEC_AUTO_WAKEUP, toInt(enabled));
break;
case Global.HDMI_CONTROL_AUTO_DEVICE_OFF_ENABLED:
tv().setAutoDeviceOff(enabled);
}
private void disableDevices(PendingActionClearedCallback callback) {
- for (HdmiCecLocalDevice device : mCecController.getLocalDeviceList()) {
- device.disableDevice(mStandbyMessageReceived, callback);
+ if (mCecController != null) {
+ for (HdmiCecLocalDevice device : mCecController.getLocalDeviceList()) {
+ device.disableDevice(mStandbyMessageReceived, callback);
+ }
+ if (isTvDevice()) {
+ unregisterSettingsObserver();
+ }
}
- if (isTvDevice()) {
- unregisterSettingsObserver();
+
+ if (mMhlController != null) {
+ mMhlController.clearAllLocalDevices();
}
}
}
@ServiceThreadOnly
- void setOption(int key, int value) {
+ void setCecOption(int key, int value) {
assertRunOnServiceThread();
mCecController.setOption(key, value);
}