History log of /frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
5c7bd017058ff073b73e96726aa44c4a113f453f 13-Nov-2013 Craig Mautner <cmautner@google.com> Keyguard isn't visible if it hasn't been drawn.

Reduces jank in multiuser lock from QuickSettings. The launcher and
wallpaper were being hidden as soon as the surface for the keyguard
was created. Now they are not hidden until the keyguard has been
drawn. This still leaves a short time where there is a black screen
but it is considerably shorter than it was. Comparable to jb now.

Fixes bug 11046339.

Change-Id: I349d95dba72da27e5c05a7a64c95a2774d17a34e
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
798adeffb0b9c22707b493895453e7dd2f608b75 22-Oct-2013 Craig Mautner <cmautner@google.com> Don't use transient states for wallpaper animation.

The WindowManagerService member mLowerWallpaperTarget is not stable
throughout an app transition. Relying on it to be stable causes the
intra-wallpaper animation to start out right but after the windows
have been relayed out there is no longer a lower wallpaper target.
This causes the wallpaper to start tracking the animation of the
current wallpaper target rather than remain stable.

Switching to a new variable that saves the state of wallpaper
animation at the start of the animation fixes bug 11240590.

Change-Id: I336a59c47665fcf61019f567b8663956ff0e4940
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
5845812780a29f4594dbdac12e65c4e063ddb4b0 14-Sep-2013 Craig Mautner <cmautner@google.com> Add debug logging for b/10689184.

Focus is now on focus. Remove logging when fixed.

Change-Id: Ic0cd2d6bd4e65dac9dd40f4745dd12fb84f687ce
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
9c72281d9799236ace861e151f642fc81f8128d2 07-Aug-2013 Mathias Agopian <mathias@google.com> Fix a bug where window animation could be janky

SurfaceControl.closeTransaction() will block until the transaction
takes effect and this happens at the next vsync -- in practice
it means this call blocks for ~15ms.

Immediately after that we ask the choreographer to schedule the
next frame, which will happen at the next vsync. depending the
timing, this would cause the window manager to animate at 30 fps
instead of 60.

This is fixed here by calling the choreographer before we
call closeTransaction().

In the near future, we should be able to fix this by using
an offseted vsync for the window manager and it won't need
closeTransaction() to block at all.

Bug: 10209014
Change-Id: I33d0c5ecfc25154b2859f3023a8cda6e641826bf
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
0f4ab97c230e09256af9b7e232a3fe05b8f759b2 19-Jul-2013 Craig Mautner <cmautner@google.com> Access sparse array in correct manner

Was using get() for iteration. Consequence of cl 331550.

Fixes bug 9902476.

Change-Id: I4ec08d0421411981db8b8fba7342e9a3db606ce1
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
f8924150b3fa5a9afef66bcae0affab1e66b3629 16-Jul-2013 Craig Mautner <cmautner@google.com> Remove iterators.

Remove DisplayContentsIterator and AllWindowsIterator. These were cute
but they take up valuable resources. Iterate over ArrayList members
in their place.

Change-Id: I1d8a3b040175cb88b98f6a7e97cab06d17d5706b
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
f4bf0ae2a7c2d9d92c5c8abdb82baa53b4c9ccda 21-May-2013 Dianne Hackborn <hackbod@google.com> New ArrayMap class.

This is a new kind of key/value mapping that stores its data
as an array, so it doesn't need to create an extra Entry object
for every mapping placed in to it. It is also optimized to reduce
memory overhead in other ways, by keeping the base object small,
being fairly aggressive about keeping the array data structures
small, etc.

There are some unit and performance tests dropped in to some
random places; they will need to be put somewhere else once I
decided what we are going to do with this for the next release
(for example if we make it public the unit tests should go in
to CTS).

Switch IntentResolver to using ArrayMap instead of HashMap.

Also get rid of a bunch of duplicate implementations of binarySearch,
and add an optimization to the various sparse arrays where you can
supply an explicit 0 capacity to prevent it from doing an initial
array allocation; use this new optimization in a few places where it
makes sense.

Change-Id: I01ef2764680f8ae49938e2a2ed40dc01606a056b
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
11462cc0b0fd34151968b310833a0b8525457eb4 14-May-2013 Craig Mautner <cmautner@google.com> Fix rotation animations not working.

Restore over aggressive deletions from ag/305620.

Also remove over specification of debug member variables.

Change-Id: Id637d0dbece169d27271aabd714d34d449bfb050
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
05d290365f0b9ed781ffcb30b38a0c7c6e450e9d 03-May-2013 Craig Mautner <cmautner@google.com> Fix layering and launching issues.

- Replace calls to ActivityStack.resumeTopActivity() with calls to
ActivityStackSupervisor.resumeTopActivities().

- Move dim layers from display scope to stack scope. This applies to
both the animation background dim layer and the FLAG_DIM_BEHIND dim
layer.

- Move windows on stacks that are not targeting wallpaper above the
wallpaper. Otherwise wallpaper placement hides the non-focused stacks.

Change-Id: Ic6b97ac6b094672bb1ddac17ce46ea58c738f073
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
f76664673eed1c7b2fa141ce99e01028bc7a1be0 28-Apr-2013 Craig Mautner <cmautner@google.com> Clean up FocusedStackFrame layer setting.

- Putting the stack frame above the highest app window layer ends up
putting it over the IME when the caret popup is showing. This puts
the stack frame layer above the highest non-child window layer.

- Also change the timing so the layer isn't applied until all other
layers are also being applied.

Change-Id: Ic5f142998822ac1e3890a2943cda7fc86a7e7974
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
29219d963d1ec29ddea3e5814eb82c2aeaccc1ac 17-Apr-2013 Craig Mautner <cmautner@google.com> Steady improvement to multi stack.

- Fix back button behavior with two stacks. Stopping activities were
held in that state indefinitely. This change causes IDLE_NOW_MSG to
be sent immediately for the last activity in a stack.

- Touch in non-focused stack was being ignored because of focus tests
in AbsListView.

- Change the focused stack when the activity focus changes. Renamed
mMainStack to mFocusedStack to reflect this.

- Resume all top stack activities when resuming.

- Assign intent task to ActivityRecord if it doesn't have a task.
Fixes bug 8433463.

Change-Id: I8d3c806234511697bc209ab99890730ffa514d20
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
229f1aadf95069c7369c153e107fe98050c17719 10-Apr-2013 Dianne Hackborn <hackbod@google.com> am abe0aa78: am 8f980e1a: Merge "Reduce duration of rotation xfade animation." into jb-mr2-dev

* commit 'abe0aa78caf81b24af0b45700801fc1f867cfa0e':
Reduce duration of rotation xfade animation.
a57c695bf2c0f917517ecac8251043716b34f72d 29-Mar-2013 Dianne Hackborn <hackbod@google.com> Reduce duration of rotation xfade animation.

Also add code for tracking how long a rotation takes,
and who is causing it to take that time.

Change-Id: Ie3352ddfddd247f5a5c08f7da6bfe6b4da607ba2
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
d9a22881fda77e208f54f893a804d0001d27a27e 16-Mar-2013 Craig Mautner <cmautner@google.com> Complete removal of Task from DisplayContent.

Moved Tasks into TaskStacks.

Change-Id: I3478dab4eab3a68d4d71a7a5bb2e65ba2394f2d7
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
c00204b4d14d49a0417b44ca21aee4f0d4c466e0 06-Mar-2013 Craig Mautner <cmautner@google.com> Start moving Tasks from DisplayContent to TaskStack

- Create new classes for Stacks on WindowManager.
- Stop using DisplayContent methods and members:
addAppToken(),
removeAppToken(),
setAppTaskId(),
removeTask(),
mTaskIdToDisplayContents,
mTaskIdToTask.
- Start using WindowManagerService.createTask().
- Establish hierarchy of references: AppWindowToken=>Task=>
TaskStack=>StackBox=>DisplayContent.
- Clean up StackBox, TaskStack, and Task.

Change-Id: I798990aa7966784d22f4a43822087d8bb0404dd6
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
f81b908752365fda62a6158bfe7d1559b0d52cdd 26-Feb-2013 Craig Mautner <cmautner@google.com> Remove AppTokenIterator from DisplayContent.

Simplify accessing successive AppWindowTokens from different
TaskLists.

Change-Id: Icf6265dd6c7953c9c770c97e1342f0f81256c017
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
2ad920759b1981eaf526fd37a314fbc5a3ed90ae 26-Feb-2013 Craig Mautner <cmautner@google.com> Revert ActivityManager changes for tasks. DO NOT MERGE

Keeping all activity=>task changes in master and removing them
from jb-mr2.

Revert "Update histories simultaneously."
Revert "Add null check to setAppGroupId."
Revert "Fix crashing bug in validator."
Revert "Switch topRunning* and moveTaskTo*"
Revert "Begin switch over to task based history."
Revert "Reset and reuse Iterators and don't new() one."
Revert "Remove AppWindowToken lists."
Revert "Fix build."
Revert "Remove unused App methods."
Revert "Stop using AppToken movement and start using Task."
Revert "Replace access to mAppTokens with AppTokenIterator"
Revert "Refactor setAppOpVisibility implementation."
Revert "Add AppWindowTokens to TaskList."
Revert "Make ActivityStack.mHistory private."
Revert "Migrate AppWindowToken lists into DisplayContent."

Change-Id: I5722c9a4956dccb52864207e2967690bc58e4ebb
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.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/WindowAnimator.java
22ee9aad834b055df1bd5d5544e37a63edc963fe 14-Feb-2013 Craig Mautner <cmautner@google.com> Merge "Reset and reuse Iterators and don't new() one."
343ad71d7cb4934751a91006677266bd73ed224c 14-Feb-2013 Craig Mautner <cmautner@google.com> Reset and reuse Iterators and don't new() one.

Save time and memory by resuing permanent mTmpXxxIterator for
AllWindowsIterator and AppTokenIterator.

Change-Id: I2e5143364651d9471e9e70eee514d3f45d595468
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
58a1ca6642d404b67e5c9e75076b9bbe08e4076b 14-Feb-2013 Mathias Agopian <mathias@google.com> Merge "split Surface in two classes: SurfaceControl and Surface"
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/WindowAnimator.java
496bdbba30a113baaec61d4d0c011461cf5ee36d 14-Feb-2013 Craig Mautner <cmautner@google.com> Remove AppWindowToken lists.

No longer necessary.

Change-Id: I0d2b96f69152fb93b6ba56f02ce9693ff1370cbc
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
b1fd65c0ff5784b90d765edb7e3c3115d767dff0 05-Feb-2013 Craig Mautner <cmautner@google.com> Migrate AppWindowToken lists into DisplayContent.

In preparation for converting ActivityManager control to a task-based
interface the AppWindowTokens are being stored per-display.

Change-Id: Ie5e355219554523f5e56eaef138d382975cf1682
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
13131e74ea93d82c004ab1567351eadcedd799a5 11-Jan-2013 Craig Mautner <cmautner@google.com> Make DimLayer track changes to WindowState layer.

The DimLayer behind popups was not changing when the popup layer
changed. It will now.

Fixes bug 7974415.

Change-Id: Ia486efa83d623716a09d73a22493a4222823c573
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
1420b93fa5606979fd67eaf80f50294d4f8c191b 29-Dec-2012 Craig Mautner <cmautner@google.com> Combine DimAnimator and DimSurface into DimLayer

Replace two classes that did similar things in a complicated manner
with one class that does it more simply.

Bug 7064755 fixed.

Change-Id: I8c415671f60d1d2ece9da5916421f4d24aed2d65
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
545252f4fde6fbb70b07e97a120c7d1405758017 11-Dec-2012 Svetoslav Ganov <svetoslavganov@google.com> Refactoring of the screen magnification feature.

1. This patch takes care of the case where a magnified window is covering an unmagnigied
one. One example is a dialog that covers the IME window.

bug:7634430

2. Ensuring that the UI automator tool can connect and correctly dump the screen.

bug:7694696

3. Removed the partial implementation for multi display magnification. It adds
unnecessary complexity since it cannot be implemented without support for
input from multiple screens. We will revisit when necessary.

4. Moved the magnified border window as a surface in the window manager.

5. Moved the mediator APIs on the window manager and the policy methods on the
WindowManagerPolicy.

6. Implemented batch event processing for the accessibility input filter.

Change-Id: I4ebf68b94fb07201e124794f69611ece388ec116
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
ae44659f30ddaba67581fbdf9c9255ac982d45ab 07-Dec-2012 Craig Mautner <cmautner@google.com> Call adjustWallpaperWindowsLocked once per pass.

Also refactor a few methods and improve logging.

Change-Id: Ic54a1ff99f6de732b31cda5c06d36e8de01a269c
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
66f78d7a979775efb148873797bac4584ddb3b83 05-Dec-2012 Craig Mautner <cmautner@google.com> Share the pending layout changes

Do not pass the pending layout changes from animation to layout.
Simply assign them to the DisplayContent.

Change-Id: I72e48753db509023e5df70513a87e26998ec699f
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
968683335e17c06504a11bc2e38a2580f613ea16 04-Dec-2012 Craig Mautner <cmautner@google.com> Recouple layout and animation a bit.

Share state between layout and animation and stop copying
redundant data between the two.

Change-Id: If07d3fc3ddfd33e3d46bf45d24d7aca58067ee66
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
9339c401cf1a056a3a1caddc648334069e6bd267 30-Nov-2012 Craig Mautner <cmautner@google.com> Further decouple layout and animation.

Load animation parameters dynamically and synchronously rather than
asynchronously. Eliminates storing parameters and cross-barrier method
calls.

Change-Id: Ia9162f0cb3fe60da35fd9fb5f24f31f88891b950
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
2ea9bae7121f1df5461437d7d08fa550cdf6e0b0 03-Nov-2012 Dianne Hackborn <hackbod@google.com> Fix issue #7457380: IME leaves a mark after user switching

The gnarly stuff where we keep track of the old input method
window as if it was still there was sitting around leaving things
in a stuck state. Now we clear this out at key points in the
window manager (freezing screen, user change), and the input
method manager service is less aggressive about asking the window
manager to do it.

Also fixed a problem that was causing flickers during some
wallpaper transitions -- when we are animating two things on
top of the wallpaper and one of them disappears, we need to
make sure the wallpaper target points to whatever the current
target should be (if any), not left pointing to the old target
that has gone away.

Change-Id: I2fb9600f569a5bd5e3528aaf24cde9340af56cb0
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
98129739afcb3786a6ec9f3efe774d8e01f6d632 02-Nov-2012 Dianne Hackborn <hackbod@google.com> Fix issue #7343200: Fails to show wallpaper in the background for...

...lockscreen sometimes and remains black / blank

The problem was that we were using the animation-side wallpaper state
in cases where it was not updated yet.

The mWallpaperTarget variable is propagated over to the animation
side when the main window manager state updates. On the animation
side, this is used by hideWallpapersLocked() to determine if the
current wallpaper should be hidden.

The problem is that various paths to hideWallpapersLocked() can
come from the layout side of the window manager instead of the
animation side. This causes the problem here because in this case
the wallpaper state may not have yet been propagated to the
animation side, so it could incorrectly decide to hide the wallpaper
because it thinks there is not a target when in fact a target is
set in the layout side. This won't get fixed until some time way
later that the layout side decides that a new window is being shown
that may need to have the wallpaper shown.

The fix here is pretty gross, but as safe as possible -- the
hideWallpapersLocked() function now uses either the animation or
layout wallpaper state depending on where the call to it is coming
from.

Change-Id: I9250bfeae6e11c1761760bcc696fdb33fb5c8a5f
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
529e744d3131b9ebeb6b33c8030230c29a44ad12 01-Nov-2012 Dianne Hackborn <hackbod@google.com> More debugging for issue #7343200 Fails to show wallpaper in the...

...background for lockscreen sometimes and remains black / blank

There was a bunch of state not being put into the dumpsys output.
In particular, the current wallpaper target of the WindowAnimator
was not being included. I think the problem is that these targets
are not being updated from the main window manager state at some
point where they need to be.

Change-Id: Ic795047f6aea9b6f72d5550bccc9f8d76c6ecb67
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
ef03a7f441cf0cbef5a5f7fafb58a7d5aea7ef52 30-Oct-2012 Dianne Hackborn <hackbod@google.com> Work on issue #7343200: Fails to show wallpaper in the background...

...for lockscreen sometimes and remains black / blank

Add some debug output to try to track down what is going on.

Change-Id: I98a96c5da9c04b988e948f6fc2766d927db49ebf
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
b6ce6e42cc89864354c7ecb9ae80504a6c9dddcf 16-Oct-2012 Jamie Gennis <jgennis@google.com> Flag window animation transactions as animations.

This change makes WindowManager use the new eAnimation flag when animating
windows. This prevents some of the window updates from being combined with
updates from prior animation frames.

Bug: 7353840
Change-Id: I5a9f8fa2c1a2f5f08363a45cd9f28bb97cd77080
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
d5523dc7b7318f2774109dd30716ff7b74560e61 02-Oct-2012 Craig Mautner <cmautner@google.com> Call Surface.destroy when Display is removed.

Prevents leaked Surfaces.

Bug: 7272421.
Change-Id: I6c87eb11bb0bedcf8de451b04477c70c248f905d
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
ac439e57a795d48e287ea51a9bd999244a9b0e65 21-Sep-2012 Craig Mautner <cmautner@google.com> Eliminate potential for NPE in WindowAnimator.

Fixes bug 7209850.

Change-Id: I8c8751ab240ea389a2a779c94c05fe786ca8762a
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
178af5948d71c841278081c712506f7a7fca34b9 17-Sep-2012 Craig Mautner <cmautner@google.com> Add debug to help with b/7135184.

Change-Id: I0d3b60b3e123d35bd557d47e3344ebea1964380b

Conflicts:

services/java/com/android/server/wm/WindowAnimator.java
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
a91f9e2959ee905f97977a88fe45bde6ffb874b0 15-Sep-2012 Craig Mautner <cmautner@google.com> Make more items per-Display.

Moving DimSurfaces, DimBackgrounds and Rotation surfaces into
per-display class.

Fixes bug 7167028.

Change-Id: I7408b3a27b5a7a8d0d59e9d6109c002fc627e536
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
76a3cb9773d01079de447c16741f628d19108087 14-Sep-2012 Jeff Brown <jeffbrown@google.com> We don't need black frames for forced display size.

Now that surface flinger lets us set a display projection,
the window manager no longer needs to place a black frame
around the content when simulating a different display size.

Bug: 7139798
Change-Id: I6014390f47444633d434ccf918cee5ff7b502869
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
69b0818179201fadc9d2a384d692d8ae4aecd85c 05-Sep-2012 Craig Mautner <cmautner@google.com> Limit certain actions to default Display.

Stop messing up PhoneWindowManager state when passing in windows
from non-default Display.

Change-Id: I472f7a13c5e2241fbf1f79ae1c8045fd92af016c
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
ea3a09a5b9c8ae56b0c4975c7a7039a05d4c0b3c 04-Sep-2012 Craig Mautner <cmautner@google.com> Remove single pass actions from display loop.

The WindowAnimator loop over each Display contained actions that
only needed to be done one time but were instead done once per loop.

Change-Id: Ia916b08cdb7670686e6295dbcef6a5ff27474099
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
76a7165719dc3ccce902953f6244e2c2668aa753 04-Sep-2012 Craig Mautner <cmautner@google.com> Change layout inner loop order for multi display.

The inner loop that ran over each display had a few problems:
- The Surface transaction was starting and stopping between each
display.
- The layout change bits were being applied globally so all
displays were layed out when only individual displays needed to be.
- Wallpaper and input actions were being applied each time through
the display loop rather than once only for the default display.

Change-Id: I924252bab28c426222a4bb73693accc4b21cecbe
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.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/WindowAnimator.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/WindowAnimator.java
bea12bdc2e6d2b1158c1faa58a8197d5e971a817 20-Aug-2012 Craig Mautner <cmautner@google.com> Ensure that mAllAppWinAnimators is not null.

The method showAllWindowsLocked can be called from the layout
side of the WindowManagerService. Previously the AppWindowAnimator
member mAllAppWinAnimators was created on the animation side. If
showAllWindowsLocked was called before the first animation of the
activity an NPE would occur. This fix creates mAllAppWinAnimators
when the AppWindowAnimator is created and also updates it with
current values before calling showAllWindowsLocked.

Fixes bug 6917136.

Change-Id: If3ace22022b65c6888bbb9d0575efe9a45d86475
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
59c009776dae5ccbdfb93d7151ff2065ca049dc3 30-Jul-2012 Craig Mautner <cmautner@google.com> Introduce multiple displays with DisplayContent.

Fix a couple of bugs that turned up.
Remove touch/focus from display. Add iterators for access.
Respond to comments. Remove TODOs, and some deviceId parameters.

Change-Id: Idcdb4f1979aa7b14634d450fd0333d6eff26994d
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.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/WindowAnimator.java
322e40315609acd5a608440bc469d873e09559ca 13-Jul-2012 Craig Mautner <cmautner@google.com> Further isolate layout side from animation side.

- Use local AppWindowAnimators in WindowAnimator rather than
using shared WindowManagerService objects.
- Use local WindowStateAnimators in AppWindowAnimator rather
than use AppToken's WindowState objects.
- Remove redundant WindowManagerService parameter passed to
AppWindowAnimator ctor.
- Keep from copying parameters from performLayout if the
parameters haven't changed since the last copy.
- Link WindowStateAnimator to AppWindowAnimator to keep
from going through WindowStateAnimator.mWin,
WindowState.mAppToken and AppWindowToken.mAppAnimator.
- Converted attached WindowState in WindowStateAnimator to
WindowStateAnimator to eliminate multiple conversions.

Change-Id: I5e35af88d8fdc1a7454984eaea91a1bc4f926978
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
4bf18a7c97c0f312ccf12bcd952b420af0c95e5f 10-Jul-2012 Craig Mautner <cmautner@google.com> Handle keyguard visibility states separately.

Previous to this change the forceHiding variable was a boolean. This
change recognizes the different configurations of the keyguard by
defining separate states for forceHiding and testing for window
visibility differently in each state.

Fixes bug 6786114.

Change-Id: I078e0df7865ddafe498ee46e02110c3a017386d0
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
918b53bc531f5bd1ea102e8b827d693bd4d0555b 09-Jul-2012 Craig Mautner <cmautner@google.com> Isolate layout and animation wallpaper objects.

Provide separate copies of mWallpaperTarget, mWallpaperTokens, and
mLower/UpperWallpaperTarget in the layout and animation sides of
Window Manager.

Simplify constructors of WindowAnimator and WindowStateAnimator.

Change-Id: I7e35794a432c25c4194c046e9e27150d1c905403
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
2639da500e3d53ea3a17d888b1c0001d043c6b98 09-Jul-2012 Craig Mautner <cmautner@google.com> Fix hang on rotation.

A recent optimization to only send updates to WindowManagerService
when there is something to report backfired. One bit indicating
change had negative polarity so the update should also have been
sent when this bit was cleared. This change alters the bit to
positive polarity.

Fixes bug 6780496.

Change-Id: I3336812a60534ebffc9e94b2fb1d0df4d6969bca
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
a76fdb7713d900763cff090557a10d3942b9b3ca 04-Jul-2012 Craig Mautner <cmautner@google.com> Use new object to sync DimAnimator.

The controls for the DimAnimator were going through the H Handler
to sync with the Animator. We are switching to using the
LayoutToAnimator object for passing data from layout to animator.

Change-Id: Ib6d0afabba781c88bcc1c525e3ae424cf19ac1ad
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
711f90a7c1e99a435fa8f5335f13772f0b41270b 04-Jul-2012 Craig Mautner <cmautner@google.com> Swap source and destination transfer objects.

It will be better to have the object that moves layout parameters to
animation on the layout side, and the object that moves animation
parameters back to layout on the animation side. That way we can
do partial filling of these objects without calling across. We
may never do partial draining of these objects.

Change-Id: I88826fa97350f96e309beef386885f55a9a73305
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
078ea0a6444bfb5c7ab1678b1c8898e590828731 25-Jun-2012 Craig Mautner <cmautner@google.com> Step 2 in consolidating wallpaper animation.

Separate updateWindowsAndWallpaperLocked into two methods,
updateWindowsLocked and updateWallpaperLocked. Eliminates mForceHiding.

Change-Id: I3958cfae09283aaa7f1781d1b54ef224d8e80f3f
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
6fbda63e68513ece4409dac845588711ab25c39d 03-Jul-2012 Craig Mautner <cmautner@google.com> Merge CL 202423/3 App launching has random pauses.

Change-Id: Iba5616182c02e51f4d9063d0a01b30b9f558549a
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
a4b7f2f75e7803193429ec1179fb5e2eb1c6fbda 21-May-2012 Dianne Hackborn <hackbod@google.com> Use two fingers to work some magic...

Change-Id: Ibcb3dbd3d158c22da8277e544d81fb47eadccd49
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
f12100e0255c86d0d05dba2e7ba87a745870423d 25-Jun-2012 Craig Mautner <cmautner@google.com> Eliminate jank by setting force hiding differently

Only force hide windows when the keyguard is animating in.

Fixes bug 6721572.

Change-Id: Iad7b8b811bcf0840726cbf6c6f279dabd08a3aba
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
9e809448761878b72b47c0a0e703de95a3cf9815 23-Jun-2012 Craig Mautner <cmautner@google.com> Step 1 in consolidating wallpaper animation.

- Merge testWallpaperAndBackgroundLocked into
updateWindowsAndWallpaperLocked. Eliminates mDetachedWallpaper,
mWindowAnimationBackground, and mWindowAnimationBackgroundColor.

- Merge multiple calls to perform layout into one.

- Cleaned up debug output.

Change-Id: I5dc2d8330dc092ee2b165867cddb7d16b431fa0b
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
1caa399baffe2a5dca018469761db6f77ea31ce8 22-Jun-2012 Craig Mautner <cmautner@google.com> Move animation step from layout to animator.

Set up the Choreographer call from the animator, not from the
layout side. Introduce new class for transferring information from
layout to animator.

Change-Id: I7da032990f4b5eaeefcf92185901d896f25db3d2
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
01cd0e7df040659900e50f83c6b75d1d6fcc5655 18-Jun-2012 Craig Mautner <cmautner@google.com> More steps to isolate animation.

- Create class to transfer state from WindowAnimator to
WindowManagerService.

- Detached wallpaper state was shared between the two classes. This
CL isolates it.

Change-Id: I7bcee348bf9f9f8f0228f36c53d75e5c92fd84cb
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
f03e4c55fc5f8c50c58da03b7e8cfe29b4b0c644 14-Jun-2012 Craig Mautner <cmautner@google.com> Expose apps when keyguard animating.

Continuing in the trend of not hiding apps while the keyguard is
animating.

Fixes bug 6653600.

Change-Id: I151315084a13dcec061d2d6edccd31e1133610f4
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
4323d6ea5143a3f2c419b3db28f956755652d78a 14-Jun-2012 Craig Mautner <cmautner@google.com> Merge "Do not hide animating window behind keyguard." into jb-dev
507a2ee12b6d1d683e4a5806804c472b3fe32e61 13-Jun-2012 Craig Mautner <cmautner@google.com> Update wallpaper visibility at time of hide/show.

Call the Window client method dispatchAppVisibility when hiding or
showing wallpaper rather than wait until the next call to
performLayoutAndPlaceSurfaces.

Fixes bug 6645473.

Change-Id: I363f69f8db0affff92308e11ce52546401959d8f
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
2ec541fa4b19bee3e5a60245dcb504a6033cd0ac 13-Jun-2012 Craig Mautner <cmautner@google.com> Do not hide animating window behind keyguard.

The transition from clock to keyguard when restarting the device
was janky. The cause was that the clock app was animating away
which kept the adjustWallpaperWindowsLocked() method from setting
the keyguard as the new mWallpaperTarget. At the same time the
WindowAnimator saw that the keyguard was readyToDisplay() which
set mForceHiding true causing the clock to become hidden. Since
the clock was mWallpaperTarget the wallpaper was hidden at the
same time.

This fix does not allow mForceHiding to hide an animating
window.

Fixes bug 6649988.

Change-Id: Ie5cb0dfcc987d5ee1ad2351cf520629b8e301a2b
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
0fa77c1e0fc218040efc570936e988dbeece399c 12-Jun-2012 Craig Mautner <cmautner@google.com> Remove over aggressive optimization.

It turns out that sometimes the wallpaper target is migrated to the
bottom of the window stack and then mWallpaperTarget is set to null.
In particular this happens when the launcher all-apps screen is
brought up. When this happens the layer of the wallpaper is
correctly set below the previous wallpaper target.

An optimization in WindowAnimator was keeping the layer update from
propagating to the Surface object. This fix removes that optimization.

Fixes bug 6631717.

Change-Id: I800dd043ce8df83b4e5edbf710503135396bc01e
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
c38869abe5d89b7f9e66f23599889e17b93b5eec 12-Jun-2012 Craig Mautner <cmautner@google.com> Revert "Merge errors."

This reverts commit b0419a52008e57475ee254def1da20451da22d4c.
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
a5bbb8987b98fdbef45549103f70979f4e1e9e4d 12-Jun-2012 Craig Mautner <cmautner@google.com> Merge errors.

Change-Id: I33d0b1aa5dc5018cc879d2e9878e4825adaa4074
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
b9836b9185132974f6cfa9296bb3c28d1c9b668a 11-Jun-2012 Craig Mautner <cmautner@google.com> Fix exposing wallpaper on rotations and other.

1. Rotations do not go through standard closing of animations so the
wallpaper was not being hidden when the wallpaper target surface was
destroyed. This fix adds hiding the wallpaper when the wallpaper
target is destroyed.

2. The wallpaper target is nulled when switching from launcher home
screen to launcher all apps. In this case the wallpaper remains
visible but below visible layers. It should be hidden so that when
those layers adjust it is not exposed. (Separate fix for adjusting
wallpaper in this case will come).

Fixes bug 6629464.

Change-Id: I522f97dafc0cdcc0f933a825ec9a29d8f63590b5
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
ad5725d7985a784056b02b97ab76357a667a6ad4 05-Jun-2012 Craig Mautner <cmautner@google.com> Eliminate wallpaper exposure during transition.

Make sure that the wallpaper target exists and is visible before
exposing the wallpaper.

Fixes bug 6570335.

Change-Id: I1dddfe26683e84fd813e7bee884ba2bd4bb85272
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
67e6070fa10bbd313c8ebe0de4e0440b688c569e 24-May-2012 Craig Mautner <cmautner@google.com> Merge "Change method of tracking moving AppWindowTokens." into jb-dev
ef25d7a01910d5547b60c9cc52d4fa4a9e40b6fa 16-May-2012 Craig Mautner <cmautner@google.com> Change method of tracking moving AppWindowTokens.

Stop trying to keep track of the AppTokens that have been moved
to the top and bottom and then try and match the WindowStates when
transitions are goodToGo. Instead rebuild the WindowState order based
on the AppToken order when we are goodToGo.

When moving AppWindowTokens lower in mAppTokens create a new ArrayList
of AppWindowTokens to keep track of the apps in Z order while
animating.

Fixes bug 6481078.

Change-Id: I29b33a507b45752f15feb10a9f4b47a3f5eb9f0e
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
ac92087a9a1c464d4b0a58c82dae01cbaa088e89 22-May-2012 Dianne Hackborn <hackbod@google.com> Fix issue #6499411: Characters not displayed (but suggestion bar is working)

The problem was that when dismissing the lock screen, the window manager
would briefly turn off force hiding when it started animating the transition
and then turn it back on until the transition was done.

This would cause it to briefly switch focus to the app behind and then
take focus off it. The app would find out it got focus, and re-start
input on itself, asking the input method service to do so. At this
point the input method service would ask the window manager if the
caller really had focus, and it may or may not be told no depending
on the timing. If it is told no, then it doesn't allow the focus
switch to happen at that point, ignoring the new input connection,
and ultimately when focus does really switch the IME is left talking
with an old dead input connection.

I added some code to the input connection to make sure when we are
no longer using one that we mark it inactive and can't use it. This
bug was especially difficult to track down because it would only
visibly break when a GC happened during this time, causing the weak
reference on the input connection to become null. With this change
it will now always break (though in the scenario here only if you
hit the race condition correctly).

Change-Id: I81a6164dc140c548da1a9736e42cd253e8238a80
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
067ca32a526113bdae8756cda0369883f8227199 19-May-2012 Craig Mautner <cmautner@google.com> Prevent dim surface from flashing.

This fix keeps the dim surface below the highest shown layer. If
two shown layers were both dim it was ambiguous where the dim surface
would appear causing dialogs to first be dimmed and then flash when
the dim was put behind them.

Fixes bug 6497476.

Change-Id: I360cf2d23d58fc4c03edbbed16d79c08c29e48b9
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
35d0e1d11c046b5e5ddf6d12c1a09becb8561af0 11-May-2012 Craig Mautner <cmautner@google.com> Keep launcher screen from flashing over lockscreen

Extend the force hide period to include the animation.

Fixes bug b6471929.

Change-Id: I91daf9dc678723be4c69913aa5a3aa0e265d103e
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
4fe5ebcc962ad7edb205bf988dd463854dea1044 10-May-2012 Craig Mautner <cmautner@google.com> Merge "Update DimAnimator layer when its window changes." into jb-dev
acafd19c5ea05a8d465f97204f8d63468bdaa2a4 10-May-2012 Craig Mautner <cmautner@google.com> Update DimAnimator layer when its window changes.

Prior to this fix once dimming had been turned on it stayed at the
same layer and associated with the same window until it was turned
off. Now the DimAnimator layer is updated if either the window layer
changes or the dimming window changes.

Fixes bug 6467865.

Change-Id: I3e1765b92b51be26e3718c8a87e2583041a36af9
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
198e564c9a66010cfe93e0b1a75f84d696bda494 10-May-2012 Chet Haase <chet@google.com> Notify windows when window animations complete

Drawing in windows is suppressed during window animations, to make window
animations smoother. This means that drawing activities that the activity
requested are dropped on the floor. There is no call at the end of window
animations to tell the windows that they may now draw, which leaves the windows
and activities in an uncertain state, especially with respect to some of the
dirty flags that we use internally to know when we have requested (and satisfied)
invalidations on views.

The fix is to notice, on the WindowManager side, when we've finished window
animations and to schedule a traversal on the WindowManager, which will then send
out appropriate messages to the affected windows.

Issue #6461113 EventInfo is stuck in day view

Change-Id: I364c9c472531c467d44801698cfb453970173bb3
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
0afddcb7f11ddfcaa5d1f5a5db75fce1b5d40253 09-May-2012 Craig Mautner <cmautner@google.com> Fix wallpaper exposure bugs.

Qualify the test for wallpaper animation to exclude the dummy
animation. This keeps us from treating a dummy-animating wallpaper
as an exiting wallpaper and providing the wrong animation.

Hide wallpapers when the wallpaper target window is hidden. This
fixes a timing issue where the wallpaper was exposed for one pass
through performLayout after the launcher was hidden.

Fixes bug 6454992.

Change-Id: Ib4f9205c01a37e6f48f1f93ddcf2476e40ff942f
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
83339b465c3299abc47ced7dffdf470c5b0c0750 02-May-2012 Craig Mautner <cmautner@google.com> Fix Home key causes wrong animation

Wallpaper logic assumed that if mWallpaperTarget was non-null then
any wallpaper animation should be exiting. However, if the existing
wallpaper target was already animating away then mWallpaperTarget
remains non-null until it is completely gone. Pressing Home during
this time was causing the next animation to exit rather than reverse
and enter.

This fix looks to see if the wallpaper target is animating and if it
is to treat it as null for the purpose of determining which direction
the animation should go.

Fixes bug 6407941.

Change-Id: I731267328db0f9972a5aed6f214962f96737dd07
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
8a197a4e0887000241dfd183d1e83e6e0f9b2268 25-Apr-2012 Craig Mautner <cmautner@google.com> Fix dark flash when transition ends.

The DimSurface layer was momentarily being placed above the entering
app animtion. This lets the layering be set after the animations have
been evaluated.

Plus debug enhancements.

Change-Id: Icc034bc5264ae9bc6c57c593534683b56588b59a
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
69c1a571acefc59d7260e6c805801656923b1330 24-Apr-2012 Craig Mautner <cmautner@google.com> Merge "Various debugging enhancements."
fbf378c736a973b8edaf1fc4c187d11dc0f5e291 24-Apr-2012 Craig Mautner <cmautner@google.com> Various debugging enhancements.

Also moved DummyAnimation into AppWindowAnimator where it belongs.

Change-Id: I7da254a8b99030b898e2ff8d983500d7ce0b2b65
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
924c21582c666151e01206df82c27de9424e914a 24-Apr-2012 Craig Mautner <cmautner@google.com> Set mOrientationChangeComplete after windows drawn.

Force a pass through layout with mOrientationChangeComplete set
following all windows drawn when the application is freezing the
screen.

This fixes bug 6359311.

Change-Id: I318864fb687cf85a0c9ac4478e4f29dc20f43d9c
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
4d7349bb6df5a01ba451aa1abd4c9f6349a57016 20-Apr-2012 Craig Mautner <cmautner@google.com> Remove flicker from transitions.

Change state progressions to handle animation/layout separation.
Also added debug as needed.

Fixes bug 6360835.
Fixes bug 6206366.
Fixes bug 6286371.
Fixes bug 6240494.

Change-Id: I1079756a7e3e35ebb9f711f02d005bde9bf65ef0
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.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/WindowAnimator.java
7358fbfeb2febb60085067fcacc192f429b06545 13-Apr-2012 Craig Mautner <cmautner@google.com> Minor cleanups.

- Replace HashSet with ArrayList.
- Check for Watermark and SurfaceSession initialization once, not every
time through layout.
- Move watermark rendering into animation.
- Add surface operation debugging.

Change-Id: I4b7e7c0b8d89d43c67a42753832f90b8632d4f5d
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
0c2acffec8689f8721a454845b24a830bc37ce92 13-Apr-2012 Dianne Hackborn <hackbod@google.com> Clean up lock screen hide animation.

We now have an animation to apply to the thing behind the lock
screen animation when it isn't on the wallpaper, which looks
similar to the animation we use when both are on the wallpaper.

In implementing this, cleaned up the code to figure out up-front
which animation to run, getting rid of that kludgy thing that
cleared the window animation if the wallpaper was not being used
for the lower windows.

Change-Id: Ifc4c8a8894ad384124dcf4bbdaab134f1157b0f3
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.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/WindowAnimator.java
f8d4fbb9c87201350534861c4d988e63691fe24f 11-Apr-2012 Craig Mautner <cmautner@google.com> Check for existing dimming before stop dimming.

Add a test to make sure that we are dimming before we send the message
to stop it. This prevents a CPU consuming loop when dimming is already on.

Fixes bug 6320003.

Change-Id: If26dc5b0800300d8e38c166824651223eded4cfa
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
73850cb6991074e33c31d310ccb63a1f863f7b4e 10-Apr-2012 Craig Mautner <cmautner@google.com> Reduce load on CPU when animating rotation.

This change keeps requestTraversalLocked from being called on virtually
every call to animate while rotating.

Change-Id: I6d2db37db3bb82f4f9ecc84b17dbf121819a6c1b
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
bec53f7066852c1c5877c51fcd8c55840891d866 05-Apr-2012 Craig Mautner <cmautner@google.com> Animate from local list of WindowStateAnimators.

Stop animate() from using the mWindows maintained by
WindowManagerService. Animating WindowStateAnimators are now drawn from
a HashSet maintained by WindowAnimator and containing just those
WindowStateAnimators that have Surfaces.

When starting a move animation do not place parameters directly into
the WindowStateAnimator, instead pass them through the Handler.

Also removed synchronization points from mWindows/mAppTokens
add/remove.
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
6af9b92b75c820661ea995a98898395f22871498 06-Apr-2012 Craig Mautner <cmautner@google.com> Fix looping to turn off dimming.

Dimming was constantly being turned off if it wasn't time to turn it
on. This caused endless reentry into the Window Manager and consumed
lots of CPU.

Fixes bug 6293953.

Change-Id: Id87e60c7c70e96e66ce0b6297442f5ac0d2ff477
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
e4d8a5dd42070d919dbd774f24c6684ecf1e350e 05-Apr-2012 Craig Mautner <cmautner@google.com> Fix failure to animate away exiting AppWindowToken

A previous check in changed the collection we were pulling exiting
AppWindowTokens from. Instead of pulling them from mExitingAppTokens
they came from mAppTokens and hence were not animated away.

Fixes bug 6296433.

Change-Id: I23347085658fce5412abb8ea119ce7e6152cab8b
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
594316361d38d88b53c85bd5c8d58a92345e8187 04-Apr-2012 Craig Mautner <cmautner@google.com> First separation of animation from AppWindowToken.

New class AppWindowAnimator pulls animation out of AppWindowToken.

Change-Id: Ic1ccb6ec2bf091f1f901fe3c20cbeb242376ae6b
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
d09cc4ba247e896cc95a57ed7a3247b55b1b68fc 04-Apr-2012 Craig Mautner <cmautner@google.com> Move more items between layout and animate sides.

- Isolate DimAnimator animation from the layout side.
- Isolate mWallpaperForceHidingChanged and mOrientationChangeComplete
from the animation side.
- Eliminate a redundant setting of mOrientationChangeComplete to true.
It was already true at that point.
- Synchronize changes to mWindows and mAppTokens on mAnimator. This is
a nop until we go to multiple threads.
- Synchronize AppWindowToken.freezingScreen on mAnimator.
- Modification to repeat layout debugging including temporary enabling
of spew on layout repeats.

Change-Id: Ic8d82b1c197144aaf6957caa5f71e175288220f2
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
749a7bb28b2aff7a77a8c7dce01e086c2bd82c6b 02-Apr-2012 Craig Mautner <cmautner@google.com> Refactor to convert four state booleans to int.

Replace four booleans (mDrawPending, mCommitDrawPending, mReadyToShow
and mHasDrawn) with a single int that can take on the four states.

Move mLastHidden from WindowState to WindowStateAnimator.

Change-Id: Ieff319dfa19123bf5a6cdc98e9ab28fd432b8153
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
a608b882327fbb393bde3854953cd322a6fea675 30-Mar-2012 Craig Mautner <cmautner@google.com> Move variables into animation class.

Moved drawPending and commitDrawPending and associated methods from
WindowState to WindowStateAnimator.

Created mechanism for passing results from WindowAnimator to
WindowManagerService. Initial results passed are mUpdateRotation and
mWallpaperMayChange.

Change-Id: Ib03d28f921580ac9426ea9233bea6eafc9ea964c
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
c2f9be0b7fe14258e01d73f6bc43dd94c3e711d4 28-Mar-2012 Craig Mautner <cmautner@google.com> Move Surface operations out of WindowState.

Migrated the bulk of Surface operations from WindowState to
WindowStateAnimator. There remain a multitude of cross-referencing
between the two classes and most of the other classes in the wm
package.

Change-Id: I4bfdfb84be31341371f3ef311aca8fc6a4966692
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
e7ae2505405cf30d9d3140278d5b9a2604d866df 27-Mar-2012 Craig Mautner <cmautner@google.com> Move wallpaper animations int WindowAnimator.

More refactoring. This time wallpaper animations were broken up from
WindowManagerService and the layout piece kept there while the
animation piece was moved into WindwoAnimator.

Also, applyAnimationLocked and applyEnterAnimationLocked were moved
from WindowManagerService to WindowState.

Change-Id: I05935023702ce05fdfdc804342ec14f719cdfea4
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
a2c77053b8dfa5f06bdd927bdbab4df2d00bb4e2 26-Mar-2012 Craig Mautner <cmautner@google.com> Refactor animation out of WindowState.

Remove the animation stepping from WindowState and move it into a new
class, WindowStateAnimator. Update all references to moved variables
in related files.

Change-Id: I7540d8f897b370c73975f3ffe450140861cb0cd1
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
cf8cbbe77447d9cca28e789c5ec4e714694ab37d 26-Mar-2012 Craig Mautner <cmautner@google.com> Skip layout if performShow fails.

In cases where a Surface does not go from hidden to shown, do not set
the perform layout flag. This keeps us out of repeated passes through
the layout code.

Fixes bug 6222487.

Change-Id: I22601bef5733d2f996a8cbdd50d6b89517bc3122
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
d5f2374e13a7bcefbc7252b814d128794f22af93 24-Mar-2012 Craig Mautner <cmautner@google.com> Merge "Reset layout needed at each animation step."
bb1449b392b4fb14f17fa747c2261d7195405df3 24-Mar-2012 Craig Mautner <cmautner@google.com> Reset layout needed at each animation step.

The member variable WindowAnimator.mPendingLayoutChanges was never
being reset to 0. Consequently once it was set it was causing endless
calls to the layout method.

Fixes bug 6208114, 6220403, 6219546.

Fixed NPE in RecentsPanelView.

Change-Id: Ie529b8f31e535543cb5ae0af9447146306b14eeb
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
8078d8c8a282ca81344febe7256f63b1e805e3aa 20-Mar-2012 Dianne Hackborn <hackbod@google.com> Add new thumbnail animation.

Use it for recent tasks switching.

Not perfect yet by far, but something.

Also fix issue #6186758: Twitter crashes after tapping on a tweet on JRM75D

Change-Id: I49bf6c94aafde875ac652dedaf96d6c08cc9e7d2
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java
764983d16925daeeba3f29fd1f844187655d1386 22-Mar-2012 Craig Mautner <cmautner@google.com> Separate animation into separate class.

Introduction of the class WindowAnimator which takes care of all
animations stepping and Surface operations.

Change-Id: I78f1c269fa57df0616c08adbe156e3059709ae48
/frameworks/base/services/java/com/android/server/wm/WindowAnimator.java