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

Commit 7d8db99f authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Make sure the color background is only cleared once" into sc-v2-dev am:...

Merge "Make sure the color background is only cleared once" into sc-v2-dev am: f68d0b92 am: b69f7cdc

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16006492

Change-Id: I47e8065da76c4101638c90ad196caea9d88bc46f
parents 5a825654 b69f7cdc
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -111,6 +111,7 @@ import java.util.ArrayList;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.BiFunction;
import java.util.function.Consumer;
import java.util.function.Function;
@@ -2835,8 +2836,18 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
                taskDisplayArea.setBackgroundColor(backgroundColor);
            }

            // Atomic counter to make sure the clearColor callback is only called one.
            // It will be called twice in the case we cancel the animation without restart
            // (in that case it will run as the cancel and finished callbacks).
            final AtomicInteger callbackCounter = new AtomicInteger(0);
            final Runnable clearBackgroundColorHandler = () -> {
                if (callbackCounter.getAndIncrement() == 0) {
                    taskDisplayArea.clearBackgroundColor();
                }
            };

            final Runnable cleanUpCallback = isSettingBackgroundColor
                    ? taskDisplayArea::clearBackgroundColor : () -> {};
                    ? clearBackgroundColorHandler : () -> {};

            startAnimation(getPendingTransaction(), adapter, !isVisible(),
                    ANIMATION_TYPE_APP_TRANSITION, (type, anim) -> cleanUpCallback.run(),