History log of /frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
e50d7fcd9796329bded8c39f2666b6c3ee021ff3 18-Mar-2013 Craig Mautner <cmautner@google.com> Properly close Surface when done.

Surface.destroy was not being called. Leading to warning from
StrictMode.

Fixes bug 8388527.

Change-Id: I472fb57ed2c3f6389e53d8f020f3b22b2d0740c8
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
11e7d88d1441c20605d7f06ab31ef2c81590d5c4 05-Mar-2013 Mathias Agopian <mathias@google.com> remove suppor for SurfaceControl.FX_SURFACE_SCREENSHOT

the window manager can now use the SurfaceControl.screenshot
API with a "regular" surface.

Change-Id: I76bed81d5e7b078ea1b3e8f96814aba32e9d5405
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
3c1743705c4df816089e07a17753c6043b4d8e66 22-Feb-2013 Craig Mautner <cmautner@google.com> Create rotation animation modes.

Allow fullscreen windows to specify crossfade or jumpcut animations
that override the default rotation animation. Only if the incoming
and outgoing topmost windows are fullscreen and both specify the
same animation to use.

Fixes bug 8182773.

Change-Id: I6b3c0020d7bd2cdfba5c66189e114ec62cd54fcf
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
29479ebe1007361222bf6ab4d5e2a27927d4b8e8 14-Feb-2013 Mathias Agopian <mathias@google.com> clean-up following Surface split

Change-Id: I853a76d92d957ee38a36fcdd280d6407ec316987
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
3866f0d581ceaa165710feeee9f37fe1b0d7067d 12-Feb-2013 Mathias Agopian <mathias@google.com> split Surface in two classes: SurfaceControl and Surface

SurfaceControl is the window manager side; it can
control the attributes of a surface but cannot push buffers
to it. Surface on the other hand is the application (producer)
side and is used to push buffers to the surface.

Change-Id: Ib6754c968924e87e8dd02a2073c7a447f729f4dd
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
0bf6ec9e377f9fafb67a36f7fb54d3f6676634fc 18-Dec-2012 Craig Mautner <cmautner@google.com> Clean up warnings.

Change-Id: I1dfe21e5f64364c90565b594e28074cabe7daa64
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
4b16969b006613bff4901a6e979f29a0f501430b 30-Nov-2012 Dianne Hackborn <hackbod@google.com> Don't apply transformation fudge when not rotating.

There is this stupid fudge factor applied to window transformations
when doing a screen rotation animation. We need this when rotating,
but when not rotating it causes very visible artifacts. Historically
the non-rotation case only happened due to configuration changes, so
wasn't that big a deal. Now however that we use this when switching
users, it is more annoying. So get rid of it for such cases.

Change-Id: I6b343866c1bad9b16984b4a629917c2f1bb37b9e
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
9d9ece3c1e16001b63244459cdf4b428f4272d2e 11-Sep-2012 Dianne Hackborn <hackbod@google.com> Animations for user switching.

The window manager now has a facility to provide a full-screen
animation, which the activity manager uses every time a user
switch happens.

The current animation is just a simple dumb slide until we get
a design from UX.

Also some cleanup: moved the portrait task animations to the
default config so we always have an animation for them, and finally
got the java symbol stuff out of public.xml.

Change-Id: I726f77422b2ef5f2d98f961f8da003e045f0ebe8
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.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/services/java/com/android/server/wm/ScreenRotationAnimation.java
64a55af0ac700baecb0877235eb42caac59a3560 26-Aug-2012 Jeff Brown <jeffbrown@google.com> Add plumbing for new surface flinger display API.

Cleaned up the implementation of Surface and SurfaceSession
to use more consistent naming and structure.

Added JNI for all of the new surface flinger display API calls.

Enforced the requirement that all Surfaces created by
the window manager be named.

Updated the display manager service to use the new methods.

Change-Id: I2a658f1bfd0437e1c6f9d22df8d4ffcce7284ca2
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
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
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.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
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
6881a10557acf3b0270de54799d6f19437acf584 27-Jul-2012 Craig Mautner <cmautner@google.com> Small step towards supporting multiple displays

Change-Id: I353449c2b464394988c7e0203656b5851a0c9127
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
924d9b75d6ec4597264a7af3f8be5b5a7d3a3dd2 06-May-2012 Craig Mautner <cmautner@google.com> Force BlackSurface to be a black surface.

BlackSurface transparency was tracking animation transparency causing
background images to peek around the corners.

Fixes bug 4998851.

Change-Id: I48ac7bf5d0cc560b655c9f12faccda411985cbad
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
3255a28b6a18bb97f0e533dc1673c5e28837b4f2 17-Apr-2012 Craig Mautner <cmautner@google.com> Clear orientation variable until rotation is done.

In the old code orientationChangeComplete was set to true on each pass
through perfomLayout. If any window was rotating the variable was set
to false on the way through the performLayout. Since we can now make
passes through performLayout before any animation step occurs we were
seeing mOrientationChangeComplete true prior to rotation completing.

This change sets mOrientationChangeComplete false at the start of a
rotation and sets it to true if we ever get through an animation step
without encountering any rotating windows.

Change-Id: I37690cf20868dfbaac94a81640bc4d9cb9fb8f00
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
7d8df3905d294127cc58100912a57c816bfb2502 07-Apr-2012 Craig Mautner <cmautner@google.com> Animate from Choreographer only.

Animation steps are now executed on a Thread launched from the
Choreographer rather than being called at the end of the WindowManager
layout process. Animations and layout are still tightly coupled in
that they share considerable state information and neither can be
executed without holding a lock on WindowServiceManager.mWindowMap.

Change-Id: Ie17d693706971507b50aa473da1b7258e9e67764
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
187ae2105eb771e10ef54e0e9f2796e7fb7cb4e9 12-Apr-2012 Dianne Hackborn <hackbod@google.com> Revert to ICS screen rotation animation.

Change-Id: Ida76f17a00e4c8ab828deae51095107e4eeaa321
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
d6b32b6178238361ffd1b428120942858de78428 16-Mar-2012 Dianne Hackborn <hackbod@google.com> More work on rotation animation.

Change-Id: Ib8206db98b68cb1e0b16e4c55d949e80ff31bd9f
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
bf90eaa5d2410bfb60ef84a0efcf3b5eb5022d9f 15-Mar-2012 Craig Mautner <cmautner@google.com> Separate layout ops from surface ops.

Further work to isolate layout from animation and surface operations.
Remove cruft and minor refactoring.

Change-Id: I6f910ed72c7c614996641c353870c2b2ab5e8bb4
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
e32c30784191a9244a08450759471c934c85034c 12-Mar-2012 Craig Mautner <cmautner@google.com> Separate out animations from layout.

(Dianne) pulled the animation steps out of the layout. Changes to
exposed layers cause repeated calls to layout code.

Combined animation steps into start and finish animation code.

Change-Id: I3602d1d6249d20987d102a54e3a67a7a39361b55
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
191874e37106ca503003ef3d4bec392ca2627cbe 09-Mar-2012 Dianne Hackborn <hackbod@google.com> Improved rotation animation.

Change-Id: Id21686be8b2b229dc61c5d01f888c9b5deabb857
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
c3b91e9afd981f1a994a1024c3e822cf909f070d 05-Mar-2012 Dianne Hackborn <hackbod@google.com> Merge "More work on rotation animation."
9fd74805c8be91df78f3eccc40ab2466c8114fc9 02-Mar-2012 Dianne Hackborn <hackbod@google.com> More work on rotation animation.

The black frame is now a separate animation element. This allows us
to have it move through the aspect ratio change, without the old
and new screen elements doing weird aspect ratio scalings. This
makes the animation generally look different (more like a reveal),
not sure if it is better or worse, but definitely has less artifacts
in things like the gallery.

Also tweaked the animation definitions a bit.

Change-Id: I94c274ba04bbc7a675946dc6c1778e19386e4a66
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
a731cd302dc39deaf835aeb52af12f391806a4bf 03-Mar-2012 Craig Mautner <cmautner@google.com> Fix rotation so orientation changes aren't dropped.
Modify test so that rotation animation is entered one final time after rotation completes. This last time causes mUpdateRotation to be set true forcing a test for orientation change.
Fixes bug 6109189.

Change-Id: I25475f336a3439a56b1c540205d09ee48c1d2b7c
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
dbb7991b4e4638b284814b50e79cacc1e1c9d8cd 02-Mar-2012 Craig Mautner <cmautner@google.com> Separate animation steps into start, step and finish phases.
Fixes bug 6089126.

Change-Id: Iafbde36ff719640335a7ecf762e1d991cf7915e4
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
4dcece8e509027cd28e20b1f9f14d2c0446d84c0 10-Feb-2012 Dianne Hackborn <hackbod@google.com> Fix issue where screen rotations would stop animating.

If we went through the update loop multiple times, and had finished
animating the first time, we would blow away that information the
second time and never kill the animation.

Also moved killing the animation back up to the animation step --
this involves destroying surfaces and such, and so really should
be done as part of the surface transaction. We can also consider
the screen rotation animation object to be owned by the animation,
so it can destroy it when done.

Change-Id: If24356c509c66d046f2ddfd9ad5bfe12504d7716
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
fd1c5ed3705b885ce50b5ecad04ce699248b1d84 13-Jan-2012 Dianne Hackborn <hackbod@google.com> New screen rotation animation design.

We now have an animation that can start as soon as we detect to
rotate the screen, and have a different phase once the new UI
is ready to complete the transition into it.

Change-Id: I05b9c12a699232acbddc36b4a994a4452db71476
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
e65beaabe4be554683417839594dd41b6c979cbb 01-Nov-2011 Mathias Agopian <mathias@google.com> Fix rotation displays frame N-1 briefly while rotating

The ScreenShot layer is now created hidden. The screenshot itself
is aquired during the transaction when the layer is made visible.
This guarantees the screenshot and the layer happen atomically
with respect to screen updates.

Bug: 5534521
Change-Id: Ida23e1f13d5716ec83b78a15712e0646d6cf8729
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
0ab84ef507f23505a72798fbe25cf4bb2c507ea3 14-Oct-2011 Mathias Agopian <mathias@google.com> Add a LayerScreenshot

A LayerScreenshot is a special type of layer that contains a screenshot of
the screen acquired when its created. It works just like LayerDim.

Make sure to call compositionComplete() after rendering into a FBO.

Bug: 5446982, 5467587, 5466259
Change-Id: I5d8a1b4c327f9973d950cd4f4c0bca7f62825cd4
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
840b8a678537519c27ddf2f818494eaa20a135d4 17-Oct-2011 Mathias Agopian <mathias@google.com> Revert "Add a LayerScreenshot"

This reverts commit d6809f40cf61203573ec5dbc437f695cd132cc18.
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
d6809f40cf61203573ec5dbc437f695cd132cc18 14-Oct-2011 Mathias Agopian <mathias@google.com> Add a LayerScreenshot

A LayerScreenshot is a special type of layer that contains a screenshot of
the screen acquired when its created. It works just like LayerDim.

Bug: 5446982
Change-Id: I7814aff2380e7e146937f2b641907be2a30c76cc
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
36991744a221c30a47085442e6416bdde40b85e8 12-Oct-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5445966: WindowManager reporting -long on prime when it shouldn't be.

The window manager now uses the app screen dimensions to compute
the various configuration properties, as it should.

This means that prime is official a "not long" device. Poor prime.
It probably feels inadequate now.

Because it is.

Oh and all that other stuff? Debugging logs. Turned off. And
why the heck not, debugging logs are great.

Change-Id: Iaaf8ef270d986d34fd046d699ef4c0ecea1981fc
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
8962028b6e2f4176e6ceded281e584d223e44982 11-Sep-2011 Dianne Hackborn <hackbod@google.com> Fix inflating of animations.

Need to define attributes for animation set, to have correct indices.

Also small fixes elsewhere.

Change-Id: If596147e8aee4ebffe4e184872070341eff6df73
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
d040edbae968d826aa2c82d382345811a45c646b 31-Aug-2011 Dianne Hackborn <hackbod@google.com> Use floating point window positions.

Gets rid of gapps between windows during animations.

Change-Id: I17d2ef0af214008f0eabd7eb19268f145fe83b39
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
bc68a59c024bdb745dac8e2ec7408a9f30595f1a 25-Jul-2011 Jeff Brown <jeffbrown@google.com> Report the external display size to the input reader.

The input reader needs this information so that it knows how to
interpolate touches on an external touch screen.

Changed Display so that it asks the WindowManager what the real
display size is (as opposed to the raw display size). This means
it now takes into the forced display size set by
adb shell am display-size.

Replaced all calls to getRealWidth() / getRealHeight() /
getRealMetrics() in the WindowManager and replaced them with direct
usages of the mCurDisplayWidth / mCurDisplayHeight so that the WM
doesn't end up making a reentrant Binder call into itself.

Fixed the table status bar HeightReceiver so that it updates the
height on all configuration changes since it is possible that the
display size changed independently of an external HDMI display
being plugged / unplugged.

Improved the Display class documentation to make the distinctions
betweeen the various sizes clearer.

Change-Id: I3f75de559d3ebffed532ab46c4ae52c5e7f1da2b
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
5fd2169eabd77e6bfafaf456e58051a3bafb2bca 07-Jun-2011 Dianne Hackborn <hackbod@google.com> Work on issue #4518815: Compatibility mode introduces compatibility regression...

...for Market App iRunner

There were a lot of serious issues with how we updated (or often didn't update)
the display and resource state when switching compatibility mode in conjunction
with restarting and updating application components. This addresses everything
I could find.

Unfortunately it does *not* fix this particular app. I am starting to think this
is just an issue in the app. This change does fix a number of other problems
I could repro, such as switching the compatibility mode of an IME.

Also a few changes here and there to get rid of $#*&^!! debug logs.

Change-Id: Ib15572eac9ec93b4b9966ddcbbc830ce9dec1317
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
784707187d96b731df5256c1c2adb0aaf9037239 28-May-2011 Dianne Hackborn <hackbod@google.com> Fix various places that were using the wrong display metrics.

Change-Id: I1ac2a0c4a1b7c851dbc99d26f295c7dd49b0bd5c
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
7916ac65dc492e4e1431879875c77d7121fbf82e 17-May-2011 Dianne Hackborn <hackbod@google.com> Add new command line option to change global screen size.

For example:

adb shell am display-size 1024x600

Change-Id: I5df462acd3323bdaaaefa3126faea7dd8595b726
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
de75cb4738376c4cfe15c56aba7cd78d90e3100e 03-Mar-2011 Dianne Hackborn <hackbod@google.com> Fix issue #3400119: API to specify a black background behind a window transition

There is now an API, which is used for task switching.

Also improved how we handle rotation animation when we can't take a
screen shot, to cleanly revert to the old freeze behavior. This removes
the need to special case the emulator.

Change-Id: I7227432a2309370437ec6ac78db02c6f1e7eedd5
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
6e1eb76f02ccc9dbc309b938f62d39312da8cafe 18-Feb-2011 Dianne Hackborn <hackbod@google.com> Explode WindowManagerService.

Change-Id: I3d73ed4c9a1b5d730aeffeb2df24ce5e6117d698
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java
a924dc0db952fe32509435fdb8dc9c84a9e181f3 17-Feb-2011 Dianne Hackborn <hackbod@google.com> Start window manager refactoring.

Move all of the pieces into a new com.android.server.wm package.

Change-Id: I942b7bcfb84ee0f843f47d58e55ffc5a93c0da94
/frameworks/base/services/java/com/android/server/wm/ScreenRotationAnimation.java