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

Commit 8693d0a5 authored by Thales Lima's avatar Thales Lima Committed by Android (Google) Code Review
Browse files

Merge "Take account of IME insets" into tm-qpr-dev

parents fbd9ebd0 f0c633bc
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
@@ -22,13 +22,11 @@ import static android.view.MotionEvent.ACTION_UP;

import static com.android.launcher3.util.window.RefreshRateTracker.getSingleFrameMs;

import android.annotation.TargetApi;
import android.app.WallpaperManager;
import android.content.Context;
import android.graphics.Insets;
import android.graphics.Rect;
import android.graphics.RectF;
import android.os.Build;
import android.util.AttributeSet;
import android.util.Property;
import android.view.MotionEvent;
@@ -550,18 +548,24 @@ public abstract class BaseDragLayer<T extends Context & ActivityContext>
    }

    @Override
    @TargetApi(Build.VERSION_CODES.Q)
    public WindowInsets dispatchApplyWindowInsets(WindowInsets insets) {
        if (Utilities.ATLEAST_Q) {
            Insets gestureInsets = insets.getMandatorySystemGestureInsets();
            int gestureInsetBottom = gestureInsets.bottom;
            Insets imeInset = Utilities.ATLEAST_R
                    ? insets.getInsets(WindowInsets.Type.ime())
                    : Insets.NONE;
            DeviceProfile dp = mActivity.getDeviceProfile();
            if (dp.isTaskbarPresent) {
                // Ignore taskbar gesture insets to avoid interfering with TouchControllers.
                gestureInsetBottom = Math.max(0, gestureInsetBottom - dp.taskbarSize);
            }
            mSystemGestureRegion.set(gestureInsets.left, gestureInsets.top,
                    gestureInsets.right, gestureInsetBottom);
            mSystemGestureRegion.set(
                    Math.max(gestureInsets.left, imeInset.left),
                    Math.max(gestureInsets.top, imeInset.top),
                    Math.max(gestureInsets.right, imeInset.right),
                    Math.max(gestureInsetBottom, imeInset.bottom)
            );
        }
        return super.dispatchApplyWindowInsets(insets);
    }