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

Commit 890f9946 authored by Tiger Huang's avatar Tiger Huang Committed by Automerger Merge Worker
Browse files

Merge "Don't set animation pending when gaining fake control" into tm-dev am:...

Merge "Don't set animation pending when gaining fake control" into tm-dev am: c15af2cb am: 7da22313 am: f1df252d

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



Change-Id: I310785022fc861d3dd591ddacd649acb75f121fe
Ignore-AOSP-First: this is an automerge
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 6adb1b1e f1df252d
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import static android.view.InsetsSourceConsumerProto.IS_REQUESTED_VISIBLE;
import static android.view.InsetsSourceConsumerProto.PENDING_FRAME;
import static android.view.InsetsSourceConsumerProto.PENDING_VISIBLE_FRAME;
import static android.view.InsetsSourceConsumerProto.SOURCE_CONTROL;
import static android.view.InsetsSourceControl.INVALID_HINTS;
import static android.view.InsetsState.ITYPE_IME;
import static android.view.InsetsState.getDefaultVisibility;
import static android.view.InsetsState.toPublicType;
@@ -163,8 +164,10 @@ public class InsetsSourceConsumer {
            // We are gaining control, and need to run an animation since previous state
            // didn't match
            final boolean requestedVisible = isRequestedVisibleAwaitingControl();
            final boolean needAnimation = requestedVisible != mState.getSource(mType).isVisible();
            if (control.getLeash() != null && (needAnimation || mIsAnimationPending)) {
            final boolean fakeControl = INVALID_HINTS.equals(control.getInsetsHint());
            final boolean needsAnimation = requestedVisible != mState.getSource(mType).isVisible()
                    && !fakeControl;
            if (control.getLeash() != null && (needsAnimation || mIsAnimationPending)) {
                if (DEBUG) Log.d(TAG, String.format("Gaining control in %s, requestedVisible: %b",
                        mController.getHost().getRootViewTitle(), requestedVisible));
                if (requestedVisible) {
@@ -174,7 +177,7 @@ public class InsetsSourceConsumer {
                }
                mIsAnimationPending = false;
            } else {
                if (needAnimation) {
                if (needsAnimation) {
                    // We need animation but we haven't had a leash yet. Set this flag that when we
                    // get the leash we can play the deferred animation.
                    mIsAnimationPending = true;
+2 −0
Original line number Diff line number Diff line
@@ -39,6 +39,8 @@ import java.util.function.Consumer;
 */
public class InsetsSourceControl implements Parcelable {

    public static final Insets INVALID_HINTS = Insets.of(-1, -1, -1, -1);

    private final @InternalInsetsType int mType;
    private final @Nullable SurfaceControl mLeash;
    private final Point mSurfacePosition;
+1 −1
Original line number Diff line number Diff line
@@ -123,7 +123,7 @@ abstract class InsetsSourceProvider {
        mDisplayContent = displayContent;
        mStateController = stateController;
        mFakeControl = new InsetsSourceControl(
                source.getType(), null /* leash */, new Point(), Insets.NONE);
                source.getType(), null /* leash */, new Point(), InsetsSourceControl.INVALID_HINTS);
        mControllable = InsetsPolicy.isInsetsTypeControllable(source.getType());
    }