Starting several animations will place separate events onto the
animation queue, which may cause the active animations to get
processed more than once in any frame when one of those start messages
is processed.
This change moves the logic of starting pending animations into
the animation frame processing itself. Now when a start event is
processed, it only calls the animation frame logic if there are
unstarted animations pending.
Issue #6172602 Inconsistent animation callbacks
Change-Id: I3a546f0c849f42b2dd998f099fcdfafd7d780ad9
StrictMode posts a message to estimate how long the main thread was
blocked during a violation. Currently, any pending messages are
counted against the violation. To avoid this, switch to using
postAtFrontOfQueue().
Bug: 6119289
Change-Id: I94530632ca678b78b75a698cf9193641b102be9a
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
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
Subtype controls (3G-vs-4G) aren't exposed in the UI, so tracking
data with that granularity creates unnecessary overhead. For example,
some GSM networks can regularly flap between two subtypes.
Bug: 6118868
Change-Id: Id098891dba52336d00d0f96632a7924e228b4713
DisplayList properties are still disabled default (flags in View.java
and DisplayListRenderer.h). When they are enabled, and when a View has
a DisplayList, invalidations due to property changes are now optimized
to avoid causing DisplayList recreation. This eliminates the drawing step
of invalidation (due to changes in these properties), only requiring
issuing the previously-created DisplayList to the GL renderer. Invalidation
is slightly faster (less overhead as we walk up the hierarchy), getDisplayList()
is potentially much faster (going down to ~0ms), depending on the complexity
of the View being redrawn and the size of the invalidated hierarchy.
Change-Id: I57587d5b810c3595bdd72a6c52349c2a3d1bdf25