Merge \"Mutate the drawable if a valid state change happen\" into nyc-mr1-dev
am: 919e982c3f
Change-Id: I2fcc3a468d1249bc4919d9e55eee52663132e5be
This commit is contained in:
@@ -243,9 +243,7 @@ public class VectorDrawable extends Drawable {
|
||||
* constructors to set the state and initialize local properties.
|
||||
*/
|
||||
private VectorDrawable(@NonNull VectorDrawableState state, @Nullable Resources res) {
|
||||
// Constant state sharing is disabled until we fix onStateChanged()
|
||||
// affecting the shared bitmap.
|
||||
mVectorState = new VectorDrawableState(state);
|
||||
mVectorState = state;
|
||||
updateLocalState(res);
|
||||
}
|
||||
|
||||
@@ -391,6 +389,11 @@ public class VectorDrawable extends Drawable {
|
||||
protected boolean onStateChange(int[] stateSet) {
|
||||
boolean changed = false;
|
||||
|
||||
// When the VD is stateful, we need to mutate the drawable such that we don't share the
|
||||
// cache bitmap with others. Such that the state change only affect this new cached bitmap.
|
||||
if (isStateful()) {
|
||||
mutate();
|
||||
}
|
||||
final VectorDrawableState state = mVectorState;
|
||||
if (state.onStateChange(stateSet)) {
|
||||
changed = true;
|
||||
|
||||
Reference in New Issue
Block a user