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

Commit 99d7d4f2 authored by Andy Wickham's avatar Andy Wickham
Browse files

Better handling of insets for All Apps.

Changes:
 - For tablet, always center All Apps without applying additional
   insets for things like cutouts.
 - For tablet, allow the panel to span the full height of the
   screen (minus system bars), rather than 5.5 app rows. This also
   ensures the panel fully closes even if there are cutouts.
 - Remove additional padding for vertical bar mode (landscape on
   phones). This was double counting the cutout insets, but only
   for some views, so things were not aligned. Now the apps line
   up with the search bar, and the scroll bar still makes room for
   any side insets.

Before and after examples:
https://drive.google.com/drive/folders/1k0vSzisf4ZuGyp-qR-IF0QwM-IcHBFrZ?resourcekey=0-uxjzuVQ1KA3WwOQ4v6Dh2w&usp=drive_link

Bug: 299923399
Bug: 259617884
Fix: 300761324
Test: Manual
Flag: NA
Change-Id: I136d516260a1343b1198693c73fa389fe0e11cc9
parent ff03dd19
Loading
Loading
Loading
Loading
+2 −8
Original line number Diff line number Diff line
@@ -78,7 +78,6 @@ import java.util.function.Consumer;
public class DeviceProfile {

    private static final int DEFAULT_DOT_SIZE = 100;
    private static final float ALL_APPS_TABLET_MAX_ROWS = 5.5f;
    private static final float MIN_FOLDER_TEXT_SIZE_SP = 16f;
    private static final float MIN_WIDGET_PADDING_DP = 6f;

@@ -734,14 +733,9 @@ public class DeviceProfile {
            hotseatBorderSpace = cellLayoutBorderSpacePx.y;
        }

        // AllApps height calculation depends on updated cellSize
        if (isTablet) {
            int collapseHandleHeight =
                    res.getDimensionPixelOffset(R.dimen.bottom_sheet_handle_area_height);
            int contentHeight = heightPx - collapseHandleHeight - hotseatQsbHeight;
            int targetContentHeight = (int) (allAppsCellHeightPx * ALL_APPS_TABLET_MAX_ROWS);
            allAppsPadding.top = Math.max(mInsets.top, contentHeight - targetContentHeight);
            allAppsShiftRange = heightPx - allAppsPadding.top;
            allAppsPadding.top = mInsets.top;
            allAppsShiftRange = heightPx;
        } else {
            allAppsPadding.top = 0;
            allAppsShiftRange =
+1 −1
Original line number Diff line number Diff line
@@ -247,7 +247,7 @@ public class InvariantDeviceProfile {
    public InvariantDeviceProfile(Context context, String gridName) {
        String newName = initGrid(context, gridName);
        if (newName == null || !newName.equals(gridName)) {
            throw new IllegalArgumentException("Unknown grid name");
            throw new IllegalArgumentException("Unknown grid name: " + gridName);
        }
    }

+8 −7
Original line number Diff line number Diff line
@@ -1150,14 +1150,15 @@ public class ActivityAllAppsContainerView<T extends Context & ActivityContext>

        applyAdapterSideAndBottomPaddings(grid);

        // Ignore left/right insets on tablet because we are already centered in-screen.
        if (grid.isPhone) {
            MarginLayoutParams mlp = (MarginLayoutParams) getLayoutParams();
            mlp.leftMargin = insets.left;
            mlp.rightMargin = insets.right;
            setLayoutParams(mlp);
        }

        if (grid.isVerticalBarLayout() && !FeatureFlags.enableResponsiveWorkspace()) {
            setPadding(grid.workspacePadding.left, 0, grid.workspacePadding.right, 0);
        } else {
        if (!grid.isVerticalBarLayout() || FeatureFlags.enableResponsiveWorkspace()) {
            int topPadding = grid.allAppsPadding.top;
            if (isSearchBarFloating() && !grid.isTablet) {
                topPadding += getResources().getDimensionPixelSize(
+1 −1
Original line number Diff line number Diff line
@@ -55,7 +55,7 @@ DeviceProfile:
	bottomSheetCloseDuration: 500
	bottomSheetWorkspaceScale: 0.97
	bottomSheetDepth: 0.0
	allAppsShiftRange: 1496.0px (748.0dp)
	allAppsShiftRange: 1600.0px (800.0dp)
	allAppsOpenDuration: 500
	allAppsCloseDuration: 500
	allAppsIconSizePx: 120.0px (60.0dp)
+1 −1
Original line number Diff line number Diff line
@@ -55,7 +55,7 @@ DeviceProfile:
	bottomSheetCloseDuration: 500
	bottomSheetWorkspaceScale: 0.97
	bottomSheetDepth: 0.0
	allAppsShiftRange: 1496.0px (748.0dp)
	allAppsShiftRange: 1600.0px (800.0dp)
	allAppsOpenDuration: 500
	allAppsCloseDuration: 500
	allAppsIconSizePx: 120.0px (60.0dp)
Loading