92130f6407dc51c58b3b941d28a6daf4e04b8d62 |
25-Oct-2012 |
Jeff Brown <jeffbrown@google.com> |
Add MediaRouter API to get presentation display. This new API makes it possible for an application to ask on which Display it should show a Presentation based on the currently selected media route. Also added a new API on DisplayManager to query displays that support a certain category of uses. Improved the documentation of the Presentation class to explain how to choose an appropriate Display for presentation. Bug: 7409073 Change-Id: Iab451215e570ae55f3718fc228303143c800fe51
isplayManager.java
|
bc335457462a12434a9df6955de1dd693cdccac7 |
27-Sep-2012 |
Jeff Brown <jeffbrown@google.com> |
Allow applications to connect to known wifi displays. Bug: 7177920 Change-Id: I9d8406e1016988e2cd267dfa52d78a829f1b385e
isplayManager.java
DisplayManager.aidl
|
89d5546d7fd3a3bb19820c42e8b4527013dd6545 |
19-Sep-2012 |
Jeff Brown <jeffbrown@google.com> |
Add support for remembering Wifi display devices. Add a setting to globally disable Wifi display. Fixed a bug where the wifi display broadcast receiver was running on the wrong thread. Removed the wifi-display QuickSettings dialog, all functionality has been moved to Settings. Bug: 7178216 Bug: 7192799 Change-Id: I9796baac8245d664cf28fa147b9ed978d81d8ab9
isplayManager.java
isplayManagerGlobal.java
DisplayManager.aidl
ifiDisplay.java
ifiDisplayStatus.java
|
180bbc71810496e280e9993177bfeddb3ad1f558 |
09-Sep-2012 |
Jeff Brown <jeffbrown@google.com> |
Improve Wifi display discovery API. Change-Id: I4d46503e5413f52da16f79bbc9c631cc5ae9c178
ifiDisplayStatus.java
|
e08ae388d63c4db8f9d9a7ecd634f9a51f6e91b9 |
08-Sep-2012 |
Jeff Brown <jeffbrown@google.com> |
Add new wifi display discovery API. The API is quite simple. There are a few extra functions on DisplayManager to scan, connect and disconnect from wifi displays and get status, and a single protected broadcast sent when the status changes. Change-Id: Ic91dbab5ee818e790b27fa32e1a1e93788793be0
isplayManager.java
isplayManagerGlobal.java
DisplayManager.aidl
ifiDisplay.aidl
ifiDisplay.java
ifiDisplayStatus.aidl
ifiDisplayStatus.java
|
4ed8fe75e1dde1a2b9576f3862aecc5a572c56b5 |
31-Aug-2012 |
Jeff Brown <jeffbrown@google.com> |
More improvements to the display manager. Added more complete support for logical displays with support for mirroring, rotation and scaling. Improved the overlay display adapter's touch interactions. A big change here is that the display manager no longer relies on a single-threaded model to maintain its synchronization invariants. Unfortunately we had to change this so as to play nice with the fact that the window manager wants to own the surface flinger transaction around display and surface manipulations. As a result, the display manager has to be able to update displays from the context of any thread. It would be nice to make this process more cooperative. There are already several components competing to perform surface flinger transactions including the window manager, display manager, electron beam, overlay display window, and mouse pointer. They are not manipulating the same surfaces but they can collide with one another when they make global changes to the displays. Change-Id: I04f448594241f2004f6f3d1a81ccd12c566bf296
isplayManagerGlobal.java
|
a492c3a7b2c18426fd0cb4d017eacbc368195dc5 |
24-Aug-2012 |
Jeff Brown <jeffbrown@google.com> |
Initial draft of high-level multi-display APIs. This patch introduces the ability to create a Context that is bound to a Display. The context gets its configuration and metrics from that display and is able to provide a WindowManager that is bound to the display. To make it easier to use, we also add a new kind of Dialog called a Presentation. Presentation takes care of setting up the context as needed and watches for significant changes in the display configuration. If the display is removed, then the presentation simply dismisses itself. Change-Id: Idc54b4ec84b1ff91505cfb78910cf8cd09696d7d
isplayManager.java
|
bd6e1500aedc5461e832f69e76341bff0e55fa2b |
28-Aug-2012 |
Jeff Brown <jeffbrown@google.com> |
Add initial multi-display support. Split the DisplayManager into two parts. One part is bound to a Context and takes care of Display compatibility and caching Display objects on behalf of the Context. The other part is global and takes care of communicating with the DisplayManagerService, handling callbacks, and caching DisplayInfo objects on behalf of the process. Implemented support for enumerating Displays and getting callbacks when displays are added, removed or changed. Elaborated the roles of DisplayManagerService, DisplayAdapter, and DisplayDevice. We now support having multiple display adapters registered, each of which can register multiple display devices and configure them dynamically. Added an OverlayDisplayAdapter which is used to simulate secondary displays by means of overlay windows. Different configurations of overlays can be selected using a new setting in the Developer Settings panel. The overlays can be repositioned and resized by the user for convenience. At the moment, all displays are mirrors of display 0 and no display transformations are applied. This will be improved in future patches. Refactored the way that the window manager creates its threads. The OverlayDisplayAdapter needs to be able to use hardware acceleration so it must share the same UI thread as the Keyguard and window manager policy. We now handle this explicitly as part of starting up the system server. This puts us in a better position to consider how we might want to share (or not share) Loopers among components. Overlay displays are disabled when in safe mode or in only-core mode to reduce the number of dependencies started in these modes. Change-Id: Ic2a661d5448dde01b095ab150697cb6791d69bb5
isplayManager.java
isplayManagerGlobal.java
DisplayManager.aidl
DisplayManagerCallback.aidl
|
b47bbc3d80badb94229bc4ce7a2d5006faa9ef15 |
23-Aug-2012 |
Craig Mautner <cmautner@google.com> |
Clean up displayId and layerStack usage. Make better use of Display object by saving it in DisplayContent. Only use layerStack when referring to Surfaces. Get displayId from default Display or default DisplayContent. Remove warnings. Fixes bug 7038151. Change-Id: Ie493f0f5e755dc9b91ee969ff561c2a098283ead
isplayManager.java
|
98365d7663cbd82979a5700faf0050220b01084d |
20-Aug-2012 |
Jeff Brown <jeffbrown@google.com> |
Refactor for multi-display support. Split WindowManagerImpl into two parts, the WindowManager interface implementation remains where it is but the global communications with the window manager are now handled by the WindowManagerGlobal class. This change greatly simplifies the challenge of having separate WindowManager instances for each Context. Removed WindowManagerImpl.getDefault(). This represents the bulk of this change. Most of the usages of this method were either to perform global functions (now handled by WindowManagerGlobal) or to obtain the default display (now handled by DisplayManager). Explicitly associate each new window with a display and make the Display object available to the View hierarchy. Add stubs for some new display manager API features. Start to split apart the concepts of display id and layer stack. since they operate at different layers of abstraction. While it's true that each logical display uniquely corresponds to a surface flinger layer stack, it is not necessarily the case that they must use the same ids. Added Display.getLayerStack() and started using it in places where it was relatively easy to do. Change-Id: I29ed909114dec86807c4d3a5059c3fa0358bea61
isplayManager.java
|
848c2dc93b6795e171f3dd6f64ea0be65e2762ca |
20-Aug-2012 |
Jeff Brown <jeffbrown@google.com> |
Stub out display manager service implementation. Reverting to the previous stub as the display adapter registration and the logical to physical mapping is not at all what we are going to need moving forward. Fixed up the service initialization order so that the display manager service has a context from the start. Change-Id: I717f2f1099c7a77180ef207c371ec8329258850a
isplayManager.java
|
aa871b0ff0fb38112a1693e80e1146cecc5db21d |
26-Jul-2012 |
Jeff Brown <jeffbrown@google.com> |
Fix build. Change-Id: Ife2fd58447205407e41ce3d27e28a705b744bede
isplayManager.java
|
fa25bf5382467b1018bd9af7f1cb30a23d7d59f7 |
24-Jul-2012 |
Jeff Brown <jeffbrown@google.com> |
Add display manager skeleton. The purpose of this change is to remove direct reliance on SurfaceFlinger for describing the size and characteristics of displays. This patch also starts to make a distinction between logical displays and physical display devices. Currently, the window manager owns the concept of a logical display whereas the new display manager owns the concept of a physical display device. Change-Id: I7e0761f83f033be6c06fd1041280c21500bcabc0
isplayManager.java
DisplayManager.aidl
|