From 1091e538b4622beb8fade0ca0b050f25019c4fd6 Mon Sep 17 00:00:00 2001 From: Jon Miranda Date: Fri, 21 Jul 2017 13:31:50 -0700 Subject: [PATCH] Manually compute all apps cell height in multi-window mode. The All Apps cell height is set to match the Workspace. This causes a problem in multi-window mode because only the Workspace items do not have labels. Bug: 63933609 Change-Id: I13be6e50c12d50465be0555721f273abfc0d836a --- src/com/android/launcher3/DeviceProfile.java | 31 +++++++++++++------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java index 38011eaa32..cb4ad55c70 100644 --- a/src/com/android/launcher3/DeviceProfile.java +++ b/src/com/android/launcher3/DeviceProfile.java @@ -266,9 +266,7 @@ public class DeviceProfile { isLandscape); // Hide labels on the workspace. - profile.iconTextSizePx = 0; - profile.cellHeightPx = profile.iconSizePx + profile.iconDrawablePaddingPx - + Utilities.calculateTextHeight(profile.iconTextSizePx); + profile.adjustToHideWorkspaceLabels(); // We use these scales to measure and layout the widgets using their full invariant profile // sizes and then draw them scaled and centered to fit in their multi-window mode cellspans. @@ -291,6 +289,24 @@ public class DeviceProfile { } } + /** + * Adjusts the profile so that the labels on the Workspace are hidden. + * It is important to call this method after the All Apps variables have been set. + */ + private void adjustToHideWorkspaceLabels() { + iconTextSizePx = 0; + iconDrawablePaddingPx = 0; + cellHeightPx = iconSizePx; + + // In normal cases, All Apps cell height should equal the Workspace cell height. + // Since we are removing labels from the Workspace, we need to manually compute the + // All Apps cell height. + allAppsCellHeightPx = allAppsIconSizePx + allAppsIconDrawablePaddingPx + + Utilities.calculateTextHeight(allAppsIconTextSizePx) + // Top and bottom padding is equal to the drawable padding + + allAppsIconDrawablePaddingPx * 2; + } + /** * Determine the exact visual footprint of the all apps button, taking into account scaling * and internal padding of the drawable. @@ -329,14 +345,7 @@ public class DeviceProfile { if (isVerticalBarLayout()) { // Always hide the Workspace text with vertical bar layout. - iconTextSizePx = 0; - iconDrawablePaddingPx = 0; - - // Manually compute all apps cell height since workspace cells have less content. - allAppsCellHeightPx = allAppsIconSizePx + allAppsIconDrawablePaddingPx - + Utilities.calculateTextHeight(allAppsIconTextSizePx) - // Top and bottom padding is equal to the drawable padding - + allAppsIconDrawablePaddingPx * 2; + adjustToHideWorkspaceLabels(); } cellWidthPx = iconSizePx + iconDrawablePaddingPx;