diff options
| author | 2019-04-16 14:48:11 -0700 | |
|---|---|---|
| committer | 2019-04-17 20:20:47 +0000 | |
| commit | baf0fdfecc96170a13528cbf0f38a7e52f62dbf8 (patch) | |
| tree | b520837ab691c9c89202d442e233e8a90a01c9f5 | |
| parent | eaf1f8fd6da652d9bc42da70d9d188ba665db4bc (diff) | |
Don't start an observer without an extcon device
This prevents needless logspam at startup.
Bug: 123906489
Change-Id: Ib97b2a6a9aed3a681f48943c57bae4b5953fb54c
Test: m services.core
(cherry picked from commit 4ea6290b11d91a9110e63dc3f00041029c118e07)
| -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; |