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

Commit 2b561f1c authored by Alan Viverette's avatar Alan Viverette
Browse files

Prevent callbacks during DrawableContainer child initialization

Bug: 28900939
Change-Id: I9c6c8af1665c2dc0bfa8bc8fc773c81e14f6aab1
parent c396f0f7
Loading
Loading
Loading
Loading
+35 −25
Original line number Diff line number Diff line
@@ -500,6 +500,13 @@ public class DrawableContainer extends Drawable implements Drawable.Callback {
     * @param d The drawable to initialize.
     */
    private void initializeDrawableForDisplay(Drawable d) {
        // Temporary fix for suspending callbacks during initialization. We
        // don't want any of these setters causing an invalidate() since that
        // may call back into DrawableContainer.
        final Callback cb = d.getCallback();
        d.setCallback(null);

        try {
            if (mDrawableContainerState.mEnterFadeDuration <= 0 && mHasAlpha) {
                d.setAlpha(mAlpha);
            }
@@ -529,6 +536,9 @@ public class DrawableContainer extends Drawable implements Drawable.Callback {
                d.setHotspotBounds(hotspotBounds.left, hotspotBounds.top,
                        hotspotBounds.right, hotspotBounds.bottom);
            }
        } finally {
            d.setCallback(cb);
        }
    }

    void animate(boolean schedule) {