diff options
author | Jeff Brown <jeffbrown@google.com> | 2012-09-20 18:30:13 -0700 |
---|---|---|
committer | Jeff Brown <jeffbrown@google.com> | 2012-09-21 15:34:32 -0700 |
commit | e87bf030766198bf5e1fe846167dba766e27fb3f (patch) | |
tree | b0f379481622310b6afd5e8002c16930e6ed91b6 /services/java/com/android/server/display/LocalDisplayAdapter.java | |
parent | f98db0de2248ad286b207eed6a826373cc60b786 (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.java | 19 |
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 |