diff --git a/graphics/java/android/graphics/drawable/DrawableContainer.java b/graphics/java/android/graphics/drawable/DrawableContainer.java index abdc2b91c2d9d..d88aee93fae23 100644 --- a/graphics/java/android/graphics/drawable/DrawableContainer.java +++ b/graphics/java/android/graphics/drawable/DrawableContainer.java @@ -1128,8 +1128,6 @@ public class DrawableContainer extends Drawable implements Drawable.Callback { createAllFutures(); - mCheckedOpacity = true; - final int N = mNumChildren; final Drawable[] drawables = mDrawables; int op = (N > 0) ? drawables[0].getOpacity() : PixelFormat.TRANSPARENT; @@ -1138,6 +1136,7 @@ public class DrawableContainer extends Drawable implements Drawable.Callback { } mOpacity = op; + mCheckedOpacity = true; return op; } @@ -1148,19 +1147,19 @@ public class DrawableContainer extends Drawable implements Drawable.Callback { createAllFutures(); - mCheckedStateful = true; - final int N = mNumChildren; final Drawable[] drawables = mDrawables; + boolean isStateful = false; for (int i = 0; i < N; i++) { if (drawables[i].isStateful()) { - mStateful = true; - return true; + isStateful = true; + break; } } - mStateful = false; - return false; + mStateful = isStateful; + mCheckedStateful = true; + return isStateful; } public void growArray(int oldSize, int newSize) { diff --git a/graphics/java/android/graphics/drawable/LayerDrawable.java b/graphics/java/android/graphics/drawable/LayerDrawable.java index e09fea5af3ea3..355e45e70a6b7 100644 --- a/graphics/java/android/graphics/drawable/LayerDrawable.java +++ b/graphics/java/android/graphics/drawable/LayerDrawable.java @@ -137,7 +137,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { layers[i].setCallback(this); mLayerState.mChildrenChangingConfigurations |= layers[i].getChangingConfigurations(); } - mLayerState.mNum = length; + mLayerState.mNumChildren = length; mLayerState.mChildren = r; ensurePadding(); @@ -154,7 +154,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { */ LayerDrawable(@Nullable LayerState state, @Nullable Resources res) { mLayerState = createConstantState(state, res); - if (mLayerState.mNum > 0) { + if (mLayerState.mNumChildren > 0) { ensurePadding(); refreshPadding(); } @@ -185,7 +185,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { a.recycle(); final ChildDrawable[] array = state.mChildren; - final int N = state.mNum; + final int N = state.mNumChildren; for (int i = 0; i < N; i++) { final ChildDrawable layer = array[i]; layer.setDensity(density); @@ -217,7 +217,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { } final ChildDrawable[] array = state.mChildren; - final int N = state.mNum; + final int N = state.mNumChildren; for (int i = 0; i < N; i++) { final ChildDrawable layer = array[i]; layer.setDensity(density); @@ -416,7 +416,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { } final ChildDrawable[] layers = mLayerState.mChildren; - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { if (layers[i].mDrawable.isProjected()) { return true; @@ -435,7 +435,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { int addLayer(@NonNull ChildDrawable layer) { final LayerState st = mLayerState; final int N = st.mChildren != null ? st.mChildren.length : 0; - final int i = st.mNum; + final int i = st.mNumChildren; if (i >= N) { final ChildDrawable[] nu = new ChildDrawable[N + 10]; if (i > 0) { @@ -446,7 +446,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { } st.mChildren[i] = layer; - st.mNum++; + st.mNumChildren++; st.invalidateCache(); return i; } @@ -514,7 +514,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { */ public Drawable findDrawableByLayerId(int id) { final ChildDrawable[] layers = mLayerState.mChildren; - for (int i = mLayerState.mNum - 1; i >= 0; i--) { + for (int i = mLayerState.mNumChildren - 1; i >= 0; i--) { if (layers[i].mId == id) { return layers[i].mDrawable; } @@ -549,7 +549,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { * @attr ref android.R.styleable#LayerDrawableItem_id */ public int getId(int index) { - if (index >= mLayerState.mNum) { + if (index >= mLayerState.mNumChildren) { throw new IndexOutOfBoundsException(); } return mLayerState.mChildren[index].mId; @@ -561,7 +561,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { * @return The number of layers. */ public int getNumberOfLayers() { - return mLayerState.mNum; + return mLayerState.mNumChildren; } /** @@ -593,7 +593,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { */ public int findIndexByLayerId(int id) { final ChildDrawable[] layers = mLayerState.mChildren; - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { final ChildDrawable childDrawable = layers[i]; if (childDrawable.mId == id) { @@ -615,7 +615,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { * @attr ref android.R.styleable#LayerDrawableItem_drawable */ public void setDrawable(int index, Drawable drawable) { - if (index >= mLayerState.mNum) { + if (index >= mLayerState.mNumChildren) { throw new IndexOutOfBoundsException(); } @@ -651,7 +651,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { * @attr ref android.R.styleable#LayerDrawableItem_drawable */ public Drawable getDrawable(int index) { - if (index >= mLayerState.mNum) { + if (index >= mLayerState.mNumChildren) { throw new IndexOutOfBoundsException(); } return mLayerState.mChildren[index].mDrawable; @@ -1003,7 +1003,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { @Override public void draw(Canvas canvas) { final ChildDrawable[] array = mLayerState.mChildren; - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { final Drawable dr = array[i].mDrawable; if (dr != null) { @@ -1230,7 +1230,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { // Add all the padding. final ChildDrawable[] array = mLayerState.mChildren; - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { refreshChildPadding(i, array[i]); @@ -1249,7 +1249,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { // Take the max padding. final ChildDrawable[] array = mLayerState.mChildren; - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { refreshChildPadding(i, array[i]); @@ -1268,7 +1268,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { @Override public void getOutline(@NonNull Outline outline) { final ChildDrawable[] array = mLayerState.mChildren; - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { final Drawable dr = array[i].mDrawable; if (dr != null) { @@ -1283,7 +1283,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { @Override public void setHotspot(float x, float y) { final ChildDrawable[] array = mLayerState.mChildren; - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { final Drawable dr = array[i].mDrawable; if (dr != null) { @@ -1295,7 +1295,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { @Override public void setHotspotBounds(int left, int top, int right, int bottom) { final ChildDrawable[] array = mLayerState.mChildren; - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { final Drawable dr = array[i].mDrawable; if (dr != null) { @@ -1323,7 +1323,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { public boolean setVisible(boolean visible, boolean restart) { final boolean changed = super.setVisible(visible, restart); final ChildDrawable[] array = mLayerState.mChildren; - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { final Drawable dr = array[i].mDrawable; if (dr != null) { @@ -1337,7 +1337,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { @Override public void setDither(boolean dither) { final ChildDrawable[] array = mLayerState.mChildren; - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { final Drawable dr = array[i].mDrawable; if (dr != null) { @@ -1349,7 +1349,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { @Override public void setAlpha(int alpha) { final ChildDrawable[] array = mLayerState.mChildren; - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { final Drawable dr = array[i].mDrawable; if (dr != null) { @@ -1371,7 +1371,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { @Override public void setColorFilter(ColorFilter colorFilter) { final ChildDrawable[] array = mLayerState.mChildren; - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { final Drawable dr = array[i].mDrawable; if (dr != null) { @@ -1383,7 +1383,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { @Override public void setTintList(ColorStateList tint) { final ChildDrawable[] array = mLayerState.mChildren; - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { final Drawable dr = array[i].mDrawable; if (dr != null) { @@ -1395,7 +1395,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { @Override public void setTintMode(Mode tintMode) { final ChildDrawable[] array = mLayerState.mChildren; - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { final Drawable dr = array[i].mDrawable; if (dr != null) { @@ -1406,7 +1406,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { private Drawable getFirstNonNullDrawable() { final ChildDrawable[] array = mLayerState.mChildren; - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { final Drawable dr = array[i].mDrawable; if (dr != null) { @@ -1444,7 +1444,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { mLayerState.mAutoMirrored = mirrored; final ChildDrawable[] array = mLayerState.mChildren; - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { final Drawable dr = array[i].mDrawable; if (dr != null) { @@ -1461,7 +1461,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { @Override public void jumpToCurrentState() { final ChildDrawable[] array = mLayerState.mChildren; - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { final Drawable dr = array[i].mDrawable; if (dr != null) { @@ -1480,7 +1480,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { boolean changed = false; final ChildDrawable[] array = mLayerState.mChildren; - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { final Drawable dr = array[i].mDrawable; if (dr != null && dr.isStateful() && dr.setState(state)) { @@ -1501,7 +1501,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { boolean changed = false; final ChildDrawable[] array = mLayerState.mChildren; - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { final Drawable dr = array[i].mDrawable; if (dr != null && dr.setLevel(level)) { @@ -1543,7 +1543,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { final boolean isPaddingNested = mLayerState.mPaddingMode == PADDING_MODE_NEST; final ChildDrawable[] array = mLayerState.mChildren; - for (int i = 0, count = mLayerState.mNum; i < count; i++) { + for (int i = 0, count = mLayerState.mNumChildren; i < count; i++) { final ChildDrawable r = array[i]; final Drawable d = r.mDrawable; if (d == null) { @@ -1642,7 +1642,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { final boolean nest = mLayerState.mPaddingMode == PADDING_MODE_NEST; final boolean isLayoutRtl = getLayoutDirection() == LayoutDirection.RTL; final ChildDrawable[] array = mLayerState.mChildren; - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { final ChildDrawable r = array[i]; if (r.mDrawable == null) { @@ -1684,7 +1684,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { final boolean nest = mLayerState.mPaddingMode == PADDING_MODE_NEST; final ChildDrawable[] array = mLayerState.mChildren; - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { final ChildDrawable r = array[i]; if (r.mDrawable == null) { @@ -1733,7 +1733,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { * Ensures the child padding caches are large enough. */ void ensurePadding() { - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; if (mPaddingL != null && mPaddingL.length >= N) { return; } @@ -1745,7 +1745,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { } void refreshPadding() { - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; final ChildDrawable[] array = mLayerState.mChildren; for (int i = 0; i < N; i++) { refreshChildPadding(i, array[i]); @@ -1766,7 +1766,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { if (!mMutated && super.mutate() == this) { mLayerState = createConstantState(mLayerState, null); final ChildDrawable[] array = mLayerState.mChildren; - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { final Drawable dr = array[i].mDrawable; if (dr != null) { @@ -1785,7 +1785,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { super.clearMutated(); final ChildDrawable[] array = mLayerState.mChildren; - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { final Drawable dr = array[i].mDrawable; if (dr != null) { @@ -1800,7 +1800,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { boolean changed = false; final ChildDrawable[] array = mLayerState.mChildren; - final int N = mLayerState.mNum; + final int N = mLayerState.mNumChildren; for (int i = 0; i < N; i++) { final Drawable dr = array[i].mDrawable; if (dr != null) { @@ -1905,7 +1905,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { static class LayerState extends ConstantState { private int[] mThemeAttrs; - int mNum; + int mNumChildren; ChildDrawable[] mChildren; int mDensity; @@ -1922,10 +1922,10 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { @Config int mChangingConfigurations; @Config int mChildrenChangingConfigurations; - private boolean mHaveOpacity; + private boolean mCheckedOpacity; private int mOpacity; - private boolean mHaveIsStateful; + private boolean mCheckedStateful; private boolean mIsStateful; private boolean mAutoMirrored = false; @@ -1938,9 +1938,9 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { if (orig != null) { final ChildDrawable[] origChildDrawable = orig.mChildren; - final int N = orig.mNum; + final int N = orig.mNumChildren; - mNum = N; + mNumChildren = N; mChildren = new ChildDrawable[N]; mChangingConfigurations = orig.mChangingConfigurations; @@ -1951,9 +1951,9 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { mChildren[i] = new ChildDrawable(or, owner, res); } - mHaveOpacity = orig.mHaveOpacity; + mCheckedOpacity = orig.mCheckedOpacity; mOpacity = orig.mOpacity; - mHaveIsStateful = orig.mHaveIsStateful; + mCheckedStateful = orig.mCheckedStateful; mIsStateful = orig.mIsStateful; mAutoMirrored = orig.mAutoMirrored; mPaddingMode = orig.mPaddingMode; @@ -1970,7 +1970,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { applyDensityScaling(orig.mDensity, mDensity); } } else { - mNum = 0; + mNumChildren = 0; mChildren = null; } } @@ -2022,7 +2022,7 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { } final ChildDrawable[] array = mChildren; - final int N = mNum; + final int N = mNumChildren; for (int i = 0; i < N; i++) { final ChildDrawable layer = array[i]; if (layer.canApplyTheme()) { @@ -2050,12 +2050,12 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { } public final int getOpacity() { - if (mHaveOpacity) { + if (mCheckedOpacity) { return mOpacity; } + final int N = mNumChildren; final ChildDrawable[] array = mChildren; - final int N = mNum; // Seek to the first non-null drawable. int firstIndex = -1; @@ -2082,17 +2082,17 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { } mOpacity = op; - mHaveOpacity = true; + mCheckedOpacity = true; return op; } public final boolean isStateful() { - if (mHaveIsStateful) { + if (mCheckedStateful) { return mIsStateful; } + final int N = mNumChildren; final ChildDrawable[] array = mChildren; - final int N = mNum; boolean isStateful = false; for (int i = 0; i < N; i++) { final Drawable dr = array[i].mDrawable; @@ -2103,13 +2103,13 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { } mIsStateful = isStateful; - mHaveIsStateful = true; + mCheckedStateful = true; return isStateful; } public final boolean canConstantState() { final ChildDrawable[] array = mChildren; - final int N = mNum; + final int N = mNumChildren; for (int i = 0; i < N; i++) { final Drawable dr = array[i].mDrawable; if (dr != null && dr.getConstantState() == null) { @@ -2122,8 +2122,8 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { } public void invalidateCache() { - mHaveOpacity = false; - mHaveIsStateful = false; + mCheckedOpacity = false; + mCheckedStateful = false; } } diff --git a/graphics/java/android/graphics/drawable/RippleDrawable.java b/graphics/java/android/graphics/drawable/RippleDrawable.java index caf2e7a4cb4cb..f83c160b6c20a 100644 --- a/graphics/java/android/graphics/drawable/RippleDrawable.java +++ b/graphics/java/android/graphics/drawable/RippleDrawable.java @@ -667,7 +667,7 @@ public class RippleDrawable extends LayerDrawable { public void getOutline(@NonNull Outline outline) { final LayerState state = mLayerState; final ChildDrawable[] children = state.mChildren; - final int N = state.mNum; + final int N = state.mNumChildren; for (int i = 0; i < N; i++) { if (children[i].mId != R.id.mask) { children[i].mDrawable.getOutline(outline); @@ -815,7 +815,7 @@ public class RippleDrawable extends LayerDrawable { // Check for non-opaque, non-mask content. final ChildDrawable[] array = mLayerState.mChildren; - final int count = mLayerState.mNum; + final int count = mLayerState.mNumChildren; for (int i = 0; i < count; i++) { if (array[i].mDrawable.getOpacity() != PixelFormat.OPAQUE) { return MASK_CONTENT; @@ -829,7 +829,7 @@ public class RippleDrawable extends LayerDrawable { private void drawContent(Canvas canvas) { // Draw everything except the mask. final ChildDrawable[] array = mLayerState.mChildren; - final int count = mLayerState.mNum; + final int count = mLayerState.mNumChildren; for (int i = 0; i < count; i++) { if (array[i].mId != R.id.mask) { array[i].mDrawable.draw(canvas); @@ -1045,7 +1045,7 @@ public class RippleDrawable extends LayerDrawable { mLayerState = mState; mDensity = Drawable.resolveDensity(res, mState.mDensity); - if (mState.mNum > 0) { + if (mState.mNumChildren > 0) { ensurePadding(); refreshPadding(); }