3109 Commits

Author SHA1 Message Date
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
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
Doris Liu
cdedc9a80d Check whether VD tree is still valid before calling native setter
VD tree is ref-counted in both Java and native. VD's child nodes are
entirely owned by the native tree, as VD nodes in native should outlive
its Java counterparts, with one exception: when there's an infinite UI
animator running on VD, the animator may have weak reference to a few
child nodes. In the case of hidden animator running infinitely, the child
nodes would keep getting the animation pulse while the rest of the tree
would have been destroyed. To prevent the setters triggered by animation
from calling into native, we need to check whether the tree is still
valid before going down into JNI.

Bug: 28104172
Change-Id: Ie9d4bf3898c0c23e620a4747624d24b8ab779743
2016-04-12 11:13:10 -07:00
Alan Viverette
78e561ce54 Update docs for Drawable.setLayoutDirection() return value
Bug: 27107547
Change-Id: I98dd706e6dfb07e7b5ec9c257cf5bea6aea2bbfc
2016-04-12 14:03:22 -04:00
Siyamed Sinir
5849500a19 Cache Typeface.createFromAsset objects.
Caches Typeface objects returned from Typeface.createFromAsset function,
Objects are cached in an LruCache with a max size of 16.

Bug: 27251075
Change-Id: I6baae4211a0d0d26422945bf1557b364cfe84b2b
2016-04-11 17:23:46 -07:00