[DO NOT MERGE] Force extra nav bar provide side gesture insets
This is a patch to fix the missing gesture insets issue when there's a
task bar and no navigation bar on the display. It will try to add the
gesture navigation insets when a window providing navigation bar insets
is added and there's no window with TYPE_NAVIGATION_BAR.
The logic will only be applied when the insets is not flexible. Due to
the removal of the old hard-coded logic in the later version, this patch
should not be merged into the next version.
Bug: 212643340
Test: android.widget.cts.SeekBarTest#testSetOnSeekBarChangeListener
Change-Id: I080df3547361aef1aa259dd2b3dc9bdb860a0193
(cherry picked from commit 1921f8c1dc)
Merged-In: I080df3547361aef1aa259dd2b3dc9bdb860a0193
This commit is contained in:
committed by
Android Build Coastguard Worker
parent
b1586e8e87
commit
fa9bbed946
@@ -188,6 +188,7 @@ public class DisplayPolicy {
|
||||
private static final String TAG = TAG_WITH_CLASS_NAME ? "DisplayPolicy" : TAG_WM;
|
||||
|
||||
private static final boolean ALTERNATE_CAR_MODE_NAV_SIZE = false;
|
||||
private static final boolean LEGACY_TASKBAR_GESTURE_INSETS = false;
|
||||
|
||||
// The panic gesture may become active only after the keyguard is dismissed and the immersive
|
||||
// app shows again. If that doesn't happen for 30s we drop the gesture.
|
||||
@@ -1275,6 +1276,35 @@ public class DisplayPolicy {
|
||||
if (!INSETS_LAYOUT_GENERALIZATION) {
|
||||
mDisplayContent.setInsetProvider(insetsType, win, null,
|
||||
imeFrameProvider);
|
||||
if (LEGACY_TASKBAR_GESTURE_INSETS) {
|
||||
if (mNavigationBar == null && (insetsType == ITYPE_NAVIGATION_BAR
|
||||
|| insetsType == ITYPE_EXTRA_NAVIGATION_BAR)) {
|
||||
mDisplayContent.setInsetProvider(ITYPE_LEFT_GESTURES, win,
|
||||
(displayFrames, windowState, inOutFrame) -> {
|
||||
final int leftSafeInset =
|
||||
Math.max(displayFrames.mDisplayCutoutSafe
|
||||
.left,
|
||||
0);
|
||||
inOutFrame.left = 0;
|
||||
inOutFrame.top = 0;
|
||||
inOutFrame.bottom = displayFrames.mDisplayHeight;
|
||||
inOutFrame.right =
|
||||
leftSafeInset + mLeftGestureInset;
|
||||
});
|
||||
mDisplayContent.setInsetProvider(ITYPE_RIGHT_GESTURES, win,
|
||||
(displayFrames, windowState, inOutFrame) -> {
|
||||
final int rightSafeInset =
|
||||
Math.min(displayFrames.mDisplayCutoutSafe
|
||||
.right,
|
||||
displayFrames.mUnrestricted.right);
|
||||
inOutFrame.left =
|
||||
rightSafeInset - mRightGestureInset;
|
||||
inOutFrame.top = 0;
|
||||
inOutFrame.bottom = displayFrames.mDisplayHeight;
|
||||
inOutFrame.right = displayFrames.mDisplayWidth;
|
||||
});
|
||||
}
|
||||
}
|
||||
} else {
|
||||
mDisplayContent.setInsetProvider(insetsType, win, (displayFrames,
|
||||
windowState, inOutFrame) -> inOutFrame.inset(
|
||||
|
||||
Reference in New Issue
Block a user