OSDN Git Service

Clean up MHL local devices when HdmiControlService turns into disabled state
authorJungshik Jang <jayjang@google.com>
Tue, 19 Aug 2014 09:56:21 +0000 (18:56 +0900)
committerJungshik Jang <jayjang@google.com>
Tue, 19 Aug 2014 09:56:21 +0000 (18:56 +0900)
Bug: 17122583
Change-Id: Id8f17faf9891952c762f86b46a89732f1497c5fc

services/core/java/com/android/server/hdmi/HdmiControlService.java

index 32d97ba..667ec07 100644 (file)
@@ -356,7 +356,7 @@ public final class HdmiControlService extends SystemService {
                     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);
@@ -1683,11 +1683,17 @@ public final class HdmiControlService extends SystemService {
     }
 
     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();
         }
     }
 
@@ -1759,7 +1765,7 @@ public final class HdmiControlService extends SystemService {
     }
 
     @ServiceThreadOnly
-    void setOption(int key, int value) {
+    void setCecOption(int key, int value) {
         assertRunOnServiceThread();
         mCecController.setOption(key, value);
     }