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

Commit c15af2cb authored by Tiger Huang's avatar Tiger Huang Committed by Android (Google) Code Review
Browse files

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

parents 1cc6eceb f71bbcf9
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());
    }