Merge "Don't start an observer without an extcon device" into qt-dev

This commit is contained in:
TreeHugger Robot
2019-04-23 19:33:35 +00:00
committed by Android (Google) Code Review
2 changed files with 14 additions and 3 deletions

View File

@@ -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();

View File

@@ -3632,11 +3632,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 */);
@@ -5696,7 +5700,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;