Add more extra space to hotseat for taller devices.
Bug: 192520231 Test: manual test on taller devices Change-Id: I3eccada67f0ba07d01f823c4156f02c3feb97f84
This commit is contained in:
parent
d2182b242b
commit
80cddbccb6
|
@ -89,6 +89,7 @@ public class DeviceProfile {
|
|||
private static final float MAX_HORIZONTAL_PADDING_PERCENT = 0.14f;
|
||||
|
||||
private static final float TALL_DEVICE_ASPECT_RATIO_THRESHOLD = 2.0f;
|
||||
private static final float TALLER_DEVICE_ASPECT_RATIO_THRESHOLD = 2.15f;
|
||||
|
||||
// To evenly space the icons, increase the left/right margins for tablets in portrait mode.
|
||||
private static final int PORTRAIT_TABLET_LEFT_RIGHT_PADDING_MULTIPLIER = 4;
|
||||
|
@ -148,12 +149,13 @@ public class DeviceProfile {
|
|||
public int folderChildDrawablePaddingPx;
|
||||
|
||||
// Hotseat
|
||||
public int hotseatBarSizeExtraSpacePx;
|
||||
public final int numShownHotseatIcons;
|
||||
public int hotseatCellHeightPx;
|
||||
private final int hotseatExtraVerticalSize;
|
||||
// In portrait: size = height, in landscape: size = width
|
||||
public int hotseatBarSizePx;
|
||||
public final int hotseatBarTopPaddingPx;
|
||||
public int hotseatBarTopPaddingPx;
|
||||
public final int hotseatBarBottomPaddingPx;
|
||||
// Start is the side next to the nav bar, end is the side next to the workspace
|
||||
public final int hotseatBarSidePaddingStartPx;
|
||||
|
@ -322,6 +324,7 @@ public class DeviceProfile {
|
|||
isTwoPanels ? inv.numDatabaseHotseatIcons : inv.numShownHotseatIcons;
|
||||
numShownAllAppsColumns =
|
||||
isTwoPanels ? inv.numDatabaseAllAppsColumns : inv.numAllAppsColumns;
|
||||
hotseatBarSizeExtraSpacePx = 0;
|
||||
hotseatBarTopPaddingPx =
|
||||
res.getDimensionPixelSize(R.dimen.dynamic_grid_hotseat_top_padding);
|
||||
hotseatBarBottomPaddingPx = (isTallDevice ? 0
|
||||
|
@ -352,6 +355,7 @@ public class DeviceProfile {
|
|||
|
||||
// Calculate all of the remaining variables.
|
||||
extraSpace = updateAvailableDimensions(res);
|
||||
|
||||
// Now that we have all of the variables calculated, we can tune certain sizes.
|
||||
if (isScalableGrid && inv.devicePaddings != null) {
|
||||
// Paddings were created assuming no scaling, so we first unscale the extra space.
|
||||
|
@ -371,12 +375,25 @@ public class DeviceProfile {
|
|||
qsbBottomMarginPx = Math.round(qsbBottomMarginOriginalPx * cellScaleToFit);
|
||||
} else if (!isVerticalBarLayout() && isPhone && isTallDevice) {
|
||||
// We increase the hotseat size when there is extra space.
|
||||
// ie. For a display with a large aspect ratio, we can keep the icons on the workspace
|
||||
// in portrait mode closer together by adding more height to the hotseat.
|
||||
// Note: This calculation was created after noticing a pattern in the design spec.
|
||||
int extraSpace = getCellSize().y - iconSizePx - iconDrawablePaddingPx * 2
|
||||
- workspacePageIndicatorHeight;
|
||||
hotseatBarSizePx += extraSpace;
|
||||
|
||||
if (Float.compare(aspectRatio, TALLER_DEVICE_ASPECT_RATIO_THRESHOLD) >= 0) {
|
||||
// For taller devices, we will take a third of the extra space from each row,
|
||||
// and add it to the space above and below the hotseat.
|
||||
int extraSpace = ((getCellSize().y - iconSizePx - iconDrawablePaddingPx * 2)
|
||||
* inv.numRows) / 3;
|
||||
|
||||
int halfExtraSpace = extraSpace / 2;
|
||||
hotseatBarTopPaddingPx += halfExtraSpace;
|
||||
hotseatBarSizeExtraSpacePx = halfExtraSpace;
|
||||
} else {
|
||||
// ie. For a display with a large aspect ratio, we can keep the icons on the
|
||||
// workspace in portrait mode closer together by adding more height to the hotseat.
|
||||
// Note: This calculation was created after noticing a pattern in the design spec.
|
||||
hotseatBarSizeExtraSpacePx = getCellSize().y - iconSizePx
|
||||
- iconDrawablePaddingPx * 2 - workspacePageIndicatorHeight;
|
||||
}
|
||||
|
||||
updateHotseatIconSize(iconSizePx);
|
||||
|
||||
// Recalculate the available dimensions using the new hotseat size.
|
||||
updateAvailableDimensions(res);
|
||||
|
@ -400,7 +417,8 @@ public class DeviceProfile {
|
|||
+ hotseatBarSidePaddingEndPx;
|
||||
} else {
|
||||
hotseatBarSizePx = hotseatIconSizePx + hotseatBarTopPaddingPx
|
||||
+ hotseatBarBottomPaddingPx + (isScalableGrid ? 0 : hotseatExtraVerticalSize);
|
||||
+ hotseatBarBottomPaddingPx + (isScalableGrid ? 0 : hotseatExtraVerticalSize)
|
||||
+ hotseatBarSizeExtraSpacePx;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue