diff options
| -rw-r--r-- | services/core/java/com/android/server/ExtconUEventObserver.java | 8 | ||||
| -rw-r--r-- | services/core/java/com/android/server/policy/PhoneWindowManager.java | 9 |
2 files changed, 14 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/ExtconUEventObserver.java b/services/core/java/com/android/server/ExtconUEventObserver.java index 6b42b3d06d4b..5bd27c4dd481 100644 --- a/services/core/java/com/android/server/ExtconUEventObserver.java +++ b/services/core/java/com/android/server/ExtconUEventObserver.java @@ -159,7 +159,13 @@ public abstract class ExtconUEventObserver extends UEventObserver { } } - /** Does the {@link /sys/class/extcon} directory exist */ + /** Does the {@code /sys/class/extcon/<name>} directory exist */ + public static boolean namedExtconDirExists(String name) { + File extconDir = new File("/sys/class/extcon/" + name); + return extconDir.exists() && extconDir.isDirectory(); + } + + /** Does the {@code /sys/class/extcon} directory exist */ public static boolean extconExists() { File extconDir = new File("/sys/class/extcon"); return extconDir.exists() && extconDir.isDirectory(); diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index d0ca861d8d3b..03d0e236b618 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -3556,11 +3556,15 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } } - } else if (ExtconUEventObserver.extconExists()) { + } else if (ExtconUEventObserver.extconExists() + && ExtconUEventObserver.namedExtconDirExists(HdmiVideoExtconUEventObserver.NAME)) { HdmiVideoExtconUEventObserver observer = new HdmiVideoExtconUEventObserver(); plugged = observer.init(); mHDMIObserver = observer; + } else if (localLOGV) { + Slog.v(TAG, "Not observing HDMI plug state because HDMI was not found."); } + // This dance forces the code in setHdmiPlugged to run. // Always do this so the sticky intent is stuck (to false) if there is no hdmi. mDefaultDisplayPolicy.setHdmiPlugged(plugged, true /* force */); @@ -5616,7 +5620,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { private class HdmiVideoExtconUEventObserver extends ExtconStateObserver<Boolean> { private static final String HDMI_EXIST = "HDMI=1"; - private final ExtconInfo mHdmi = new ExtconInfo("hdmi"); + private static final String NAME = "hdmi"; + private final ExtconInfo mHdmi = new ExtconInfo(NAME); private boolean init() { boolean plugged = false; |