Commit Graph

237 Commits

Author SHA1 Message Date
Craig Mautner
03273d00ce Continue animations started from AppWindowToken.
Animations that were started from AppWindowToken.showAllWindowsLocked
were not setting mInnerFields.mAnimating and hence the animations were
not progressing. This resulted in popups such as menus and time/date
settings not showing up.

Fixes bug 6205076.

Change-Id: I4daae5895e64182328671e282331f14dd5561d5e
2012-03-21 11:52:40 -07:00
Craig Mautner
2fb98b147b Minor refactoring prior to major refactoring.
Removal of blur layer.
Deferral of Surface actions in BlackFrame from ctor to first use.
Combine common test into single method okToDisplay().
Remove redundant logic in DimAnimator.

Change-Id: I43af0415794a8f142803ce94d7e17539aafac67d
2012-03-20 17:24:00 -07:00
Craig Mautner
22ce1414a0 Fix flickering when starting and ending apps.
Surfaces were displaying animations in their entirety for a single
frame before the animation kicked in. This caused a flash on the
screen. By setting the animation to invisible (alpha=0) at their
start it makes no difference if they are displayed.

Fixed bug 6176540.

Removed redundant mDimAnimator.show call.

Change-Id: I47c1b0d38273b011d9115822a8476671d6a050fc
2012-03-20 10:16:26 -07:00
Dianne Hackborn
dea50f05e4 Merge "More work on rotation animation." 2012-03-16 18:29:16 -07:00
Dianne Hackborn
d6b32b6178 More work on rotation animation.
Change-Id: Ib8206db98b68cb1e0b16e4c55d949e80ff31bd9f
2012-03-16 18:20:07 -07:00
Craig Mautner
0059d3508f Fix black screen on app transition.
The layer adjustment to an animating window upon completion was masking
the window behind the mWindowAnimationBackgroundSurface, a DimSurface.
The DimSurface was not being hidden because the step was happening too
late. Swapping the order of performAnimationsLocked and
updateWindowsAppsAndRotationAnimationsLocked fixes this ordering issue.

Fixes bug 6185920.

Change-Id: I0ff64c019e821fa3a92505ac6351f2648897e592
2012-03-16 15:26:01 -07:00
Craig Mautner
1dd3ed09e8 Perform finish animation actions.
When stepAnimation returns false, do not return false immediately.
Instead carry out finish actions. Also, remove state machine that is no
longer necessary.

Fixes bug 6184070.

Change-Id: I530eb2b62b864bbce929f573d10b31b102152f1f
2012-03-16 14:05:07 -07:00
Craig Mautner
bf90eaa5d2 Separate layout ops from surface ops.
Further work to isolate layout from animation and surface operations.
Remove cruft and minor refactoring.

Change-Id: I6f910ed72c7c614996641c353870c2b2ab5e8bb4
2012-03-15 11:34:24 -07:00
Craig Mautner
e32c307841 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
2012-03-14 16:09:28 -07:00
Dianne Hackborn
1743b64d87 Dejank: also animate window moves due to requested size changes.
This performance an animation when, for example, a dialog window is
moved because the size of its content has changed.

Change-Id: I2d79a1a57f94e0f2f8ef706a473fca6c9cc637cf
2012-03-12 17:04:43 -07:00
Craig Mautner
466608e9e8 Merge "Fix state machine sequence causing wallpaper flash." 2012-03-09 14:40:45 -08:00
Craig Mautner
ad3a9bb628 Fix state machine sequence causing wallpaper flash.
Fixes bug 6127355.

Change-Id: Ie6894329829f78b3ff8936cfe5ed2933490db5d8
2012-03-09 14:32:06 -08:00
Dianne Hackborn
55b4b28606 Merge "Improved rotation animation." 2012-03-09 11:40:23 -08:00
Dianne Hackborn
191874e371 Improved rotation animation.
Change-Id: Id21686be8b2b229dc61c5d01f888c9b5deabb857
2012-03-09 11:20:54 -08:00
Jeff Brown
df813c03b1 Merge "Use the Choreographer for Drawable animations." 2012-03-08 16:28:48 -08:00
Romain Guy
bb9908b828 Dispatch screen state change events to Views
Bug #6120957

Using this new callback, views can interrupt and resume their
animations or other periodic tasks based on the current state
of the display.

Change-Id: I398f4abd421e9c5f207107bf1009a7b92cf45daa
2012-03-08 15:05:12 -08:00
Jeff Brown
7ae9d5faad Use the Choreographer for Drawable animations.
Change-Id: Ifcbf33434bf3c32d1900fd0b3f5bde004604ce8a
2012-03-07 19:02:51 -08:00
Romain Guy
7e4e561bc7 Ignore draw requests when the display is off
When WindowManagerService's events are enabled/disabled, the state of the
display is dispatched to the known windows. This allows ViewRootImpl to
ignore draw requests until the screen is turned back on. This can potentially
lead to significant battery savings. For instance, a launcher widget showing
a repeating animation will cause the CPU and the GPU to wake up regularly
without this change.
(Change submitted by Intel and merged manually)

Change-Id: I7f93b0e60c3e6de1705f619e80860c36b1cdb978
2012-03-05 14:37:29 -08:00
Dianne Hackborn
c3b91e9afd Merge "More work on rotation animation." 2012-03-05 11:45:19 -08:00
Dianne Hackborn
9fd74805c8 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
2012-03-05 11:44:10 -08:00
Craig Mautner
86add4350c Fix reference to wrong ArrayList.
Fixes bug 6107296.

Change-Id: I44f2793c1c92686b276e491436a10be4f18c0d48
2012-03-02 16:09:01 -08:00
Craig Mautner
a731cd302d 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
2012-03-02 16:03:18 -08:00
Craig Mautner
dbb7991b4e Separate animation steps into start, step and finish phases.
Fixes bug 6089126.

Change-Id: Iafbde36ff719640335a7ecf762e1d991cf7915e4
2012-03-01 19:06:07 -08:00
Craig Mautner
343511c9ec Detect animation completions like we used to.
Previous approximations weren't indicating completion and windows weren't being layered correctly as a result.

Change-Id: I08fcd278485bb87dc10bca257b9f8073108753f3
2012-02-28 17:34:22 -08:00
Craig Mautner
ba64dfe872 debug
Change-Id: I1f496bb71068b6c3a09095c39fb04c9f4153e051
2012-02-28 17:34:21 -08:00
Craig Mautner
83eaab5b43 Fix bug introduced when moving animation step out from between assignments to wasAnimating and nowAnimating.
Now wasAnimating once again contains the animation state prior to the animation step.

Change-Id: I2b53bd3f62228183233ab36f0ebe44c0344d2351
2012-02-27 16:15:13 -08:00
Dianne Hackborn
b8678d76c3 resolved conflicts for merge of 210c1a26 to master
Change-Id: Ic44193e62215086c22225f2def5eee3159d26ae8
2012-02-23 10:54:06 -08:00
Craig Mautner
5489e4af19 Merge "- Consolidate all animations in a single place outside of layout loop. - Move mPolicy.startAnimationLw and mPolicy.finishAnimationLw into same method as mPolicy.animatingWindowLw. - Fix first parameter of performLayoutLockedInner(initial, ...) to pass true on initial pass." 2012-02-22 07:53:43 -08:00
Dianne Hackborn
01011c3d7c Fix issue #6037252: Screen shifts after all apps are upgraded
Two things: (1) make sure the boot message is always positioned within
the entire unrestricted display, and (2) allow the dim background to go
on top of the nav bar when being used for the boot message (this latter
is really a hack that should be more generally fixed in the future).

Change-Id: I7261b044eb802a39cadff931b50a679ff18781d6
2012-02-21 13:54:21 -08:00
Craig Mautner
2f995a7eaa - Consolidate all animations in a single place outside of layout loop.
- Move mPolicy.startAnimationLw and mPolicy.finishAnimationLw into same method as mPolicy.animatingWindowLw.
- Fix first parameter of performLayoutLockedInner(initial, ...) to pass true on initial pass.

Change-Id: If1b47bb8a7e03cf427769c657e371abc0910b3e3
2012-02-21 09:53:21 -08:00
Jeff Brown
9806a2307f Ignore broken input channel when finishing input event.
There are occasional races during application shut down where the
input dispatcher will close an input channel before the application
has finished its last event.  So just ignore EPIPE.

Also tweak the logging for failed input event injection to make
it clearer which pid was trying to perform the injection.

Bug: 6013004
Change-Id: I7bbb01441d41762b03eafd4d39dcf0323e1cadf3
2012-02-17 10:28:09 -08:00
Jeff Brown
4a06c8008b Simplify Choreographer API.
Removed the listeners and schedule animation / draw methods.
Instead all requests are posted as one-shot callbacks, which is a
better match for how clients actually use the Choreographer.

Bug: 5721047
Change-Id: I113180b2713a300e4444d0d987f52b8157b7ac15
2012-02-15 15:06:01 -08:00
Dianne Hackborn
ec5b5156e7 Merge "Fix issue where screen rotations would stop animating." 2012-02-13 13:30:53 -08:00
Dianne Hackborn
4dcece8e50 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
2012-02-13 10:37:08 -08:00
Jeff Brown
62d1058cc9 Merge "Remove the input dispatcher throttle." 2012-02-13 10:26:33 -08:00
Mike Lockwood
d747dc8179 Fix problems dispatching media button events on headless devices
Signed-off-by: Mike Lockwood <lockwood@android.com>

Conflicts:

	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
2012-02-10 10:51:24 -08:00
Mike Lockwood
3a74bd36f8 Add headless mode for running the framework without the surface flinger
Enabled by setting system property ro.config.headless to 1
This will allow the framework to run without starting activities,
system UI and the keyguard.
Framework can still run services, content providers and broadcast receivers.

Signed-off-by: Mike Lockwood <lockwood@android.com>

Conflicts:

	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
	services/java/com/android/server/PowerManagerService.java
	services/java/com/android/server/am/ActivityManagerService.java
2012-02-10 10:51:24 -08:00
Jeff Brown
308028049a Remove the input dispatcher throttle.
This is part of a series of changes to improve input system pipelining.

Bug: 5963420
Change-Id: Iab33594bc5df8aa05232ef64c64e98fc61c5bf52
2012-02-07 18:38:11 -08:00
Craig Mautner
61ac6bb250 Extract code from performLayoutAndPlaceSurfacesInnerLocked() into multiple methods.
Change-Id: I80152c38741ce73b92da9483cfed84efbac34f89
2012-02-06 16:52:16 -08:00
Chet Haase
659793bcd0 Merge "Add Developer Option setting for Animator scaling." 2012-02-02 10:42:44 -08:00
Chet Haase
c38fa1f636 Add Developer Option setting for Animator scaling.
This new setting allows users to set a scale factor for the
duration and startDelay of all Animator-based animations. This
setting is very similar to the Transition animation scale and
Window animation scale settings, except this one applies specifically
to Animator animations. The property is only accessible by users
through the Settings UI, not programmatically. The value applies
system-wide and is picked up per-process at the time of the first
ValueAnimator construction.

This is an update to a previous CL; this approach uses the WindowManager
to store the animator scale settings, instead of SystemProperties.

Change-Id: I8295fab060aa6d597ae507ded8f9c9d6077be966
2012-02-02 08:40:44 -08:00
Dianne Hackborn
8bcd54b98a Use Choreographer for window manager animation timing.
Change-Id: Ic34aff698c63d383ecd06af7da9957475683a1db
2012-02-01 16:02:14 -08:00
Dianne Hackborn
08cec4ee46 am a5853595: am 47163685: Merge "Another attempt at issue #5823276: home repaints after full-screen app is exited" into ics-mr1
* commit 'a5853595165a6395ca41bbc17a3dd88e12259ad1':
  Another attempt at issue #5823276: home repaints after full-screen app is exited
2012-01-24 11:39:49 -08:00
Dianne Hackborn
47163685eb Merge "Another attempt at issue #5823276: home repaints after full-screen app is exited" into ics-mr1 2012-01-24 11:33:15 -08:00
Dianne Hackborn
b7ff51bde9 Another attempt at issue #5823276: home repaints after full-screen app is exited
This is between the two previous attempts.  I returned the part from the
original that was breaking gallery, but have some new code to detect when
something about the window params has changed that would require a
layout pass to make sure we still do a layout then, even if the window is
not currently visible.

Change-Id: I07745e1f66022583e3076b84cc8bbe8bd2acd48f
2012-01-23 19:15:27 -08:00
Jim Miller
eda775cc89 am 9f080e2a: am 44760b10: Merge "Revert "Fix 5797764: Increase lock screen\'s thread priority"" into ics-mr1
* commit '9f080e2a5bc6a268934e32201c69ea8a86900396':
  Revert "Fix 5797764: Increase lock screen's thread priority"
2012-01-23 15:53:17 -08:00
Jim Miller
44760b106a Merge "Revert "Fix 5797764: Increase lock screen's thread priority"" into ics-mr1 2012-01-23 15:49:32 -08:00
Jim Miller
54dbbce1c3 Revert "Fix 5797764: Increase lock screen's thread priority"
This reverts commit 6d6a70a337

This doesn't appear to have a measurable impact for this issue.
2012-01-23 15:24:42 -08:00
Dianne Hackborn
fd1c5ed370 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
2012-01-23 12:52:43 -08:00
Jim Miller
8ffd2cccf0 am b1c7785c: am eaa11a72: Merge "Fix 5797764: Increase lock screen\'s thread priority" into ics-mr1
* commit 'b1c7785c1110e171d3dd3deb259b1caeed0b9da6':
  Fix 5797764: Increase lock screen's thread priority
2012-01-23 09:18:36 -08:00