3072 Commits

Author SHA1 Message Date
Alan Viverette
fdc99784c7 Merge \\"Only block invalidation in DrawableContainer initialization\\" into nyc-dev am: 7a372a13af
am: 9b81f5bfaf

Change-Id: I23aa33f0a65e311fcb0db3884216666c1d6bc01c
2016-06-21 13:59:29 +00: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
sergeyv
a8d3485f3d Fix documentation for GradientDrawable.getCornerRadius
Change-Id: I4ad1ef7d989df250a9208107b5baac9e79816194
2016-06-20 18:45:25 -07:00
Doris Liu
633c24947c Merge \\"Support AVD animation falling back on UI thread\\" into nyc-mr1-dev am: 4e5ee65307
am: 2df9343a77

Change-Id: I4ca02328c52c8802dc5c006ab4bec6b1ec04cd87
2016-06-17 21:04:23 +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
Philip P. Moltmann
f3f7cccccf Return NPE instead of ISE if page is closed.
To comply with the legacy behavior.

Change-Id: I2b3c4d6d1f41022e72e5c22fe4402864d9e54986
2016-06-10 14:15:42 -07: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
7e1d493267 Merge "Support Keyframe definition for AVD on RT" 2016-06-09 00:05:41 +00:00
Doris Liu
a6b967cfc5 Support Keyframe definition for AVD on RT
BUG: 27441613
Change-Id: Iece386f65f3704d1b7caa2b3690a8d3048ccf6e2
2016-06-08 15:21:15 -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
Philip P. Moltmann
f126e21f43 Handle bitmap==null in PdfRenderer.Page#render.
Change-Id: Ie24ca45d4b5e27d5e99de72115e8e00b32b30655
2016-06-08 11:37:24 -07:00
Philip P. Moltmann
c859cd068b Fix up issues in PdfRenderer found by test.
Change-Id: I56e403fd425e4b4353383c43077de5c47ff22b5c
2016-06-07 17:04:25 -07:00
Doris Liu
94db09917a 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
2016-06-01 14:22:28 -07:00
Doris Liu
0794f537da Merge "Copy native tree's property when mutate vector drawable" 2016-05-28 01:11:23 +00:00
The Android Automerger
6f2f02e4ae Merge commit '93c1d3aa6e20b52a37548af0bf9f9a66948a7611'
* commit '93c1d3aa6e20b52a37548af0bf9f9a66948a7611':
  docs: Refinements for testing
  Fix toast with accessibility and app pinning
  Updated link to material design page.
  Change overdraw test to use windowbackground
  Prevent callbacks during DrawableContainer child initialization
  Fixing crash in SysUI due to invalid group.
  Cherry pick: docs: Edited "Features Reference" section in "<uses-feature>" page.
  Fix Activity Transition mess-up.
  Time to #NameAndroidN!
  Prevent use of a null sCallbackObj by Hardware FLP
  Fixed the relative time spoken with accessibility
  Use backstop timeouts on asynchronous countdown during preflight
2016-05-27 20:05:56 +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
Doris Liu
335d7d1744 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: If793f5f2b6e116472a1c6da0fb60d8278a78b03f
2016-05-26 16:06:58 -07:00
Alan Viverette
2b561f1c35 Prevent callbacks during DrawableContainer child initialization
Bug: 28900939
Change-Id: I9c6c8af1665c2dc0bfa8bc8fc773c81e14f6aab1
2016-05-26 16:49:29 -04:00
Doris Liu
f143417bab Merge "Handle hidden RT VectorDrawable animators" 2016-05-26 20:45:33 +00:00
Doris Liu
67ce99b66e 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: Id4b3b37f28274c917cb9beb9dcd3d1e6991b5c5d
2016-05-26 11:13:19 -07:00
Alan Viverette
1c1fbf2c44 Merge "Prevent LayerDrawable bounds updates from being re-entrant" into nyc-dev am: 5c9444216d am: 6b525a2645
am: c44c760b9c

* commit 'c44c760b9c711eb22d0a937d56def02e57f5fc37':
  Prevent LayerDrawable bounds updates from being re-entrant

Change-Id: If51c75c3b9d5d39dfa8d0ed6c8113ed68ed430ee
2016-05-25 14:40:15 +00: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
Doris Liu
9f3b31b953 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
2016-05-23 18:33:24 -07:00
Yohei Yukawa
af15c8bcae Merge "Move LocaleList to avoid layering violation." into nyc-dev am: 31884efd13 am: ddaf3f4681
am: bf4c8f730b

* commit 'bf4c8f730b167e5ee65ed7c59dfa1d7867b63fcc':
  Move LocaleList to avoid layering violation.

Change-Id: I78fee5269f7428e34b196573575784fc15cb1372
2016-05-18 02:25:10 +00: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
Philip P. Moltmann
e66baed387 Merge "Only have a single call into pdfium at a time." 2016-05-17 16:22:55 +00: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
John Reck
41f864ec45 Minor optimizations
Don't save matrix if we just need clip saved
Early-reject the easy-to-reject cases in Canvas
before hitting JNI

Change-Id: I385ef90a31efbda31ce37837152f626aad553ee7
2016-05-12 15:07:49 -07:00
Philip P. Moltmann
0768a7dc45 Only have a single call into pdfium at a time.
Pdfium is not thread safe and uses global variables, hence no
parallel call pdfium is safe

Fixes: 28705066
Change-Id: I04309ee691bd9cea37587e0af5be2c07ce8c9f2c
2016-05-12 14:19:28 -07:00
Teng-Hui Zhu
e116fc5cf9 Merge "Update and add attributes to the JavaDoc for VectorDrawable" into nyc-dev
am: caacf332a1

* commit 'caacf332a1e568e065c9245565c135a7450cc941':
  Update and add attributes to the JavaDoc for VectorDrawable

Change-Id: I4d7de86055da3dcd581a7497de7f7d516fbf6ed2
2016-05-12 00:34:16 +00: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
Hans Boehm
0024c91409 Merge "Clear more native pointers in finalizers" am: a5ca0ca886
am: 8521a8ff86

* commit '8521a8ff860e89ca60d530db60f58878847cf52a':
  Clear more native pointers in finalizers

Change-Id: Icca385cd603ad15ab02f2033f8652e3a8d2f6c3d
2016-05-10 23:48:16 +00:00
Hans Boehm
ad3cc3c63c 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
2016-05-10 15:33:53 -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