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

Commit 5e65adaf authored by Jeff Brown's avatar Jeff Brown Committed by Android (Google) Code Review
Browse files

Merge "Reset insets when inset computer is removed." into klp-dev

parents b9edb3a2 2e05ec32
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -18724,6 +18724,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
        final ViewTreeObserver.InternalInsetsInfo mGivenInternalInsets
                = new ViewTreeObserver.InternalInsetsInfo();
        /**
         * Set to true when mGivenInternalInsets is non-empty.
         */
        boolean mHasNonEmptyGivenInternalInsets;
        /**
         * All views in the window's hierarchy that serve as scroll containers,
         * used to determine if the window can be resized or must be panned
+6 −1
Original line number Diff line number Diff line
@@ -1348,8 +1348,12 @@ public final class ViewRootImpl implements ViewParent,
                || (lp.height == ViewGroup.LayoutParams.WRAP_CONTENT &&
                        frame.height() < desiredWindowHeight && frame.height() != mHeight));

        // Determine whether to compute insets.
        // If there are no inset listeners remaining then we may still need to compute
        // insets in case the old insets were non-empty and must be reset.
        final boolean computesInternalInsets =
                attachInfo.mTreeObserver.hasComputeInternalInsetsListeners();
                attachInfo.mTreeObserver.hasComputeInternalInsetsListeners()
                || attachInfo.mHasNonEmptyGivenInternalInsets;

        boolean insetsPending = false;
        int relayoutResult = 0;
@@ -1764,6 +1768,7 @@ public final class ViewRootImpl implements ViewParent,

            // Compute new insets in place.
            attachInfo.mTreeObserver.dispatchOnComputeInternalInsets(insets);
            attachInfo.mHasNonEmptyGivenInternalInsets = !insets.isEmpty();

            // Tell the window manager.
            if (insetsPending || !mLastGivenInsets.equals(insets)) {
+7 −0
Original line number Diff line number Diff line
@@ -241,6 +241,13 @@ public final class ViewTreeObserver {
            mTouchableInsets = TOUCHABLE_INSETS_FRAME;
        }

        boolean isEmpty() {
            return contentInsets.isEmpty()
                    && visibleInsets.isEmpty()
                    && touchableRegion.isEmpty()
                    && mTouchableInsets == TOUCHABLE_INSETS_FRAME;
        }

        @Override
        public int hashCode() {
            int result = contentInsets.hashCode();