History log of /frameworks/base/graphics/java/android/graphics/drawable/DrawableContainer.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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