History log of /frameworks/base/core/java/android/hardware/display/DisplayManagerGlobal.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
b0608636a29bcec8ecb4391cd50f29f68b3e7e81 05-Apr-2017 Santos Cordon <santoscordon@google.com> Add uniqueId to Virtual Display and pass through to inputflinger (1/2)

This CL adds:
1) Adds uniqueId (protected via system/sig permission) to virtual
displays.
2) Add support for N virtual display viewports into inputflinger.
3) Set the virtual display's viewports in inputflinger if it has the
uniqueId value set to non-null. (a) Moving the new viewport from java to
native inputflinger and (b) adding "uniqueId" value to viewports makes
up the great majority of this change.
4) From the inputflinger side, we also read in a new value from the
input device configuration files called 'touch.displayId'.
5) When touch.displayId and the virtual display's uniqueId match,
inputflinger links the two.

Test: Start VR and ensure that the virtual viewport shows up when running
'adb shell dump input". Run a VR app, and ensure that the virtual input
device is associated with the new virtual viewport.
Test: com.android.server.display.DisplayManagerServiceTest

Bug: 36051620
Change-Id: Ic2117eb8e19f7f3c59687160591f8bc6692c1f12
Merged-In: Ic2117eb8e19f7f3c59687160591f8bc6692c1f12
/frameworks/base/core/java/android/hardware/display/DisplayManagerGlobal.java
609bf65668181d93502a57575f6f20281f2494b8 10-Feb-2017 Bryce Lee <brycelee@google.com> Update DisplayAdjustments in Display from Resources.

Previously, a copy of DisplayAdjustments was provided during Display
construction. If the Display instance is held, the adjustments would
not update. However, the DisplayInfo would, leading to a mismatch.

This changelist adds a reference to the Resources, which can be
queried to provide the latest adjustments.

Fixes: 33430498
Test: manual from bug repro steps.
Test: make -j32 cts; cts-tradefed; run cts --module CtsAppTestCases --test android.app.cts.DisplayTest#testRotation

Change-Id: Ida2ed3990add885d06b011494af24b055343f3fa
/frameworks/base/core/java/android/hardware/display/DisplayManagerGlobal.java
1c9977b762b4bac46b4470f04c898bfd17da5d90 12-Jul-2016 Michael Wright <michaelwr@google.com> Rename color transform to color mode and persist the value.

Also, standardize on a set of possible modes for the displays to
enter and separate the configuration of the color mode from the
configuration of the display mode.

Bug: 29044347

Change-Id: I6af0a7d1f11bc72d4cefc380f115c1fb00788864
/frameworks/base/core/java/android/hardware/display/DisplayManagerGlobal.java
f8880561e67e1da246970b49b14285efd4164ab1 26-Feb-2016 Jeff Sharkey <jsharkey@android.com> When system server goes down, crash apps more.

Similar to first patch, but now using new "rethrowFromSystemServer()"
method which internally translates DeadObjectException into
DeadSystemException. New logic over in Log.printlns() now
suppresses the DeadSystemException stack traces, since they're
misleading and just added pressure to the precious log buffer space.

Add some extra RuntimeInit checks to suppress logging-about-logging
when the system server is dead.

Bug: 27364859
Change-Id: I05316b3e8e42416b30a56a76c09cd3113a018123
/frameworks/base/core/java/android/hardware/display/DisplayManagerGlobal.java
58e829f71d2c525309e5bb5a1c02dc64397df221 15-Sep-2015 Michael Wright <michaelwr@google.com> Add support for setting color transforms

Bug: 24038268
Change-Id: I05275c906e02eb9e67331f6f909166eb08ad5536
/frameworks/base/core/java/android/hardware/display/DisplayManagerGlobal.java
26698514fbac587675221149aca98f3ea6414d55 06-Jun-2015 Wale Ogunwale <ogunwale@google.com> Use DisplayAdjustments when creating display in ResourceManager

We were previous only taking the Configuration into account when
creating Display objects in the ResourceManager. This led to the
Display object not containing critical CompatibilityInfo. We now
take the entire DisplayAdjustment into account.

Bug: 21637615
Change-Id: Ide5ff49bfa12791ad17993764f312836216b1dd8
/frameworks/base/core/java/android/hardware/display/DisplayManagerGlobal.java
7c72668f19d404b01412abc67937b1b5c660df71 07-Feb-2015 Wale Ogunwale <ogunwale@google.com> Adjust activity display metrics based on stack configuration.

Apps normally use context.getResources().getDisplayMetrics()
or getWindowManager().getDefaultDisplay() to get information
about the screen dimensions. Not all the screen space is available
for apps in a multi-window environment, so we limit the dimensions
of the display object exposed to the app to that of the containing
stack.

Bug: 19225079
Bug: 19354838
Change-Id: I8dc3a6c9b99ecedcca28fc4ddaba9f31feb4f871
/frameworks/base/core/java/android/hardware/display/DisplayManagerGlobal.java
75ee9fcde4d9e1be3883eba6c8d193db4375b052 02-Sep-2014 Michael Wright <michaelwr@google.com> VirtualDisplay.Callbacks -> Callback

Also, rename methods to be onPaused instead of onDisplayPaused, etc.

Bug: 17008630
Change-Id: Id9ead22a42d36ac338309f0f021ba341ed991144
/frameworks/base/core/java/android/hardware/display/DisplayManagerGlobal.java
01e840ff9441e005153d799e71d65b38bcb21902 27-Jun-2014 Michael Wright <michaelwr@google.com> Add resize method for virtual displays

Change-Id: I2632fc56c2d2cba356379e42f5c1a3e283b11d1e
/frameworks/base/core/java/android/hardware/display/DisplayManagerGlobal.java
3d0c57a1d3b8eb6bb54045c02c2e93a9313d3cf7 21-Jul-2014 Craig Mautner <cmautner@google.com> Don't create a delegate for null callbacks.

ActivityView does not create callbacks for the VirtualDisplay. This
leads to setting Looper.myLooper() from a Binder thread which
leads to NPE when trying to dereference its message queue.

Fixes bug 16386002.

Change-Id: I12760a22075ed4770f3fe960763e0135fe095cfe
/frameworks/base/core/java/android/hardware/display/DisplayManagerGlobal.java
c39d47a8e7c74bd539104b0efab898ef6fc43ddf 09-Jul-2014 Michael Wright <michaelwr@google.com> Add MediaProjection APIs.

The new MediaProjection infrastructure allows the system to hand out
tokens granting the ability to capture the screen's contents, audio,
etc. at a granular level. It's intended to be used both for screen
casting, via the cast APIs, as well as screen sharing via third party
applications.

The screen sharing case is implemented, but all of audio capturing
is still forthcoming.

Change-Id: I4b24669bed7083e11413c10ed8d6b025f5375316
/frameworks/base/core/java/android/hardware/display/DisplayManagerGlobal.java
92207df753c27b094e9e0ca80d41bc0d54dc6bd5 16-Apr-2014 Jeff Brown <jeffbrown@google.com> Add support for dynamically setting the virtual display surface.

Previously, the surface that backs a virtual display had to be set
at the time when the display was created. This change now makes
it possible to set or remove the surface later. The virtual display
is treated as if it were "off" while no surface is attached to it.

Change-Id: Ib4fdbbb8b4ee79f0fb9ceb648f9bda4a8fa6a2ca
/frameworks/base/core/java/android/hardware/display/DisplayManagerGlobal.java
ce468a35b388ca46578934706b38dbae94941643 22-Nov-2013 Jeff Brown <jeffbrown@google.com> Stop wifi display discovery when no longer needed.

Keep track of how many clients are requesting scans and scan
continuously until all of them are gone then explicitly terminate the
scan instead of letting it time out as before.

Suspend wifi display scans while connecting or connected to a remote
display. This is handled by both the display manager and media router
since neither has complete information about what is happening.
Much of this code will no longer be needed once wifi display support
is integrated directly into the media router service.

Ensure that we don't attempt to scan or connect to wifi displays
while the wifi display feature is off.

Infer when a connection attempt fails and unselect the wifi display
route automatically so it doesn't appear to be connecting forever.

Fix issues around correctly canceling and retrying connection attempts.
Often we would cancel but not retry.

Improved connection reliability somewhat. It seems that discovery must
already be in progress in order for a connection attempt to succeed.

Ensure QuickSettings uses exactly the same logic as the MediaRouteButton
to determine when the remote display tile should be made visible.

Bug: 11717053
Change-Id: I18afc977b0e8c26204b8c96adaa79f05225f7b6e
/frameworks/base/core/java/android/hardware/display/DisplayManagerGlobal.java
1f3ecaae6303d5ee6c5ca8499262c9962f036365 04-May-2013 Chong Zhang <chz@google.com> wifi-display: add certification options

When certification mode is enabled:

- Pass wfd session info to wifi display settings

- Allow sink to connect to source

- Add interface in display manager for pausing/resuming session

- Add interface in WifiP2pManager for setting lc, oc and starting
autonomous GO

Note that we're compliant regardless of certification mode, but
some confusing options (eg. allowing incoming connection from
sink) we want to hide when not being tested.

Bug: 9371882
Change-Id: Icc7dcae4e046453796cfa03f5f197055fabf234b
/frameworks/base/core/java/android/hardware/display/DisplayManagerGlobal.java
7d00affce6e25b22fd8fc135933b3bf6b547a0dc 03-Aug-2013 Jeff Brown <jeffbrown@google.com> Support public virtual displays.

Refactor the new private virtual display API to also support
creating public virtual displays with various characteristics.
This feature requires special permissions and is only intended
for use by the system.

Change-Id: I44dd19f37cf76ea6d6e313afe42f4a412bd96663
/frameworks/base/core/java/android/hardware/display/DisplayManagerGlobal.java
48d0d1886731ff19ed3fb47a5997be5df0d1bba8 11-Jun-2013 Craig Mautner <cmautner@google.com> Add activity token to display system.

First step in adding activity specific information to displays.
Replace CompatibilityInfoHolder with DisplayAdjustmentsHolder that
holds an activity token in addition to the CompatibilityInfo.

Change-Id: Ie113cd8dd9c62e0b5311204e039a4829096bea68
/frameworks/base/core/java/android/hardware/display/DisplayManagerGlobal.java
a506a6ec94863a35acca9feb165db76ddac3892c 04-Jun-2013 Jeff Brown <jeffbrown@google.com> Add an API to allow for creating private virtual displays.

This change enables applications to create a private virtual
display that renders its content to a surface of its own creation.
The display is private in the sense that only the application
that owns the display is allowed to place windows upon it.
Mirroring and blanking is also disabled for these displays.

Bug: 9192512
Change-Id: I852ea07f0c7df1d244e354e3daca3a6960285ca0
/frameworks/base/core/java/android/hardware/display/DisplayManagerGlobal.java
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
/frameworks/base/core/java/android/hardware/display/DisplayManagerGlobal.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
/frameworks/base/core/java/android/hardware/display/DisplayManagerGlobal.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
/frameworks/base/core/java/android/hardware/display/DisplayManagerGlobal.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
/frameworks/base/core/java/android/hardware/display/DisplayManagerGlobal.java