Loading quickstep/src/com/android/launcher3/taskbar/TaskbarView.java +2 −2 Original line number Diff line number Diff line Loading @@ -314,10 +314,10 @@ public class TaskbarView extends FrameLayout implements FolderIcon.FolderIconPar int qsbEnd; if (layoutRtl) { qsbStart = iconEnd + mItemMarginLeftRight; qsbEnd = qsbStart + deviceProfile.qsbWidth; qsbEnd = qsbStart + deviceProfile.hotseatQsbWidth; } else { qsbEnd = iconEnd - mItemMarginLeftRight; qsbStart = qsbEnd - deviceProfile.qsbWidth; qsbStart = qsbEnd - deviceProfile.hotseatQsbWidth; } int qsbTop = (bottom - top - deviceProfile.hotseatQsbHeight) / 2; int qsbBottom = qsbTop + deviceProfile.hotseatQsbHeight; Loading quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java +5 −4 Original line number Diff line number Diff line Loading @@ -295,10 +295,11 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar boolean isRtl = Utilities.isRtl(child.getResources()); float hotseatIconCenter = isRtl ? launcherDp.widthPx - hotseatPadding.right + borderSpacing + launcherDp.qsbWidth / 2f : hotseatPadding.left - borderSpacing - launcherDp.qsbWidth / 2f; + launcherDp.hotseatQsbWidth / 2f : hotseatPadding.left - borderSpacing - launcherDp.hotseatQsbWidth / 2f; float childCenter = (child.getLeft() + child.getRight()) / 2f; float halfQsbIconWidthDiff = (launcherDp.qsbWidth - taskbarDp.iconSizePx) / 2f; float halfQsbIconWidthDiff = (launcherDp.hotseatQsbWidth - taskbarDp.iconSizePx) / 2f; setter.addFloat(child, ICON_TRANSLATE_X, isRtl ? -halfQsbIconWidthDiff : halfQsbIconWidthDiff, hotseatIconCenter - childCenter, LINEAR); Loading @@ -312,7 +313,7 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar : Interpolators.clampToProgress(LINEAR, 0.84f, 1f)); setter.addOnFrameListener(animator -> AlphaUpdateListener.updateVisibility(child)); float qsbInsetFraction = halfQsbIconWidthDiff / launcherDp.qsbWidth; float qsbInsetFraction = halfQsbIconWidthDiff / launcherDp.hotseatQsbWidth; if (child instanceof HorizontalInsettableView) { setter.addFloat((HorizontalInsettableView) child, HorizontalInsettableView.HORIZONTAL_INSETS, qsbInsetFraction, 0, Loading quickstep/tests/src/com/android/quickstep/DeviceProfileTest.kt +16 −16 Original line number Diff line number Diff line Loading @@ -110,7 +110,7 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tnumShownHotseatIcons: 4\n" + "\thotseatBorderSpace: 95.0px (36.190475dp)\n" + "\tisQsbInline: false\n" + "\tqsbWidth: 913.0px (347.8095dp)\n" + "\thotseatQsbWidth: 913.0px (347.8095dp)\n" + "\tisTaskbarPresent:false\n" + "\tisTaskbarPresentInApps:false\n" + "\ttaskbarSize: 0.0px (0.0dp)\n" + Loading Loading @@ -229,7 +229,7 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tnumShownHotseatIcons: 4\n" + "\thotseatBorderSpace: 95.0px (36.190475dp)\n" + "\tisQsbInline: false\n" + "\tqsbWidth: 913.0px (347.8095dp)\n" + "\thotseatQsbWidth: 913.0px (347.8095dp)\n" + "\tisTaskbarPresent:false\n" + "\tisTaskbarPresentInApps:false\n" + "\ttaskbarSize: 0.0px (0.0dp)\n" + Loading Loading @@ -349,7 +349,7 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tnumShownHotseatIcons: 5\n" + "\thotseatBorderSpace: 101.0px (50.5dp)\n" + "\tisQsbInline: true\n" + "\tqsbWidth: 855.0px (427.5dp)\n" + "\thotseatQsbWidth: 855.0px (427.5dp)\n" + "\tisTaskbarPresent:true\n" + "\tisTaskbarPresentInApps:true\n" + "\ttaskbarSize: 120.0px (60.0dp)\n" + Loading Loading @@ -469,7 +469,7 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tnumShownHotseatIcons: 6\n" + "\thotseatBorderSpace: 100.0px (50.0dp)\n" + "\tisQsbInline: true\n" + "\tqsbWidth: 640.0px (320.0dp)\n" + "\thotseatQsbWidth: 640.0px (320.0dp)\n" + "\tisTaskbarPresent:true\n" + "\tisTaskbarPresentInApps:true\n" + "\ttaskbarSize: 120.0px (60.0dp)\n" + Loading Loading @@ -560,8 +560,8 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tfolderCellLayoutBorderSpacePx Horizontal: 0.0px (0.0dp)\n" + "\tfolderCellLayoutBorderSpacePx Vertical: 0.0px (0.0dp)\n" + "\tbottomSheetTopPadding: 704.0px (352.0dp)\n" + "\tallAppsShiftRange: 1856.0px (928.0dp)\n" + "\tallAppsTopPadding: 704.0px (352.0dp)\n" + "\tallAppsShiftRange: 1936.0px (968.0dp)\n" + "\tallAppsTopPadding: 624.0px (312.0dp)\n" + "\tallAppsIconSizePx: 120.0px (60.0dp)\n" + "\tallAppsIconTextSizePx: 28.0px (14.0dp)\n" + "\tallAppsIconDrawablePaddingPx: 14.0px (7.0dp)\n" + Loading Loading @@ -589,7 +589,7 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tnumShownHotseatIcons: 5\n" + "\thotseatBorderSpace: 116.0px (58.0dp)\n" + "\tisQsbInline: false\n" + "\tqsbWidth: 1300.0px (650.0dp)\n" + "\thotseatQsbWidth: 1300.0px (650.0dp)\n" + "\tisTaskbarPresent:true\n" + "\tisTaskbarPresentInApps:true\n" + "\ttaskbarSize: 120.0px (60.0dp)\n" + Loading Loading @@ -680,8 +680,8 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tfolderCellLayoutBorderSpacePx Horizontal: 0.0px (0.0dp)\n" + "\tfolderCellLayoutBorderSpacePx Vertical: 0.0px (0.0dp)\n" + "\tbottomSheetTopPadding: 704.0px (352.0dp)\n" + "\tallAppsShiftRange: 1856.0px (928.0dp)\n" + "\tallAppsTopPadding: 704.0px (352.0dp)\n" + "\tallAppsShiftRange: 1936.0px (968.0dp)\n" + "\tallAppsTopPadding: 624.0px (312.0dp)\n" + "\tallAppsIconSizePx: 120.0px (60.0dp)\n" + "\tallAppsIconTextSizePx: 28.0px (14.0dp)\n" + "\tallAppsIconDrawablePaddingPx: 14.0px (7.0dp)\n" + Loading Loading @@ -709,7 +709,7 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tnumShownHotseatIcons: 6\n" + "\thotseatBorderSpace: 116.0px (58.0dp)\n" + "\tisQsbInline: false\n" + "\tqsbWidth: 1300.0px (650.0dp)\n" + "\thotseatQsbWidth: 1300.0px (650.0dp)\n" + "\tisTaskbarPresent:true\n" + "\tisTaskbarPresentInApps:true\n" + "\ttaskbarSize: 120.0px (60.0dp)\n" + Loading Loading @@ -829,7 +829,7 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tnumShownHotseatIcons: 6\n" + "\thotseatBorderSpace: 61.0px (23.238094dp)\n" + "\tisQsbInline: false\n" + "\tqsbWidth: 1467.0px (558.8571dp)\n" + "\thotseatQsbWidth: 1467.0px (558.8571dp)\n" + "\tisTaskbarPresent:true\n" + "\tisTaskbarPresentInApps:true\n" + "\ttaskbarSize: 158.0px (60.190475dp)\n" + Loading Loading @@ -949,7 +949,7 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tnumShownHotseatIcons: 6\n" + "\thotseatBorderSpace: 105.0px (40.0dp)\n" + "\tisQsbInline: false\n" + "\tqsbWidth: 1467.0px (558.8571dp)\n" + "\thotseatQsbWidth: 1467.0px (558.8571dp)\n" + "\tisTaskbarPresent:true\n" + "\tisTaskbarPresentInApps:true\n" + "\ttaskbarSize: 158.0px (60.190475dp)\n" + Loading Loading @@ -1069,7 +1069,7 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tnumShownHotseatIcons: 6\n" + "\thotseatBorderSpace: 47.0px (17.904762dp)\n" + "\tisQsbInline: false\n" + "\tqsbWidth: 1236.0px (470.85715dp)\n" + "\thotseatQsbWidth: 1236.0px (470.85715dp)\n" + "\tisTaskbarPresent:true\n" + "\tisTaskbarPresentInApps:true\n" + "\ttaskbarSize: 158.0px (60.190475dp)\n" + Loading Loading @@ -1189,7 +1189,7 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tnumShownHotseatIcons: 6\n" + "\thotseatBorderSpace: 84.0px (32.0dp)\n" + "\tisQsbInline: false\n" + "\tqsbWidth: 1236.0px (470.85715dp)\n" + "\thotseatQsbWidth: 1236.0px (470.85715dp)\n" + "\tisTaskbarPresent:true\n" + "\tisTaskbarPresentInApps:true\n" + "\ttaskbarSize: 158.0px (60.190475dp)\n" + Loading Loading @@ -1308,7 +1308,7 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tnumShownHotseatIcons: 4\n" + "\thotseatBorderSpace: 0.0px (0.0dp)\n" + "\tisQsbInline: false\n" + "\tqsbWidth: 1525.0px (580.9524dp)\n" + "\thotseatQsbWidth: 1525.0px (580.9524dp)\n" + "\tisTaskbarPresent:false\n" + "\tisTaskbarPresentInApps:false\n" + "\ttaskbarSize: 0.0px (0.0dp)\n" + Loading Loading @@ -1427,7 +1427,7 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tnumShownHotseatIcons: 4\n" + "\thotseatBorderSpace: 0.0px (0.0dp)\n" + "\tisQsbInline: false\n" + "\tqsbWidth: 1621.0px (617.5238dp)\n" + "\thotseatQsbWidth: 1621.0px (617.5238dp)\n" + "\tisTaskbarPresent:false\n" + "\tisTaskbarPresentInApps:false\n" + "\ttaskbarSize: 0.0px (0.0dp)\n" + Loading src/com/android/launcher3/DeviceProfile.java +21 −11 Original line number Diff line number Diff line Loading @@ -41,7 +41,6 @@ import androidx.annotation.NonNull; import com.android.launcher3.CellLayout.ContainerType; import com.android.launcher3.DevicePaddings.DevicePadding; import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.icons.DotRenderer; import com.android.launcher3.icons.IconNormalizer; import com.android.launcher3.uioverrides.ApiWrapper; Loading @@ -56,6 +55,8 @@ import java.util.List; public class DeviceProfile { private static final int DEFAULT_DOT_SIZE = 100; private static final float ALL_APPS_TABLET_MAX_ROWS = 5.5f; // Ratio of empty space, qsb should take up to appear visually centered. private final float mQsbCenterFactor; Loading Loading @@ -169,13 +170,12 @@ public class DeviceProfile { // Start is the side next to the nav bar, end is the side next to the workspace public final int hotseatBarSidePaddingStartPx; public final int hotseatBarSidePaddingEndPx; public int hotseatQsbWidth; // only used when isQsbInline public final int hotseatQsbHeight; public final int hotseatQsbVisualHeight; private final int hotseatQsbShadowHeight; public int hotseatBorderSpace; public int qsbWidth; // only used when isQsbInline // All apps public Point allAppsBorderSpacePx; public int allAppsShiftRange; Loading Loading @@ -311,10 +311,6 @@ public class DeviceProfile { + res.getDimensionPixelSize(R.dimen.bottom_sheet_extra_top_padding) + (isTablet ? 0 : edgeMarginPx); // phones need edgeMarginPx additional padding allAppsTopPadding = isTablet ? bottomSheetTopPadding : 0; allAppsShiftRange = isTablet ? heightPx - allAppsTopPadding : res.getDimensionPixelSize(R.dimen.all_apps_starting_vertical_translate); folderLabelTextScale = res.getFloat(R.dimen.folder_label_text_scale); folderContentPaddingLeftRight = res.getDimensionPixelSize(R.dimen.folder_content_padding_left_right); Loading Loading @@ -465,7 +461,21 @@ public class DeviceProfile { // Hotseat and QSB width depends on updated cellSize and workspace padding hotseatBorderSpace = calculateHotseatBorderSpace(); qsbWidth = calculateQsbWidth(); hotseatQsbWidth = calculateQsbWidth(); // AllApps height calculation depends on updated cellSize if (isTablet) { int collapseHandleHeight = res.getDimensionPixelOffset(R.dimen.bottom_sheet_handle_area_height); int contentHeight = heightPx - collapseHandleHeight - hotseatQsbHeight; int targetContentHeight = (int) (allAppsCellHeightPx * ALL_APPS_TABLET_MAX_ROWS); allAppsTopPadding = Math.max(mInsets.top, contentHeight - targetContentHeight); allAppsShiftRange = heightPx - allAppsTopPadding; } else { allAppsTopPadding = 0; allAppsShiftRange = res.getDimensionPixelSize(R.dimen.all_apps_starting_vertical_translate); } flingToDeleteThresholdVelocity = res.getDimensionPixelSize( R.dimen.drag_flingToDeleteMinVelocity); Loading Loading @@ -1068,7 +1078,7 @@ public class DeviceProfile { hotseatBarSizePx - hotseatBarBottomPadding - hotseatCellHeightPx; // Push icons to the side int additionalQsbSpace = isQsbInline ? qsbWidth + hotseatBorderSpace : 0; int additionalQsbSpace = isQsbInline ? hotseatQsbWidth + hotseatBorderSpace : 0; int requiredWidth = iconSizePx * numShownHotseatIcons + hotseatBorderSpace * (numShownHotseatIcons - 1) + additionalQsbSpace; Loading @@ -1093,7 +1103,7 @@ public class DeviceProfile { hotseatBarPadding.right += diff; } } else if (isScalableGrid) { int sideSpacing = (availableWidthPx - qsbWidth) / 2; int sideSpacing = (availableWidthPx - hotseatQsbWidth) / 2; hotseatBarPadding.set(sideSpacing, 0, sideSpacing, Loading Loading @@ -1366,7 +1376,7 @@ public class DeviceProfile { writer.println(prefix + "\tnumShownHotseatIcons: " + numShownHotseatIcons); writer.println(prefix + pxToDpStr("hotseatBorderSpace", hotseatBorderSpace)); writer.println(prefix + "\tisQsbInline: " + isQsbInline); writer.println(prefix + pxToDpStr("qsbWidth", qsbWidth)); writer.println(prefix + pxToDpStr("hotseatQsbWidth", hotseatQsbWidth)); writer.println(prefix + "\tisTaskbarPresent:" + isTaskbarPresent); writer.println(prefix + "\tisTaskbarPresentInApps:" + isTaskbarPresentInApps); Loading src/com/android/launcher3/Hotseat.java +12 −15 Original line number Diff line number Diff line Loading @@ -47,7 +47,6 @@ public class Hotseat extends CellLayout implements Insettable { private Consumer<Boolean> mOnVisibilityAggregatedCallback; private final View mQsb; private final int mQsbHeight; public Hotseat(Context context) { this(context, null); Loading @@ -62,8 +61,6 @@ public class Hotseat extends CellLayout implements Insettable { mQsb = LayoutInflater.from(context).inflate(R.layout.search_container_hotseat, this, false); addView(mQsb); mQsbHeight = getResources().getDimensionPixelSize(R.dimen.qsb_widget_height); } /** Loading Loading @@ -171,29 +168,29 @@ public class Hotseat extends CellLayout implements Insettable { protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); int qsbWidth = mActivity.getDeviceProfile().qsbWidth; mQsb.measure(MeasureSpec.makeMeasureSpec(qsbWidth, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(mQsbHeight, MeasureSpec.EXACTLY)); DeviceProfile dp = mActivity.getDeviceProfile(); mQsb.measure(MeasureSpec.makeMeasureSpec(dp.hotseatQsbWidth, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(dp.hotseatQsbHeight, MeasureSpec.EXACTLY)); } @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { super.onLayout(changed, l, t, r, b); int qsbWidth = mQsb.getMeasuredWidth(); int qsbMeasuredWidth = mQsb.getMeasuredWidth(); int left; if (mActivity.getDeviceProfile().isQsbInline) { int qsbSpace = mActivity.getDeviceProfile().hotseatBorderSpace; DeviceProfile dp = mActivity.getDeviceProfile(); if (dp.isQsbInline) { int qsbSpace = dp.hotseatBorderSpace; left = Utilities.isRtl(getResources()) ? r - getPaddingRight() + qsbSpace : l + getPaddingLeft() - qsbWidth - qsbSpace; : l + getPaddingLeft() - qsbMeasuredWidth - qsbSpace; } else { left = (r - l - qsbWidth) / 2; left = (r - l - qsbMeasuredWidth) / 2; } int right = left + qsbWidth; int right = left + qsbMeasuredWidth; int bottom = b - t - mActivity.getDeviceProfile().getQsbOffsetY(); int top = bottom - mQsbHeight; int bottom = b - t - dp.getQsbOffsetY(); int top = bottom - dp.hotseatQsbHeight; mQsb.layout(left, top, right, bottom); } Loading Loading
quickstep/src/com/android/launcher3/taskbar/TaskbarView.java +2 −2 Original line number Diff line number Diff line Loading @@ -314,10 +314,10 @@ public class TaskbarView extends FrameLayout implements FolderIcon.FolderIconPar int qsbEnd; if (layoutRtl) { qsbStart = iconEnd + mItemMarginLeftRight; qsbEnd = qsbStart + deviceProfile.qsbWidth; qsbEnd = qsbStart + deviceProfile.hotseatQsbWidth; } else { qsbEnd = iconEnd - mItemMarginLeftRight; qsbStart = qsbEnd - deviceProfile.qsbWidth; qsbStart = qsbEnd - deviceProfile.hotseatQsbWidth; } int qsbTop = (bottom - top - deviceProfile.hotseatQsbHeight) / 2; int qsbBottom = qsbTop + deviceProfile.hotseatQsbHeight; Loading
quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java +5 −4 Original line number Diff line number Diff line Loading @@ -295,10 +295,11 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar boolean isRtl = Utilities.isRtl(child.getResources()); float hotseatIconCenter = isRtl ? launcherDp.widthPx - hotseatPadding.right + borderSpacing + launcherDp.qsbWidth / 2f : hotseatPadding.left - borderSpacing - launcherDp.qsbWidth / 2f; + launcherDp.hotseatQsbWidth / 2f : hotseatPadding.left - borderSpacing - launcherDp.hotseatQsbWidth / 2f; float childCenter = (child.getLeft() + child.getRight()) / 2f; float halfQsbIconWidthDiff = (launcherDp.qsbWidth - taskbarDp.iconSizePx) / 2f; float halfQsbIconWidthDiff = (launcherDp.hotseatQsbWidth - taskbarDp.iconSizePx) / 2f; setter.addFloat(child, ICON_TRANSLATE_X, isRtl ? -halfQsbIconWidthDiff : halfQsbIconWidthDiff, hotseatIconCenter - childCenter, LINEAR); Loading @@ -312,7 +313,7 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar : Interpolators.clampToProgress(LINEAR, 0.84f, 1f)); setter.addOnFrameListener(animator -> AlphaUpdateListener.updateVisibility(child)); float qsbInsetFraction = halfQsbIconWidthDiff / launcherDp.qsbWidth; float qsbInsetFraction = halfQsbIconWidthDiff / launcherDp.hotseatQsbWidth; if (child instanceof HorizontalInsettableView) { setter.addFloat((HorizontalInsettableView) child, HorizontalInsettableView.HORIZONTAL_INSETS, qsbInsetFraction, 0, Loading
quickstep/tests/src/com/android/quickstep/DeviceProfileTest.kt +16 −16 Original line number Diff line number Diff line Loading @@ -110,7 +110,7 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tnumShownHotseatIcons: 4\n" + "\thotseatBorderSpace: 95.0px (36.190475dp)\n" + "\tisQsbInline: false\n" + "\tqsbWidth: 913.0px (347.8095dp)\n" + "\thotseatQsbWidth: 913.0px (347.8095dp)\n" + "\tisTaskbarPresent:false\n" + "\tisTaskbarPresentInApps:false\n" + "\ttaskbarSize: 0.0px (0.0dp)\n" + Loading Loading @@ -229,7 +229,7 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tnumShownHotseatIcons: 4\n" + "\thotseatBorderSpace: 95.0px (36.190475dp)\n" + "\tisQsbInline: false\n" + "\tqsbWidth: 913.0px (347.8095dp)\n" + "\thotseatQsbWidth: 913.0px (347.8095dp)\n" + "\tisTaskbarPresent:false\n" + "\tisTaskbarPresentInApps:false\n" + "\ttaskbarSize: 0.0px (0.0dp)\n" + Loading Loading @@ -349,7 +349,7 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tnumShownHotseatIcons: 5\n" + "\thotseatBorderSpace: 101.0px (50.5dp)\n" + "\tisQsbInline: true\n" + "\tqsbWidth: 855.0px (427.5dp)\n" + "\thotseatQsbWidth: 855.0px (427.5dp)\n" + "\tisTaskbarPresent:true\n" + "\tisTaskbarPresentInApps:true\n" + "\ttaskbarSize: 120.0px (60.0dp)\n" + Loading Loading @@ -469,7 +469,7 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tnumShownHotseatIcons: 6\n" + "\thotseatBorderSpace: 100.0px (50.0dp)\n" + "\tisQsbInline: true\n" + "\tqsbWidth: 640.0px (320.0dp)\n" + "\thotseatQsbWidth: 640.0px (320.0dp)\n" + "\tisTaskbarPresent:true\n" + "\tisTaskbarPresentInApps:true\n" + "\ttaskbarSize: 120.0px (60.0dp)\n" + Loading Loading @@ -560,8 +560,8 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tfolderCellLayoutBorderSpacePx Horizontal: 0.0px (0.0dp)\n" + "\tfolderCellLayoutBorderSpacePx Vertical: 0.0px (0.0dp)\n" + "\tbottomSheetTopPadding: 704.0px (352.0dp)\n" + "\tallAppsShiftRange: 1856.0px (928.0dp)\n" + "\tallAppsTopPadding: 704.0px (352.0dp)\n" + "\tallAppsShiftRange: 1936.0px (968.0dp)\n" + "\tallAppsTopPadding: 624.0px (312.0dp)\n" + "\tallAppsIconSizePx: 120.0px (60.0dp)\n" + "\tallAppsIconTextSizePx: 28.0px (14.0dp)\n" + "\tallAppsIconDrawablePaddingPx: 14.0px (7.0dp)\n" + Loading Loading @@ -589,7 +589,7 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tnumShownHotseatIcons: 5\n" + "\thotseatBorderSpace: 116.0px (58.0dp)\n" + "\tisQsbInline: false\n" + "\tqsbWidth: 1300.0px (650.0dp)\n" + "\thotseatQsbWidth: 1300.0px (650.0dp)\n" + "\tisTaskbarPresent:true\n" + "\tisTaskbarPresentInApps:true\n" + "\ttaskbarSize: 120.0px (60.0dp)\n" + Loading Loading @@ -680,8 +680,8 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tfolderCellLayoutBorderSpacePx Horizontal: 0.0px (0.0dp)\n" + "\tfolderCellLayoutBorderSpacePx Vertical: 0.0px (0.0dp)\n" + "\tbottomSheetTopPadding: 704.0px (352.0dp)\n" + "\tallAppsShiftRange: 1856.0px (928.0dp)\n" + "\tallAppsTopPadding: 704.0px (352.0dp)\n" + "\tallAppsShiftRange: 1936.0px (968.0dp)\n" + "\tallAppsTopPadding: 624.0px (312.0dp)\n" + "\tallAppsIconSizePx: 120.0px (60.0dp)\n" + "\tallAppsIconTextSizePx: 28.0px (14.0dp)\n" + "\tallAppsIconDrawablePaddingPx: 14.0px (7.0dp)\n" + Loading Loading @@ -709,7 +709,7 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tnumShownHotseatIcons: 6\n" + "\thotseatBorderSpace: 116.0px (58.0dp)\n" + "\tisQsbInline: false\n" + "\tqsbWidth: 1300.0px (650.0dp)\n" + "\thotseatQsbWidth: 1300.0px (650.0dp)\n" + "\tisTaskbarPresent:true\n" + "\tisTaskbarPresentInApps:true\n" + "\ttaskbarSize: 120.0px (60.0dp)\n" + Loading Loading @@ -829,7 +829,7 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tnumShownHotseatIcons: 6\n" + "\thotseatBorderSpace: 61.0px (23.238094dp)\n" + "\tisQsbInline: false\n" + "\tqsbWidth: 1467.0px (558.8571dp)\n" + "\thotseatQsbWidth: 1467.0px (558.8571dp)\n" + "\tisTaskbarPresent:true\n" + "\tisTaskbarPresentInApps:true\n" + "\ttaskbarSize: 158.0px (60.190475dp)\n" + Loading Loading @@ -949,7 +949,7 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tnumShownHotseatIcons: 6\n" + "\thotseatBorderSpace: 105.0px (40.0dp)\n" + "\tisQsbInline: false\n" + "\tqsbWidth: 1467.0px (558.8571dp)\n" + "\thotseatQsbWidth: 1467.0px (558.8571dp)\n" + "\tisTaskbarPresent:true\n" + "\tisTaskbarPresentInApps:true\n" + "\ttaskbarSize: 158.0px (60.190475dp)\n" + Loading Loading @@ -1069,7 +1069,7 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tnumShownHotseatIcons: 6\n" + "\thotseatBorderSpace: 47.0px (17.904762dp)\n" + "\tisQsbInline: false\n" + "\tqsbWidth: 1236.0px (470.85715dp)\n" + "\thotseatQsbWidth: 1236.0px (470.85715dp)\n" + "\tisTaskbarPresent:true\n" + "\tisTaskbarPresentInApps:true\n" + "\ttaskbarSize: 158.0px (60.190475dp)\n" + Loading Loading @@ -1189,7 +1189,7 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tnumShownHotseatIcons: 6\n" + "\thotseatBorderSpace: 84.0px (32.0dp)\n" + "\tisQsbInline: false\n" + "\tqsbWidth: 1236.0px (470.85715dp)\n" + "\thotseatQsbWidth: 1236.0px (470.85715dp)\n" + "\tisTaskbarPresent:true\n" + "\tisTaskbarPresentInApps:true\n" + "\ttaskbarSize: 158.0px (60.190475dp)\n" + Loading Loading @@ -1308,7 +1308,7 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tnumShownHotseatIcons: 4\n" + "\thotseatBorderSpace: 0.0px (0.0dp)\n" + "\tisQsbInline: false\n" + "\tqsbWidth: 1525.0px (580.9524dp)\n" + "\thotseatQsbWidth: 1525.0px (580.9524dp)\n" + "\tisTaskbarPresent:false\n" + "\tisTaskbarPresentInApps:false\n" + "\ttaskbarSize: 0.0px (0.0dp)\n" + Loading Loading @@ -1427,7 +1427,7 @@ class DeviceProfileTest : DeviceProfileBaseTest() { "\tnumShownHotseatIcons: 4\n" + "\thotseatBorderSpace: 0.0px (0.0dp)\n" + "\tisQsbInline: false\n" + "\tqsbWidth: 1621.0px (617.5238dp)\n" + "\thotseatQsbWidth: 1621.0px (617.5238dp)\n" + "\tisTaskbarPresent:false\n" + "\tisTaskbarPresentInApps:false\n" + "\ttaskbarSize: 0.0px (0.0dp)\n" + Loading
src/com/android/launcher3/DeviceProfile.java +21 −11 Original line number Diff line number Diff line Loading @@ -41,7 +41,6 @@ import androidx.annotation.NonNull; import com.android.launcher3.CellLayout.ContainerType; import com.android.launcher3.DevicePaddings.DevicePadding; import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.icons.DotRenderer; import com.android.launcher3.icons.IconNormalizer; import com.android.launcher3.uioverrides.ApiWrapper; Loading @@ -56,6 +55,8 @@ import java.util.List; public class DeviceProfile { private static final int DEFAULT_DOT_SIZE = 100; private static final float ALL_APPS_TABLET_MAX_ROWS = 5.5f; // Ratio of empty space, qsb should take up to appear visually centered. private final float mQsbCenterFactor; Loading Loading @@ -169,13 +170,12 @@ public class DeviceProfile { // Start is the side next to the nav bar, end is the side next to the workspace public final int hotseatBarSidePaddingStartPx; public final int hotseatBarSidePaddingEndPx; public int hotseatQsbWidth; // only used when isQsbInline public final int hotseatQsbHeight; public final int hotseatQsbVisualHeight; private final int hotseatQsbShadowHeight; public int hotseatBorderSpace; public int qsbWidth; // only used when isQsbInline // All apps public Point allAppsBorderSpacePx; public int allAppsShiftRange; Loading Loading @@ -311,10 +311,6 @@ public class DeviceProfile { + res.getDimensionPixelSize(R.dimen.bottom_sheet_extra_top_padding) + (isTablet ? 0 : edgeMarginPx); // phones need edgeMarginPx additional padding allAppsTopPadding = isTablet ? bottomSheetTopPadding : 0; allAppsShiftRange = isTablet ? heightPx - allAppsTopPadding : res.getDimensionPixelSize(R.dimen.all_apps_starting_vertical_translate); folderLabelTextScale = res.getFloat(R.dimen.folder_label_text_scale); folderContentPaddingLeftRight = res.getDimensionPixelSize(R.dimen.folder_content_padding_left_right); Loading Loading @@ -465,7 +461,21 @@ public class DeviceProfile { // Hotseat and QSB width depends on updated cellSize and workspace padding hotseatBorderSpace = calculateHotseatBorderSpace(); qsbWidth = calculateQsbWidth(); hotseatQsbWidth = calculateQsbWidth(); // AllApps height calculation depends on updated cellSize if (isTablet) { int collapseHandleHeight = res.getDimensionPixelOffset(R.dimen.bottom_sheet_handle_area_height); int contentHeight = heightPx - collapseHandleHeight - hotseatQsbHeight; int targetContentHeight = (int) (allAppsCellHeightPx * ALL_APPS_TABLET_MAX_ROWS); allAppsTopPadding = Math.max(mInsets.top, contentHeight - targetContentHeight); allAppsShiftRange = heightPx - allAppsTopPadding; } else { allAppsTopPadding = 0; allAppsShiftRange = res.getDimensionPixelSize(R.dimen.all_apps_starting_vertical_translate); } flingToDeleteThresholdVelocity = res.getDimensionPixelSize( R.dimen.drag_flingToDeleteMinVelocity); Loading Loading @@ -1068,7 +1078,7 @@ public class DeviceProfile { hotseatBarSizePx - hotseatBarBottomPadding - hotseatCellHeightPx; // Push icons to the side int additionalQsbSpace = isQsbInline ? qsbWidth + hotseatBorderSpace : 0; int additionalQsbSpace = isQsbInline ? hotseatQsbWidth + hotseatBorderSpace : 0; int requiredWidth = iconSizePx * numShownHotseatIcons + hotseatBorderSpace * (numShownHotseatIcons - 1) + additionalQsbSpace; Loading @@ -1093,7 +1103,7 @@ public class DeviceProfile { hotseatBarPadding.right += diff; } } else if (isScalableGrid) { int sideSpacing = (availableWidthPx - qsbWidth) / 2; int sideSpacing = (availableWidthPx - hotseatQsbWidth) / 2; hotseatBarPadding.set(sideSpacing, 0, sideSpacing, Loading Loading @@ -1366,7 +1376,7 @@ public class DeviceProfile { writer.println(prefix + "\tnumShownHotseatIcons: " + numShownHotseatIcons); writer.println(prefix + pxToDpStr("hotseatBorderSpace", hotseatBorderSpace)); writer.println(prefix + "\tisQsbInline: " + isQsbInline); writer.println(prefix + pxToDpStr("qsbWidth", qsbWidth)); writer.println(prefix + pxToDpStr("hotseatQsbWidth", hotseatQsbWidth)); writer.println(prefix + "\tisTaskbarPresent:" + isTaskbarPresent); writer.println(prefix + "\tisTaskbarPresentInApps:" + isTaskbarPresentInApps); Loading
src/com/android/launcher3/Hotseat.java +12 −15 Original line number Diff line number Diff line Loading @@ -47,7 +47,6 @@ public class Hotseat extends CellLayout implements Insettable { private Consumer<Boolean> mOnVisibilityAggregatedCallback; private final View mQsb; private final int mQsbHeight; public Hotseat(Context context) { this(context, null); Loading @@ -62,8 +61,6 @@ public class Hotseat extends CellLayout implements Insettable { mQsb = LayoutInflater.from(context).inflate(R.layout.search_container_hotseat, this, false); addView(mQsb); mQsbHeight = getResources().getDimensionPixelSize(R.dimen.qsb_widget_height); } /** Loading Loading @@ -171,29 +168,29 @@ public class Hotseat extends CellLayout implements Insettable { protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); int qsbWidth = mActivity.getDeviceProfile().qsbWidth; mQsb.measure(MeasureSpec.makeMeasureSpec(qsbWidth, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(mQsbHeight, MeasureSpec.EXACTLY)); DeviceProfile dp = mActivity.getDeviceProfile(); mQsb.measure(MeasureSpec.makeMeasureSpec(dp.hotseatQsbWidth, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(dp.hotseatQsbHeight, MeasureSpec.EXACTLY)); } @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { super.onLayout(changed, l, t, r, b); int qsbWidth = mQsb.getMeasuredWidth(); int qsbMeasuredWidth = mQsb.getMeasuredWidth(); int left; if (mActivity.getDeviceProfile().isQsbInline) { int qsbSpace = mActivity.getDeviceProfile().hotseatBorderSpace; DeviceProfile dp = mActivity.getDeviceProfile(); if (dp.isQsbInline) { int qsbSpace = dp.hotseatBorderSpace; left = Utilities.isRtl(getResources()) ? r - getPaddingRight() + qsbSpace : l + getPaddingLeft() - qsbWidth - qsbSpace; : l + getPaddingLeft() - qsbMeasuredWidth - qsbSpace; } else { left = (r - l - qsbWidth) / 2; left = (r - l - qsbMeasuredWidth) / 2; } int right = left + qsbWidth; int right = left + qsbMeasuredWidth; int bottom = b - t - mActivity.getDeviceProfile().getQsbOffsetY(); int top = bottom - mQsbHeight; int bottom = b - t - dp.getQsbOffsetY(); int top = bottom - dp.hotseatQsbHeight; mQsb.layout(left, top, right, bottom); } Loading