Fine-tune the insets type of the menu view layer.
Goal: Avoid overlapping on the status or navigation bar when using the feature of hiding menu to edge, and easily computing the coordinate, set the fit insets type of the menu view layer as systemBars or display cutout. Bug: 246664957 Test: manual test Change-Id: I4954c2c439df771d52ce0dbcc607ab841922603c
This commit is contained in:
@@ -136,11 +136,7 @@ class MenuViewAppearance {
|
||||
final Rect draggableBounds = getWindowAvailableBounds();
|
||||
|
||||
// Initializes start position for mapping the translation of the menu view.
|
||||
final WindowMetrics windowMetrics = mWindowManager.getCurrentWindowMetrics();
|
||||
final WindowInsets windowInsets = windowMetrics.getWindowInsets();
|
||||
final Insets displayCutoutInsets = windowInsets.getInsetsIgnoringVisibility(
|
||||
WindowInsets.Type.displayCutout());
|
||||
draggableBounds.offset(-displayCutoutInsets.left, -displayCutoutInsets.top);
|
||||
draggableBounds.offsetTo(/* newLeft= */ 0, /* newTop= */ 0);
|
||||
|
||||
draggableBounds.top += margin;
|
||||
draggableBounds.right -= getMenuWidth();
|
||||
|
||||
@@ -74,7 +74,8 @@ class MenuViewLayerController implements IAccessibilityFloatingMenu {
|
||||
params.receiveInsetsIgnoringZOrder = true;
|
||||
params.privateFlags |= PRIVATE_FLAG_EXCLUDE_FROM_SCREEN_MAGNIFICATION;
|
||||
params.windowAnimations = android.R.style.Animation_Translucent;
|
||||
params.setFitInsetsTypes(WindowInsets.Type.navigationBars());
|
||||
params.setFitInsetsTypes(
|
||||
WindowInsets.Type.systemBars() | WindowInsets.Type.displayCutout());
|
||||
return params;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user