2862 Commits

Author SHA1 Message Date
Doris Liu
f7167e8f28 Support repeatMode = reverse in AVD
BUG: 30641232
Change-Id: I34c823a0a45c8441873a9b467275174c5529994b
2016-08-05 01:44:20 +00:00
John Reck
4387190d8e Eliminate recents upload jank
Bug: 30342017

Upload recents thumbnails in the
dead gaps between frames instead of
at the start of a frame. This eliminates
jank caused by the large texture
upload.

Change-Id: I507cd286d199109c7a9a1511d68ba5ab5d28069f
2016-08-01 16:36:14 -07:00
Sergei Vasilinetc
9b17ebca8f Merge "Turn off simplePath optimization then Path object is used as out param" into nyc-mr1-dev 2016-07-27 23:55:47 +00:00
sergeyv
a6a8557d6e Turn off simplePath optimization then Path object is used as out param
Change-Id: I4d9ae5c756b2ed1ba30483e8685ce1ad6c1f0c03
fixes:30349106
2016-07-27 14:13:34 -07:00
Alan Viverette
b46ba3b2b0 Avoid potential re-entry as a result of child mutation
Don't set the callback until we're all done making changes.

Bug: 30409766
Change-Id: Ia1560692a83ecb2c50f5e77fa4d1e8155a78a204
2016-07-27 10:23:35 -04:00
Doris Liu
26bb10999b Ensure native allocation/free is correctly registered
This CL fixes an issue where one of the constructors creates a
native tree object without registering the allocation of its
root group with the NativeAllocationRegistry.

BUG: 28943866
Change-Id: Ic8db3f2fa8036dfabdbc1a1fcbd58d08a0379e2d
2016-07-15 00:00:20 +00:00
John Reck
226b4764b4 Merge "Clarify Picture docs on playback" into nyc-mr1-dev 2016-07-01 20:41:24 +00:00
Teng-Hui Zhu
4f1acfb5f5 Mutate the drawable if a valid state change happen
In another word, create another cached bitmap, when the current VectorDrawable
will look differently when state changed.

b/29870392

Change-Id: I7a5ef91091e547a930368286defc7ab96aeb9471
2016-06-30 16:30:02 +00:00
John Reck
943c4e0813 Clarify Picture docs on playback
Change-Id: Iaf8d8d04deb97aff39c93c246ef20312c9c2a7cb
fixes: 26911597
2016-06-29 16:09:20 -07:00
Alan Viverette
25242a7bbc Merge \"Disable constant state sharing for VectorDrawable\" into nyc-dev
am: f66bdf9b57

Change-Id: I0c6397987d926c35cb5486fd9d2cb22efb8d8f14
2016-06-29 17:01:21 +00:00
Alan Viverette
f66bdf9b57 Merge "Disable constant state sharing for VectorDrawable" into nyc-dev 2016-06-29 16:54:29 +00:00
Alan Viverette
1882ce941b Disable constant state sharing for VectorDrawable
Bug: 29854240
Change-Id: Icc58d04ad6f471d05b085a9089893e4f7205eb7d
2016-06-29 11:32:13 -04:00
Chris Craik
1e5d428b3f Clip GradientDrawable's saveLayer
bug:29456451

Avoid using very expensive unclipped saveLayer codepath.

Change-Id: Ib96a46169faa89eda6889b16813a7941ab402779
2016-06-28 09:45:35 -07:00
Alan Viverette
e77dc4fe06 Merge \"Only block invalidation in DrawableContainer initialization\" into nyc-dev
am: 7a372a13af

Change-Id: I21a7dbf975a8dca02d87b9a0f084a6af74d55834
2016-06-21 13:53:49 +00:00
Alan Viverette
6d823891bb Only block invalidation in DrawableContainer initialization
Blocking (un)scheduling breaks AnimationDrawable's internal consistency.

Bug: 29309316
Change-Id: I59c79a4a9a92b599cd94bd941ae78ac25b874add
2016-06-17 13:08:42 -04:00
Doris Liu
126df850ce Support AVD animation falling back on UI thread
AVD will fall back to UI thread animation if the host view is
rendering onto a SW layer.

BUG: 27617346
Change-Id: I5b644529048a0c30aada3abf2f4e95e40760936d
2016-06-16 22:09:44 +00:00
Doris Liu
c9493879d7 Support Keyframe definition for AVD on RT
BUG: 27441613
Change-Id: Iece386f65f3704d1b7caa2b3690a8d3048ccf6e2
2016-06-09 14:40:32 -07:00
Doris Liu
a57e95a6a3 Throw Exception for wrong valueType with API guard
Previously, wrong valueType error is swallowed in jni. As a result,
some animations are quietly skipped without letting developers know.
This CL maintains that behavior for pre-N, and throws Exception
to notify developers of the error for N and above.

Bug: 29009391
Change-Id: I3e8f003cdb97d214da72af3f93a84f64797b1c2c
(cherry picked from commit 94db09917a17976135e2c63d8e4171c54730c079)
2016-06-09 14:39:18 -07:00
Doris Liu
3f6a95283a Merge "Handle hidden RT VectorDrawable animators" into nyc-mr1-dev 2016-06-09 21:30:03 +00:00
Doris Liu
718cd3eb70 Handle hidden RT VectorDrawable animators
This CL changes the target of VD specific animators to VectorDrawable,
instead of RenderNode. The benefit of doing so is that animators can
now detect whether the animation is meaningful by checking whether
their VD target is in the display list. If not, that means the VD is
not drawing for the current frame, in which case we can be smarter
and more power efficient by removing the animator from the list and
posting a delayed onFinished listener callback.

By setting VD as the animation target, when an ImageView decides to
update its drawable from one AVD to something else, we'll be able
to detect that the previous AVD is no longer in the display list,
and stop providing animation pulse to the stale AVD, which is
something we couldn't do previously.  This change also
handles the case where one AVD instance could be drawn in two
different views.

Bug: 27441375
Change-Id: Iaad1ed09cfd526276b95db0dd695275c28e074e8
2016-06-09 10:27:59 -07:00
Doris Liu
792926a58c Improve the property modification effiency of VectorDrawable animators
Previously, the VectorDrawable animators modify the VD properties by
doing reflection based on the property name. This CL avoids the overhead
of calling reflection by wrapping the setters of VD objects in
Float/IntProperty.

Bug: 28124049
Change-Id: I562c8d749fdfe508564c82a700a92e835cdd9ff4
(cherry picked from commit 9f3b31b9530a2121b4557fc312972c4faa133d5e)
2016-06-08 20:43:34 +00:00
Doris Liu
028029730b Copy native tree's property when mutate vector drawable
When mutating vector drawables, we need to not only copy over
the VD tree structure, but also the properties of the VD tree,
such as alpha.

Bug: 28974071
Change-Id: I265e7e3cb92455b876cae248bcb9811230cb34f9
2016-05-27 10:54:55 -07:00
Alan Viverette
2b561f1c35 Prevent callbacks during DrawableContainer child initialization
Bug: 28900939
Change-Id: I9c6c8af1665c2dc0bfa8bc8fc773c81e14f6aab1
2016-05-26 16:49:29 -04:00
Alan Viverette
09deff1bd9 Prevent LayerDrawable bounds updates from being re-entrant
Collect child invalidations during layer bounds change, then dispatch a
single invalidation if any children requested invalidation. This prevents
re-entrance from, for example, a LayerDrawable.updateLayerBounds() call
invoking setBounds() on a child, which necessarily calls invalidateSelf()
and immediately propagates up to ImageView.invalidateDrawable(), which
then calls configureBounds() and puts us back in updateLayerBounds().

Bug: 28636072
Change-Id: I36c9eefc18904d493292d51b37e4b05cfddcf794
2016-05-24 15:14:38 -04:00
Yohei Yukawa
23cbe85610 Move LocaleList to avoid layering violation.
Since LocaleList needs to depend on android.os.Parcelable, we cannot let
that class belong to "android.util" package, which causes layering
violation.

Bug: 28819696
Change-Id: Ia8de2ee9df3dd0a42b1fe84574439519b680fe18
2016-05-17 16:42:58 -07:00
Hans Boehm
0d65743fea Clear more native pointers in finalizers
This hopefully handles the remaining finalizers in frameworks/base
that didn't guard against calls from other finalizers after being
finalized.

The goal here is to reduce the possible corruption causes we have
to think about by a few.

If any of theses are either very frequently used, or use large
Java (as opposed to native) objects, we should probably convert them
to NativeAllocationRegistry instead. But that's more work.

Bug: 18178237
Change-Id: I79bc0e8fa20af8f340418a6226022e0294d77f02
(cherry picked from commit ad3cc3c63c6d0f637d2ece3935b5b01b19473299)
2016-05-16 13:45:21 -07:00
Teng-Hui Zhu
a8d671a144 Update and add attributes to the JavaDoc for VectorDrawable
fix:28678266

Change-Id: Ife23937feb6ccbd043bd435ffcb20a79a8861edf
2016-05-11 14:31:45 -07:00
Richard Uhler
8e96faae78 Merge "Hold a ClassLoader reference in NativeAllocationRegistry." into nyc-dev 2016-05-09 15:50:30 +00:00
Alan Viverette
a24c9b4791 Always mutate child when added to drawable container
Bug: 28456908
Change-Id: I3e7bea85e056882a331aecf7e225134161e685e6
2016-05-06 16:01:56 -04:00
Richard Uhler
0ebdbb4a84 Hold a ClassLoader reference in NativeAllocationRegistry.
So that the native library isn't unloaded before we have a chance to
call the freeFunction.

Bug: 28406866
Change-Id: I889f1ccd91bba70e31fb8d09c0ec6d471fc35841
2016-05-03 13:06:22 -07:00
Doris Liu
6543533f29 Merge "Count native allocation for VD against Java heap" into nyc-dev 2016-05-03 16:41:20 +00:00
Doris Liu
f8d131cc8d Count native allocation for VD against Java heap
There are two parts to VD's native allocation:
1) VD's internal data structure (i.e. groups, paths, etc that make
   up of the VD tree). This structure can change, when a VD is used
   to load a different drawable resource.
2) Two bitmap caches, not both of which will necessarily be allocated
   The size of the bitmap cache depends on canvas matrix and drawable
   bounds, and therefore can often change.

We need to count the native allocation from the above against Java heap.

Bug: 26269056
Change-Id: If833aedcf7f3efe00ea73a41ddccb1b48066ffd8
2016-05-02 15:34:40 -07:00
John Reck
a1c06675dd Merge "Video source test & bugfix" into nyc-dev 2016-04-29 14:49:13 +00:00
John Reck
f3a51d652f Video source test & bugfix
Bug: 28428970

Test for video sources and fix a bug where
we should throw an IAE for surfaces that are invalid
at request time.

Change-Id: I891a2b1568f583300433c7aca6de36d2e2621c63
2016-04-28 10:11:36 -07:00
Philip P. Moltmann
3d0d141710 Add a security warning to PdfRenderer doc.
Change-Id: Ia714d312665179366adae8e1923e4b9c339ebb59
2016-04-27 15:03:22 -07:00
John Reck
7f209d37f1 Merge "API tweaks to PixelCopy and make it public" into nyc-dev 2016-04-27 14:36:53 +00:00
John Reck
e94cbc76d5 API tweaks to PixelCopy and make it public
Bug: 27708453
Change-Id: I81667ce42f9ca1c1a13e1e61299927900845fc84
2016-04-26 15:41:43 -07:00
Sergei Vasilinetc
c015719954 Merge "DisplayListCanvas: throw exception at attempt to draw bitmap with size > 100MB" into nyc-dev 2016-04-26 21:39:43 +00:00
Alan Viverette
6f9626a1c2 Check for null drawable during LayerDrawable.jumpToCurrentState()
Child drawables specified as theme attributes may not have been
initialized yet.

Bug: 28371482
Change-Id: I8452a7c5b8f74368c58ba3373336bf7d650af7a3
2016-04-25 11:28:17 -04:00
sergeyv
3d8298e1a8 DisplayListCanvas: throw exception at attempt to draw bitmap with size > 100MB
bug:26943116
Change-Id: If72c9f21ca2d8eb660ea2db4a42c8199f8d02472
2016-04-21 14:48:04 -07:00
Doris Liu
967d93440c Merge "Pause infinite AVD when the drawable is not visible" into nyc-dev 2016-04-19 22:14:13 +00:00
Doris Liu
d049837397 Pause infinite AVD when the drawable is not visible
And resume when it becomes visible again

Bug: 27441375
Change-Id: Ic5140a30f5726df252ca63be9e14c495cbd76466
2016-04-18 18:48:43 -07:00
Winson Chung
de16f96c7e Merge "Take app screenshots in 565." into nyc-dev 2016-04-15 00:56:20 +00:00
Winson
a5fdde9d15 Take app screenshots in 565.
- Or to be specific, SurfaceFlinger can’t easily take 565 screenshots,
  so convert them when creating the ashmem bitmap.

Bug: 28151300
Change-Id: Ic7586659a41cc19c322136f77a1c52ef68c22707
2016-04-14 16:03:44 -07:00
Alan Viverette
112f0aa28e Basic documentation for custom drawables
Bug: 23621364
Change-Id: Ia292433ebd40d4c85ff6974def3d1f4b26926b52
2016-04-14 11:22:44 -04:00
Alan Viverette
0c34026088 Merge "Update docs for Drawable.setLayoutDirection() return value" into nyc-dev 2016-04-13 23:07:05 +00:00
Alan Viverette
2089575686 Merge "Clean up Drawable annotations" into nyc-dev 2016-04-13 15:22:04 +00:00
Alan Viverette
b8cbb806fc Clean up Drawable annotations
No functional changes.

Bug: 23621364
Change-Id: Ia5ac34eb8464ee40afd7052f34b42bb6153260bf
2016-04-13 10:14:06 -04:00
Siyamed Sinir
2519996e4e Merge "Cache Typeface.createFromAsset objects." into nyc-dev 2016-04-12 23:38:23 +00:00
Doris Liu
1ee2dd2f5f Merge "Check whether VD tree is still valid before calling native setter" into nyc-dev 2016-04-12 19:50:39 +00:00