This change fixes an issue on some tiler architectures that do not
enable the swap buffer behavior by default on EGL surfaces.
Change-Id: Ibda1ae582da1a20afad3be9c3361080e72df5206
Bug: 5409969
If the current stream being displayed is different from the
stream being adjusted, rearrange the sliders, unless multiple
sliders are being shown.
Change-Id: Ia48986c1046305d7fee7a32177d78d8ffd84a11b
Some widgets apparently inject keys into the ViewRoot by sending
a DISPATCH_KEY message to its handler. Ugh.
Bug: 5711577
Change-Id: Ibe9aaf705095d152ec866c536f31f5d85e27b97f
Our typical touchscreens are now good enough that we don't need the
touch slop to be as large as it once was. Lower it to increase
responsiveness while scrolling.
Move the touch slop constant to the config resource
config_viewConfigurationTouchSlop so that it may be more easily
tweaked in device-specific overlays.
Change-Id: I7c11d8affcb98e91654203beb13a26cfeec18f7c
Both animations and drawing need to march to the beat of
the same drum, but the animation system doesn't know
abgout the view system and vice-versa so neither one
can drive the other.
We introduce the Choreographer as a drummer to keep
everyone in time and ensure a magnificent performance.
This patch enabled VSync based animations and drawing by
default. Two system properties are provided for testing
purposes to control the behavior.
"debug.choreographer.vsync": Enables vsync based animation
timing. Defaults to true. When false, animations are
timed by posting delayed messages to a message queue in
the same way they used to be before this patch.
"debug.choreographer.animdraw": Enables the use of the animation
timer to drive drawing such that drawing is synchronized with
animations (in other words, with vsync or the timing loop).
Defaults to true. When false, layout traversals and drawing
are posted to the message queue for execution without any delay or
synchronization in the same way they used to be before this patch.
Stubbed out part of the layoutlib animation code because it
depends on the old timing loop (opened bug 5712395)
Change-Id: I186d9518648e89bc3e809e393e9a9148bbbecc4d
...Background Replacement on Stingray
This is how I should have done it in the first place. We get the
new surface from the window manager, and then just copy it in to
the constant Surface object we have for the holder.
Change-Id: I537a9e413829a18f689dfb46687014676b27156e
This change simplifies the code associated with receiving input
events from input channels and makes it more robust. It also
does a better job of ensuring that input events are properly
recycled (sometimes we dropped them on the floor).
This change also adds a sequence number to all events, which is
handy for determining whether we are looking at the same event or a
new one, particularly when events are recycled.
Change-Id: I4ebd88f73b5f77f3e150778cd550e7f91956aac2
getChildVisibleRect and getLocationInWindow do not take the new
mTransformationInfo View attribute.
As a result, these methods return invalid value during an animation
Bug 5638710
Changes in Patch Set 2:
- temporary allocations removed using static thread local variables (method
calls are NOT reentrant).
- scroll should be handled *before* applying the transformation matrix.
Fixed the call order in View#getLocationInWindow()
Patch set 4: fix from comments.
Patch set 5: <p>s
Change-Id: I15dc44c0659305d9029c59a47aba3a738bb35ae1
As it turns out, it used to be possible for there to be multiple
input events simultaneously in flight in an application. Although
it worked, it made it hard to reason about what was going on.
The problem was somewhat exacerbated by the introduction of a
queue of "InputEventMessage" objects as part of an earlier latency
optimization.
This change restores order from chaos and greatly simplifies the
invariants related to input event dispatch within the application.
Change-Id: I6de5fe61c1fe2ac3dd33edf770d949044df8a019
The AccessibilityServiceConnection chache should be shared
between all interrogating threads.
bug:5664337
Change-Id: I151041d0b358e87ac47ea5c1c258f90a8b252420
The monkeys threw a NullPointerException in ViewPropertyAnimator, from
calling into a data structure that should have been not null. Not sure what
weird onkey-driven timing issue caused the problem, but protecting the null
deref is easy and safe.
Issue 5626496
Change-Id: I902b510db60a8a85f776f48582ae0326522a9400
Don't disable volume slider when it hits zero.
Show correct icon for Silent mode in Power menu.
Bug: 5586083
Change-Id: Iaa957fc08e314e0de1c007dfc967a1d960080aab
1. AccessibilityInteractionConnections were removed from the
AccessiiblityManagerService but their DeathRecipents were
not unregistered, thus every removed interaction connection
was essentially leaking. Such connection is registered in
the system for every ViewRootImpl when accessiiblity is
enabled and inregistered when disabled.
2. Every AccessibilityEvent and AccessiilbityEventInfo obtained
from a widnow content querying accessibility service had a
handle to a binder proxy over which to make queries. Hoewever,
holding a proxy to a remote binder prevents the latter from
being garbage collected. Therefore, now the events and infos
have a connection id insteand and the hindden singleton
AccessiiblityInteaction client via which queries are made
has a registry with the connections. This class looks up
the connection given its id before making an IPC. Now the
connection is stored in one place and when an accessibility
service is disconnected the system sets the connection to
null so the binder object in the system process can be GCed.
Note that before this change a bad implemented accessibility
service could cache events or infos causing a leak in the
system process. This should never happen.
3. SparseArray was not clearing the reference to the last moved
element while garbage collecting thus causing a leak.
bug:5664337
Change-Id: Id397f614b026d43bd7b57bb7f8186bca5cdfcff9