History log of /frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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/DrawableContainer.java
ad7e748543f69794bbc8114da660eed705a89087 04-Apr-2017 Alan Viverette <alanv@google.com> Refresh opacity and statefulness on tint change

Also warns when LayerDrawable is created with an invalid child. This
is not guaranteed to fail, but it's usually a bad sign.

Bug: 33124798
Test: LayerDrawableTest, DrawableContainerTest
Change-Id: Ie3e4200b27a9814cee7f5711d7df9710db513953
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
55fed16929d9fb98e96e78042c08bd4b2dd3cf82 04-Apr-2017 Yohei Yukawa <yukawa@google.com> Revert "Refresh opacity and statefulness on tint change"

This reverts commit 1eda069f7c9a36e58c17ecf185a5c0906be5df95.

Reason to revert:
The setup wizard started throwing android.view.InflateException due to
I89f6d804fb025f426aefdee67559778cf03015bb. Temporarily reverting that
change until we figure out what is going on.

Change-Id: I9344a3402f2fab02f4fe49a6a8ad91970b2d3b3e
Test: Manually verified that the setup wizard no longer crashes.
Bug: 33124798
Bug: 36870685
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
1eda069f7c9a36e58c17ecf185a5c0906be5df95 28-Mar-2017 Alan Viverette <alanv@google.com> Refresh opacity and statefulness on tint change

Bug: 33124798
Test: DrawableContainerTest#testOpacityChange #testStatefulnessChange
Test: LayerDrawableTest#testOpacityChange #testStatefulnessChange
Change-Id: I89f6d804fb025f426aefdee67559778cf03015bb
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
eb7277590a2c2bdd64534da4c822a69440df32df 28-Nov-2016 Alan Viverette <alanv@google.com> Make LD stateful / opacity management look more like DC

Some initial cleanup before making changes to either class.

Test: n/a, refactoring only
Bug: 33124798
Change-Id: Idf0328bcc6de72b694ca7b35122ecad845cf1c4b
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.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/DrawableContainer.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/DrawableContainer.java
b46ba3b2b0268688852cdf3d1fb4afe4873d63be 27-Jul-2016 Alan Viverette <alanv@google.com> Avoid potential re-entry as a result of child mutation

Don't set the callback until we're all done making changes.

Bug: 30409766
Change-Id: Ia1560692a83ecb2c50f5e77fa4d1e8155a78a204
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
6d823891bbfc043f2a8ba6b5d6e6baa84cf750f6 17-Jun-2016 Alan Viverette <alanv@google.com> Only block invalidation in DrawableContainer initialization

Blocking (un)scheduling breaks AnimationDrawable's internal consistency.

Bug: 29309316
Change-Id: I59c79a4a9a92b599cd94bd941ae78ac25b874add
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
2b561f1c352df95df23e17e7fce2acc3144df159 26-May-2016 Alan Viverette <alanv@google.com> Prevent callbacks during DrawableContainer child initialization

Bug: 28900939
Change-Id: I9c6c8af1665c2dc0bfa8bc8fc773c81e14f6aab1
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
a24c9b4791dddc2dbc233dfe8dac1ae682beb272 06-May-2016 Alan Viverette <alanv@google.com> Always mutate child when added to drawable container

Bug: 28456908
Change-Id: I3e7bea85e056882a331aecf7e225134161e685e6
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.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
f4c3d9f4c2e759b47d3aa7afcc3cb6900e926cc9 11-Mar-2016 Alan Viverette <alanv@google.com> Merge "Invalidate DrawableContainer's cached canConstantState on child add" 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/DrawableContainer.java
5291a9571580d5147331adbdefb017fa395df505 09-Mar-2016 Alan Viverette <alanv@google.com> Invalidate DrawableContainer's cached canConstantState on child add

Bug: 27553319
Change-Id: I625234baea8a992900935f562f9b767c85e527fd
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.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/DrawableContainer.java
2d3ca47ef83c097e3a1aaa66f2d119be0e93e677 25-Feb-2016 Alan Viverette <alanv@google.com> Always update drawable container source res

Bug: 27349209
Change-Id: I3bb3d4862a03fd5ce0beeb2bf5208f2917ec9320
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
9b4bdeff6dea5a24a3085a17d2dde9003642af79 06-Nov-2015 Alan Viverette <alanv@google.com> Mutate DrawableContainer children immediately after inflation

Previously we would only mutate children when they were displayed, so
applyTheme() calls would be applied to the shared constant state. Now
we mutate() immediately after obtaining the child, which ensures we
have a clean constant state. This also allows us to remove extra
mutate() calls, since we know all child drawables are already mutated.

Bug: 25081461
Change-Id: I52390db268690a8e181f5b9bbe612b7ed6ce9359
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
1259f616c26f89dd5000745d7c364fae41b23682 05-Nov-2015 Alan Viverette <alanv@google.com> Use ConstantState directly instead of ConstantStateFuture

All of the functionality of ConstantStateFuture has been moved into
prepareDrawable. We don't need the extra wrapper class.

Change-Id: I452b13320a838a23c8ec0dd486a89bf383142d7b
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
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/DrawableContainer.java
f1f5f6fcaa768c5b88e9a56f18cbd6ecf72755a8 21-Oct-2015 Alan Viverette <alanv@google.com> Reset constant width/height when DrawableContainer density changes

Bug: 25081461
Change-Id: I9661e964e1d0bacd337e31073faf870d37939b51
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
a02d2748be353393b7b593d5adbd37d80dee427d 16-Sep-2015 Alan Viverette <alanv@google.com> Clean up DrawableContainer.selectDrawable() docs, params

Change-Id: Ic38cbb4a21dab452950ba0e308ceba3cbe966363
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.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/DrawableContainer.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/DrawableContainer.java
06ff2af68aa1041eeb26778e994e0fe196bf8b1e 24-Jun-2015 Alan Viverette <alanv@google.com> Update local state when creating LayerDrawable from constant state

Also clears DrawableContainer's futures list when it's no longer needed,
correctly sets deep copy of state set in StateListDrawable, makes some
private methods into package-protected to avoid thunk, and propagates
state to StateListDrawable's super class so that getState() has correct
information.

Bug: 21840003
Change-Id: I0d4232807f280d663c03b4a80e4aab8626806440
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.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/DrawableContainer.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/DrawableContainer.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/DrawableContainer.java
27cf86939d918b2d6b32a0650a48b8a2afaa26b6 06-May-2015 Alexander Martinz <eviscerationls@gmail.com> Fix setting hotspot bounds in a drawable container

We are passing the wrong parameters for setting hotspot bounds.
Bottom and right are in the wrong order, correct it.

Change-Id: I2762fc3a4c29f05ba8b7e71a5c6cad0be16c2ae0
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
e0f95f39c5a669a48ee3ebb8dc45bf2d7ee940f1 01-Apr-2015 Alan Viverette <alanv@google.com> 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
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.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/DrawableContainer.java
102a6bff77c618112762245dbd798c8d7f6d44ea 26-Feb-2015 Alan Viverette <alanv@google.com> Propagate original Resources to DrawableContainer if no override set

Also fixes a double-add in ASLD.

Bug: 19498949
Change-Id: I9e7e0a0fb22a23518c80c1b099f8da0e0c1f53d8
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
6f51440a746ef4925ec329cd3a71a9689be2b10b 24-Feb-2015 Alan Viverette <alanv@google.com> Always apply color filter passed to DrawableContainer.setColorFilter

Bug: 19461256
Change-Id: Id44d276739b868e504139cdf767992039f3e4336
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
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/DrawableContainer.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/DrawableContainer.java
419aa7ad14926a30220aa3b71d045855ea54040a 12-Dec-2014 Alan Viverette <alanv@google.com> Propagate DrawableContainer state on mutate, fix ColorDrawable theming

BUG: 18542282
BUG: 18467568
Change-Id: Id1d75cfe47fde3206ab40e5360289e0cb2504402
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
62b780e85ff2fcefd4324c3bfbf49b14963cf58b 10-Dec-2014 Alan Viverette <alanv@google.com> Avoid creating futures for drawables with no constant state

We don't need to create futures for drawables without constant state,
since we only copy on mutate and we don't need to do any work on mutate()
for drawables without shared constant state. Also we would crash in that
case, so avoiding the NPE is nice too.

Rider: Also fixes elevations again.

BUG: 18696100
Change-Id: I4d7737f39ce3efc5830704e5ce412c540603e6ac
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.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/DrawableContainer.java
ebc9f2e773c3ebb4d4af3025fc6770844cc8fdef 04-Dec-2014 Alan Viverette <alanv@google.com> Update locally cached drawables when constant state changes

Previously we were failing to update references to drawables that had
been pulled from constant state, so we were drawing the wrong ones.

Also fixes button Z translation on press, which was WAY too high.

BUG: 18542282
Change-Id: Ifde7d64e31d31737854cfcbe75777e5b07a06e3a
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
5ed8f27858dbdf85203068eca46eef0a65f3344e 27-Nov-2014 Alan Viverette <alanv@google.com> Update drawable container constant state following clone

DrawableContainer's internal state was getting out of sync with the
internal state of child classes because we failed to call set state.

BUG: 18542282
Change-Id: Iacaa12042e99c1b9e9eaf08f0ab879d82260e7ee
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
8dcd533786df8d824f1e040230ee9e7e5b083998 25-Nov-2014 Alan Viverette <alanv@google.com> Ensure calling mutate() on DrawableContainer creates a new state

Previously, a new state would only be created on newDrawable(), which
caused the first drawable loaded for a resource to share constant state
with the cached version. Even if mutate() was called, the constant
state was still shared and any changes were applied to the cached copy.

BUG: 18504919
Change-Id: I40d257867eb0a092ce580b9c4338ddc7406a031d
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
cf84ab5e7f860a716f9a789a5d5d5f4378a8204c 25-Nov-2014 John Reck <jreck@google.com> Revert "Ensure calling mutate() on DrawableContainer creates a new state"

This reverts commit d7dab349c2af0e4bde188b1969f0c697b217dd57.

Change-Id: Icc1c4bfa296a59a551088fe7cc2449a97bb2b7b7
Reason: Broke the build
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
d7dab349c2af0e4bde188b1969f0c697b217dd57 24-Nov-2014 Alan Viverette <alanv@google.com> Ensure calling mutate() on DrawableContainer creates a new state

Previously, a new state would only be created on newDrawable(), which
caused the first drawable loaded for a resource to share constant state
with the cached version. Even if mutate() was called, the constant
state was still shared and any changes were applied to the cached copy.

BUG: 18504919
Change-Id: I1ce76fbbc144e9c0c93261e3a12cc613d0c74b83
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
d21fd9d1ccd2b525f9c004a6cd9ba19a645701ab 29-Oct-2014 Alan Viverette <alanv@google.com> Add theme and config change support to more Drawable types

BUG: 16045735
Change-Id: Ic03173a1c1779c1bb545c4c389f77afed97011ee
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.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/DrawableContainer.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/DrawableContainer.java
bddb843e793a279db99888dd78b4f74a362cbb8b 30-Sep-2014 Alan Viverette <alanv@google.com> Fix drawable container tinting

BUG: 17704311
Change-Id: Ib9ced41e8589352c852e6c9dc7abbe6e4b9f2520
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.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/DrawableContainer.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/DrawableContainer.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/DrawableContainer.java
58945975b256739fdfe78435d7846d1e2fd29da1 24-Jun-2014 Chris Craik <ccraik@google.com> Outline support in DrawableContainer and LayerDrawable

bug:14445484
Change-Id: I26a45b0115b976d0dbcc351a208dc0956bc52e96
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
8de1494557cf1d00c1c3fce439138a28de7fbd61 19-Jun-2014 Alan Viverette <alanv@google.com> Fix switch & slider anim, make View drawable hotspot API public

BUG: 15287810
Change-Id: Ic7a9549dc1ba8afd07e9a196371ed349a54aaf2f
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.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/DrawableContainer.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/DrawableContainer.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/DrawableContainer.java
2356c5e69b0911e6334ebf6374217898371be5ac 23-May-2014 Alan Viverette <alanv@google.com> Update switch, checkbox, radio button, button, and toggle button

Add optical inset support to BitmapDrawable with gravity. Fix optical
inset support in DrawableContainer. Fix visibility change support in
AnimatedStateListDrawable. Adds a whole bunch of missing drawable
support to CheckedTextView.

BUG: 15127013
BUG: 15126976
BUG: 15125529
BUG: 15025806
BUG: 14597955
BUG: 14594498
BUG: 15152746
Change-Id: Id2d99e10838d25b6f927ca1e49996c8da8e78ab1
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.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/DrawableContainer.java
c80ad99a33ee49d0bac994c1749ff24d243c3862 20-May-2014 Alan Viverette <alanv@google.com> TouchFeedbackDrawable is now RippleDrawable

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

Change-Id: I6c795d55cd7ab9163fdd6fe6ce3771bbd7015d62
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
307ad09228ebf70f1b456f5f00540c0126277850 18-Apr-2014 Alan Viverette <alanv@google.com> Add alpha to bitmap, nine patch drawable, fix container hot spots

Also fixes primary text disabled state alpha.

BUG: 13818888
Change-Id: I9ae2e25216014177c2dac24f5c9095df87724a43
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.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/DrawableContainer.java
34bd56b546bce47422a430d9d7806dc3cb4254bf 15-Jan-2014 Alan Viverette <alanv@google.com> Propagate first call to DrawableContainer.setAlpha() to children

BUG: 12530662
Change-Id: Idd972698d1a6805cb9f66ba4c2ddde97e1f8d2ca
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
729427d451bc4d4d268335b8dc1ff6404bc1c91e 07-Jan-2014 Alan Viverette <alanv@google.com> Fixes for DrawableContainer, LayerDrawable

Only propagate DrawableContainer color filter, alpha when explicitly
modified. Invalidate LayerDrawable padding when child inset modified.

Change-Id: I27c6fe3c2d71b92bfbc54cc829e1efc7bc35e566
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.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/DrawableContainer.java
435c0ee10af132937dc0a22c39380624e6efd5ab 07-Nov-2013 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #11537133 Hideycling looks broken (KOT36), missing left padding" into klp-dev
f7a93ef3847258157d144dfefaa5757128cc807d 07-Nov-2013 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #11537133 Hideycling looks broken (KOT36), missing left padding

- enforce the Drawable boolean getPadding(Rect) contract for NinePatchDrawable
and DrawableContainer.

- as NinePatchDrawable was not enforcing it, the consequence was that the
mUserPaddingLeftInitial / mUserPaddingRitghInitial were reset to "0" (even
if they got the correct value before the reset).

Change-Id: I1efe7fad5f89c0ca47f90189f6d89940e0e9c6ae
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
f68bb66c6ec239790ba18b8d078eb7ab4894fdc3 05-Nov-2013 John Spurlock <jspurlock@google.com> Fix recent regression in DrawableContainer.

Ensure optical insets are never null.

Bug:11537082
Change-Id: Ib75be83909fac612ae947f501835285cd8a79862
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
600d7dd1c6d9d1ff81b71085eff2a6be50d6f36c 16-Oct-2013 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #11256076 Spinner text is too close from the opening triangle in RTL Locales

Background Drawable padding was not taken into account in RTL Locales

- make sure the Drawables are resolved before resolving padding
- during padding resolution take care about background padding

Change-Id: Ib0c722adf5341ab4fa2182a0d0ac2ca639e85cfc
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.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/DrawableContainer.java
f390f770ee570f1f4def41b165cb9492e381be40 14-Jun-2013 Alan Viverette <alanv@google.com> Postpone creating new drawables for DrawableContainerState.

When creating a DrawableContainerState from a constant state, calls to
ConstantState.newDrawable() are postponed and made as they are needed.

Bug: 9280861
Change-Id: I03c93a43ee00aca3ff618d66d7f507f1722538d1
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
72146433322588c1116ee06c27ac758ad09d869c 06-Jun-2013 Alan Viverette <alanv@google.com> Deprecate DrawableStateList.getChildren() and add getChild().

Moves from exposing the internal structure of a drawable state list
to only exposing the data. Adds getCapacity() and mutate() as
package-private APIs to support various drawable subclasses.

Change-Id: Id08743f979287e1a305f069ccc3c0085a7da6f7b
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
d04aaa97c94792dca662ada28b5c5d2e4289e240 13-May-2013 Fabrice Di Meglio <fdimeglio@google.com> am ddd02537: am b4426f15: Merge "Fix bug #8858012 layer-list\'s bitmap item\'s start/end gravity is incorrect on RTL under certain conditions" into jb-mr2-dev

* commit 'ddd02537a3fb499a82097453535194f4e29583dc':
Fix bug #8858012 layer-list's bitmap item's start/end gravity is incorrect on RTL under certain conditions
731ba6649a40529657aa68f93e6febe7d98b4f3b 11-May-2013 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #8858012 layer-list's bitmap item's start/end gravity is incorrect on RTL under certain conditions

- set correct layout direction for Drawable

Change-Id: Ic8968acadbc7c9aa0bb68dd4dfbe09aa4e7cfa62
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
b735e1d426d65007011a3d915ea8e2cdd0002ecb 12-Apr-2013 Fabrice Di Meglio <fdimeglio@google.com> am 70d2c773: am f5c757c6: Merge "More fix for bug #8159072 Spinner widget should be RTL\'ized" into jb-mr2-dev

* commit '70d2c77320287d97fa2d90cc60f85e1706bffb1b':
More fix for bug #8159072 Spinner widget should be RTL'ized
dc25d25333d3fac96dccfb9bd31d2474d6bc2d78 10-Apr-2013 Fabrice Di Meglio <fdimeglio@google.com> More fix for bug #8159072 Spinner widget should be RTL'ized

- fix DrawableContainerState.getChangingConfigurations() to take care about its children
- make Resources.verifyPreloadConfig() return false when the changing configuration
contains layout direction bits (this is when a Drawable is having different version
for LTR and RTL layout directions)
- use constant state instead of the resource type value for checking if we can
preload the drawable
- fix typo

Change-Id: Idd64caf0fbe0f5cfd5ffe09343e84bafa9446ea5
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.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/DrawableContainer.java
458bf39e4cf9297d84a39413fcd2caa9fb81c006 26-Nov-2012 Romain Guy <romainguy@google.com> am 713bebda: am 6225b881: am 18bbcf7f: Merge "Copy missing state in DrawableContainer" into jb-mr1.1-dev

* commit '713bebdac508bb8e6fb0866f4cae873806dad459':
Copy missing state in DrawableContainer
fa9b396dbc58990c729fecabbad9e74257bef556 21-Nov-2012 Romain Guy <romainguy@google.com> Copy missing state in DrawableContainer

The copy constructor of DrawableContainerState was not properly
copying all the state. This change adds the missing two fields
that should be copied over.

Change-Id: Ic92ba17ccf8fb3c8cbb5ead18690287da21c48a4
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.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/DrawableContainer.java
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/DrawableContainer.java
5f49c3023a512efbef8bc9515d310c7a72be4af2 07-Sep-2012 Romain Guy <romainguy@google.com> The drawables cache strikes again
Bug #7117785

Draawables created from the ConstantState cache found in Resources must be
mutated before they can be safely modified by apps. Failure to do so results
in all drawables sharing the same constant state to be affected by the
modification.

In the case of the bugreport above, the status bar code plays tricks with
a background drawable and modifies its color to implement a fade in/out
effect. This drawable comes from a cached resource (color 0x0) and the
modifications made by the status bar apply to other clients of this drawable,
most notably the recents panel.

This change fixes several things:
- Simplifies colors caching by removing the assetCookie from the key. This
should result in better reuse of cached drawables
- Makes View.setBackgroundColor() honor the mutate() contract
- Ensure StateListDrawable properly mutates its children before modifying
them
- Optimize Bitmap/ColorDrawable to mark them mutated when they are not
created from an existing ConstantSate. The same optimization should be
applied to other drawables in the future

Change-Id: I54adb5d5b914c7d8930bf9b46f7e3f9dcbf4bcab
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.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/DrawableContainer.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/DrawableContainer.java
a0ac98bd5cb550319221c1d60277e07a9d2e3a91 25-Jun-2011 Jeff Sharkey <jsharkey@android.com> Finish any enter animation when jumping to state.

When jumpDrawablesToCurrentState(), finish any alpha animation in
progress. Fixes bug where drawable with enter fade would remain
transparent until next state change.

Change-Id: Ia087f935566a8d78e0efdcb0a1a2f791db05c70e
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
6efd2bad954e0e5bd74916a32f036a0f149dcd4d 13-Jan-2011 Christopher Lais <chris+android@zenthought.org> 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
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.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/DrawableContainer.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/DrawableContainer.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/DrawableContainer.java
a41581ed4033004c73115113f45b9844e9b0210f 17-Sep-2009 Romain Guy <romainguy@android.com> Add StateListDrawable's dither flag to the constant state.

Change-Id: Ie377bfe3dfb83c33df3c0cc5a02810332a60a322
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.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/DrawableContainer.java
211db4a2874f1a2d0e7a8cb8d33e81fa08801763 11-Sep-2009 Mike Reed <reed@google.com> change default for dither to true
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
1010ac9b7c52b1e2a64e8e1f4dcdb4d79f4d32cc 11-Aug-2009 Romain Guy <romainguy@android.com> Fix possible NPE when mutating a DrawableContainer
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
5140141c2637b89ad0d86c3b715459a1e7b92729 22-Jul-2009 Romain Guy <romainguy@android.com> DrawableContainer was not respecting the value returned by Drawable.getPadding(Rect).

Before this change, DrawableContainer would always return true from getPadding(Rect)
even if all of its children were returning false from getPadding(Rect). This change
modifies this behavior to respect getPadding(Rect): mConstantPadding is kept null
when getPadding(Rect) returns false for all of the children and a flag is set
to avoid recomputing that value every time getConstantPadding() is invoked.
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
6be507cc66863a08f08d6c0675e5bc11e5a45d32 30-Jun-2009 Phil Dubach <phillipd@google.com> Fix NullPointerException in DrawableContainer.mutate()

DrawableContainerState.mDrawables is an array which may be only partially
filled, as can be seen in the constructor and the addChild() method.

DrawableContainer.mutate() wrongly assumed that the array does not contain
null references.
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
83b2107c4d2f07f46b6ae663115421749486f8b1 12-May-2009 Romain Guy <romainguy@android.com> Fixes #1846038. DrawableContainer was wrongly returning its opacity by ignoring the visibility of the currently selected layer. This change simply reports a TRANSPARENT opacity if there is no currently selected layer of if the selected layer is not visible. Otherwise it reports the opacity computed by the state class.
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.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/DrawableContainer.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/DrawableContainer.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/DrawableContainer.java
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java