summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Nick Chalko <nchalko@google.com> 2019-04-16 14:48:11 -0700
committer Nick Chalko <nchalko@google.com> 2019-04-17 20:20:47 +0000
commitbaf0fdfecc96170a13528cbf0f38a7e52f62dbf8 (patch)
treeb520837ab691c9c89202d442e233e8a90a01c9f5
parenteaf1f8fd6da652d9bc42da70d9d188ba665db4bc (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.java8
-rw-r--r--services/core/java/com/android/server/policy/PhoneWindowManager.java9
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;