Loading core/java/android/view/InsetsSourceConsumer.java +6 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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) { Loading @@ -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; Loading core/java/android/view/InsetsSourceControl.java +2 −0 Original line number Diff line number Diff line Loading @@ -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; Loading services/core/java/com/android/server/wm/InsetsSourceProvider.java +1 −1 Original line number Diff line number Diff line Loading @@ -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()); } Loading Loading
core/java/android/view/InsetsSourceConsumer.java +6 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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) { Loading @@ -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; Loading
core/java/android/view/InsetsSourceControl.java +2 −0 Original line number Diff line number Diff line Loading @@ -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; Loading
services/core/java/com/android/server/wm/InsetsSourceProvider.java +1 −1 Original line number Diff line number Diff line Loading @@ -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()); } Loading