Commit Graph

53 Commits

Author SHA1 Message Date
Lucas Dupin
498a44f33a Merge "Add transfer mode support to ShapeDrawable" into oc-dev 2017-04-13 16:52:01 +00:00
Jiaquan He
4a81674b45 Detect unhandled keyboard focused state.
A View uses a Drawable as its background, which changes
its appearance according to the View's state. This commit
adds an algorithm to detect undefined state_focused in
state specs for those Drawables.

Test: cts-tradefed run singleCommand cts --skip-device-info
--skip-preconditions --abi armeabi-v7a -m CtsGraphicsTestCases
-t android.graphics.drawable.cts.DefaultFocusHighlightTest
Bug: 35096940

Change-Id: I5e9f07141679881fe88f9040aa116ea2f9d537c9
2017-04-10 21:01:49 +00:00
Lucas Dupin
98bf27bff4 Add transfer mode support to ShapeDrawable
Test: runtest --path cts/tests/tests/graphics/src/android/graphics/drawable/cts/ShapeDrawableTest.java
Change-Id: I754cf20fda3fe5c28ba70aab089f9bebd27ca2bf
2017-04-05 11:05:15 -07:00
Chris Craik
374347a5fe Fix ShapeDrawable#mutate
Fixes: 35940396
Test: cts-tradefed run singleCommand cts-dev --module CtsGraphicsTestCases --test android.graphics.drawable.cts.ShapeDrawableTest

Change-Id: I5731ce131785ded07bcde9e54ecb9d4f5dcfa96b
2017-03-10 16:39:09 -08:00
Alan Viverette
446d988b44 Fix ShapeDrawable mutate, add clone() support to ArcShape, OvalShape
Also cleans up stray white space and fixes docs. Adds getters to ArcShape
properties so that we can write proper CTS tests.

Fixes: 35419960
Test: ArcShapeTest, OvalShape#testClone, ShapeDrawableTest
Change-Id: Icf1bae7f79f9294b2a60c49b85ce8749473ed61e
2017-02-24 11:14:24 -05:00
Alan Viverette
ac85f90466 Ensure all Java-side usages of config flags are using Java flags
Previously we were using native config flags in some places that expected
Java flags, and vice-versa. All usages of config flags are now annotated
to ensure we're using the right type.

Cleans up annotations on most methods that were touched.

Bug: 21161798
Change-Id: Ifd87dfb12199fc8258915d8a510e03ddb681ca89
2016-03-11 15:15:51 -05:00
Alan Viverette
81e7dbddf1 Remove isDither(), deprecate setDither()
Bug: 22013358
Change-Id: I37b11a94edc431a88522c6c056b76b045daa61d6
2015-06-23 14:30:40 -07:00
Alan Viverette
373954a1fd Refactor Drawable.getDither() to isDither()
Bug: 21342040
Change-Id: I801970c2a25289d670636ad5387ddf244fb48225
2015-06-17 13:59:31 -07:00
Chris Craik
6a49ddef62 Revert "Fix build - Revert "Revert "Use default constructor to get anti-aliasing"""
Fix import

This reverts commit 7ed1431c83.

Change-Id: Id93eba3ed1d47a90384ba20dea6f74d78755792b
2015-05-12 10:44:30 -07:00
Chris Craik
7ed1431c83 Fix build - Revert "Revert "Use default constructor to get anti-aliasing""
This reverts commit dfe0a66cec.

Change-Id: I58a1bae649a284f3d3b6213064d903ea7fcf185a
2015-05-12 17:22:22 +00:00
Chris Craik
dfe0a66cec Revert "Use default constructor to get anti-aliasing"
bug:20948129

This reverts commit 58fc522a69.

Change-Id: Iddeccb4ad15b843bb3e610bd3673a0c7abc1bf46
2015-05-12 16:36:49 +00:00
Chris Craik
58fc522a69 Use default constructor to get anti-aliasing
Change-Id: I3e078a3bc91a2fd703984ba18b5e7e98069b32f1
2015-04-28 11:49:27 -07:00
Yuichi Araki
a4dc29a721 am 428c2fa0: am c3fbf13d: am e2fc3adb: am 61ce6c9b: am 776cf41d: Fix a broken link in javadoc
* commit '428c2fa0f8b3c49e8bd48458c15363fcd98e8944':
  Fix a broken link in javadoc
2015-04-02 20:38:08 +00:00
Yuichi Araki
776cf41d7c Fix a broken link in javadoc
Bug: 19856130

Change-Id: I0456e951f8bed36e3a62ddfd882f9c2d2bef9627
2015-04-02 04:03:07 +00:00
Alan Viverette
e0f95f39c5 Fix issues with theming of preloaded ColorStateLists
Ensures changing configurations mask is propagated to the host drawable
so that it can be properly cleared from cache on configuration changes.
Also fixes constant state handling of the mask in the Inset and Rotate
drawables.

Hides new ColorStateList methods related to theming, since they should
only be used during preloading or internally by framework drawables.

Fixes bug where the cached versions of themeable ColorStateLists were
modified by calling applyTheme() on the host drawable.

Also cleans up some docs and naming in GradientDrawable.

Bug: 19966397
Change-Id: I8c8d3cabbaf94b488c2b8fe9fd423e07d824c19c
2015-04-01 13:10:18 -07:00
Chris Craik
bd3bfc5285 Improve docs for drawable tint and color filters
bug:19564477
Change-Id: I7e11baae2d4dd245965904c85b8855de71f6b6ac
2015-03-02 16:21:02 -08:00
Alan Viverette
f4c068b72e Add getDither, getFilterBitmap to Drawable for CTS testing
Also removes unnecessary overrides from PictureDrawable.

Change-Id: I13539b5204e8c0d8b9912da14de7ceae62720e3f
2015-01-06 11:01:36 -08:00
Alan Viverette
45c4bbbbce Allow use of theme attributes in color state lists
BUG: 17384842
Change-Id: Ibdc413acbd00e37b908432abd55f6521c22b8fc9
2015-01-05 14:59:19 -08:00
Alan Viverette
17cd4dfe3a Update preload list, clean up drawable theming
Removes all implementations of three-arg ConstantState constructor, since
we handle mutation and applyTheme() in Resources now. Moves progress bar
tinting to android:tint attribute. Correctly implements applyTheme() and
canApplyTheme() in all drawable wrapper and container classes.

Change-Id: Ic9cb43d0d6228aa4914f3124bed234b837beaa41
2014-10-14 14:07:21 -07:00
Alan Viverette
727cae197b Mutate and apply theme if needed before caching themed drawables
This ensures that drawables are completely separated from their cached
constant states before applying a theme. After this, we can remove the
implicit (and incomplete) mutation in the clone constructors.

Also implements missing mutate() method on ClipDrawable.

BUG: 17646144
Change-Id: If0d66b0a85724d76e0a4f506758c7ba3c0aa3410
2014-10-07 15:08:47 -07:00
Alan Viverette
607bd84826 Update icons to vectors, fix preload theming & vector tinting
Adds a missing JNI binding to AssetManager, ensures drawables have
default tint modes as documented, and updates vector tint appropriately
when state changes.

BUG: 17385604
Change-Id: Ice92885989ebc13b95952f5dc3b7904cc956da12
2014-09-12 13:06:45 -07:00
Alan Viverette
a426445dfd Separate tint and tintMode properties
BUG: 16054922
Change-Id: I820fb857b671faf9eb27612e470e820c5c4cd6b5
2014-08-06 15:42:10 -07:00
Chris Craik
77b5cad3ef Add outline alpha
bug:16140822
bug:16566746

This allows background drawables to alter the opacity of a shadow
being cast with their own alpha values.

Change-Id: I49698cc7c1bf4b2b55ffe2f82899543ca62bc61c
2014-07-31 12:29:57 -07:00
Chris Craik
31ba192dd2 Tweaks to outline API
b/15283203
b/16142564

Remove boolean return value chaining, as it's redundant with
the data in the Outline itself.

Change-Id: I3116e57cd1b35c98b74e95195117edd7e39fb2df
2014-07-19 00:13:59 +00:00
Alan Viverette
8e5e11b99f Handle configuration changes in drawable attributes
Adds themeable attribute support to InsetDrawable, adds support
for attribute configuration changes to all themable drawables.

BUG: 16045735
Change-Id: I3dc62d28801760ac69d303be81b6c78bb9bb5aca
2014-07-07 22:54:22 +00:00
Alan Viverette
22594f0972 Add tileModeX/Y attrs to BitmapDrawable, tint to ShapeDrawable
Change-Id: I1c9efe39bfd5286230cee8354822db81f05186e4
2014-06-23 12:47:43 -07:00
Alan Viverette
07c661e677 Put dither in GradientDrawable constant state
Previously the dither attribute would be dropped when cloning a
gradient drawable from constant state. Also fixes ShapeDrawable
theme extraction.

BUG: 15754194
Change-Id: I3071f5b8236cfa6acb549627a3dfac0618518dbf
2014-06-19 16:15:53 -07:00
Alan Viverette
a2992f44bc Fix tint filters in NinePatchDrawable and ShapeDrawable
BUG: 15678325
Change-Id: I57066e7a44498c88a270c76b7880f36825a25bb8
2014-06-16 18:34:04 -07:00
Alan Viverette
611c1ff0de Fix ShapeDrawable constant state and theming
Change-Id: I085d7705b63ec5f94e9b9fb5ece85ae3c7d39512
2014-06-16 14:43:27 -07:00
Alan Viverette
b3c56086d8 Add support for setTint in all Drawables, clean up lint warnings
Change-Id: I962089ca59684cef28cb4a648d4a91e542bdf5d4
2014-06-16 11:00:24 -07:00
Alan Viverette
6dbe51b50e Clean up drawable theming APIs
Removes APIs for themed creation of a drawable from a stream, since
that doesn't involve any inflation. Also cleans up tinting methods
left over from previous clean up.

BUG: 15089957
Change-Id: I2af7aa9a6d351ae61b33ee1216c674fae1bffe11
Signed-off-by: Alan Viverette <alanv@google.com>
2014-06-02 16:39:04 -07:00
Derek Sollenberger
c29a0a4664 Avoid caching shadow properties in Java & HWUI.
bug: 10650594
Change-Id: I6f57df002710bb0567ed7e53fc0bfe96cfd504b8
2014-05-07 09:36:04 -04:00
Chris Craik
7979388d4f Support Oval GradientDrawable outlines, and ShapeDrawable
Change-Id: Ifc9e55757d3325cb28a1a812ec696512d4a18b39
2014-04-25 15:59:47 -07:00
Alan Viverette
52b999f072 Implement APIs for obtaining, caching themed Drawables
When Drawables are inflated during preload (or otherwise without a theme)
they cache their themeable attributes in their constant state as an array
keyed on attribute index. Drawables inflated with a theme will simply
resolve theme attributes as part of normal inflation, and they will not
cache any themeable attributes.

Drawables obtained from Resources are pulled from theme-specific cache
when possible. If an unthemed Drawable exists in the preload cache, a
new constant state will be obtained for the Drawable and the theme will
be applied by resolving the cached themeable attributes and overwriting
their respective constant state properties. If no cached version exists,
a new Drawable is inflated against the desired theme.

Constant states from themed drawables may be cached if the applied theme
is "pure" and was loaded from a style resource without any subsequent
modifications.

This CL does not handle applying themes to several Drawable types, but it
fully supports BitmapDrawable, GradientDrawable, NinePatchDrawable,
ColorDrawable, and TouchFeedbackDrawable.

BUG: 12611005
Change-Id: I4e794fbb62f7a371715f4ebdf946ee5f9a5ad1c9
2014-03-24 18:00:26 -07:00
Alan Viverette
09ceac298c Clean up tint API
Change-Id: I56056e7596840c563f5332922d63e8893a0cac17
2014-02-26 16:49:10 -08:00
Alan Viverette
2cc13d0ef1 Fix shape drawable constructor
Change-Id: Ibb2c1993faf9d2baae3130f334475aa07fbe9015
2014-02-26 16:26:33 -08:00
Alan Viverette
813d85b82c Fix progress bar tinting, add tint support to ShapeDrawable
Cleans up APIs a little, since I think we may want to add tinting
modes beyond what Porter-Duff can provide. Plus we don't actually
support some of the Porter-Duff modes in hardware.

Change-Id: I2cea1b737cc93607a24842c54eb9f0d8346b29d4
2014-02-26 15:38:51 -08:00
Alan Viverette
16f1d81d47 Revert "Cache display lists for Drawables"
This reverts commit c062c7003f.

Change-Id: I96d4f0482b927101f52140b667f4c38ffc8687f5
2014-01-31 13:04:38 -08:00
Alan Viverette
c062c7003f Cache display lists for Drawables
Change-Id: I86e2dd4cd4ac8871f4131450cb9082c2b8de2eed
2014-01-14 17:16:29 -08:00
Chet Haase
b1af7f3d4b add getAlpha() to Drawable
Drawable has setAlpha(int), but no getAlpha() (although some subclasses have added the
method). This makes it more tedious to use the property. For example, animations that wish to
animate this property must explicitly give it a start value since this value cannot be queried
from the object.

The trick is that setAlpha(int) is abstract, only implemented by subclasses. We cannot take this
approach for getAlpha(), as we would break all subclasses of Drawable until they implemented the
method. Instead, we'll add a default method which returns an invalid value, making it easier for
clients of the method to detect whether the value is valid.

All subclasses of Drawble in frameworks have been changed to add an override of getAlpha() when
appropriate.

Issue #7485875 Drawables is missing getAlpha()

Change-Id: I06b6e35f1a56d202838eca44759c85c82595020a
2013-03-08 15:40:28 -08:00
Chris Craik
f0e0678460 Avoid trying to draw invisible ShapeDrawables
This avoids work when a drawable is declared with @android:color/transparent

Change-Id: I1b6d3b22751e378be047a5538dfd4d4baab3c03a
2013-02-28 17:05:12 -08:00
Romain Guy
1558cf1498 Fix crash in ShapeDrawable
Change-Id: Ibc277db46912a73dc3f971f8487baa5eafa8bc84
2012-09-07 18:37:20 -07:00
Joe Fernandez
61fd1e8d8c docs: add developer guide cross references, Project ACRE, round 3
Change-Id: I6125315ecdf0f78dd947c514a9944729d723e95d
2011-10-28 14:23:23 -07:00
Romain Guy
ed7894352f Add dither XML attribute support to Gradient and ShapeDrawable.
Change-Id: I4b60a0ba6766b7e7b176e78dc7f15f8467e2b890
2011-02-23 15:57:08 -08:00
Christopher Lais
6efd2bad95 Don't drop the drawable cache completely on configuration change
There was a lot of fancy code just above the clear to ensure
that drawables that aren't affected by the change are kept,
then the entire array was cleared.  This patch removes the
clear, so that the drawables that haven't changed are really
kept, matching the logs, comments and larger part of the code.

This patch also fixes the various constant states to return
correct ChangingConfigurations.

Change-Id: Ic11f6179537318d3de16dc58286989eb62a07f15
Old-Change-Id: I22495e6ed232dfe056207ce5155405af1fa82428
2011-01-14 12:31:26 -08:00
Chet Haase
9891e1fce5 Add invalidation to Drawable when its properties change
invalidateSelf() already exists on Drawable. This triggers a call to
callback listeners so that they know the drawable has been invalidated.
For example, the background drawable on View will cause the View itself
to be invalidated.

Change-Id: I45b231a7600dcf3bc139e4059b7c9940ff49f60c
2010-11-11 13:20:08 -08:00
Scott Main
dfe5c20440 docs: lots of additions to the resources docs
new drawable resources
add <merge> and <include> to layout resource
update drawable class descriptioons to point to resources guide
add ID resource type

Change-Id: I733eec50bb2671f28c9e6dd7dec14eb6586f5193
2010-06-21 15:19:23 -07:00
Dianne Hackborn
c297480937 Fix issue #2116977: buttons are huge and bent
Now that we are using preloaded drawables in compatibilty mode, when
constructing them from their constant state we need to set the new
drawable's target density appropriately.

Change-Id: I3665cbea09d38b9ac5f45f8c380dc8641f86b266
2009-09-14 16:32:56 -07:00
Phil Dubach
90cfa9df3f Fix ShapeDrawable.inflateTag() to accept proper dimension specs for padding
ShapeDrawable.inflateTag() handles the 'padding' tag with the standard
attributes android:left, etc.  The attribute values for these standard
attributes should be dimension specifications, e.g. '4dp'.
ShapeDrawable.inflateTag() was wrongly parsing the attribute values as plain
integers.
2009-07-08 09:43:49 -07:00
The Android Open Source Project
9066cfe988 auto import from //depot/cupcake/@135843 2009-03-03 19:31:44 -08:00