Loading graphics/java/android/graphics/drawable/LayerDrawable.java +41 −1 Original line number Diff line number Diff line Loading @@ -104,6 +104,9 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { private Rect mHotspotBounds; private boolean mMutated; private boolean mSuspendChildInvalidation; private boolean mChildRequestedInvalidation; /** * Creates a new layer drawable with the list of specified layers. * Loading Loading @@ -944,10 +947,38 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { return mLayerState.mPaddingMode; } /** * Temporarily suspends child invalidation. * * @see #resumeChildInvalidation() */ private void suspendChildInvalidation() { mSuspendChildInvalidation = true; } /** * Resumes child invalidation after suspension, immediately performing an * invalidation if one was requested by a child during suspension. * * @see #suspendChildInvalidation() */ private void resumeChildInvalidation() { mSuspendChildInvalidation = false; if (mChildRequestedInvalidation) { mChildRequestedInvalidation = false; invalidateSelf(); } } @Override public void invalidateDrawable(@NonNull Drawable who) { if (mSuspendChildInvalidation) { mChildRequestedInvalidation = true; } else { invalidateSelf(); } } @Override public void scheduleDrawable(@NonNull Drawable who, @NonNull Runnable what, long when) { Loading Loading @@ -1482,6 +1513,15 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { } private void updateLayerBounds(Rect bounds) { try { suspendChildInvalidation(); updateLayerBoundsInternal(bounds); } finally { resumeChildInvalidation(); } } private void updateLayerBoundsInternal(Rect bounds) { int paddingL = 0; int paddingT = 0; int paddingR = 0; Loading Loading
graphics/java/android/graphics/drawable/LayerDrawable.java +41 −1 Original line number Diff line number Diff line Loading @@ -104,6 +104,9 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { private Rect mHotspotBounds; private boolean mMutated; private boolean mSuspendChildInvalidation; private boolean mChildRequestedInvalidation; /** * Creates a new layer drawable with the list of specified layers. * Loading Loading @@ -944,10 +947,38 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { return mLayerState.mPaddingMode; } /** * Temporarily suspends child invalidation. * * @see #resumeChildInvalidation() */ private void suspendChildInvalidation() { mSuspendChildInvalidation = true; } /** * Resumes child invalidation after suspension, immediately performing an * invalidation if one was requested by a child during suspension. * * @see #suspendChildInvalidation() */ private void resumeChildInvalidation() { mSuspendChildInvalidation = false; if (mChildRequestedInvalidation) { mChildRequestedInvalidation = false; invalidateSelf(); } } @Override public void invalidateDrawable(@NonNull Drawable who) { if (mSuspendChildInvalidation) { mChildRequestedInvalidation = true; } else { invalidateSelf(); } } @Override public void scheduleDrawable(@NonNull Drawable who, @NonNull Runnable what, long when) { Loading Loading @@ -1482,6 +1513,15 @@ public class LayerDrawable extends Drawable implements Drawable.Callback { } private void updateLayerBounds(Rect bounds) { try { suspendChildInvalidation(); updateLayerBoundsInternal(bounds); } finally { resumeChildInvalidation(); } } private void updateLayerBoundsInternal(Rect bounds) { int paddingL = 0; int paddingT = 0; int paddingR = 0; Loading