History log of /frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
50954d2b4ea938d787ef5021d75f6bc02826607a 15-Apr-2017 Adam Lesinski <adamlesinski@google.com> Propagate density through AdaptiveIconDrawable and BitmapDrawable

Resources#getDrawableForDensity now propagates the overridden
density through to AdaptiveIconDrawable so that the density can be
propagated to leaf BitmapDrawables correctly.

This enables AdaptiveIconDrawable to support higher resolution
foreground/background bitmaps for use in Launcher.

Bug: 36039665
Test: bit CtsContentTestCases:android.content.res.cts.ResourcesTest
Change-Id: Iaa9a5592626e38e1ff839a76f7c6cfb9e16e5dc1
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
4a81674b45b7250c4e2a80330371f7aa1c066d05 02-Feb-2017 Jiaquan He <hejq@google.com> 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
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
0ce4b0e4c31a65864e0cda3c9d3fb6fe8a40f2ed 26-Jan-2017 Elliot Waite <elliotwaite@google.com> Fix @links in reference docs. am: 54de77470d am: ab978c035e am: 28ba4722a9
am: 9b21265b2c

Change-Id: If246ebdb36cf2832d5a6c42cbe752e290b6fb6e8
54de77470de4f605eef7f4b4e01718b301fe275e 12-Jan-2017 Elliot Waite <elliotwaite@google.com> Fix @links in reference docs.

Change-Id: I40cea46efd80c448640ff69753698fe8404da40b
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
253f2c213f6ecda63b6872aee77bd30d5ec07c82 29-Sep-2016 Romain Guy <romainguy@google.com> Linear blending, step 1

NOTE: Linear blending is currently disabled in this CL as the
feature is still a work in progress

Android currently performs all blending (any kind of linear math
on colors really) on gamma-encoded colors. Since Android assumes
that the default color space is sRGB, all bitmaps and colors
are encoded with the sRGB Opto-Electronic Conversion Function
(OECF, which can be approximated with a power function). Since
the power curve is not linear, our linear math is incorrect.
The result is that we generate colors that tend to be too dark;
this affects blending but also anti-aliasing, gradients, blurs,
etc.

The solution is to convert gamma-encoded colors back to linear
space before doing any math on them, using the sRGB Electo-Optical
Conversion Function (EOCF). This is achieved in different
ways in different parts of the pipeline:

- Using hardware conversions when sampling from OpenGL textures
or writing into OpenGL frame buffers
- Using software conversion functions, to translate app-supplied
colors to and from sRGB
- Using Skia's color spaces

Any type of processing on colors must roughly ollow these steps:

[sRGB input]->EOCF->[linear data]->[processing]->OECF->[sRGB output]

For the sRGB color space, the conversion functions are defined as
follows:

OECF(linear) :=
linear <= 0.0031308 ? linear * 12.92 : (pow(linear, 1/2.4) * 1.055) - 0.055

EOCF(srgb) :=
srgb <= 0.04045 ? srgb / 12.92 : pow((srgb + 0.055) / 1.055, 2.4)

The EOCF is simply the reciprocal of the OECF.
While it is highly recommended to use the exact sRGB conversion
functions everywhere possible, it is sometimes useful or beneficial
to rely on approximations:

- pow(x,2.2) and pow(x,1/2.2)
- x^2 and sqrt(x)

The latter is particularly useful in fragment shaders (for instance
to apply dithering in sRGB space), especially if the sqrt() can be
replaced with an inversesqrt().

Here is a fairly exhaustive list of modifications implemented
in this CL:

- Set TARGET_ENABLE_LINEAR_BLENDING := false in BoardConfig.mk
to disable linear blending. This is only for GLES 2.0 GPUs
with no hardware sRGB support. This flag is currently assumed
to be false (see note above)
- sRGB writes are disabled when entering a functor (WebView).
This will need to be fixed at some point
- Skia bitmaps are created with the sRGB color space
- Bitmaps using a 565 config are expanded to 888
- Linear blending is disabled when entering a functor
- External textures are not properly sampled (see below)
- Gradients are interpolated in linear space
- Texture-based dithering was replaced with analytical dithering
- Dithering is done in the quantization color space, which is
why we must do EOCF(OECF(color)+dither)
- Text is now gamma corrected differently depending on the luminance
of the source pixel. The asumption is that a bright pixel will be
blended on a dark background and the other way around. The source
alpha is gamma corrected to thicken dark on bright and thin
bright on dark to match the intended design of fonts. This also
matches the behavior of popular design/drawing applications
- Removed the asset atlas. It did not contain anything useful and
could not be sampled in sRGB without a yet-to-be-defined GL
extension
- The last column of color matrices is converted to linear space
because its value are added to linear colors

Missing features:
- Resource qualifier?
- Regeneration of goldeng images for automated tests
- Handle alpha8/grey8 properly
- Disable sRGB write for layers with external textures

Test: Manual testing while work in progress
Bug: 29940137

Change-Id: I6a07b15ab49b554377cd33a36b6d9971a15e9a0b
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
c5d6e74dff81b71291c01e0c62422b7c2162dc39 01-Oct-2016 Hemal Patel <hemalp@google.com> Docs: Added info about vector drawable am: 47876e79de am: f1f89fa935
am: d0cff7a3af

Change-Id: If20b595f5b278c81afd0f3b263566ea11ad4a67f
d0cff7a3af437f9b8744820a6db486a2a909d4b1 30-Sep-2016 Hemal Patel <hemalp@google.com> Docs: Added info about vector drawable am: 47876e79de
am: f1f89fa935

Change-Id: Iadc8240aab4fce954fd0813f6817d6313ed094e7
da400e9dd44d002bc7cdc2d97eedeaf3ff30ba33 30-Sep-2016 Hemal Patel <hemalp@google.com> Docs: Added info about vector drawable am: 47876e79de
am: bfa9663e97

Change-Id: I5649e6f9f0e6254d43e7229ef3e88b40351b14e5
47876e79de8c4a05b054a12fc2045910326788cd 16-Sep-2016 Hemal Patel <hemalp@google.com> Docs: Added info about vector drawable

Added overview of vector drawable in the class overview section.

Bug: 25129687
Change-Id: I976177ddd3a8bddcbc6544cbc227b6b2099c7b0a
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
6d8eb89da0da87b1af9c9b54b3436744dff2ceda 19-Sep-2016 John Reck <jreck@google.com> Fast-path Drawable#setColorFilter

Some apps really like to call setColorFilter with the
same parameters, so check if there's anything to set
before creating a color filter

Change-Id: I20b8431123f9e6a333b69771b5f5f3eb7e566034
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
0c03664fa6acbe5c3fd11d54ab9a6792f43dda07 19-Aug-2016 Teng-Hui Zhu <ztenghui@google.com> Add an new internal DrawableContainer to handle animation scale == 0 case.

This will help ProgressBar to show something meaningful when animation scale is 0.
b/30877925

Change-Id: Ieb2e78712999d2e3f3a2a234bc605b4821ae41c0
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
112f0aa28e017d4d7a3638389709b94a718dadc8 14-Apr-2016 Alan Viverette <alanv@google.com> Basic documentation for custom drawables

Bug: 23621364
Change-Id: Ia292433ebd40d4c85ff6974def3d1f4b26926b52
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
0c340260889ca70163a332a364996d33703bd79f 14-Apr-2016 Alan Viverette <alanv@google.com> Merge "Update docs for Drawable.setLayoutDirection() return value" into nyc-dev
b8cbb806fc70573def954f7ba84dd7b53b3be1bd 13-Apr-2016 Alan Viverette <alanv@google.com> Clean up Drawable annotations

No functional changes.

Bug: 23621364
Change-Id: Ia5ac34eb8464ee40afd7052f34b42bb6153260bf
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
78e561ce541e5c72780c68b5b14eb50c08bb97ac 12-Apr-2016 Alan Viverette <alanv@google.com> Update docs for Drawable.setLayoutDirection() return value

Bug: 27107547
Change-Id: I98dd706e6dfb07e7b5ec9c257cf5bea6aea2bbfc
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
4eab3850ec1a6cd3ec86f0c648497ee51c3ac609 25-Mar-2016 Teng-Hui Zhu <ztenghui@google.com> Update the Drawable.inflate() documentation

Change-Id: I1f8a4e40fae43ad75550d3dffbccd831b063be03
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
781fbf28c70868d803a6caf13a2209c785fa4fce 14-Mar-2016 Alan Viverette <alanv@google.com> Merge "Ensure all Java-side usages of config flags are using Java flags" into nyc-dev
ac85f90466dd60d2af8ffc3942d503a0de606726 11-Mar-2016 Alan Viverette <alanv@google.com> 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
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
f6d87ec193f17e8dad82c9994ba7a58e975d364b 11-Mar-2016 Alan Viverette <alanv@google.com> Add consistent @NonNull annotations for drawable callbacks

Bug: 27599515
Change-Id: I33fdc5392302403bfff9cc74a8226173ec962af6
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
c078c605ab904b0e4a5d793cbeffd78c340f2816 08-Dec-2015 Alan Viverette <alanv@google.com> Attach drawable resource ID and name to getDrawable() exceptions

Wraps the entire getDrawable() method in a try/catch block. Clears the
stack trace from the re-thrown exception, since we only need the trace
from the original exception.

Also clears stack traces from re-thrown RuntimeExceptions in applyTheme
implementations.

Change-Id: I92396abf9e748eef78777174b297a09e118f5e70
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
d633ca417d3925521ab15fba1c0cdac172efb184 19-Nov-2015 Alan Viverette <alanv@google.com> Apply VectorDrawable density scaling before applying theme

Refactors density handling to look more similar to GradientDrawable's
implementation, which should make things easier to maintain. We no
longer update density directly in updateStateFromTypedArray, instead
handling it in applyTheme() and inflate().

Lazily calculates local density-dependent dimensions and invalidates
when the constant state density changes, which should ensure a random
call to applyTheme() will still result in the correct intrinsic
dimensions.

Change-Id: I726878a6cd75d38a550637e3e7a7b6bc68bcaf6d
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
477f3d092db302d24dcaa77bbcdd1026c9a468a4 13-Nov-2015 Alan Viverette <alanv@google.com> Obtain cached drawables using the correct Resources object

Previously we were discarding the Resources when forwarding from the
two-arg factory method to the one-arg method. This CL also updates the
documentation for ConstantState to be slightly more comprehensive.

Bug: 25688078
Change-Id: I4fbbf43f95fe792fa6f0bf9db8fd9a7cbfa51d1d
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
76165b2a4bc3b618bdfa9e4286d405892b68f122 12-Nov-2015 Alan Viverette <alanv@google.com> Return correct intrinsic dimensions for inset colors

Also updates documentation for getIntrinsicWidth/Height to accurately
reflect the behavior of the existing implementations and provide an
explanation of what "intrinsic" means.

Bug: 25646242
Change-Id: I11daf57e598148adfda922cfc1ba31ed48a16bd7
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
36555baa556a1531b6b6edc2dea1de5469f74b64 02-Nov-2015 Alan Viverette <alanv@google.com> Merge "Support for changing density of GradientDrawable"
ce52037e0ae0c380f5b834fb3dad105bfaf5e374 30-Oct-2015 Alan Viverette <alanv@google.com> Support for changing density of GradientDrawable

Refactors density resolution and offset/size scaling into static
helper methods.

Also fixes VectorDrawbale insets to be treated as offset-type pixels
rather than size-type.

Bug: 25081461
Change-Id: I10fcb9ebb6c67f853a27ca0ee008c31af4b85da0
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
7e3ede288926bdfb79b1571fed74cad614935821 28-Oct-2015 Alan Viverette <alanv@google.com> Support for changing density of DrawableWrapper subclasses

Includes a refactoring of DrawableWrapper classes so that the wrapper
super class handles both drawable management and inflation. This allows
us to immediately call through to super() in inflate and applyTheme,
which simplifies density management.

Bug: 25081461
Change-Id: I8c157d340fd1f28a3a2b786c56850a67cdd452e4
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
0b6cfe22fda3396b4790ac79fc90488bec4a49a4 14-Sep-2015 Alan Viverette <alanv@google.com> Revert "Use floating-point value for Drawable level"

This reverts commit 3da32b768899e7dabe3a16333edf5eca2b9ebe93.

Change-Id: Ie75ce0c285e0f59a7a086f64c0cfe088edb5df04
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
3da32b768899e7dabe3a16333edf5eca2b9ebe93 02-Sep-2015 Alan Viverette <alanv@google.com> Use floating-point value for Drawable level

This allows us to run fine-grained level animations.

Backwards compatibility:
Another CL will add DrawableCompat.setLevel(float) to forward calls to
the existing integer-based method. For callbacks, developers can override
onLevelChanged(int) and use DrawableCompat.getLevelFloat() to obtain the
floating-point level. Overriding onLevelChanged(float) will only work on
current API.

Bug: 23566299
Change-Id: I431fe6f3679c8f23f9cf3c2bb1f92a4059ee68e3
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
02fc5fef36357467eba22a0ee250a96734daf791 27-Aug-2015 Alan Viverette <alanv@google.com> Extract drawable inflation to its own class, inflate from class name

Bug: 22627299
Change-Id: Icd2ac88af4f3102e08e52f6f0f7565839da6437a
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
81e7dbddf10ecae99f65641d8774ca6b1aceac30 23-Jun-2015 Alan Viverette <alanv@google.com> Remove isDither(), deprecate setDither()

Bug: 22013358
Change-Id: I37b11a94edc431a88522c6c056b76b045daa61d6
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
c79df8e831e50abae9f781148e0aee63f6c29659 20-Jun-2015 Chris Craik <ccraik@google.com> Clean up drawable filter/dither docs

bug:21342040

Change-Id: I6592bfa504516852967d82a7e7929b1aef6bff02
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
a6c51149c59b2921507f6903e490bd00702972d1 19-Jun-2015 Doris Liu <tianliu@google.com> Fix a typo in Drawable's javadoc

Change-Id: Ic168b250defb30512cb35a836118fe2bdf1b2e78
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
373954a1fd371a23c420aeeea9ccbc4d983733d7 17-Jun-2015 Alan Viverette <alanv@google.com> Refactor Drawable.getDither() to isDither()

Bug: 21342040
Change-Id: I801970c2a25289d670636ad5387ddf244fb48225
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
63a39ffe489e1411f96ab54002b83c7d28bb5ffc 17-Jun-2015 Alan Viverette <alanv@google.com> Ensure first load for bitmap and nine-patch gets correct density

Remove unnecessary lines setting target density on bitmap and nine patch,
since we'll do this later in inflate().

Bug: 21774853
Change-Id: I5ea316bee81f82192ce20f2f1bee0e62c6ec8ccb
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
96a443b58d9c9849c846750657f959e3743bc5ed 12-Jun-2015 Chet Haase <chet@google.com> Clarify Drawable.getOpacity() docs

Docs for translucent-vs-transparent-vs-opaque were confusing, especially since
the definition for those constants in PixelFormat are not the same as how they're
actually used in Drawable. This fix simply adds clarifying text to the method
comment for getOpacity().

Issue #21158891 Better document Drawable#getOpacity

Change-Id: I94725592f85e5d7874e3a3ac1c5bab969163fbf0
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
dfa4646eca54511a28f2c61e1f4b9c697e05a913 27-May-2015 Alan Viverette <alanv@google.com> API Review: Drawable

Renames boolean getters to isZzz(), callback from onChange to onChanged.

Bug: 21342040
Change-Id: I9700d645453354b608fd97a832359211d828b52f
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
78bf1d329a4c0210394f846be1fd1390314aefc0 17-Apr-2015 Alan Viverette <alanv@google.com> Move date picker arrows out of SimpleMonthView

Also fixes incorrect docs in Drawable.

Bug: 20188255
Change-Id: I01c8563f734d9c1dad1e149bee80c651981e469f
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
ffb73620a24062c4c021f04254c3d4e8448b3dd3 01-Apr-2015 Chet Haase <chet@google.com> Fix Drawable.getOpacity() docs

Issue #17140095 Drawable#getOpacity() is documented as ignoring custom alpha, e.g. setAlpha(). It is lying.

Change-Id: Iaef094be750c58a43e13491e7bf9d9b7e56e23d2
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
417ee5ba89f7e0fe5efd34fce74bf1ee5923d976 11-Mar-2015 Tor Norbye <tnorbye@google.com> Add resource type annotations to some APIs

Change-Id: I37c8afdaea455aa92bc8270bb2dfd60616c5f9bc
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
80756e38882720860db52f1fcc21fa1505a02abf 02-Mar-2015 Tor Norbye <tnorbye@google.com> Annotate ARGB integer parameters with @ColorInt

Change-Id: I307f72a382272cf18ddb6b07d9fcb81228568d9a
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
bd3bfc5285dcacff0a69fecf3baeeeb90d887a58 02-Mar-2015 Chris Craik <ccraik@google.com> Improve docs for drawable tint and color filters

bug:19564477
Change-Id: I7e11baae2d4dd245965904c85b8855de71f6b6ac
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
25f0e6183b632e6f2ba1963e3a4e94c27824dce7 27-Feb-2015 Alan Viverette <alanv@google.com> Revert "Use ObjectAnimator for fading scrollbars, set initial duration to 1500"

Bug: 19522833
Bug: 19528265
This reverts commit 72710f11ecd3baf468bf649283453cb7aafe4d74.

Change-Id: I7235ae3ca53696f029cc18f19fe1d373c4f54bbf
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
b3f3762ee0f57c94ea25bc1cc9d4baf0ee2a2976 23-Feb-2015 Alan Viverette <alanv@google.com> Merge "Unify wrapper-type drawables"
a12962207155305da44b5a1b8fb9acaed358c14c 21-Feb-2015 Alan Viverette <alanv@google.com> Unify wrapper-type drawables

Fixes several issues with constant state and propagation of drawable
property changes to wrapped drawables. Also un-hides the layout
direction accessors and hotspot getter.

Change-Id: Iff19db6a95059cbcfcbde7af0ac33871ccd41615
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
72710f11ecd3baf468bf649283453cb7aafe4d74 20-Feb-2015 Alan Viverette <alanv@google.com> Use ObjectAnimator for fading scrollbars, set initial duration to 1500

Fairly intensive refactoring of ScrollabilityCache.

Change-Id: I88669c0b9b79ca12a237606d5ff8be0e7e8b37ba
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
f4c068b72e2dee2e6944488ef00b64c93217d7e8 06-Jan-2015 Alan Viverette <alanv@google.com> Add getDither, getFilterBitmap to Drawable for CTS testing

Also removes unnecessary overrides from PictureDrawable.

Change-Id: I13539b5204e8c0d8b9912da14de7ceae62720e3f
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
dad7d84c04c5954b63ea8bb58c52b2291f44b4df 09-Dec-2014 John Reck <jreck@google.com> Teach AssetAtlas about more drawables

Bug: 18317479

Change-Id: I16868ee204d24af72af9a2efc987f7e9eb1d266b
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
d422dc358f0100106dc07d7b903201eb9b043b11 25-Sep-2014 Yigit Boyar <yboyar@google.com> Added a generic configuration and theme based cache

For now, only animators use it but we can consider migrating
drawable cache to it as well.

Bug: 17456416
Change-Id: I571b96856805edb171f0fc52e6bff5a365f46b70
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
17cd4dfe3a05c2eddbcbc76066ff3b13fc3f2c8b 14-Oct-2014 Alan Viverette <alanv@google.com> 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
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
727cae197b123ef764a1f8fbe08a995b000d14c3 08-Oct-2014 Alan Viverette <alanv@google.com> 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
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
3f873d86441c30f5d45640a9f70b3b7331985c90 29-Sep-2014 Chris Craik <ccraik@google.com> Implement alpha as documented for drawables

bug:17693526

With this change, outline opacity isn't published by default, as was
intended. Default behavior for custom drawables is to have a
rectangular outline, but not cast a shadow, e.g. as a button
background.

Change-Id: If80a256ff359bcb58f3f593ec9018f2df5fc4e44
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
607bd848269fb802550e63aa61945790616f97a7 12-Sep-2014 Alan Viverette <alanv@google.com> 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
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
bd5afc71864181c549bf3c620eedf8fc8c0cd531 05-Sep-2014 Alan Viverette <alanv@google.com> Remove old setTint from Drawable

BUG: 15782973
Change-Id: Idf0a6ea7c81135b032fcdadc46ee78d7db6945c7
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
a426445dfdab43886dd894f2ba8a1d55bfcbb278 29-Jul-2014 Alan Viverette <alanv@google.com> Separate tint and tintMode properties

BUG: 16054922
Change-Id: I820fb857b671faf9eb27612e470e820c5c4cd6b5
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
77b5cad3efedd20f2b7cc14d87ccce1b0261960a 31-Jul-2014 Chris Craik <ccraik@google.com> 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
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
31ba192dd201df2cad96a8c503f730130ab0d80f 18-Jul-2014 Chris Craik <ccraik@google.com> 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
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
7068c39526459c18a020e29c1ebfa6aed54e2d0f 14-Jul-2014 Alan Viverette <alanv@google.com> Fix hotspot movement on focus change

BUG: 15726988
Change-Id: I97f88e5f7e404ecfcd5c254fddd18c8f6616064e
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
d7f4a3cdd7a056b0618d170f20da710a4255c616 11-Jul-2014 Alan Viverette <alanv@google.com> Remove material progress drawable

BUG: 16138805
Change-Id: If8a8981e6ce741d563e870e3c09cbb5f39d30ac9
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
8e5e11b99fac942122ee2d6cdd30af51564861ae 07-Jul-2014 Alan Viverette <alanv@google.com> 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
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
c054966b719c8a7255f7cf4120cca5050acb68bd 04-Jul-2014 Alan Viverette <alanv@google.com> Make optical insets actually work

Change-Id: I9fabf4cb939cc7a868f95580e7229745acde0418
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
9a347f199284ad8bcb8a81bfbd306fe0b1a710ba 28-Jun-2014 Chris Craik <ccraik@google.com> Initial replacement of setOutline() with ViewOutlineProvider API

bug:15283203

A View's outline is now managed by its outline provider. This means
the outline is automatically requeried when needed (e.g. drawable
updates or resize), with customizable querying behavior.

Also adds 'isFilled' property to outline, to be used for hinting
shadow overdraw avoidance.

Change-Id: Ie137548fa850f1ff7863ab2f660d05145c2ad11e
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
911743652b597057a1bd7ef8a921e9ff8dce0f4a 17-Jun-2014 Alan Viverette <alanv@google.com> Add attributes and accessors for tinting View drawables

Also cleans up handling in setters for managed drawables.

BUG: 15391544
Change-Id: Idc08f7eaea0050feb6403566985a6d58185b81f8
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
b3c56086d802ae28888dd97ba1f49bd6cee0b673 14-Jun-2014 Alan Viverette <alanv@google.com> Add support for setTint in all Drawables, clean up lint warnings

Change-Id: I962089ca59684cef28cb4a648d4a91e542bdf5d4
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
cda212d79d449468384cc7744878b8c99984059c 14-Jun-2014 Jeff Brown <jeffbrown@google.com> Revert "Add support for setTint in all Drawables, clean up lint warnings"

This reverts commit 381f83b613f7b6e71180983dbb992ff62f8dd6e3.

Change-Id: I1181f436c647216ac46162260d9d886197b24568
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
4b17118aca1e67963254ab83504b0753a3eac7ce 14-Jun-2014 Alan Viverette <alanv@google.com> Add support for setTint in all Drawables, clean up lint warnings

Change-Id: Ia38b9d3e9d5c0072382050e815bdd9232b672e50
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
e5e92602a41a4ddc7b42cd1c171a0edfbd09b8da 03-Jun-2014 ztenghui <ztenghui@google.com> Add AnimatedVectorDrawable

Currently as a hidden class.
It can support many the animations now as far as ObjectAnimator and
hierarchical group can support.
And we don't have path morphing yet.

Also support the Animator / Interpolator inflation from Context and Resources.

Change-Id: I948bbdf7373ad291171eed0b497959dce8c2edf3
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
830960cce032a1b0dc0cf54bcc44ffa339388c21 07-Jun-2014 Alan Viverette <alanv@google.com> Material theme

BUG: 15467097
Change-Id: I15191362e104a902895418fc615892c21db64c35
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
bb938107b7ef1f6660b9f9cbafacd9d0a427bedc 04-Jun-2014 Alan Viverette <alanv@google.com> Merge "Temporary drawable for Quantum progress indicator" into lmp-preview-dev
3567140b04907790fefc479be7eec8115ea3a927 04-Jun-2014 Alan Viverette <alanv@google.com> Temporary drawable for Quantum progress indicator

Also cleans up unused 20dp spinner drawables.

Change-Id: I69aba84eca9f9e8d44a4237d894015caeb3d2308
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
910a0b4d02d0be3e164a32825785fa3d02fe55a2 04-Jun-2014 Alan Viverette <alanv@google.com> Fix build, fix Drawable loop

Change-Id: I524b7f40c700ebe601fdbe80644a46e90ab2bba0
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
6dbe51b50e82057af4d29882889444d22ac19c9c 03-Jun-2014 Alan Viverette <alanv@google.com> 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>
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
e7772d313b88e9fd3366670a9c8d1b145edef344 22-May-2014 Alan Viverette <alanv@google.com> Move setTint into Drawable, unhide getDirtyBounds on Drawable

BUG: 15089957
Change-Id: Ib622ba24b3f4bcf430e1d524895ac5cb104a232e
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
53a3ed7c46c12c2e578d1b1df8b039c6db690eaa 22-May-2014 Alan Viverette <alanv@google.com> Clean up hotspot bounds API

Change-Id: I7daf7e2d360d761f673aa69a0f925b8076ab19c6
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
47a7d61e70230bbed030e8795a17bf43c479616f 21-May-2014 Chris Craik <ccraik@google.com> Merge "Clean up Outline API, method on drawable"
3b5c4272db3e089c4a06d2db2ddf2aee5ebb6281 20-May-2014 Alan Viverette <alanv@google.com> Various API review fixes to resources and drawables

BUG: 15025565
Change-Id: If00c85816f8288338967f7a85453d21f858f5ca7
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
f31512eb17b6327c5f81bfb8a69c3a6119a0dd66 20-May-2014 Alan Viverette <alanv@google.com> Merge "Various API council fixes to drawables"
e5b082d6eb0489e7dbe3159338f8c94c0af61dee 20-May-2014 Alan Viverette <alanv@google.com> Various API council fixes to drawables

BUG: 15089957
Change-Id: Ieaf468bbff092e68f6313d8a5ecccda8b753806d
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
7dc5b41e609d3ff55ca194682832d14a7236fa87 20-May-2014 Chris Craik <ccraik@google.com> Clean up Outline API, method on drawable

bug:15025466
bug:15089680
Change-Id: I8d3b64a0d9dbdbaf679042c8b384d2050323a8e6
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
c80ad99a33ee49d0bac994c1749ff24d243c3862 20-May-2014 Alan Viverette <alanv@google.com> TouchFeedbackDrawable is now RippleDrawable

Change-Id: I59f5f04b73089215c6320560556ac21beb03db06
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
5e92c95d847a68178cf6099c801f82dcb7e4fa47 09-May-2014 Alan Viverette <alanv@google.com> Animated state transition drawable

Change-Id: I6c795d55cd7ab9163fdd6fe6ce3771bbd7015d62
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
e6a39b12656ab8d5c77d8366b24aa6410fd42e11 24-Apr-2014 Chris Craik <ccraik@google.com> Refactor Drawable outline production, flesh out Outline methods

Change-Id: I1b8c25384b5f123e86cf5e0b2270eb741bc3159b
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
61956606818918194a38e045a8e35e7108480e5e 23-Apr-2014 Alan Viverette <alanv@google.com> Add ripple to switches, radio buttons, check boxes, seek bars

BUG: 14231772
Change-Id: Ie40eac9f68815294460175965a999dd75f4144b5
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
2f8ba8f7fad2b608102a9282219aaea2223e94f5 09-Apr-2014 Alan Viverette <alanv@google.com> Update supported Drawable tinting modes and docs

Change-Id: I9c20d2bc4dc499f91c21a348871cf209c1065ba6
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
860126b78aa4d6e8db5208c7f96764a8556cf95f 09-Apr-2014 Alan Viverette <alanv@google.com> Make Drawable hotspot APIs public

Change-Id: I8377ed735f73f7083636947aa08a5427f1dc3bf6
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
45dc35b3c9e7e1494c09f4ed167426da6d376a7d 03-Apr-2014 Alan Viverette <alanv@google.com> Fix dialog style, selectable item bg pinning, and pressed state

BUG: 13746931
Change-Id: I31c2959f3e773a3aeb66ba5842d8d6fbb288acc1
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
2c5d6d742a35885820c33364fec65a7e163fbbf8 27-Mar-2014 Alan Viverette <alanv@google.com> Merge "Separate ripple animation logic, remove RevealDrawable"
abb7d134c02ac60091108c491dafb00877093170 25-Feb-2014 John Hoford <hoford@google.com> add Dynamic Drawable (vector graphics for Icons)

Change-Id: Id44b7f6d1b8dd073b8ed35e2142a380550f2449b
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
47bf0d95ef6c9ac68773567d503749c874a07f2f 27-Mar-2014 Alan Viverette <alanv@google.com> Separate ripple animation logic, remove RevealDrawable

Change-Id: I9d0370cea288e6caf518209b5bc94a66a0f9176f
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
52b999f0721b53e9c6e18a4bd664e89aeb65b2d5 25-Mar-2014 Alan Viverette <alanv@google.com> 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
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
b49f446c98096c4790a11d9b5bc83a4e585278c9 20-Mar-2014 Chris Craik <ccraik@google.com> Rework Outline API, remove isolatedZVolume remnants

Change-Id: I30c2fe832dcb98fa6329b1a595b3d3aafbdcad6b
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
813d85b82cb7cbaa5dbe05496d1038caa17a1698 27-Feb-2014 Alan Viverette <alanv@google.com> 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
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
12b97f5d2b15194ed6673c9838b13c8312157709 24-Feb-2014 Alan Viverette <alanv@google.com> Change colorFilterColor to tint, allow use of ColorStateList

BUG: 13149901
Change-Id: I6487bec372cb74db53d7bbdfa35de071764763b0
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
d5154ec2bc7e7c0bdfd14fc784912d390afe43cc 06-Feb-2014 Alan Viverette <alanv@google.com> Add prototype for borderless touch feedback drawable

Change-Id: I6366855b1fb838aa077bc6bdb62adc2134c51dca
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
16f1d81d47beb1e04504a76de66e2919dde08c33 31-Jan-2014 Alan Viverette <alanv@google.com> Revert "Cache display lists for Drawables"

This reverts commit c062c7003f34999632fe4ad721dcd47cd71b2159.

Change-Id: I96d4f0482b927101f52140b667f4c38ffc8687f5
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
cd53c257e3e75325eba70f5e52ecadfc1b2bf567 27-Jan-2014 Chris Craik <ccraik@google.com> Disable Drawable DisplayLists

bug:12581401
bug:12758460

DisplayLists of drawables aren't being cleared out correctly, and will
incorrectly store state across configuration changes. Disable them
temporarily until this is fixed.

Change-Id: Ic09f0674d30476127316cfb4ffe45eb34cc15aa0
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
c062c7003f34999632fe4ad721dcd47cd71b2159 15-Jan-2014 Alan Viverette <alanv@google.com> Cache display lists for Drawables

Change-Id: I86e2dd4cd4ac8871f4131450cb9082c2b8de2eed
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
d9e788c4f0528e46db4a035cfac043736becb0d1 07-Jan-2014 Alan Viverette <alanv@google.com> Add support for specifying Drawable color filter in XML

BUG: 12178044
Change-Id: Ie118aebf56bb4580c97b625e20f4e76bed4b6f6f
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
223622a50db319d634616311ff74267cf49679e7 17-Dec-2013 Alan Viverette <alanv@google.com> Add reveal drawable, APIs for forwarding Drawable focus and touch

Hotspot APIs are hidden pending finalization of how we handle IDs.

BUG: 11416827
Change-Id: Iecacb4b8e3690930d2d805ae65a50cf33482a218
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
c502744f2ddcc80a34f5197b5d2c0d701c7d6e71 13-Aug-2013 Newton Allen <newt@google.com> Fix some documentation typos.

Change-Id: I0360d468d54d970c87f313e24e50965245206f28
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
80da140cc4ce2df529bae92d379ed8598acf356c 08-Oct-2013 Adam Powell <adamp@google.com> am 266b3026: am 20ba658b: am 31049d76: Use SCREEN Xfermode for keyguard badges; update SeekBar

* commit '266b3026c42ed3ba0feedd9abe3e3bb6932c2f23':
Use SCREEN Xfermode for keyguard badges; update SeekBar
31049d76c55b18a6d9993f0d9687598740b16014 07-Oct-2013 Adam Powell <adamp@google.com> Use SCREEN Xfermode for keyguard badges; update SeekBar

Plumb through the necessary API features through Drawables and
ImageView but leave it hidden for now pending future API review and
plumbing through the rest of the framework Drawable implementations.

Update SeekBar assets used for keyguard transport control.

Set selected status directly instead of finding views by id.

Bug 10531608
Bug 10784913

Change-Id: Ia38bd04ad1bc26e9e6da1dda8a374c9ba3ceccb3
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
d9273d6f289d9b55da3fd0db2f659fdfb48106a8 31-May-2013 Tor Norbye <tnorbye@google.com> Add typedefs and nullness annotations.

This changeset adds in typedef annotations (custom annotations
marked with @IntDef) for various int parameters and return values
in the API. It also adds nullness annotations for cases where the
documentation explicitly mentioned null policy, or where it was
blindingly obvious from the context. Also fixed some typos in the
documentation.

Change-Id: Ica27c01368895818e26237544edd8483007155bb
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
3f5a90b2fbba2a83a8a2c5babd5d466a5e0ad2aa 25-Jun-2013 Fabrice Di Meglio <fdimeglio@google.com> Add automatic Drawable mirroring capability when in RTL layout direction

- default value is "no mirroring"
- introduce android:autoMirrored as a new attribute for Drawable,
BitmapDrawable, LayerDrawable, StateListDrawable and NinePatchDrawable
- setting android:autoMirrored="true" means that the drawable will
be mirrored when the layout direction is RTL (right-to-left)
- also fix an issue with ImageView drawable layout direction not
updated correctly when RTL properties were changed

See bug #7034321 Need Drawable RTL support

Change-Id: If595ee5106c786f38e786d3a032e182f784a9d97
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
54999da4b6aaf0167f37f0eec987a670254b775f 31-May-2013 Romain Guy <romainguy@google.com> Remove MipmapDrawable

It's a hidden API that nobody uses.

Change-Id: Ie0ecbc45cd191a595e53fe8765defe6f2aa7e3f6
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
3b748a44c6bd2ea05fe16839caf73dbe50bd7ae9 18-Apr-2013 Romain Guy <romainguy@google.com> Pack preloaded framework assets in a texture atlas

When the Android runtime starts, the system preloads a series of assets
in the Zygote process. These assets are shared across all processes.
Unfortunately, each one of these assets is later uploaded in its own
OpenGL texture, once per process. This wastes memory and generates
unnecessary OpenGL state changes.

This CL introduces an asset server that provides an atlas to all processes.

Note: bitmaps used by skia shaders are *not* sampled from the atlas.
It's an uncommon use case and would require extra texture transforms
in the GL shaders.

WHAT IS THE ASSETS ATLAS

The "assets atlas" is a single, shareable graphic buffer that contains
all the system's preloaded bitmap drawables (this includes 9-patches.)
The atlas is made of two distinct objects: the graphic buffer that
contains the actual pixels and the map which indicates where each
preloaded bitmap can be found in the atlas (essentially a pair of
x and y coordinates.)

HOW IS THE ASSETS ATLAS GENERATED

Because we need to support a wide variety of devices and because it
is easy to change the list of preloaded drawables, the atlas is
generated at runtime, during the startup phase of the system process.

There are several steps that lead to the atlas generation:

1. If the device is booting for the first time, or if the device was
updated, we need to find the best atlas configuration. To do so,
the atlas service tries a number of width, height and algorithm
variations that allows us to pack as many assets as possible while
using as little memory as possible. Once a best configuration is found,
it gets written to disk in /data/system/framework_atlas

2. Given a best configuration (algorithm variant, dimensions and
number of bitmaps that can be packed in the atlas), the atlas service
packs all the preloaded bitmaps into a single graphic buffer object.

3. The packing is done using Skia in a temporary native bitmap. The
Skia bitmap is then copied into the graphic buffer using OpenGL ES
to benefit from texture swizzling.

HOW PROCESSES USE THE ATLAS

Whenever a process' hardware renderer initializes its EGL context,
it queries the atlas service for the graphic buffer and the map.

It is important to remember that both the context and the map will
be valid for the lifetime of the hardware renderer (if the system
process goes down, all apps get killed as well.)

Every time the hardware renderer needs to render a bitmap, it first
checks whether the bitmap can be found in the assets atlas. When
the bitmap is part of the atlas, texture coordinates are remapped
appropriately before rendering.

Change-Id: I8eaecf53e7f6a33d90da3d0047c5ceec89ea3af0
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
de1fae77b6947c8696229ca113a812bc0b79e821 13-Apr-2013 Dianne Hackborn <hackbod@google.com> am 00c4c670: am 301e95f2: Merge "Add a little more resource load tracing." into jb-mr2-dev

* commit '00c4c67069b9d13005ae072b8744c728aa73f99a':
Add a little more resource load tracing.
0acc1931d364fabb32e2051f58bfbbc5f2505176 13-Apr-2013 Dianne Hackborn <hackbod@google.com> Add a little more resource load tracing.

Change-Id: Id797adb67ab411d5b1a1c223863d3bb4655d10b1
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
22fc72c8a8a2ddd3665fe509bf0990c3a01bae77 21-Mar-2013 Chet Haase <chet@google.com> am bcba9442: am 10c4d99f: Merge "Manage drawable invalidation automatically for Overlays" into jb-mr2-dev

* commit 'bcba9442d4066c9e34ee7a9f050b2858465e052a':
Manage drawable invalidation automatically for Overlays
633326e29f008d2b86e523cfeedcbb2a0883181f 21-Mar-2013 Chet Haase <chet@google.com> 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
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
b1af7f3d4be6cd6bc6e1e805f22c209e19bf928f 08-Mar-2013 Chet Haase <chet@google.com> 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
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
7ac40e38696aa74d7b7938add8fdbc47180ae424 08-Feb-2013 Romain Guy <romainguy@google.com> Deprecate useless BitmapDrawable constructor
Bug #2590549

Change-Id: Icb45bf2d9836c43ed0825105f64d7b98afcdcdac
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
7b7578184567f4e4f0740ce935cc192765410cca 20-Sep-2012 Philip Milne <pmilne@google.com> Bug #6110465. Optical bounds support for all ViewGroup subclasses.

This CL generalizes the optical bounds support previously contained in the
GridLayout implementation and then incorporates the new form directly into
the base View and ViewGroup implementations. After this change, GridLayout is
returned to an 'optical bounds' unaware state, and all layouts (including non-platform
ones) inherit the ability to perform their layout operation by optical (rather than clip)
bounds using their existing implementations.

The "layoutMode" property of ViewGroup and its associated constants are
made public in this CL.

Change-Id: Ic1bba0e1c6fc14da4aeab0b28c975d562b5f82dd
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
29d0aa73a099fde05c506857b5d215cde87b78d6 19-Sep-2012 Romain Guy <romainguy@google.com> Merge "Compute GradientDrawable's opacity correctly" into jb-mr1-dev
e91aa0fa64db892194ba82ec7d41df6fb9185471 19-Sep-2012 Romain Guy <romainguy@google.com> Compute GradientDrawable's opacity correctly

The current implementation of GradientDrawable always assumes the shape needs
to be blended. This causes all windows to be considered translucent by default.
This change recomputes the opacity as needed to ensure windows are marked
opaque when they should.

Change-Id: Iaf291d889a6c5122ab00c9f5781df3e7f61547fa
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
f358260af4cd34961acc13d849819c8b6089f309 18-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #7172972 API REVIEW: android.graphics.drawable.Drawable

- add @hide

Change-Id: I20dca8d7f6a58dfd1dd342135dcff912e08d4ab9
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
c5daf84f6647d3280c59554cd6ec9c2a4f119bfc 07-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix the build

- use fully qualified name for Javadoc

Change-Id: Ic75ce7e19d407dc40c96b585f9fa1827fb614ba1
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
f1c0aeda259dd0dbab4356c909d33fe7e1ca0d2a 03-Aug-2012 Dianne Hackborn <hackbod@google.com> Fix issue #6921726: Prime: Cannot make or receive phone calls...

[NPE at android.graphics.drawable.Drawable.createFromResourceStream]

Change-Id: I223428ffb39e883518aad817227f32851ea18aec
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
908aecc3a63c5520d5b11da14a9383f885b7d126 01-Aug-2012 Dianne Hackborn <hackbod@google.com> Start moving away from DisplayMetrics.DENSITY_DEVICE.

This puts in most of the infrastructure needed to allow us to
switch between different densities at run time. The main remaining
uses of the global are to initialize the Bitmap object (not sure
what to do about that since it doesn't have anything passed in
the constructor to get this information from), and being able to
load drawables if we need a different density than what was preloaded
by zygote.

Change-Id: Ifdbfd6b7a5c59e6aa22e63b95b78d96af3d96848
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
b03b434089cf2106c467b2827a65e5c589c91d01 04-Jun-2012 Fabrice Di Meglio <fdimeglio@google.com> Revert "Revert "Clean up layout direction APIs for Drawable""

This reverts commit c96132ff53e5c26f5b0170edd85072006fb2bc70
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
c96132ff53e5c26f5b0170edd85072006fb2bc70 02-Jun-2012 Jean-Baptiste Queru <jbq@google.com> Revert "Clean up layout direction APIs for Drawable"

This reverts commit c1da65187a4b9de8f72bd617ef937030187c0a92.
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
c1da65187a4b9de8f72bd617ef937030187c0a92 01-Jun-2012 Fabrice Di Meglio <fdimeglio@google.com> Clean up layout direction APIs for Drawable

- see bug #6427629

Change-Id: I3119db3022bba0ee325b6d0d4471bfebd850ec10
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
bbd51f1e360b22eece1d74bd65c7e6a0b59dee59 19-Apr-2012 Philip Milne <pmilne@google.com> Share Insets instances between views that have the same background (Drawable)

Change-Id: I47d93ccca6f553b678d25966d10d7a0a97cfa5ea
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
1557fd7809078e421f751efc7d2539b3efdc54b2 05-Apr-2012 Philip Milne <pmilne@google.com> Fix for bug 6110465.

Add layout bound metadata to 9-patch files and make layouts take them into account.

This CL contains a proposed API for dealing with layout bounds.

This solution exposes:

1. Class: Insets - for storing layout Insets (and later possibly padding).
2. Methods: View:(get/set)LayoutInsets() - for storing layoutBounds.
3. Methods: ViewGroup:(get/set)LayoutMode() - for controlling layoutMode.

It also iuncudes the changes to GridLayout to support layout bounds.

Change-Id: I60c836b6530b61c5abf37f93ee9c44aad73573f1
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
ec4a50428d5f26a22df3edaf7e5b08f41d5cb54b 04-Apr-2012 Amith Yamasani <yamasani@google.com> Embed layout padding in nine patch images

- Added a new custom PNG chunk that carries the layout padding ints.
- Extract the padding ticks from .9.png images and store in the chunk.
- Load the padding information at runtime into Bitmap and NinePatchDrawable.

- The new chunk is ordered first so that it doesn't cause a problem in older
versions of the platform.

Bug: 6087201

Change-Id: I5de46167a1d44b3ec21065b0c165e594b1dc8399
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
06e1ec6462763a2f12ba5fb1c1c826bf393bfacd 10-Mar-2012 Fabrice Di Meglio <fdimeglio@google.com> Make Drawable RTL APIs public

- also optimize imports

Change-Id: I2649a539a5784293d09179981a5d57e900219246
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
61fd1e8d8c3ccf2d6b7d4af1c19e8f0988d5a1ec 26-Oct-2011 Joe Fernandez <joefernandez@google.com> docs: add developer guide cross references, Project ACRE, round 3

Change-Id: I6125315ecdf0f78dd947c514a9944729d723e95d
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
2273b1e4eae27fa60b0b90d16a1891b4526c9b9c 08-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Hide RTL related APIs

Change-Id: Idda458fcdebe7afeb9b95e328e552fcbc7939157
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
c0053223bedf33581b0830fb87be32c1f26e5372 13-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> Add View.getResolvedLayoutDirection()

- update Callback2 interface
- update Gravity.getAbsoluteGravity() and Gravity.apply() to be more generic
by changing "boolean isRtl" parameter to "int layoutDirection"
- fix BiDiTests for RTL FrameLayout

Change-Id: I97bb456c22d5fd3ecb34f08564ce4dbed37e7459
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
6a03640539405afbdefe72894759281b98aa6e6f 23-May-2011 Fabrice Di Meglio <fdimeglio@google.com> Add support for Gravity BEFORE and AFTER

- update layouts
- add Callback2 for RTL aware Drawable
- add unit tests

Change-Id: Ic64d0291e262170aff7297c6580b0b422eaa8d89
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
70588bf864f961974c93aace7586d3e2773a54a8 05-Jan-2011 Brad Fitzpatrick <bradfitz@android.com> resolved conflicts for merge of 3a2c6bf0 to master

Change-Id: I1963d8fc391bb84de1054f2b20ce4e082d764cbe
69ea4e15e52c456537575d21443ac1efdb03a902 05-Jan-2011 Brad Fitzpatrick <bradfitz@android.com> Documentation fixes found over vacation hacking.

Change-Id: I28900026465d66d950cf4f05f0c202b46c3c2d43
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
f2a47782f31b58d2d31bd00b50fe43604af8b9c2 15-Dec-2010 Romain Guy <romainguy@google.com> Make Drawable.mCallback a WeakReference.

Many memory leaks occur because of long lived drawables. This should
help.

Change-Id: I2e9e8dee26579ec56e8e73f08f6b1d62be7812d9
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
8c7a580b34d67fefd5f777c7bd6247b2d3960608 03-Dec-2010 Dianne Hackborn <hackbod@google.com> Some theme cleanup.

- Add new dialog themes without a title bar.
- Add new Theme.Holo.NoActionBar.DialogWhenLarge.
- Remove old Extended and Theme.Light.Holo themes.
- Reorder the public definitions to keep things nice.

Also @hide the MipmapDrawable class.

Change-Id: Ic69a56e9b28aacf441780633f37f0bc6a475d08a
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
9891e1fce5f29d0421d34aa481037417bd70853d 11-Nov-2010 Chet Haase <chet@google.com> 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
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
079e23575024e103358c982152afb7a720ae1a8a 19-Oct-2010 Dianne Hackborn <hackbod@google.com> Add new fade in/out feature for drawable containers.

This is used to allow list view's pressed and activated indicators
to fade in an out, though of course it can be used elsewhere as well.

There is a lot of complexity in supporting this in list view. The
two main things that are being dealt with:

- When recycling views, we need to make sure that the view's drawable
state doesn't get animated from an old row's state. The recycler
now keeps track of which position a view was last in, and if it is
reused at a new position there is a new View/Drawable API to tell
it to jump to its current state instead of animating.

- For the pressed indicator to fade out, we need to keep displaying it
after it is hidden. There are new variables and code to keep track
of this state, and tweaks in various places to be able to remember
the last selected position and continue updating the drawable bounds
as needed.

Change-Id: Ic96aa1a3c05e519665abf3098892ff2cc4f0ef2f
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
82e2b4cb51e869a5c2014f56e5b0cf38569ff09a 15-Jul-2010 Scott Main <smain@google.com> am 4fd41688: am 5352d237: am 38137d7a: Merge "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" into froyo

Merge commit '4fd416880e53c172bac4a51b2eafea699b58badf'

* commit '4fd416880e53c172bac4a51b2eafea699b58badf':
docs: lots of additions to the resources docs
dfe5c204403bc56c29bb36410574eab8b1950417 09-Jun-2010 Scott Main <smain@google.com> 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
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
1e91b3fde0a1a76388c7f2a7fd67562c66818f2e 13-Apr-2010 Gilles Debunne <debunne@google.com> Added documentation in Drawable.

Documentation on the ConstantState added.
Removed all warnings in Eclipse.

Change-Id: Ib1daf7eef1aff5660e805483f9dcae6fcd5a595e
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
20fc9bfe3ad16c5f36026fc43c85d0647b75cc40 12-Apr-2010 Gilles Debunne <debunne@google.com> Fixed links in MipmapDrawable documentation.

Fix for 78aaa97b77d56e35e994611406deb398eb9005db

Change-Id: I3b4a3b987560d5d3934776cdc7ae98c954bfab32
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
78aaa97b77d56e35e994611406deb398eb9005db 10-Apr-2010 Gilles Debunne <debunne@google.com> New MipmapDrawable class.

This Drawable holds different scaled version of a Drawable and use the appropriate one
depending on its actual bounds to minimize scaling artifacts.

Change-Id: I4ced045d73c1ddd8982d9aaf39c3599b3ac58a16
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
c2974809373697147cbe5754835cc871fb93aef1 14-Sep-2009 Dianne Hackborn <hackbod@google.com> 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
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
46407d831ef31c0935e6d069198ffb275c840d83 18-Aug-2009 Dianne Hackborn <hackbod@google.com> Fix infinite recursion.
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
7341d7a104b47996445d069a695e155a07184606 14-Aug-2009 Dianne Hackborn <hackbod@google.com> More work on wallpapers.

- Do better about figuring out when to stop them and other related window
management.
- Fix problem where we were not redrawing the surface when the orientation
changed. This was the cause of the device hang.
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
e2dba02441b42afbae725109ac779877a4b72aa0 25-Jul-2009 Dianne Hackborn <hackbod@google.com> am 11ea3347: Allow for screen density drawables in compatibility mode.

Merge commit '11ea33471e1a14a8594f0b2cd012d86340dd3bd8'

* commit '11ea33471e1a14a8594f0b2cd012d86340dd3bd8':
Allow for screen density drawables in compatibility mode.
11ea33471e1a14a8594f0b2cd012d86340dd3bd8 23-Jul-2009 Dianne Hackborn <hackbod@google.com> Allow for screen density drawables in compatibility mode.

This change allows us to use drawables that match the current screen
density even when being loaded in compatibility mode. In this case,
the bitmap is loaded in the screen density, and the bitmap and
nine-patch drawables take care of accounting for the density difference.

This should be safe for existing applications, for the most part, since
they shouldn't really be pulling the bitmap out of the drawable. For
the small rare chance of them breaking, it worth getting the correct
graphics. Also this will only happen when there is actually a resource
of the matching density, and no existing apps should have resources for
anything besides the default density (though of course all of the
framework resources will be available in the native density).

As part of this, the bitmap density API has been changed to a single
integer provider the DPI unit density.
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
0f07b2c850ee1462ca4cf3137a954a9fc4bdf773 27-Apr-2009 Brad Fitzpatrick <brad@danga.com> Lazily allocate the mBounds Rect in Drawable.

For background, see:
http://kohlerm.blogspot.com/2009/04/analyzing-memory-usage-off-your-android.html

Thanks, Markus!
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
f4f7046183f0daedd17703fa16cf9026442bdaee 27-Jun-2009 Romain Guy <romainguy@android.com> Update spinner's drawables. Clean up resources, pave the way for new animation.
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
23bd84ce6c448b73847eb404f3a1cc7b10afb6d6 28-Apr-2009 Romain Guy <romainguy@google.com> Fixes #1816088. Avoid initializing empty Rects when they are useless, especially in Zygote.
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
076357b8567458d4b6dfdcf839ef751634cd2bfb 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
3dec7d563a2f3e1eb967ce2054a00b6620e3558c 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
d24b8183b93e781080b2c16c487e60d51c12da31 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java