Loading quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java +3 −9 Original line number Diff line number Diff line Loading @@ -30,7 +30,6 @@ import androidx.annotation.Nullable; import com.android.launcher3.AbstractFloatingView; import com.android.launcher3.BaseQuickstepLauncher; import com.android.launcher3.DeviceProfile; import com.android.launcher3.LauncherState; import com.android.launcher3.Utilities; import com.android.launcher3.statemanager.StateManager; Loading Loading @@ -407,18 +406,13 @@ import java.util.function.Supplier; boolean firstFrameVisChanged = (taskbarWillBeVisible && Float.compare(currentValue, 1) != 0) || (!taskbarWillBeVisible && Float.compare(currentValue, 0) != 0); updateIconAlignment(alignment); // Sync the first frame where we swap taskbar and hotseat. if (firstFrameVisChanged && mCanSyncViews && !Utilities.IS_RUNNING_IN_TEST_HARNESS) { DeviceProfile dp = mLauncher.getDeviceProfile(); // Do all the heavy work before the sync. mControllers.taskbarViewController.createIconAlignmentControllerIfNotExists(dp); ViewRootSync.synchronizeNextDraw(mLauncher.getHotseat(), mControllers.taskbarActivityContext.getDragLayer(), () -> updateIconAlignment(alignment)); } else { updateIconAlignment(alignment); () -> {}); } } Loading quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java +3 −11 Original line number Diff line number Diff line Loading @@ -204,16 +204,6 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar )); } /** * Creates the icon alignment controller if it does not already exist. * @param launcherDp Launcher device profile. */ public void createIconAlignmentControllerIfNotExists(DeviceProfile launcherDp) { if (mIconAlignControllerLazy == null) { mIconAlignControllerLazy = createIconAlignmentController(launcherDp); } } /** * Sets the taskbar icon alignment relative to Launcher hotseat icons * @param alignmentRatio [0, 1] Loading @@ -221,7 +211,9 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar * 1 => fully aligned */ public void setLauncherIconAlignment(float alignmentRatio, DeviceProfile launcherDp) { createIconAlignmentControllerIfNotExists(launcherDp); if (mIconAlignControllerLazy == null) { mIconAlignControllerLazy = createIconAlignmentController(launcherDp); } mIconAlignControllerLazy.setPlayFraction(alignmentRatio); if (alignmentRatio <= 0 || alignmentRatio >= 1) { // Cleanup lazy controller so that it is created again in next animation Loading src/com/android/launcher3/CellLayout.java +2 −8 Original line number Diff line number Diff line Loading @@ -149,8 +149,6 @@ public class CellLayout extends ViewGroup { private boolean mVisualizeDropLocation = true; private RectF mVisualizeGridRect = new RectF(); private Paint mVisualizeGridPaint = new Paint(); private int mGridVisualizationPaddingX; private int mGridVisualizationPaddingY; private int mGridVisualizationRoundingRadius; private float mGridAlpha = 0f; private int mGridColor = 0; Loading Loading @@ -262,10 +260,6 @@ public class CellLayout extends ViewGroup { mBackground.setAlpha(0); mGridColor = Themes.getAttrColor(getContext(), R.attr.workspaceAccentColor); mGridVisualizationPaddingX = res.getDimensionPixelSize( R.dimen.grid_visualization_horizontal_cell_spacing); mGridVisualizationPaddingY = res.getDimensionPixelSize( R.dimen.grid_visualization_vertical_cell_spacing); mGridVisualizationRoundingRadius = res.getDimensionPixelSize(R.dimen.grid_visualization_rounding_radius); mReorderPreviewAnimationMagnitude = (REORDER_PREVIEW_MAGNITUDE * deviceProfile.iconSizePx); Loading Loading @@ -595,8 +589,8 @@ public class CellLayout extends ViewGroup { protected void visualizeGrid(Canvas canvas) { DeviceProfile dp = mActivity.getDeviceProfile(); int paddingX = Math.min((mCellWidth - dp.iconSizePx) / 2, mGridVisualizationPaddingX); int paddingY = Math.min((mCellHeight - dp.iconSizePx) / 2, mGridVisualizationPaddingY); int paddingX = Math.min((mCellWidth - dp.iconSizePx) / 2, dp.gridVisualizationPaddingX); int paddingY = Math.min((mCellHeight - dp.iconSizePx) / 2, dp.gridVisualizationPaddingY); mVisualizeGridRect.set(paddingX, paddingY, mCellWidth - paddingX, mCellHeight - paddingY); Loading src/com/android/launcher3/DeviceProfile.java +26 −14 Original line number Diff line number Diff line Loading @@ -100,6 +100,8 @@ public class DeviceProfile { // Workspace public final int desiredWorkspaceHorizontalMarginOriginalPx; public int desiredWorkspaceHorizontalMarginPx; public int gridVisualizationPaddingX; public int gridVisualizationPaddingY; public Point cellLayoutBorderSpaceOriginalPx; public Point cellLayoutBorderSpacePx; public Rect cellLayoutPaddingPx = new Rect(); Loading Loading @@ -302,6 +304,10 @@ public class DeviceProfile { desiredWorkspaceHorizontalMarginPx = getHorizontalMarginPx(inv, res); desiredWorkspaceHorizontalMarginOriginalPx = desiredWorkspaceHorizontalMarginPx; gridVisualizationPaddingX = res.getDimensionPixelSize( R.dimen.grid_visualization_horizontal_cell_spacing); gridVisualizationPaddingY = res.getDimensionPixelSize( R.dimen.grid_visualization_vertical_cell_spacing); bottomSheetTopPadding = mInsets.top // statusbar height + res.getDimensionPixelSize(R.dimen.bottom_sheet_extra_top_padding) Loading Loading @@ -1066,24 +1072,23 @@ public class DeviceProfile { mInsets.right + hotseatBarSidePaddingStartPx, paddingBottom); } } else if (isTaskbarPresent) { boolean isRtl = Utilities.isRtl(context.getResources()); int hotseatHeight = workspacePadding.bottom; int taskbarOffset = getTaskbarOffsetY(); // Push icons to the side int additionalQsbSpace = isQsbInline ? qsbWidth + hotseatBorderSpace : 0; // Center the QSB vertically with hotseat int hotseatTopPadding = hotseatHeight - taskbarOffset - hotseatCellHeightPx; int hotseatBottomPadding = getHotseatBottomPadding(); int hotseatTopPadding = workspacePadding.bottom - hotseatBottomPadding - hotseatCellHeightPx; int endOffset = ApiWrapper.getHotseatEndOffset(context); // Push icons to the side int additionalQsbSpace = isQsbInline ? qsbWidth + hotseatBorderSpace : 0; int requiredWidth = iconSizePx * numShownHotseatIcons + hotseatBorderSpace * (numShownHotseatIcons - 1) + additionalQsbSpace; int endOffset = ApiWrapper.getHotseatEndOffset(context); int hotseatWidth = Math.min(requiredWidth, availableWidthPx - endOffset); int sideSpacing = (availableWidthPx - hotseatWidth) / 2; mHotseatPadding.set(sideSpacing, hotseatTopPadding, sideSpacing, taskbarOffset); mHotseatPadding.set(sideSpacing, hotseatTopPadding, sideSpacing, hotseatBottomPadding); boolean isRtl = Utilities.isRtl(context.getResources()); if (isRtl) { mHotseatPadding.right += additionalQsbSpace; } else { Loading Loading @@ -1143,10 +1148,7 @@ public class DeviceProfile { } } /** * Returns the number of pixels the taskbar is translated from the bottom of the screen. */ public int getTaskbarOffsetY() { private int getHotseatBottomPadding() { if (isQsbInline) { return getQsbOffsetY() - (Math.abs(hotseatQsbHeight - hotseatCellHeightPx) / 2); } else { Loading @@ -1154,6 +1156,16 @@ public class DeviceProfile { } } /** * Returns the number of pixels the taskbar is translated from the bottom of the screen. */ public int getTaskbarOffsetY() { int taskbarIconBottomSpace = (taskbarSize - iconSizePx) / 2; int launcherIconBottomSpace = Math.min((hotseatCellHeightPx - iconSizePx) / 2, gridVisualizationPaddingY); return getHotseatBottomPadding() + launcherIconBottomSpace - taskbarIconBottomSpace; } /** * Returns the number of pixels required below OverviewActions excluding insets. */ Loading Loading
quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java +3 −9 Original line number Diff line number Diff line Loading @@ -30,7 +30,6 @@ import androidx.annotation.Nullable; import com.android.launcher3.AbstractFloatingView; import com.android.launcher3.BaseQuickstepLauncher; import com.android.launcher3.DeviceProfile; import com.android.launcher3.LauncherState; import com.android.launcher3.Utilities; import com.android.launcher3.statemanager.StateManager; Loading Loading @@ -407,18 +406,13 @@ import java.util.function.Supplier; boolean firstFrameVisChanged = (taskbarWillBeVisible && Float.compare(currentValue, 1) != 0) || (!taskbarWillBeVisible && Float.compare(currentValue, 0) != 0); updateIconAlignment(alignment); // Sync the first frame where we swap taskbar and hotseat. if (firstFrameVisChanged && mCanSyncViews && !Utilities.IS_RUNNING_IN_TEST_HARNESS) { DeviceProfile dp = mLauncher.getDeviceProfile(); // Do all the heavy work before the sync. mControllers.taskbarViewController.createIconAlignmentControllerIfNotExists(dp); ViewRootSync.synchronizeNextDraw(mLauncher.getHotseat(), mControllers.taskbarActivityContext.getDragLayer(), () -> updateIconAlignment(alignment)); } else { updateIconAlignment(alignment); () -> {}); } } Loading
quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java +3 −11 Original line number Diff line number Diff line Loading @@ -204,16 +204,6 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar )); } /** * Creates the icon alignment controller if it does not already exist. * @param launcherDp Launcher device profile. */ public void createIconAlignmentControllerIfNotExists(DeviceProfile launcherDp) { if (mIconAlignControllerLazy == null) { mIconAlignControllerLazy = createIconAlignmentController(launcherDp); } } /** * Sets the taskbar icon alignment relative to Launcher hotseat icons * @param alignmentRatio [0, 1] Loading @@ -221,7 +211,9 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar * 1 => fully aligned */ public void setLauncherIconAlignment(float alignmentRatio, DeviceProfile launcherDp) { createIconAlignmentControllerIfNotExists(launcherDp); if (mIconAlignControllerLazy == null) { mIconAlignControllerLazy = createIconAlignmentController(launcherDp); } mIconAlignControllerLazy.setPlayFraction(alignmentRatio); if (alignmentRatio <= 0 || alignmentRatio >= 1) { // Cleanup lazy controller so that it is created again in next animation Loading
src/com/android/launcher3/CellLayout.java +2 −8 Original line number Diff line number Diff line Loading @@ -149,8 +149,6 @@ public class CellLayout extends ViewGroup { private boolean mVisualizeDropLocation = true; private RectF mVisualizeGridRect = new RectF(); private Paint mVisualizeGridPaint = new Paint(); private int mGridVisualizationPaddingX; private int mGridVisualizationPaddingY; private int mGridVisualizationRoundingRadius; private float mGridAlpha = 0f; private int mGridColor = 0; Loading Loading @@ -262,10 +260,6 @@ public class CellLayout extends ViewGroup { mBackground.setAlpha(0); mGridColor = Themes.getAttrColor(getContext(), R.attr.workspaceAccentColor); mGridVisualizationPaddingX = res.getDimensionPixelSize( R.dimen.grid_visualization_horizontal_cell_spacing); mGridVisualizationPaddingY = res.getDimensionPixelSize( R.dimen.grid_visualization_vertical_cell_spacing); mGridVisualizationRoundingRadius = res.getDimensionPixelSize(R.dimen.grid_visualization_rounding_radius); mReorderPreviewAnimationMagnitude = (REORDER_PREVIEW_MAGNITUDE * deviceProfile.iconSizePx); Loading Loading @@ -595,8 +589,8 @@ public class CellLayout extends ViewGroup { protected void visualizeGrid(Canvas canvas) { DeviceProfile dp = mActivity.getDeviceProfile(); int paddingX = Math.min((mCellWidth - dp.iconSizePx) / 2, mGridVisualizationPaddingX); int paddingY = Math.min((mCellHeight - dp.iconSizePx) / 2, mGridVisualizationPaddingY); int paddingX = Math.min((mCellWidth - dp.iconSizePx) / 2, dp.gridVisualizationPaddingX); int paddingY = Math.min((mCellHeight - dp.iconSizePx) / 2, dp.gridVisualizationPaddingY); mVisualizeGridRect.set(paddingX, paddingY, mCellWidth - paddingX, mCellHeight - paddingY); Loading
src/com/android/launcher3/DeviceProfile.java +26 −14 Original line number Diff line number Diff line Loading @@ -100,6 +100,8 @@ public class DeviceProfile { // Workspace public final int desiredWorkspaceHorizontalMarginOriginalPx; public int desiredWorkspaceHorizontalMarginPx; public int gridVisualizationPaddingX; public int gridVisualizationPaddingY; public Point cellLayoutBorderSpaceOriginalPx; public Point cellLayoutBorderSpacePx; public Rect cellLayoutPaddingPx = new Rect(); Loading Loading @@ -302,6 +304,10 @@ public class DeviceProfile { desiredWorkspaceHorizontalMarginPx = getHorizontalMarginPx(inv, res); desiredWorkspaceHorizontalMarginOriginalPx = desiredWorkspaceHorizontalMarginPx; gridVisualizationPaddingX = res.getDimensionPixelSize( R.dimen.grid_visualization_horizontal_cell_spacing); gridVisualizationPaddingY = res.getDimensionPixelSize( R.dimen.grid_visualization_vertical_cell_spacing); bottomSheetTopPadding = mInsets.top // statusbar height + res.getDimensionPixelSize(R.dimen.bottom_sheet_extra_top_padding) Loading Loading @@ -1066,24 +1072,23 @@ public class DeviceProfile { mInsets.right + hotseatBarSidePaddingStartPx, paddingBottom); } } else if (isTaskbarPresent) { boolean isRtl = Utilities.isRtl(context.getResources()); int hotseatHeight = workspacePadding.bottom; int taskbarOffset = getTaskbarOffsetY(); // Push icons to the side int additionalQsbSpace = isQsbInline ? qsbWidth + hotseatBorderSpace : 0; // Center the QSB vertically with hotseat int hotseatTopPadding = hotseatHeight - taskbarOffset - hotseatCellHeightPx; int hotseatBottomPadding = getHotseatBottomPadding(); int hotseatTopPadding = workspacePadding.bottom - hotseatBottomPadding - hotseatCellHeightPx; int endOffset = ApiWrapper.getHotseatEndOffset(context); // Push icons to the side int additionalQsbSpace = isQsbInline ? qsbWidth + hotseatBorderSpace : 0; int requiredWidth = iconSizePx * numShownHotseatIcons + hotseatBorderSpace * (numShownHotseatIcons - 1) + additionalQsbSpace; int endOffset = ApiWrapper.getHotseatEndOffset(context); int hotseatWidth = Math.min(requiredWidth, availableWidthPx - endOffset); int sideSpacing = (availableWidthPx - hotseatWidth) / 2; mHotseatPadding.set(sideSpacing, hotseatTopPadding, sideSpacing, taskbarOffset); mHotseatPadding.set(sideSpacing, hotseatTopPadding, sideSpacing, hotseatBottomPadding); boolean isRtl = Utilities.isRtl(context.getResources()); if (isRtl) { mHotseatPadding.right += additionalQsbSpace; } else { Loading Loading @@ -1143,10 +1148,7 @@ public class DeviceProfile { } } /** * Returns the number of pixels the taskbar is translated from the bottom of the screen. */ public int getTaskbarOffsetY() { private int getHotseatBottomPadding() { if (isQsbInline) { return getQsbOffsetY() - (Math.abs(hotseatQsbHeight - hotseatCellHeightPx) / 2); } else { Loading @@ -1154,6 +1156,16 @@ public class DeviceProfile { } } /** * Returns the number of pixels the taskbar is translated from the bottom of the screen. */ public int getTaskbarOffsetY() { int taskbarIconBottomSpace = (taskbarSize - iconSizePx) / 2; int launcherIconBottomSpace = Math.min((hotseatCellHeightPx - iconSizePx) / 2, gridVisualizationPaddingY); return getHotseatBottomPadding() + launcherIconBottomSpace - taskbarIconBottomSpace; } /** * Returns the number of pixels required below OverviewActions excluding insets. */ Loading