summaryrefslogtreecommitdiff
path: root/services/java/com/android/server/display/LocalDisplayAdapter.java
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2012-09-20 18:30:13 -0700
committerJeff Brown <jeffbrown@google.com>2012-09-21 15:34:32 -0700
commite87bf030766198bf5e1fe846167dba766e27fb3f (patch)
treeb0f379481622310b6afd5e8002c16930e6ed91b6 /services/java/com/android/server/display/LocalDisplayAdapter.java
parentf98db0de2248ad286b207eed6a826373cc60b786 (diff)
Support HDMI hotplug.
Bug: 7206678 Change-Id: Ia5212b16658a5f5a2ccf8528eca7bebd45ca857a
Diffstat (limited to 'services/java/com/android/server/display/LocalDisplayAdapter.java')
-rw-r--r--services/java/com/android/server/display/LocalDisplayAdapter.java19
1 files changed, 18 insertions, 1 deletions
diff --git a/services/java/com/android/server/display/LocalDisplayAdapter.java b/services/java/com/android/server/display/LocalDisplayAdapter.java
index eab4c9a20089..9c5146382974 100644
--- a/services/java/com/android/server/display/LocalDisplayAdapter.java
+++ b/services/java/com/android/server/display/LocalDisplayAdapter.java
@@ -19,7 +19,9 @@ package com.android.server.display;
import android.content.Context;
import android.os.Handler;
import android.os.IBinder;
+import android.os.Looper;
import android.util.SparseArray;
+import android.view.DisplayEventReceiver;
import android.view.Surface;
import android.view.Surface.PhysicalDisplayInfo;
@@ -41,12 +43,14 @@ final class LocalDisplayAdapter extends DisplayAdapter {
private final SparseArray<LocalDisplayDevice> mDevices =
new SparseArray<LocalDisplayDevice>();
+ private final HotplugDisplayEventReceiver mHotplugReceiver;
private final PhysicalDisplayInfo mTempPhys = new PhysicalDisplayInfo();
public LocalDisplayAdapter(DisplayManagerService.SyncRoot syncRoot,
Context context, Handler handler, Listener listener) {
super(syncRoot, context, handler, listener, TAG);
+ mHotplugReceiver = new HotplugDisplayEventReceiver(handler.getLooper());
}
@Override
@@ -148,4 +152,17 @@ final class LocalDisplayAdapter extends DisplayAdapter {
pw.println("mPhys=" + mPhys);
}
}
-}
+
+ private final class HotplugDisplayEventReceiver extends DisplayEventReceiver {
+ public HotplugDisplayEventReceiver(Looper looper) {
+ super(looper);
+ }
+
+ @Override
+ public void onHotplug(long timestampNanos, int builtInDisplayId, boolean connected) {
+ synchronized (getSyncRoot()) {
+ scanDisplaysLocked();
+ }
+ }
+ }
+} \ No newline at end of file