Fix cell size calculation in large screen devices
Test: Digital clock widget is no longer cropped. Bug: 184966000, 194784402 Change-Id: I26c406da1e10232019f34620a4d2bc0dbafcbb31
This commit is contained in:
parent
3c1a1195b4
commit
2a5c594855
|
@ -29,7 +29,8 @@
|
|||
<dimen name="dynamic_grid_cell_layout_padding">5.5dp</dimen>
|
||||
<dimen name="dynamic_grid_cell_padding_x">8dp</dimen>
|
||||
|
||||
<dimen name="two_panel_home_side_padding">18dp</dimen>
|
||||
<dimen name="two_panels_home_side_padding_landscape">36dp</dimen>
|
||||
<dimen name="two_panels_home_side_padding_portrait">9dp</dimen>
|
||||
|
||||
<!-- Hotseat -->
|
||||
<dimen name="dynamic_grid_hotseat_top_padding">8dp</dimen>
|
||||
|
|
|
@ -302,8 +302,10 @@ public class DeviceProfile {
|
|||
: res.getDimensionPixelSize(R.dimen.dynamic_grid_cell_layout_padding);
|
||||
|
||||
if (isTwoPanels) {
|
||||
cellLayoutPaddingLeftRightPx =
|
||||
res.getDimensionPixelSize(R.dimen.two_panel_home_side_padding);
|
||||
cellLayoutPaddingLeftRightPx = res.getDimensionPixelSize(
|
||||
isLandscape
|
||||
? R.dimen.two_panels_home_side_padding_landscape
|
||||
: R.dimen.two_panels_home_side_padding_portrait);
|
||||
cellLayoutBottomPaddingPx = 0;
|
||||
} else if (isLandscape) {
|
||||
cellLayoutPaddingLeftRightPx = 0;
|
||||
|
@ -752,8 +754,14 @@ public class DeviceProfile {
|
|||
// Since we are only concerned with the overall padding, layout direction does
|
||||
// not matter.
|
||||
Point padding = getTotalWorkspacePadding();
|
||||
result.x = calculateCellWidth(availableWidthPx - padding.x
|
||||
- cellLayoutPaddingLeftRightPx * 2, cellLayoutBorderSpacingPx, inv.numColumns);
|
||||
// availableWidthPx is the screen width of the device. In 2 panels mode, each panel should
|
||||
// only have half of the screen width. In addition, there is only cellLayoutPadding in the
|
||||
// left side of the left panel and the right side of the right panel. There is no
|
||||
// cellLayoutPadding in the middle.
|
||||
int screenWidthPx = isTwoPanels
|
||||
? availableWidthPx / 2 - padding.x - cellLayoutPaddingLeftRightPx
|
||||
: availableWidthPx - padding.x - cellLayoutPaddingLeftRightPx * 2;
|
||||
result.x = calculateCellWidth(screenWidthPx, cellLayoutBorderSpacingPx, inv.numColumns);
|
||||
result.y = calculateCellHeight(availableHeightPx - padding.y
|
||||
- cellLayoutBottomPaddingPx, cellLayoutBorderSpacingPx, inv.numRows);
|
||||
return result;
|
||||
|
|
|
@ -327,8 +327,6 @@ public class Workspace extends PagedView<WorkspacePageIndicator>
|
|||
|
||||
int paddingLeftRight = grid.cellLayoutPaddingLeftRightPx;
|
||||
int paddingBottom = grid.cellLayoutBottomPaddingPx;
|
||||
int twoPanelLandscapeSidePadding = paddingLeftRight * 2;
|
||||
int twoPanelPortraitSidePadding = paddingLeftRight / 2;
|
||||
|
||||
int panelCount = getPanelCount();
|
||||
for (int i = mWorkspaceScreens.size() - 1; i >= 0; i--) {
|
||||
|
@ -336,13 +334,11 @@ public class Workspace extends PagedView<WorkspacePageIndicator>
|
|||
int paddingRight = paddingLeftRight;
|
||||
if (panelCount > 1) {
|
||||
if (i % panelCount == 0) { // left side panel
|
||||
paddingLeft = grid.isLandscape ? twoPanelLandscapeSidePadding
|
||||
: twoPanelPortraitSidePadding;
|
||||
paddingLeft = paddingLeftRight;
|
||||
paddingRight = 0;
|
||||
} else if (i % panelCount == panelCount - 1) { // right side panel
|
||||
paddingLeft = 0;
|
||||
paddingRight = grid.isLandscape ? twoPanelLandscapeSidePadding
|
||||
: twoPanelPortraitSidePadding;
|
||||
paddingRight = paddingLeftRight;
|
||||
} else { // middle panel
|
||||
paddingLeft = 0;
|
||||
paddingRight = 0;
|
||||
|
|
Loading…
Reference in New Issue