[RESTRICT AUTOMERGE] Ignore taskbar system gesture inset on Launcher
- Also have Taskbar report itself as MANDATORY_GESTURE_INSETS Test: Able to drag bottom workspace items Bug: 205493938 Change-Id: I014991b1cc6dbd66fa275a7766304ebd92171328
This commit is contained in:
parent
bc46f69aff
commit
864f8d45b8
|
@ -15,6 +15,7 @@
|
|||
*/
|
||||
package com.android.launcher3.taskbar;
|
||||
|
||||
import static android.view.InsetsState.ITYPE_BOTTOM_MANDATORY_GESTURES;
|
||||
import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
|
||||
import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS;
|
||||
import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR_PANEL;
|
||||
|
@ -195,7 +196,8 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ
|
|||
WindowManagerWrapper wmWrapper = WindowManagerWrapper.getInstance();
|
||||
wmWrapper.setProvidesInsetsTypes(
|
||||
mWindowLayoutParams,
|
||||
new int[] { ITYPE_EXTRA_NAVIGATION_BAR, ITYPE_BOTTOM_TAPPABLE_ELEMENT }
|
||||
new int[] { ITYPE_EXTRA_NAVIGATION_BAR, ITYPE_BOTTOM_TAPPABLE_ELEMENT,
|
||||
ITYPE_BOTTOM_MANDATORY_GESTURES }
|
||||
);
|
||||
// Adjust the frame by the rounded corners (ie. leaving just the bar as the inset) when
|
||||
// the IME is showing
|
||||
|
|
|
@ -40,6 +40,7 @@ import android.view.accessibility.AccessibilityEvent;
|
|||
import android.widget.FrameLayout;
|
||||
|
||||
import com.android.launcher3.AbstractFloatingView;
|
||||
import com.android.launcher3.DeviceProfile;
|
||||
import com.android.launcher3.InsettableFrameLayout;
|
||||
import com.android.launcher3.Utilities;
|
||||
import com.android.launcher3.util.MultiValueAlpha;
|
||||
|
@ -545,8 +546,14 @@ public abstract class BaseDragLayer<T extends Context & ActivityContext>
|
|||
public WindowInsets dispatchApplyWindowInsets(WindowInsets insets) {
|
||||
if (Utilities.ATLEAST_Q) {
|
||||
Insets gestureInsets = insets.getMandatorySystemGestureInsets();
|
||||
int gestureInsetBottom = gestureInsets.bottom;
|
||||
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, gestureInsets.bottom);
|
||||
gestureInsets.right, gestureInsetBottom);
|
||||
}
|
||||
return super.dispatchApplyWindowInsets(insets);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue