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

Commit 924ef750 authored by Jorim Jaggi's avatar Jorim Jaggi
Browse files

Temporary bubble hack for new insets

Offset the view instead of using setForwardedInsets which doesn't
work anymore with the new insets system. That should resolve
itself automatically once we migrate Bubbles off VD.

Also, make sure we don't consider a window to be animating when
being insets controlled since it breaks syncInputWindows, for
example.

Bug: 111084606
Test: Open Bubbles test app, open IME.
Change-Id: Idb4d32a77e96924e106688c4e11c63e8cff3ae1f
parent 069dc427
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -20,6 +20,8 @@ import static android.content.Intent.FLAG_ACTIVITY_MULTIPLE_TASK;
import static android.content.Intent.FLAG_ACTIVITY_NEW_DOCUMENT;
import static android.view.Display.INVALID_DISPLAY;

import static android.view.ViewRootImpl.NEW_INSETS_MODE_FULL;
import static android.view.ViewRootImpl.sNewInsetsMode;
import static com.android.systemui.bubbles.BubbleDebugConfig.DEBUG_BUBBLE_EXPANDED_VIEW;
import static com.android.systemui.bubbles.BubbleDebugConfig.TAG_BUBBLES;
import static com.android.systemui.bubbles.BubbleDebugConfig.TAG_WITH_CLASS_NAME;
@@ -338,9 +340,15 @@ public class BubbleExpandedView extends LinearLayout implements View.OnClickList
                            ? insets.getDisplayCutout().getSafeInsetBottom()
                            : 0);
            final int insetsBottom = Math.max(activityViewBottom - keyboardTop, 0);

            // TODO: Temporary hack to offset the view until we can properly inset Bubbles again.
            if (sNewInsetsMode == NEW_INSETS_MODE_FULL) {
                mStackView.animate().translationY(-insetsBottom);
            } else {
                mActivityView.setForwardedInsets(Insets.of(0, 0, 0, insetsBottom));
            }
        }
    }

    void setStackView(BubbleStackView stackView) {
        mStackView = stackView;
+1 −1
Original line number Diff line number Diff line
@@ -758,7 +758,7 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
     * {@see AnimationFlags#PARENTS}
     * {@see AnimationFlags#CHILDREN}
     */
    final boolean isAnimating(int flags) {
    boolean isAnimating(int flags) {
        if (mSurfaceAnimator.isAnimating()) {
            return true;
        }
+12 −0
Original line number Diff line number Diff line
@@ -4970,6 +4970,18 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
        mWindowFrames.updateLastInsetValues();
    }

    @Override
    boolean isAnimating(int flags) {

        // If we are an inset provider, all our animations are driven by the inset client, so we
        // aren't really animating.
        // TODO: Replace this with a proper animation type system.
        if (mControllableInsetProvider != null) {
            return false;
        }
        return super.isAnimating(flags);
    }

    void startAnimation(Animation anim) {

        // If we are an inset provider, all our animations are driven by the inset client.