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

Commit b8a91652 authored by Peter Liang's avatar Peter Liang
Browse files

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
parent 37dca6be
Loading
Loading
Loading
Loading
+1 −5
Original line number Original line Diff line number Diff line
@@ -136,11 +136,7 @@ class MenuViewAppearance {
        final Rect draggableBounds = getWindowAvailableBounds();
        final Rect draggableBounds = getWindowAvailableBounds();


        // Initializes start position for mapping the translation of the menu view.
        // Initializes start position for mapping the translation of the menu view.
        final WindowMetrics windowMetrics = mWindowManager.getCurrentWindowMetrics();
        draggableBounds.offsetTo(/* newLeft= */ 0, /* newTop= */ 0);
        final WindowInsets windowInsets = windowMetrics.getWindowInsets();
        final Insets displayCutoutInsets = windowInsets.getInsetsIgnoringVisibility(
                WindowInsets.Type.displayCutout());
        draggableBounds.offset(-displayCutoutInsets.left, -displayCutoutInsets.top);


        draggableBounds.top += margin;
        draggableBounds.top += margin;
        draggableBounds.right -= getMenuWidth();
        draggableBounds.right -= getMenuWidth();
+2 −1
Original line number Original line Diff line number Diff line
@@ -74,7 +74,8 @@ class MenuViewLayerController implements IAccessibilityFloatingMenu {
        params.receiveInsetsIgnoringZOrder = true;
        params.receiveInsetsIgnoringZOrder = true;
        params.privateFlags |= PRIVATE_FLAG_EXCLUDE_FROM_SCREEN_MAGNIFICATION;
        params.privateFlags |= PRIVATE_FLAG_EXCLUDE_FROM_SCREEN_MAGNIFICATION;
        params.windowAnimations = android.R.style.Animation_Translucent;
        params.windowAnimations = android.R.style.Animation_Translucent;
        params.setFitInsetsTypes(WindowInsets.Type.navigationBars());
        params.setFitInsetsTypes(
                WindowInsets.Type.systemBars() | WindowInsets.Type.displayCutout());
        return params;
        return params;
    }
    }
}
}