Loading src/com/android/launcher3/DeviceProfile.java +11 −29 Original line number Original line Diff line number Diff line Loading @@ -296,10 +296,7 @@ public class DeviceProfile { : res.getDimensionPixelSize(R.dimen.dynamic_grid_cell_layout_padding); : res.getDimensionPixelSize(R.dimen.dynamic_grid_cell_layout_padding); if (isTwoPanels) { if (isTwoPanels) { cellLayoutPaddingLeftRightPx = res.getDimensionPixelSize( cellLayoutPaddingLeftRightPx = 0; isLandscape ? R.dimen.two_panels_home_side_padding_landscape : R.dimen.two_panels_home_side_padding_portrait); cellLayoutBottomPaddingPx = 0; cellLayoutBottomPaddingPx = 0; } else if (isLandscape) { } else if (isLandscape) { cellLayoutPaddingLeftRightPx = 0; cellLayoutPaddingLeftRightPx = 0; Loading Loading @@ -817,7 +814,9 @@ public class DeviceProfile { Point padding = getTotalWorkspacePadding(); Point padding = getTotalWorkspacePadding(); int numColumns = isTwoPanels ? inv.numColumns * 2 : inv.numColumns; int numColumns = isTwoPanels ? inv.numColumns * 2 : inv.numColumns; int screenWidthPx = availableWidthPx - padding.x - 2 * cellLayoutPaddingLeftRightPx; int cellLayoutTotalPadding = isTwoPanels ? 4 * cellLayoutPaddingLeftRightPx : 2 * cellLayoutPaddingLeftRightPx; int screenWidthPx = availableWidthPx - padding.x - cellLayoutTotalPadding; result.x = calculateCellWidth(screenWidthPx, cellLayoutBorderSpacingPx, numColumns); result.x = calculateCellWidth(screenWidthPx, cellLayoutBorderSpacingPx, numColumns); result.y = calculateCellHeight(availableHeightPx - padding.y result.y = calculateCellHeight(availableHeightPx - padding.y - cellLayoutBottomPaddingPx, cellLayoutBorderSpacingPx, inv.numRows); - cellLayoutBottomPaddingPx, cellLayoutBorderSpacingPx, inv.numRows); Loading Loading @@ -847,35 +846,17 @@ public class DeviceProfile { padding.right = hotseatBarSizePx; padding.right = hotseatBarSizePx; } } } else { } else { // Pad the bottom of the workspace with search/hotseat bar sizes int hotseatTop = hotseatBarSizePx; int hotseatTop = hotseatBarSizePx; int paddingBottom = hotseatTop + workspacePageIndicatorHeight int paddingBottom = hotseatTop + workspacePageIndicatorHeight + workspaceBottomPadding - mWorkspacePageIndicatorOverlapWorkspace; + workspaceBottomPadding - mWorkspacePageIndicatorOverlapWorkspace; if (isTablet) { // Pad the left and right of the workspace to ensure consistent spacing // between all icons // The amount of screen space available for left/right padding. int availablePaddingX = Math.max(0, widthPx - ((inv.numColumns * cellWidthPx) + ((inv.numColumns - 1) * cellWidthPx))); availablePaddingX = (int) Math.min(availablePaddingX, widthPx * MAX_HORIZONTAL_PADDING_PERCENT); int hotseatVerticalPadding = hotseatBarTopPaddingPx + hotseatBarBottomPaddingPx; int availablePaddingY = Math.max(0, heightPx - edgeMarginPx - paddingBottom - (2 * inv.numRows * cellHeightPx) - hotseatVerticalPadding); padding.set(availablePaddingX / 2, edgeMarginPx + availablePaddingY / 2, availablePaddingX / 2, paddingBottom + availablePaddingY / 2); if (isTwoPanels) { padding.set(0, padding.top, 0, padding.bottom); } } else { // Pad the top and bottom of the workspace with search/hotseat bar sizes padding.set(desiredWorkspaceLeftRightMarginPx, padding.set(desiredWorkspaceLeftRightMarginPx, workspaceTopPadding + (isScalableGrid ? 0 : edgeMarginPx), (isScalableGrid ? workspaceTopPadding : edgeMarginPx), desiredWorkspaceLeftRightMarginPx, desiredWorkspaceLeftRightMarginPx, paddingBottom); paddingBottom); } } } } } /** /** * Returns the padding for hotseat view * Returns the padding for hotseat view Loading Loading @@ -1132,6 +1113,7 @@ public class DeviceProfile { writer.println(prefix + pxToDpStr("iconScale", iconScale)); writer.println(prefix + pxToDpStr("iconScale", iconScale)); writer.println(prefix + pxToDpStr("cellScaleToFit ", cellScaleToFit)); writer.println(prefix + pxToDpStr("cellScaleToFit ", cellScaleToFit)); writer.println(prefix + pxToDpStr("extraSpace", extraSpace)); writer.println(prefix + pxToDpStr("extraSpace", extraSpace)); writer.println(prefix + pxToDpStr("unscaled extraSpace", extraSpace / iconScale)); if (inv.devicePaddings != null) { if (inv.devicePaddings != null) { int unscaledExtraSpace = (int) (extraSpace / iconScale); int unscaledExtraSpace = (int) (extraSpace / iconScale); Loading src/com/android/launcher3/PagedView.java +4 −1 Original line number Original line Diff line number Diff line Loading @@ -638,7 +638,10 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou } } private int getPageWidthSize(int widthSize) { private int getPageWidthSize(int widthSize) { return (widthSize - mInsets.left - mInsets.right) / getPanelCount(); // It's necessary to add the padding back because it is remove when measuring children, // like when MeasureSpec.getSize in CellLayout. return (widthSize - mInsets.left - mInsets.right - getPaddingLeft() - getPaddingRight()) / getPanelCount() + getPaddingLeft() + getPaddingRight(); } } @Override @Override Loading src/com/android/launcher3/Workspace.java +5 −6 Original line number Original line Diff line number Diff line Loading @@ -342,16 +342,15 @@ public class Workspace extends PagedView<WorkspacePageIndicator> for (int i = 0; i < numberOfScreens; i++) { for (int i = 0; i < numberOfScreens; i++) { int paddingLeft = paddingLeftRight; int paddingLeft = paddingLeftRight; int paddingRight = paddingLeftRight; int paddingRight = paddingLeftRight; // Add missing cellLayout border in-between panels. if (panelCount > 1) { if (panelCount > 1) { if (i % panelCount == leftPanelModulus) { if (i % panelCount == leftPanelModulus) { paddingLeft = paddingLeftRight; paddingRight += grid.cellLayoutBorderSpacingPx / 2; paddingRight = grid.cellLayoutBorderSpacingPx / 2; } else if (i % panelCount == rightPanelModulus) { // right side panel } else if (i % panelCount == rightPanelModulus) { // right side panel paddingLeft = grid.cellLayoutBorderSpacingPx / 2; paddingLeft += grid.cellLayoutBorderSpacingPx / 2; paddingRight = paddingLeftRight; } else { // middle panel } else { // middle panel paddingLeft = grid.cellLayoutBorderSpacingPx / 2; paddingLeft += grid.cellLayoutBorderSpacingPx / 2; paddingRight = grid.cellLayoutBorderSpacingPx / 2; paddingRight += grid.cellLayoutBorderSpacingPx / 2; } } } } // SparseArrayMap doesn't keep the order // SparseArrayMap doesn't keep the order Loading src/com/android/launcher3/graphics/LauncherPreviewRenderer.java +6 −3 Original line number Original line Diff line number Diff line Loading @@ -230,16 +230,19 @@ public class LauncherPreviewRenderer extends ContextWrapper CellLayout firstScreen = mRootView.findViewById(R.id.workspace); CellLayout firstScreen = mRootView.findViewById(R.id.workspace); firstScreen.setPadding(mDp.workspacePadding.left + mDp.cellLayoutPaddingLeftRightPx, firstScreen.setPadding(mDp.workspacePadding.left + mDp.cellLayoutPaddingLeftRightPx, mDp.workspacePadding.top, mDp.workspacePadding.top, mDp.workspacePadding.right + mDp.cellLayoutBorderSpacingPx / 2, (mDp.isTwoPanels ? mDp.cellLayoutBorderSpacingPx / 2 : mDp.workspacePadding.right) + mDp.cellLayoutPaddingLeftRightPx, mDp.workspacePadding.bottom); mDp.workspacePadding.bottom); mWorkspaceScreens.put(FIRST_SCREEN_ID, firstScreen); mWorkspaceScreens.put(FIRST_SCREEN_ID, firstScreen); if (mDp.isTwoPanels) { if (mDp.isTwoPanels) { CellLayout rightPanel = mRootView.findViewById(R.id.workspace_right); CellLayout rightPanel = mRootView.findViewById(R.id.workspace_right); rightPanel.setPadding(mDp.workspacePadding.left + mDp.cellLayoutBorderSpacingPx / 2, rightPanel.setPadding( mDp.cellLayoutBorderSpacingPx / 2 + mDp.cellLayoutPaddingLeftRightPx, mDp.workspacePadding.top, mDp.workspacePadding.top, mDp.workspacePadding.right + mDp.cellLayoutPaddingLeftRightPx, mDp.workspacePadding.right + mDp.cellLayoutPaddingLeftRightPx, mDp.workspacePadding.bottom); mDp.workspacePadding.bottom ); mWorkspaceScreens.put(Workspace.SECOND_SCREEN_ID, rightPanel); mWorkspaceScreens.put(Workspace.SECOND_SCREEN_ID, rightPanel); } } Loading Loading
src/com/android/launcher3/DeviceProfile.java +11 −29 Original line number Original line Diff line number Diff line Loading @@ -296,10 +296,7 @@ public class DeviceProfile { : res.getDimensionPixelSize(R.dimen.dynamic_grid_cell_layout_padding); : res.getDimensionPixelSize(R.dimen.dynamic_grid_cell_layout_padding); if (isTwoPanels) { if (isTwoPanels) { cellLayoutPaddingLeftRightPx = res.getDimensionPixelSize( cellLayoutPaddingLeftRightPx = 0; isLandscape ? R.dimen.two_panels_home_side_padding_landscape : R.dimen.two_panels_home_side_padding_portrait); cellLayoutBottomPaddingPx = 0; cellLayoutBottomPaddingPx = 0; } else if (isLandscape) { } else if (isLandscape) { cellLayoutPaddingLeftRightPx = 0; cellLayoutPaddingLeftRightPx = 0; Loading Loading @@ -817,7 +814,9 @@ public class DeviceProfile { Point padding = getTotalWorkspacePadding(); Point padding = getTotalWorkspacePadding(); int numColumns = isTwoPanels ? inv.numColumns * 2 : inv.numColumns; int numColumns = isTwoPanels ? inv.numColumns * 2 : inv.numColumns; int screenWidthPx = availableWidthPx - padding.x - 2 * cellLayoutPaddingLeftRightPx; int cellLayoutTotalPadding = isTwoPanels ? 4 * cellLayoutPaddingLeftRightPx : 2 * cellLayoutPaddingLeftRightPx; int screenWidthPx = availableWidthPx - padding.x - cellLayoutTotalPadding; result.x = calculateCellWidth(screenWidthPx, cellLayoutBorderSpacingPx, numColumns); result.x = calculateCellWidth(screenWidthPx, cellLayoutBorderSpacingPx, numColumns); result.y = calculateCellHeight(availableHeightPx - padding.y result.y = calculateCellHeight(availableHeightPx - padding.y - cellLayoutBottomPaddingPx, cellLayoutBorderSpacingPx, inv.numRows); - cellLayoutBottomPaddingPx, cellLayoutBorderSpacingPx, inv.numRows); Loading Loading @@ -847,35 +846,17 @@ public class DeviceProfile { padding.right = hotseatBarSizePx; padding.right = hotseatBarSizePx; } } } else { } else { // Pad the bottom of the workspace with search/hotseat bar sizes int hotseatTop = hotseatBarSizePx; int hotseatTop = hotseatBarSizePx; int paddingBottom = hotseatTop + workspacePageIndicatorHeight int paddingBottom = hotseatTop + workspacePageIndicatorHeight + workspaceBottomPadding - mWorkspacePageIndicatorOverlapWorkspace; + workspaceBottomPadding - mWorkspacePageIndicatorOverlapWorkspace; if (isTablet) { // Pad the left and right of the workspace to ensure consistent spacing // between all icons // The amount of screen space available for left/right padding. int availablePaddingX = Math.max(0, widthPx - ((inv.numColumns * cellWidthPx) + ((inv.numColumns - 1) * cellWidthPx))); availablePaddingX = (int) Math.min(availablePaddingX, widthPx * MAX_HORIZONTAL_PADDING_PERCENT); int hotseatVerticalPadding = hotseatBarTopPaddingPx + hotseatBarBottomPaddingPx; int availablePaddingY = Math.max(0, heightPx - edgeMarginPx - paddingBottom - (2 * inv.numRows * cellHeightPx) - hotseatVerticalPadding); padding.set(availablePaddingX / 2, edgeMarginPx + availablePaddingY / 2, availablePaddingX / 2, paddingBottom + availablePaddingY / 2); if (isTwoPanels) { padding.set(0, padding.top, 0, padding.bottom); } } else { // Pad the top and bottom of the workspace with search/hotseat bar sizes padding.set(desiredWorkspaceLeftRightMarginPx, padding.set(desiredWorkspaceLeftRightMarginPx, workspaceTopPadding + (isScalableGrid ? 0 : edgeMarginPx), (isScalableGrid ? workspaceTopPadding : edgeMarginPx), desiredWorkspaceLeftRightMarginPx, desiredWorkspaceLeftRightMarginPx, paddingBottom); paddingBottom); } } } } } /** /** * Returns the padding for hotseat view * Returns the padding for hotseat view Loading Loading @@ -1132,6 +1113,7 @@ public class DeviceProfile { writer.println(prefix + pxToDpStr("iconScale", iconScale)); writer.println(prefix + pxToDpStr("iconScale", iconScale)); writer.println(prefix + pxToDpStr("cellScaleToFit ", cellScaleToFit)); writer.println(prefix + pxToDpStr("cellScaleToFit ", cellScaleToFit)); writer.println(prefix + pxToDpStr("extraSpace", extraSpace)); writer.println(prefix + pxToDpStr("extraSpace", extraSpace)); writer.println(prefix + pxToDpStr("unscaled extraSpace", extraSpace / iconScale)); if (inv.devicePaddings != null) { if (inv.devicePaddings != null) { int unscaledExtraSpace = (int) (extraSpace / iconScale); int unscaledExtraSpace = (int) (extraSpace / iconScale); Loading
src/com/android/launcher3/PagedView.java +4 −1 Original line number Original line Diff line number Diff line Loading @@ -638,7 +638,10 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou } } private int getPageWidthSize(int widthSize) { private int getPageWidthSize(int widthSize) { return (widthSize - mInsets.left - mInsets.right) / getPanelCount(); // It's necessary to add the padding back because it is remove when measuring children, // like when MeasureSpec.getSize in CellLayout. return (widthSize - mInsets.left - mInsets.right - getPaddingLeft() - getPaddingRight()) / getPanelCount() + getPaddingLeft() + getPaddingRight(); } } @Override @Override Loading
src/com/android/launcher3/Workspace.java +5 −6 Original line number Original line Diff line number Diff line Loading @@ -342,16 +342,15 @@ public class Workspace extends PagedView<WorkspacePageIndicator> for (int i = 0; i < numberOfScreens; i++) { for (int i = 0; i < numberOfScreens; i++) { int paddingLeft = paddingLeftRight; int paddingLeft = paddingLeftRight; int paddingRight = paddingLeftRight; int paddingRight = paddingLeftRight; // Add missing cellLayout border in-between panels. if (panelCount > 1) { if (panelCount > 1) { if (i % panelCount == leftPanelModulus) { if (i % panelCount == leftPanelModulus) { paddingLeft = paddingLeftRight; paddingRight += grid.cellLayoutBorderSpacingPx / 2; paddingRight = grid.cellLayoutBorderSpacingPx / 2; } else if (i % panelCount == rightPanelModulus) { // right side panel } else if (i % panelCount == rightPanelModulus) { // right side panel paddingLeft = grid.cellLayoutBorderSpacingPx / 2; paddingLeft += grid.cellLayoutBorderSpacingPx / 2; paddingRight = paddingLeftRight; } else { // middle panel } else { // middle panel paddingLeft = grid.cellLayoutBorderSpacingPx / 2; paddingLeft += grid.cellLayoutBorderSpacingPx / 2; paddingRight = grid.cellLayoutBorderSpacingPx / 2; paddingRight += grid.cellLayoutBorderSpacingPx / 2; } } } } // SparseArrayMap doesn't keep the order // SparseArrayMap doesn't keep the order Loading
src/com/android/launcher3/graphics/LauncherPreviewRenderer.java +6 −3 Original line number Original line Diff line number Diff line Loading @@ -230,16 +230,19 @@ public class LauncherPreviewRenderer extends ContextWrapper CellLayout firstScreen = mRootView.findViewById(R.id.workspace); CellLayout firstScreen = mRootView.findViewById(R.id.workspace); firstScreen.setPadding(mDp.workspacePadding.left + mDp.cellLayoutPaddingLeftRightPx, firstScreen.setPadding(mDp.workspacePadding.left + mDp.cellLayoutPaddingLeftRightPx, mDp.workspacePadding.top, mDp.workspacePadding.top, mDp.workspacePadding.right + mDp.cellLayoutBorderSpacingPx / 2, (mDp.isTwoPanels ? mDp.cellLayoutBorderSpacingPx / 2 : mDp.workspacePadding.right) + mDp.cellLayoutPaddingLeftRightPx, mDp.workspacePadding.bottom); mDp.workspacePadding.bottom); mWorkspaceScreens.put(FIRST_SCREEN_ID, firstScreen); mWorkspaceScreens.put(FIRST_SCREEN_ID, firstScreen); if (mDp.isTwoPanels) { if (mDp.isTwoPanels) { CellLayout rightPanel = mRootView.findViewById(R.id.workspace_right); CellLayout rightPanel = mRootView.findViewById(R.id.workspace_right); rightPanel.setPadding(mDp.workspacePadding.left + mDp.cellLayoutBorderSpacingPx / 2, rightPanel.setPadding( mDp.cellLayoutBorderSpacingPx / 2 + mDp.cellLayoutPaddingLeftRightPx, mDp.workspacePadding.top, mDp.workspacePadding.top, mDp.workspacePadding.right + mDp.cellLayoutPaddingLeftRightPx, mDp.workspacePadding.right + mDp.cellLayoutPaddingLeftRightPx, mDp.workspacePadding.bottom); mDp.workspacePadding.bottom ); mWorkspaceScreens.put(Workspace.SECOND_SCREEN_ID, rightPanel); mWorkspaceScreens.put(Workspace.SECOND_SCREEN_ID, rightPanel); } } Loading