Commit Graph

2313 Commits

Author SHA1 Message Date
Gilles Debunne
e6513486ee Merge "Minor tweak in getLocationInWindow" 2011-12-07 10:40:28 -08:00
Jeff Brown
2b621bc5bb Merge "Disable postponing performTraversals(), for now." 2011-12-06 18:09:35 -08:00
Gilles Debunne
6583ce5b89 Minor tweak in getLocationInWindow
Change-Id: Ib3f30dbfb3aee7c46c58e1f7832e3394702c0ff6
2011-12-06 18:09:02 -08:00
Jeff Brown
90a3c5f51d Disable postponing performTraversals(), for now.
Bug: 5715378
Bug: 5721047
Change-Id: I89c674306665b6caa3a63b8a9d2b4b7c9ed020ae
2011-12-06 18:01:37 -08:00
Adam Powell
e49e8cc4e7 Merge "resolved conflicts for merge of 6a828712 to master" 2011-12-06 16:57:35 -08:00
Adam Powell
e4b8ff8068 resolved conflicts for merge of 6a828712 to master
Change-Id: I73c804667a890bcc9924951ff655137c1345541a
2011-12-06 16:53:47 -08:00
Romain Guy
bdfe770e08 Merge "Discard framebuffer rendering queues when discarding layers Bug #5581817" 2011-12-06 16:37:58 -08:00
Romain Guy
9c4b79af22 Discard framebuffer rendering queues when discarding layers
Bug #5581817

Change-Id: Ie30700a29059d2ea60eb7bd3f8bd20ac48a149ab
2011-12-06 16:37:10 -08:00
Jeff Brown
07069a04ef Fix PIN pad.
Some widgets apparently inject keys into the ViewRoot by sending
a DISPATCH_KEY message to its handler.  Ugh.

Bug: 5711577
Change-Id: Ibe9aaf705095d152ec866c536f31f5d85e27b97f
2011-12-06 16:15:22 -08:00
Adam Powell
7d39f85acf Lower touch slop in ViewConfiguration.
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
2011-12-06 12:08:47 -08:00
Jeff Brown
96e942dabe Use a Choreographer to schedule animation and drawing.
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
2011-12-05 16:39:59 -08:00
Jeff Brown
0a0a1248cf Add a new class to receive vsync events.
Change-Id: I4e384336d2813752a6d65fda6a77e86113a4510c
2011-12-05 11:16:07 -08:00
Dianne Hackborn
315e468763 am 803caff1: am 003c15d7: Merge "Fix issue #5614559: Registering surface error in..." into ics-mr1
* commit '803caff1dc307a8895e9f3560112f969fa3f6f39':
  Fix issue #5614559: Registering surface error in...
2011-12-05 10:45:16 -08:00
Jeff Brown
f3a0a60917 Merge "Remove type tests when recycling input events." 2011-12-03 17:35:19 -08:00
Jeff Brown
92cc2d8dc3 Remove type tests when recycling input events.
Change-Id: I1c2d5980a763c457a0546bbf601e686c601a4c03
2011-12-03 17:31:17 -08:00
Dianne Hackborn
61566cc193 Fix issue #5614559: Registering surface error in...
...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
2011-12-03 11:16:49 -08:00
Gilles Debunne
f240ac99d6 am 0c7e894e: am 2f1e1e4a: Merge "Handle animations in Views\' rectangle clipping methods." into ics-mr1
* commit '0c7e894e79bea35f979d30e4e3bb6115b102cafd':
  Handle animations in Views' rectangle clipping methods.
2011-12-02 17:57:31 -08:00
Gilles Debunne
2f1e1e4ab9 Merge "Handle animations in Views' rectangle clipping methods." into ics-mr1 2011-12-02 15:28:56 -08:00
Jeff Brown
32cbc3855c Refactor InputQueue as InputEventReceiver.
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
2011-12-01 21:04:47 -08:00
Gilles Debunne
cea45132e3 Handle animations in Views' rectangle clipping methods.
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
2011-12-01 14:55:50 -08:00
Jeff Brown
4952dfd16a Ensure input events are processed in-order in the application.
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
2011-12-01 14:13:48 -08:00
Jeff Brown
95db2b20d7 Improve latency instrumentation.
Change-Id: I4edfa0a5659d207f7e46722e48ffa1dc43d2aa13
2011-12-01 14:13:48 -08:00
Svetoslav Ganov
55cdacb9ba am 0bfdd7c2: am e9f24a43: Merge "Fix memory leaks in the accessibility layer." into ics-mr1
* commit '0bfdd7c2927fb683b89fdd52befe643e8e069e77':
  Fix memory leaks in the accessibility layer.
2011-12-01 13:01:50 -08:00
Svetoslav Ganov
e9f24a4302 Merge "Fix memory leaks in the accessibility layer." into ics-mr1 2011-12-01 12:57:12 -08:00
Amith Yamasani
41995689f2 am 52976f04: am e9b0608c: Merge "No clicking on volume icon in volume dialog." into ics-mr1
* commit '52976f04d8bebf44398a94cf5796f6a998c8935d':
  No clicking on volume icon in volume dialog.
2011-12-01 12:17:50 -08:00
Svetoslav Ganov
36bcdb535e Fix memory leaks in the accessibility layer.
The AccessibilityServiceConnection chache should be shared
between all interrogating threads.

bug:5664337

Change-Id: I151041d0b358e87ac47ea5c1c258f90a8b252420
2011-12-01 11:50:42 -08:00
Amith Yamasani
e9b0608c76 Merge "No clicking on volume icon in volume dialog." into ics-mr1 2011-12-01 11:35:30 -08:00
Chet Haase
de5b3a0933 Merge "Protect code in ViewPropertyAnimator from potential null deref" 2011-12-01 10:35:18 -08:00
Chet Haase
0c6d83cc56 Protect code in ViewPropertyAnimator from potential null deref
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
2011-12-01 08:40:05 -08:00
Svetoslav Ganov
786e54dd13 Fixing the build
Change-Id: I125956773dd364b14f8d328e625df3c852001dbf
2011-11-30 19:36:18 -08:00
Svetoslav Ganov
66922db828 Fixing the build - for real
Change-Id: I9628f2da8876b85f9c8ce94cc876b10e083980f6
2011-11-30 19:18:51 -08:00
Svetoslav Ganov
8b5a814f6a Fixing the build
Change-Id: I7b2270843123b252098ca798c03284fb089f1b8a
2011-11-30 19:10:26 -08:00
Svetoslav Ganov
f3b4f3163b resolved conflicts for merge of 26f7a81f to master
Change-Id: I6bf5fd7c0de7945cef84602dbe3a7bbed587700f
2011-11-30 18:34:56 -08:00
Svetoslav Ganov
d8ec8db5e0 Merge "Fixing memory leaks in the accessiiblity layer." into ics-mr1 2011-11-30 16:56:41 -08:00
Amith Yamasani
2b0acc90ae No clicking on volume icon in volume dialog.
Don't disable volume slider when it hits zero.
Show correct icon for Silent mode in Power menu.

Bug: 5586083
Change-Id: Iaa957fc08e314e0de1c007dfc967a1d960080aab
2011-11-30 15:28:43 -08:00
Svetoslav Ganov
d116d7c78a Fixing memory leaks in the accessiiblity layer.
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
2011-11-29 18:51:30 -08:00
Chet Haase
b7a4db0a53 Merge "Fix invalidation of transformed, opaque views" 2011-11-29 13:53:53 -08:00
Chet Haase
8c39defde6 Fix invalidation of transformed, opaque views
There is an optimization in the invalidation logic which notes
when opaque views are invalidated and avoids drawing any of the
content behind those views. This runs afoul of some invalidation
logic that invalidates previous positions of views prior to
transforming them. The opaque-dirty optimization guarantees that
the background behind the old positions of these views will not
be painted, causing the views to leave behind artifacts from
their previous positions.

The fix is to disable the optimization when the view in question is
transformed (has a non-identity matrix).

Issue #5678545: Invalidation logic broken for software-rendered
opaque/transformed views

Change-Id: Ia365ab97725bf36e08797bf319945a52ffca4616
2011-11-29 13:40:39 -08:00
Jeff Brown
0475f82c95 am c339fe30: am be6ab576: Merge "Fix application launch shortcuts." into ics-mr1
* commit 'c339fe302bc5083f0a110569eec06676be511088':
  Fix application launch shortcuts.
2011-11-29 13:17:42 -08:00
Jeff Brown
be6ab576ff Merge "Fix application launch shortcuts." into ics-mr1 2011-11-29 13:13:33 -08:00
Jeff Brown
6651a63834 Fix application launch shortcuts.
Improved quick launch bookmarks to support category-based shortcuts
instead of hardcoding package and class names for all apps.

Added a set of Intent categories for typical applications on the
platform.

Added support for some of the HID application launch usages to
reduce reliance on quick launch for special purpose keys.  Some
keyboard vendors have hardcoded launch keys that synthesize
"Search + X" type key combos.  The goal is to encourage them
to stop doing this by implementing more of HID.

Bug: 5674723
Change-Id: I79f1147c65a208efc3f67228c9f0fa5cd050c593
2011-11-29 12:17:22 -08:00
Dianne Hackborn
c0b7f65ae0 am 496f6e2a: am b54980d1: Merge "Fix issue #5588689: Black camera preview after coming back from gmail" into ics-mr1
* commit '496f6e2ad656c5bb8a277e191554d16abd290b58':
  Fix issue #5588689: Black camera preview after coming back from gmail
2011-11-28 16:57:17 -08:00
Dianne Hackborn
b54980d1d4 Merge "Fix issue #5588689: Black camera preview after coming back from gmail" into ics-mr1 2011-11-28 16:53:00 -08:00
Romain Guy
cb52d67600 am 02e88f23: am 46685db9: Merge "Fix crash in existing applications Bug #5659476" into ics-mr1
* commit '02e88f23a65c602e83d7a46c0925e653b948e418':
  Fix crash in existing applications Bug #5659476
2011-11-28 16:11:27 -08:00
Romain Guy
46685db957 Merge "Fix crash in existing applications Bug #5659476" into ics-mr1 2011-11-28 16:06:52 -08:00
Chet Haase
d3ea6b40bb am 38928899: am 8990cb57: Merge "Fix flashing wifi dialog after rotating back from landscape." into ics-mr1
* commit '3892889952b0ad3fa0b095c96d8ae2ae110585e2':
  Fix flashing wifi dialog after rotating back from landscape.
2011-11-28 15:47:16 -08:00
Chet Haase
08837c246c Fix flashing wifi dialog after rotating back from landscape.
There was an error in some of the OpenGL layer logic such that we would
occasionally set up a layer for rendering and then not clean up when it was
done. This caused future OpenGL rendering to go into that layer instead of
to the buffers being displayed on the screen, resulting in artifacts including
flashes and displaying of stale content. This happened specifically when
using the wifi settings dialog with the InputMethod keyboard displayed,
but it was probably visible in other situations as well.

Issue #5628248: Flickering/flashing after entering password for WiFi

Change-Id: I38139f620b310f4309570fa7224552d2ee633999
2011-11-28 15:19:22 -08:00
Romain Guy
ff98fa5a84 Fix crash in existing applications
Bug #5659476

The FontRenderer was not cleaning up its temporary state, leading
to crashes when invoking renderDropShadow.

Change-Id: I43b24820dd5625af8c080bbe11b64de2f74164b2
2011-11-28 14:55:56 -08:00
Dianne Hackborn
6d05fd3c79 Fix issue #5588689: Black camera preview after coming back from gmail
Make surface management between SurfaceView and the window manager
much more controlled, to ensure that SurfaceView always gets to report
the current surface is destroyed before the window manager actually
destroys it.

Also a small tweak to allow windows that have a wallpaper background
to still have a preview window.  This makes launching home after it
has been killed feel much more responsive.

Change-Id: I0d22cf178a499601a770cb1dbadef7487e392d85
2011-11-28 14:45:50 -08:00
Romain Guy
0ce4978308 am e25ed181: am 26dd54f8: Merge "Ensure we have an EGL context when building layers Bug #5638421" into ics-mr1
* commit 'e25ed181070579fca2522112b1659af2fbf8ddfc':
  Ensure we have an EGL context when building layers Bug #5638421
2011-11-22 12:42:04 -08:00