Adjust edit state drop targets, workspace scaling, and margins per device type and orientation.

Bug: 202971709
Test: manual
Change-Id: Id1817cd3c7e7bfa5b0aa8aa20565b791ad871f64
This commit is contained in:
Pat Manning
2022-02-25 15:41:55 +00:00
parent a66bbdab86
commit 1acf2b18af
15 changed files with 367 additions and 201 deletions

View File

@@ -324,37 +324,14 @@ public class Workspace extends PagedView<WorkspacePageIndicator>
setPageSpacing(Math.max(maxInsets, maxPadding));
}
updateWorkspaceScreensPadding();
updateCellLayoutPadding();
updateWorkspaceWidgetsSizes();
}
private void updateWorkspaceScreensPadding() {
DeviceProfile grid = mLauncher.getDeviceProfile();
int paddingLeftRight = grid.cellLayoutPaddingLeftRightPx;
int paddingBottom = grid.cellLayoutBottomPaddingPx;
int panelCount = getPanelCount();
int rightPanelModulus = mIsRtl ? 0 : panelCount - 1;
int leftPanelModulus = mIsRtl ? panelCount - 1 : 0;
int numberOfScreens = mScreenOrder.size();
for (int i = 0; i < numberOfScreens; i++) {
int paddingLeft = paddingLeftRight;
int paddingRight = paddingLeftRight;
// Add missing cellLayout border in-between panels.
if (panelCount > 1) {
if (i % panelCount == leftPanelModulus) {
paddingRight += grid.cellLayoutBorderSpacePx.x / 2;
} else if (i % panelCount == rightPanelModulus) { // right side panel
paddingLeft += grid.cellLayoutBorderSpacePx.x / 2;
} else { // middle panel
paddingLeft += grid.cellLayoutBorderSpacePx.x / 2;
paddingRight += grid.cellLayoutBorderSpacePx.x / 2;
}
}
// SparseArrayMap doesn't keep the order
mWorkspaceScreens.get(mScreenOrder.get(i))
.setPadding(paddingLeft, 0, paddingRight, paddingBottom);
}
private void updateCellLayoutPadding() {
Rect padding = mLauncher.getDeviceProfile().cellLayoutPaddingPx;
mWorkspaceScreens.forEach(
s -> s.setPadding(padding.left, padding.top, padding.right, padding.bottom));
}
private void updateWorkspaceWidgetsSizes() {
@@ -652,7 +629,7 @@ public class Workspace extends PagedView<WorkspacePageIndicator>
mLauncher.getStateManager().getState(), newScreen, insertIndex);
updatePageScrollValues();
updateWorkspaceScreensPadding();
updateCellLayoutPadding();
return newScreen;
}