this could cause a dead-lock if the applicaltion's draw
implementation blocks until something happenson the main
ui thread.
note: we're still doing this synchronous draw in onWindowResize() because
that's what the previous implementation did. Technically, it has the
same problem.
Bug: 8586305
Change-Id: I782568289cc9419346aeea73775d86faa28b3058
If an app from the apk cannot be launched then skip it in compatibility
test, rather than generate a null pointer exception.
Change-Id: I252031f249bfe25282b10394889ab8c5506cabcf
The last frame of an animation stays stuck on the screen for a couple of frames.
Specifically, the "Quick Contact" animation that animates the picture
closed (fades/scales it away) animates all the way to the end... then hangs there
briefly before being taken down.
The problem is a rendering bug where we correctly detect that a DisplayList
has nothing to draw (since the last frame is completely transparent, alpha==0),
but incorrectly ignore the fact that we cleared the transparent-background
window prior to not-drawing that DisplayList. When we detect that there's
nothing to draw, we don't bother swapping buffers. So even though we drew
the right thing (clearing the buffer), we didn't actually post the buffer to the
screen.
This change factors in both the clear and the draw to decide when to swap buffers.
Issue #8564865 Quick contact close animation jank redux
Change-Id: Ib922cff88a94f025b62f7461c1a29e96fe454838
The new implementation more accurately tracks the velocity
of flings and takes care to avoid obvious discontinuities.
The main goal is for a fling to appear to be a linear
extension of the movement already in progress. The minimum
fling velocity is set to ensure that flings appear to be
fairly smooth despite being discretized.
Use sequences of repeated key events instead of individual
down/up events to represent continuous motions in one
direction which can be helpful for stopping flings at boundaries
such as when flinging the cursor position within a text view.
Compute the movement thresholds based on the physical
size of the touch pad, if known. If not known, we assume a
nominal size.
Support stopping flings with a tap just like we do for
normal touch events elsewhere in the framework.
Moved the detection of ASSIST swipes into the InputReader
where it belongs. These swipes must be detected globally
to ensure consistent behavior across the all applications.
Added a custom protocol in EventHub to enable input device
drivers to override the timestamp of the following events
in a packet. This change enables input device drivers
that have a better idea of when an input event was actually
generated to pass this information to the input system.
Particularly useful with uinput.
Bug: 8583760
Change-Id: I8ef4e827804786d549cfaa00793a2b9dd0fda465
The goal is to better encapsulate this code to make it easier
to maintain and to facilitate some upcoming changes.
Some of the variables have been renamed but the logic is unchanged.
Bug: 8583760
Change-Id: I45501f7dabebcb938e42c386291d615d088a4c8c
Add assets for menu panels when holo menus appear above their anchor
rather than below.
Bug 7049080
Change-Id: I7803f9414c2b2cb96274bf062adeccfc302a0d43
This fixes a bug caused by not keeping track of previous play
state properly in keyguard as well as showing the transport
even when in STATE_INVISIBLE.
Fixes bug 8473575
Change-Id: I28bd382c53645a7c44541b3139c0a60569865219
GLSurfaceView will now automatically use the Choreographer to
schedule render updates on VSYNC. This happens only in
RENDERMODE_CONTINUOUSLY.
GLSurfaceView was rewriten to use a Looper and a HandlerThread
instead of a custom thread.
The basic mode of operation is unchanged, however the implementation
is largely different.
Removed support for older GPUs which had a limited number of contexts.
Bug: 8485730
Change-Id: I7b270f7ad7bb1259e858429054b1c8c9cc159dc6
Several conditions can cause an AbsListView's data set observer to be
removed and nulled out. If for some reason the view receives duplicate
onDetachedFromWindow events this could cause AbsListView to attempt to
unregister a null observer. Skip this unregister process if this
happens.
Bug 7088152
Change-Id: Ib0c630d1ee598640512023e4ef158f01e3ed474d
If someone explicitly installs an update to a system-bundled package,
we infer that this means they actually want to use the new code.
Bug 7467302
Change-Id: If2dc6f764bafbb3a5c94cbdd32273c030fd784b9