From 93e1f04fa915fc22ecccc7e40794472914f3d446 Mon Sep 17 00:00:00 2001 From: Jon Miranda Date: Fri, 11 Nov 2016 14:13:04 -0800 Subject: Hide workspace text in multi-window mode. * Vertically centers workspace icons. * New iconDisplay value so shortcut text is not overriden. Bug: 32176631 Change-Id: I86753bab5b24aafc417e0f77d8c471fc4c0dc7f0 --- res/values/attrs.xml | 1 + res/values/styles.xml | 1 + src/com/android/launcher3/CellLayout.java | 4 ++- src/com/android/launcher3/DeviceProfile.java | 10 +++++- .../launcher3/ShortcutAndWidgetContainer.java | 37 ++++++++++++++-------- .../android/launcher3/folder/FolderPagedView.java | 1 + 6 files changed, 38 insertions(+), 16 deletions(-) diff --git a/res/values/attrs.xml b/res/values/attrs.xml index 3423835a9..32bccb82c 100644 --- a/res/values/attrs.xml +++ b/res/values/attrs.xml @@ -27,6 +27,7 @@ + diff --git a/res/values/styles.xml b/res/values/styles.xml index bb0bc2ffb..4e70f43d0 100644 --- a/res/values/styles.xml +++ b/res/values/styles.xml @@ -108,6 +108,7 @@ 0 false true + shortcut_popup @dimen/deep_shortcut_icon_size diff --git a/src/com/android/launcher3/CellLayout.java b/src/com/android/launcher3/CellLayout.java index 979c9508b..84b504ebc 100644 --- a/src/com/android/launcher3/CellLayout.java +++ b/src/com/android/launcher3/CellLayout.java @@ -618,7 +618,9 @@ public class CellLayout extends ViewGroup implements BubbleTextShadowHandler { public void setIsHotseat(boolean isHotseat) { mIsHotseat = isHotseat; - mShortcutsAndWidgets.setIsHotseat(isHotseat); + mShortcutsAndWidgets.setContainerType(isHotseat + ? ShortcutAndWidgetContainer.HOTSEAT + : ShortcutAndWidgetContainer.DEFAULT); } public boolean isHotseat() { diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java index cc21920b0..483c5a9ce 100644 --- a/src/com/android/launcher3/DeviceProfile.java +++ b/src/com/android/launcher3/DeviceProfile.java @@ -207,7 +207,15 @@ public class DeviceProfile { // In multi-window mode, we can have widthPx = availableWidthPx // and heightPx = availableHeightPx because Launcher uses the InvariantDeviceProfiles' // widthPx and heightPx values where it's needed. - return new DeviceProfile(context, inv, mwSize, mwSize, mwSize.x, mwSize.y, isLandscape); + DeviceProfile profile = new DeviceProfile(context, inv, mwSize, mwSize, mwSize.x, mwSize.y, + isLandscape); + + // Hide labels on the workspace. + profile.iconTextSizePx = 0; + profile.cellHeightPx = profile.iconSizePx + profile.iconDrawablePaddingPx + + Utilities.calculateTextHeight(profile.iconTextSizePx); + + return profile; } public void addLauncherLayoutChangedListener(LauncherLayoutChangeListener listener) { diff --git a/src/com/android/launcher3/ShortcutAndWidgetContainer.java b/src/com/android/launcher3/ShortcutAndWidgetContainer.java index c8bb79306..dafc81ace 100644 --- a/src/com/android/launcher3/ShortcutAndWidgetContainer.java +++ b/src/com/android/launcher3/ShortcutAndWidgetContainer.java @@ -18,13 +18,25 @@ package com.android.launcher3; import android.app.WallpaperManager; import android.content.Context; -import android.graphics.Paint; import android.graphics.Rect; +import android.support.annotation.IntDef; import android.view.View; import android.view.ViewGroup; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + public class ShortcutAndWidgetContainer extends ViewGroup { - static final String TAG = "CellLayoutChildren"; + static final String TAG = "ShortcutAndWidgetContainer"; + + @Retention(RetentionPolicy.SOURCE) + @IntDef({DEFAULT, HOTSEAT, FOLDER}) + public @interface ContainerType{} + public static final int DEFAULT = 0; + public static final int HOTSEAT = 1; + public static final int FOLDER = 2; + + private int mContainerType = DEFAULT; // These are temporary variables to prevent having to allocate a new object just to // return an (x, y) value from helper functions. Do NOT use them to maintain other state. @@ -32,8 +44,6 @@ public class ShortcutAndWidgetContainer extends ViewGroup { private final WallpaperManager mWallpaperManager; - private boolean mIsHotseatLayout; - private int mCellWidth; private int mCellHeight; @@ -101,20 +111,19 @@ public class ShortcutAndWidgetContainer extends ViewGroup { mInvertIfRtl = invert; } - public void setIsHotseat(boolean isHotseat) { - mIsHotseatLayout = isHotseat; - } - - int getCellContentWidth() { - final DeviceProfile grid = mLauncher.getDeviceProfile(); - return Math.min(getMeasuredHeight(), mIsHotseatLayout ? - grid.hotseatCellWidthPx: grid.cellWidthPx); + public void setContainerType(@ContainerType int containerType) { + mContainerType = containerType; } int getCellContentHeight() { final DeviceProfile grid = mLauncher.getDeviceProfile(); - return Math.min(getMeasuredHeight(), mIsHotseatLayout ? - grid.hotseatCellHeightPx : grid.cellHeightPx); + int cellContentHeight = grid.cellHeightPx; + if (mContainerType == HOTSEAT) { + cellContentHeight = grid.hotseatCellHeightPx; + } else if (mContainerType == FOLDER) { + cellContentHeight = grid.folderCellHeightPx; + } + return Math.min(getMeasuredHeight(), cellContentHeight); } public void measureChild(View child) { diff --git a/src/com/android/launcher3/folder/FolderPagedView.java b/src/com/android/launcher3/folder/FolderPagedView.java index 31ec7092b..e71c5e9cc 100644 --- a/src/com/android/launcher3/folder/FolderPagedView.java +++ b/src/com/android/launcher3/folder/FolderPagedView.java @@ -256,6 +256,7 @@ public class FolderPagedView extends PagedView { CellLayout page = new CellLayout(getContext()); page.setCellDimensions(grid.folderCellWidthPx, grid.folderCellHeightPx); page.getShortcutsAndWidgets().setMotionEventSplittingEnabled(false); + page.getShortcutsAndWidgets().setContainerType(ShortcutAndWidgetContainer.FOLDER); page.setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO); page.setInvertIfRtl(true); page.setGridSize(mGridCountX, mGridCountY); -- cgit v1.2.3