Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1148bc81 authored by Alan Viverette's avatar Alan Viverette Committed by android-build-merger
Browse files

Merge "Refresh opacity and statefulness on tint change" into oc-dev

am: 265dbc1f

Change-Id: Ie5a0ab7ff9f107ef386d9d5dae6b30bfbd93b6f6
parents a3c05485 265dbc1f
Loading
Loading
Loading
Loading
+22 −3
Original line number Diff line number Diff line
@@ -88,7 +88,9 @@ public class DrawableContainer extends Drawable implements Drawable.Callback {
    }

    @Override
    public @Config int getChangingConfigurations() {
    public
    @Config
    int getChangingConfigurations() {
        return super.getChangingConfigurations()
                | mDrawableContainerState.getChangingConfigurations();
    }
@@ -210,6 +212,7 @@ public class DrawableContainer extends Drawable implements Drawable.Callback {
    /**
     * Change the global fade duration when a new drawable is entering
     * the scene.
     *
     * @param ms The amount of time to fade in milliseconds.
     */
    public void setEnterFadeDuration(int ms) {
@@ -219,6 +222,7 @@ public class DrawableContainer extends Drawable implements Drawable.Callback {
    /**
     * Change the global fade duration when a new drawable is leaving
     * the scene.
     *
     * @param ms The amount of time to fade in milliseconds.
     */
    public void setExitFadeDuration(int ms) {
@@ -375,6 +379,13 @@ public class DrawableContainer extends Drawable implements Drawable.Callback {

    @Override
    public void invalidateDrawable(@NonNull Drawable who) {
        // This may have been called as the result of a tint changing, in
        // which case we may need to refresh the cached statefulness or
        // opacity.
        if (mDrawableContainerState != null) {
            mDrawableContainerState.invalidateCache();
        }

        if (who == mCurrDrawable && getCallback() != null) {
            getCallback().invalidateDrawable(this);
        }
@@ -822,8 +833,8 @@ public class DrawableContainer extends Drawable implements Drawable.Callback {
            mDrawables[pos] = dr;
            mNumChildren++;
            mChildrenChangingConfigurations |= dr.getChangingConfigurations();
            mCheckedStateful = false;
            mCheckedOpacity = false;

            invalidateCache();

            mConstantPadding = null;
            mCheckedPadding = false;
@@ -833,6 +844,14 @@ public class DrawableContainer extends Drawable implements Drawable.Callback {
            return pos;
        }

        /**
         * Invalidates the cached opacity and statefulness.
         */
        void invalidateCache() {
            mCheckedOpacity = false;
            mCheckedStateful = false;
        }

        final int getCapacity() {
            return mDrawables.length;
        }
+9 −1
Original line number Diff line number Diff line
@@ -986,6 +986,11 @@ public class LayerDrawable extends Drawable implements Drawable.Callback {
        if (mSuspendChildInvalidation) {
            mChildRequestedInvalidation = true;
        } else {
            // This may have been called as the result of a tint changing, in
            // which case we may need to refresh the cached statefulness or
            // opacity.
            mLayerState.invalidateCache();

            invalidateSelf();
        }
    }
@@ -2121,7 +2126,10 @@ public class LayerDrawable extends Drawable implements Drawable.Callback {
            return true;
        }

        public void invalidateCache() {
        /**
         * Invalidates the cached opacity and statefulness.
         */
        void invalidateCache() {
            mCheckedOpacity = false;
            mCheckedStateful = false;
        }