Commit Graph

4287 Commits

Author SHA1 Message Date
Chet Haase
b989502e5c Adding small animation features
RectEvaluator is useful when animating object bounds.
The other change is a hidden API that allows temporary suspension
of layout, useful for animations which need to animate view bounds
without conflicting with layout passes that might happen in the middle
of the animation.

Change-Id: I3dc08cb6ec455dfa3409e825506b218d3ea63d7a
2013-04-04 11:00:07 -07:00
Jeff Brown
4d656885ed Clear mCurSender when mCurChannel is modified.
This fixed an issue where an InputEventSender might outlive
its usefulness and continue to be used well after it should
have been disposed or recreated.

Also improves the queue management somewhat.

Bug: 8493879
Change-Id: I7e0b6a3c43cbe72f8762991f5d36560feebd214b
2013-04-03 14:40:57 -07:00
Scott Kennedy
688c334485 am 23eda7cd: am 76f9a0a6: am c318dbcf: am 2dd01a0b: am 555c82cd: am f7c06ddb: Merge "docs: Typos and other fixes" into jb-mr1-dev
* commit '23eda7cd0a2b80bafcba7c24f49a73a2f11f782f':
  docs: Typos and other fixes
2013-04-03 09:38:49 -07:00
Scott Kennedy
23eda7cd0a am 76f9a0a6: am c318dbcf: am 2dd01a0b: am 555c82cd: am f7c06ddb: Merge "docs: Typos and other fixes" into jb-mr1-dev
* commit '76f9a0a6800d8a8945156a95dea79f16ec704b3d':
  docs: Typos and other fixes
2013-04-03 09:35:18 -07:00
Scott Kennedy
76f9a0a680 am c318dbcf: am 2dd01a0b: am 555c82cd: am f7c06ddb: Merge "docs: Typos and other fixes" into jb-mr1-dev
* commit 'c318dbcf358772ab53b0380edb3e487a773ad2d8':
  docs: Typos and other fixes
2013-04-03 09:31:32 -07:00
Scott Kennedy
555c82cd43 am f7c06ddb: Merge "docs: Typos and other fixes" into jb-mr1-dev
* commit 'f7c06ddbfc79921d389ed6699df17e54c428571e':
  docs: Typos and other fixes
2013-04-03 09:20:38 -07:00
Scott Kennedy
f7c06ddbfc Merge "docs: Typos and other fixes" into jb-mr1-dev 2013-04-03 16:16:35 +00:00
Jeff Brown
a4ca8ea0ad Fix reference cycle in InputEventReceiver and Sender.
If the receiver or sender was not properly disposed, then
the underlying input channel might be leaked because the
native peer was holding a strong reference to the object.

Switched to using a weak reference.

Also updated Binder to use a new helper created for this purpose.

Change-Id: I19680bf96d0548777bff02aa1d91874d1e8e41da
2013-04-02 18:59:15 -07:00
Brian Colonna
1eccc0cf5f Merge "FUL now restarts when flipping tablet 180 (bug 7484464)" into jb-mr2-dev 2013-04-02 20:19:24 +00:00
Chet Haase
c99d3c1fd6 Stop jank from window animations overlapping activity animations
Relaunching a running activity will sometimes cause animations in that
activity to run, causing jank due to too much happening (window animations
on that same window running at the same time).

An earlier fix pauses application rendering while window animations are running,
but only the first time the activity comes up. If the window is animated
after that (such as is the case with re-launching it while it is running
in the background), rendering, and therefore animations, happen as usual,
causing the jank.

The fix is to simply broaden the scope of when application rendering is
paused to include anytime the window is animating.

Issue #8472972 Make app animations play nice with window animations

Change-Id: I1dd8da039fcb4d1faf6c0811bae97ef2847deb84
2013-04-02 07:30:52 -07:00
Chris Craik
94d6170b67 Merge "Update view's alpha and layer docs" into jb-mr2-dev 2013-04-02 01:04:30 +00:00
Chris Craik
16ecda5317 Update view's alpha and layer docs
bug:8501661

Makes the performance issues and interaction with layer type/paint
more clear.

Additionally, corrects change from 47ab7d6612
to still allow displayList alpha to override layer paint

Change-Id: Ic94d75865700820489370461cd8ac9f9077a8d90
2013-04-01 17:21:35 -07:00
Michael Wright
ef17e8710e Flush pending input events immediately upon channel dispose
Change-Id: I949326423f733376aa8d3121bfed24fd76ca0784
2013-04-01 13:15:55 -07:00
Fabrice Di Meglio
83390182bf Merge "Optimize ViewGroup.MarginLayoutParams memory and fix ViewDebug" into jb-mr2-dev 2013-03-30 00:58:51 +00:00
Michael Wright
ee5880c95a Merge "Finish any event in the current input queue" into jb-mr2-dev 2013-03-29 22:58:50 +00:00
Brian Colonna
b1b9a8ac07 FUL now restarts when flipping tablet 180 (bug 7484464)
When a tablet rotates, FUL must be stopped and restarted in a new
position.  90 degree rotations cause a configuration change, causing
FUL to be automatically reconstructed in the new location.  However,
a 180 degree rotation is not a configuration change, so FUL was not
restarting.  A 180 degree rotation happens more often than one might
think.  If you set the tablet down and later picked it up in the
opposite orientation, FUL would not work prior to this fix.

This change adds a rotation watcher to KeyguardFaceUnlockView.  It
watches for 180 degree rotations and stops and restarts FUL
accordingly.

The rotation watcher callback must be unregistered when
KeyguardFaceUnlockView is recreated (as during 90 degree rotation
changes), otherwise the number of rotation watcher callbacks will keep
growing and they will never go away.  This is a problem not just
because there are many callbacks hanging around, but also because the
old callbacks end up trying to access biometric unlock views that no
longer exist, resulting in crashes.  So, a simple function was added
to the window manager to unregister a rotation watcher.

Change-Id: Ie1ef20a9a22b8f4e39918987dff2b8ad444fcfd1
2013-03-29 18:35:43 -04:00
Michael Wright
bf02096088 Finish any event in the current input queue
When the pipelining optimization was added we never updated
handleImeFinishedEvent to look through the whole queue of items, so it was only
looking at the head.

Bug: 8498214
Change-Id: I79c62392a93b47e3e1eab3f4fe54a5c999dfb566
2013-03-29 14:06:43 -07:00
Fabrice Di Meglio
b365f91688 Optimize ViewGroup.MarginLayoutParams memory and fix ViewDebug
- use private flag bit field for ViewGroup.MarginLayoutParams
- make ViewDebug support "byte" type for FlagMapping

Change-Id: Iff7c31544e3ce2d29919c9424425f2bf87042b8b
2013-03-29 13:12:07 -07:00
Eric Laurent
7692d1f165 Merge "Display vibrate icon in volume panel" into jb-mr2-dev 2013-03-28 22:08:05 +00:00
Fabrice Di Meglio
f7fa08b702 Merge "Fix bug #8487785 Notification shade has text overlapping the icon" into jb-mr2-dev 2013-03-27 22:15:59 +00:00
Fabrice Di Meglio
02a7d5637c Fix bug #8487785 Notification shade has text overlapping the icon
- follow up to the fix for bug #8480245 ViewGroup layout margins can be wrong in RTL mode
- deal with "RTL compatibility mode": if left/right margins are not defined and if we
haev some start/end ones then use the start/end ones.

Change-Id: I98fe3276de2bd14f60a1c423a47569a68046f7be
2013-03-27 15:12:06 -07:00
Jeff Brown
ca3d655d20 Merge "Use input transport for communications between app and IME." into jb-mr2-dev 2013-03-27 02:43:54 +00:00
Fabrice Di Meglio
a803b094c6 Merge "Fix bug #8480245 ViewGroup layout margins can be wrong in RTL mode" into jb-mr2-dev 2013-03-27 00:44:48 +00:00
Fabrice Di Meglio
0072f64939 Fix bug #8480245 ViewGroup layout margins can be wrong in RTL mode
- fix resolution of MarginLayoutParams
- update related RelativeLayout code

Change-Id: I261f127a8897f60d316fed2a73e6e76020e542cc
2013-03-26 17:27:33 -07:00
Dianne Hackborn
5871b258af Merge "Change wm commands to return size and density info." into jb-mr2-dev 2013-03-27 00:22:28 +00:00
Romain Guy
2509437e30 Merge "Avoid multiple font cache texture uploads Bug #8378964" into jb-mr2-dev 2013-03-27 00:21:05 +00:00
Michael Wright
cf797a5e43 Merge "Deliver key repeats for artificial dpad events" into jb-mr2-dev 2013-03-26 23:11:15 +00:00
Jeff Brown
c28867a1d6 Use input transport for communications between app and IME.
The input method manager service now supplies an input channel for
communication while creating an IME session on behalf of the
application.

This change significanly reduces the overhead of IME event dispatch
by using a standard input channel to send input events rather than
using binder.  This results in fewer thread context switches
and fewer object allocations.

What's more, the IME may perform additional batching of the motion
events that it receives which may help it catch up if it is
getting behind while processing them.

Bug: 7984576
Bug: 8473020
Change-Id: Ibe26311edd0060cdcae80194f1753482e635786f
2013-03-26 15:42:39 -07:00
Romain Guy
96885eb480 Avoid multiple font cache texture uploads
Bug #8378964

This change defers drawing into layers until after the renderer for FBO0
is ready to draw. At that point, all the precaching is done which means
all glyphs can be uploaded at once in the font caches.

Change-Id: Ie1f7a7ff30f76f06fb3dbc72c7d05e66207d1ecb
2013-03-26 15:25:07 -07:00
Dianne Hackborn
672cf45de7 Change wm commands to return size and density info.
Change-Id: Id25722fe5f0cd9470d04d657f067e5ad29927c98
2013-03-26 15:24:24 -07:00
Michael Wright
40f8f0d136 Deliver key repeats for artificial dpad events
Bug: 8425219
Change-Id: Ib41b06ed40d43f2e30ce2a647871a76cea80177b
2013-03-26 14:34:14 -07:00
Eric Laurent
8a51acae5d Display vibrate icon in volume panel
When a tablet is in vibrate mode, the notification
volume icon in the expanded volume panel should
be vibrate and not silent.

Bug 7235006

Change-Id: I150c1f0f571e3910ebae57442a75740cef00341e
2013-03-25 18:36:35 -07:00
Chet Haase
9c17fe693d Fix touch processing for Overlay views
Previous implementation processed Overlay touch after other children in
a ViewGroup; it should be the other way around.

Also, fixed some invalidation issues.

Finally, added new behavior to automatically place View which is already
parented into the same global position, by calculating where the overlay is
on the screen relative to the previous parent of the View.

Issue #8459085 Overlay needs to handle touch correctly

Change-Id: Ic2cee12d2bc345f64ed3f4d855a5c3496967a201
2013-03-25 18:22:58 -07:00
Michael Wright
53d13667e3 Fix log tags in trackball debugging
Change-Id: I02a623c96aff8b6ffbe11161feea39ad26ba0e83
2013-03-23 00:57:51 +00:00
Dianne Hackborn
1a89c5324b Merge "New media button API." into jb-mr2-dev 2013-03-22 23:13:49 +00:00
Michael Wright
88a0765dd4 Merge "Add pipelining optimization to IME dispatching" into jb-mr2-dev 2013-03-22 22:49:53 +00:00
Chris Craik
81cce37ded Merge "Restore final canvas state after deferred flush" into jb-mr2-dev 2013-03-22 22:11:33 +00:00
Dianne Hackborn
961cae9254 New media button API.
This allows sending media buttons to any PendingIntent,
so they can be captured with a registered receiver.

Also add some new ViewTreeObserver APIs; this is all for
a new support library API to watch media buttons while an
app has input focus.

Change-Id: I3c51cef59460662b008c9a2cc87d6a6383c21855
2013-03-22 14:49:28 -07:00
Michael Wright
c8a7e54fef Add pipelining optimization to IME dispatching
Rather than wait for the IME to return before sending it the next input event,
send all available input events as soon as we receive them.

Bug: 7984576
Change-Id: Ie0b1086efc4f9e1ececac22afd997829304bf180
2013-03-22 13:35:57 -07:00
Chris Craik
a4e16c58c9 Restore final canvas state after deferred flush
bug:8450062

- Fixes overdraw indication with DeferredDisplayList
- Fixes drawHardwareLayer called after flush

Additionally changes drawLayer to pass its paint to native via setLayerPaint

Wrap flush in save/restore so that reordering doesn't affect final
transform

Change-Id: I08befa42c28500da6387699eefd4be28aedf9f4c
2013-03-22 11:54:51 -07:00
Michael Wright
52a5352626 Separate sessionCreated and finishedEvents callbacks
Bug: 8276952
Change-Id: If7051086c060fcce5d1e958ebbddec0784c851da
2013-03-21 17:47:40 -07:00
Michael Wright
95ae9429ee Add tracing for pending queue size
Change-Id: Ib31c2245feca31d0276ef1ebf6e6d237d0297671
2013-03-21 17:47:40 -07:00
Chet Haase
633326e29f Manage drawable invalidation automatically for Overlays
Drawables added to a view's Overlay will now cause the Overlay to
be invalidated via the normal drawable-invalidation mechanism. That is,
changes to any of the drawables in the overlay should cause invalidation of
the proper area of the overlay and thus the hostView, causing the appropriate
area to be redrawn.

Also, fixed a bug in drawable invalidation so that bounds changes will now
correctly invalidate both the old and new bounds areas.

Issue #8350510 Add APIs needed for future animation capabilities

Change-Id: Icae5fa0e420232ee17dc39be10084345bae8dbd8
2013-03-20 16:23:33 -07:00
Mathias Agopian
0a4962ad11 Merge "make Surface.java internal state thread-safe" into jb-mr2-dev 2013-03-20 00:23:32 +00:00
Fabrice Di Meglio
5054803a02 Merge "Add missing ViewDebug infos for View.getTextDirection()" into jb-mr2-dev 2013-03-19 20:45:52 +00:00
Fabrice Di Meglio
83f15e657c Add missing ViewDebug infos for View.getTextDirection()
- as getTextDirection() values were not showing in hierarchyviewer

Change-Id: I4ae74963a3c3b350ba996d098e5714b6538d9553
2013-03-19 11:45:56 -07:00
Mathias Agopian
7c116b54b7 make Surface.java internal state thread-safe
it's still incorrect to use Surface from different
threads, however this shouldn't result to native crashes
anymore.

Bug: 8328715
Change-Id: I89ac5cc1218dc5aa0e35f8e6d4737879a442f0c6
2013-03-18 20:29:18 -07:00
Mathias Agopian
49ff2c615e improve SurfaceControl.screenshot documentation
Change-Id: I7e17f69f74df8610b5b85fac0127727df973be42
2013-03-18 20:27:35 +00:00
Chet Haase
728713258f DO NOT MERGE: ListView transient state fix
ListView child views with transientState (setHasTransientState(true)) are not
handled correctly when the data set changes, such as when an item is added
or removed. The problem is that the transient views are cached by their
position, but this position is out of sync between the ListView and the adapter
until the ListView layout process is complete.

A better way, which unfortunately only works on ListViews with stable IDs, is
to cache the views by their itemID instead, and to use that ID to determine when
and where to reuse/retrieve a transient view during the ListView layout.

Issue #8254775 View.setHasTransient state has side-effects when deleting content in ListView

Change-Id: I2fc25e71ed6655af30b9c3f47fdf014e9b667616
2013-03-18 10:06:27 -07:00
Chet Haase
138c58a941 Merge "Add overlays to views" into jb-mr2-dev 2013-03-18 14:29:06 +00:00