Loading quickstep/tests/src/com/android/quickstep/HotseatWidthCalculationTest.kt +37 −9 Original line number Diff line number Diff line Loading @@ -42,6 +42,8 @@ class HotseatWidthCalculationTest : FakeInvariantDeviceProfileTest() { assertThat(dp.hotseatBarEndOffset).isEqualTo(510) assertThat(dp.numShownHotseatIcons).isEqualTo(6) assertThat(dp.hotseatBorderSpace).isEqualTo(70) assertThat(dp.hotseatColumnSpan).isEqualTo(6) assertThat(dp.hotseatWidthPx).isEqualTo(1445) assertThat(dp.getHotseatLayoutPadding(context).left).isEqualTo(150) assertThat(dp.getHotseatLayoutPadding(context).right).isEqualTo(580) Loading @@ -64,6 +66,8 @@ class HotseatWidthCalculationTest : FakeInvariantDeviceProfileTest() { assertThat(dp.hotseatBarEndOffset).isEqualTo(510) assertThat(dp.numShownHotseatIcons).isEqualTo(4) assertThat(dp.hotseatBorderSpace).isEqualTo(40) assertThat(dp.hotseatColumnSpan).isEqualTo(6) assertThat(dp.hotseatWidthPx).isEqualTo(1080) assertThat(dp.getHotseatLayoutPadding(context).left).isEqualTo(150) assertThat(dp.getHotseatLayoutPadding(context).right).isEqualTo(550) Loading @@ -85,6 +89,8 @@ class HotseatWidthCalculationTest : FakeInvariantDeviceProfileTest() { assertThat(dp.hotseatBarEndOffset).isEqualTo(705) assertThat(dp.numShownHotseatIcons).isEqualTo(6) assertThat(dp.hotseatBorderSpace).isEqualTo(54) assertThat(dp.hotseatColumnSpan).isEqualTo(6) assertThat(dp.hotseatWidthPx).isEqualTo(1468) assertThat(dp.getHotseatLayoutPadding(context).left).isEqualTo(231) assertThat(dp.getHotseatLayoutPadding(context).right).isEqualTo(759) Loading @@ -100,22 +106,21 @@ class HotseatWidthCalculationTest : FakeInvariantDeviceProfileTest() { @Test fun nav_buttons_dont_interfere_with_required_hotseat_width() { initializeVarsForTablet(isGestureMode = false, isLandscape = true) inv?.apply { hotseatColumnSpan = IntArray(4) { 4 } inlineQsb = BooleanArray(4) { false } } inv?.apply { inlineQsb = BooleanArray(4) { false } } val dp = newDP() dp.isTaskbarPresentInApps = true assertThat(dp.hotseatBarEndOffset).isEqualTo(660) assertThat(dp.numShownHotseatIcons).isEqualTo(6) assertThat(dp.hotseatBorderSpace).isEqualTo(100) assertThat(dp.hotseatColumnSpan).isEqualTo(6) assertThat(dp.hotseatWidthPx).isEqualTo(1975) assertThat(dp.getHotseatLayoutPadding(context).left).isEqualTo(300) assertThat(dp.getHotseatLayoutPadding(context).right).isEqualTo(1040) assertThat(dp.isQsbInline).isFalse() assertThat(dp.hotseatQsbWidth).isEqualTo(1223) assertThat(dp.hotseatQsbWidth).isEqualTo(1965) } /** This is a case when after setting the hotseat, the QSB width needs to be changed to fit */ Loading @@ -128,13 +133,15 @@ class HotseatWidthCalculationTest : FakeInvariantDeviceProfileTest() { assertThat(dp.hotseatBarEndOffset).isEqualTo(660) assertThat(dp.numShownHotseatIcons).isEqualTo(6) assertThat(dp.hotseatBorderSpace).isEqualTo(36) assertThat(dp.hotseatBorderSpace).isEqualTo(34) assertThat(dp.hotseatColumnSpan).isEqualTo(4) assertThat(dp.hotseatWidthPx).isEqualTo(1179) assertThat(dp.getHotseatLayoutPadding(context).left).isEqualTo(864) assertThat(dp.getHotseatLayoutPadding(context).right).isEqualTo(696) assertThat(dp.getHotseatLayoutPadding(context).left).isEqualTo(876) assertThat(dp.getHotseatLayoutPadding(context).right).isEqualTo(694) assertThat(dp.isQsbInline).isTrue() assertThat(dp.hotseatQsbWidth).isEqualTo(528) assertThat(dp.hotseatQsbWidth).isEqualTo(542) } /** Loading @@ -151,6 +158,8 @@ class HotseatWidthCalculationTest : FakeInvariantDeviceProfileTest() { assertThat(dp.hotseatBarEndOffset).isEqualTo(660) assertThat(dp.numShownHotseatIcons).isEqualTo(5) assertThat(dp.hotseatBorderSpace).isEqualTo(36) assertThat(dp.hotseatColumnSpan).isEqualTo(4) assertThat(dp.hotseatWidthPx).isEqualTo(1095) assertThat(dp.getHotseatLayoutPadding(context).left).isEqualTo(816) assertThat(dp.getHotseatLayoutPadding(context).right).isEqualTo(700) Loading @@ -158,4 +167,23 @@ class HotseatWidthCalculationTest : FakeInvariantDeviceProfileTest() { assertThat(dp.isQsbInline).isTrue() assertThat(dp.hotseatQsbWidth).isEqualTo(480) } @Test fun increase_span_when_space_between_icons_is_less_than_minimum() { initializeVarsForTwoPanel(isGestureMode = false, isLandscape = false, rows = 5, cols = 5) val dp = newDP() dp.isTaskbarPresentInApps = true assertThat(dp.hotseatBarEndOffset).isEqualTo(600) assertThat(dp.numShownHotseatIcons).isEqualTo(6) assertThat(dp.hotseatBorderSpace).isEqualTo(48) assertThat(dp.hotseatColumnSpan).isEqualTo(8) assertThat(dp.hotseatWidthPx).isEqualTo(1383) assertThat(dp.getHotseatLayoutPadding(context).left).isEqualTo(126) assertThat(dp.getHotseatLayoutPadding(context).right).isEqualTo(652) assertThat(dp.isQsbInline).isFalse() assertThat(dp.hotseatQsbWidth).isEqualTo(1372) } } res/values-sw600dp/dimens.xml +1 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ <!-- Hotseat --> <dimen name="dynamic_grid_hotseat_side_padding">0dp</dimen> <dimen name="spring_loaded_hotseat_top_margin">65dp</dimen> <dimen name="min_hotseat_icon_space">17dp</dimen> <!-- Dragging --> <dimen name="drop_target_top_margin">64dp</dimen> Loading res/values/attrs.xml +0 −11 Original line number Diff line number Diff line Loading @@ -204,17 +204,6 @@ defaults to 2 * numHotseatIcons --> <attr name="numExtendedHotseatIcons" format="integer" /> <!-- alignment of hotseat to the grid. Not applicable for 3 button mode when taskbar is enabled --> <!-- defaults to numColumns, if not specified --> <attr name="hotseatColumnSpan" format="integer" /> <!-- defaults to numColumns, if not specified --> <attr name="hotseatColumnSpanLandscape" format="integer" /> <!-- defaults to numColumns, if not specified --> <attr name="hotseatColumnSpanTwoPanelLandscape" format="integer" /> <!-- defaults to numColumns, if not specified --> <attr name="hotseatColumnSpanTwoPanelPortrait" format="integer" /> <!-- Spacing to have at the end of the nav buttons in large screen 3 button nav, defaults to @dimen/taskbar_button_margin_default --> <attr name="inlineNavButtonsEndSpacing" format="reference" /> Loading res/xml/device_profiles.xml +0 −1 Original line number Diff line number Diff line Loading @@ -168,7 +168,6 @@ launcher:numFolderRows="3" launcher:numFolderColumns="3" launcher:numHotseatIcons="6" launcher:hotseatColumnSpanLandscape="4" launcher:numAllAppsColumns="6" launcher:isScalable="true" launcher:inlineNavButtonsEndSpacing="@dimen/taskbar_button_margin_6_5" Loading src/com/android/launcher3/DeviceProfile.java +47 −6 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ import android.view.Surface; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.core.content.res.ResourcesCompat; import com.android.launcher3.CellLayout.ContainerType; Loading Loading @@ -212,6 +213,8 @@ public class DeviceProfile { // Hotseat public int numShownHotseatIcons; public int hotseatCellHeightPx; private int mHotseatColumnSpan; private int mHotseatWidthPx; // not used in vertical bar layout public final boolean areNavButtonsInline; // In portrait: size = height, in landscape: size = width public int hotseatBarSizePx; Loading Loading @@ -551,6 +554,7 @@ public class DeviceProfile { areNavButtonsInline = isTaskbarPresent && !isGestureMode; numShownHotseatIcons = isTwoPanels ? inv.numDatabaseHotseatIcons : inv.numShownHotseatIcons; mHotseatColumnSpan = inv.numColumns; numShownAllAppsColumns = isTwoPanels ? inv.numDatabaseAllAppsColumns : inv.numAllAppsColumns; Loading Loading @@ -818,8 +822,7 @@ public class DeviceProfile { - hotseatBorderSpace * numShownHotseatIcons - iconExtraSpacePx; } else { int columns = inv.hotseatColumnSpan[mTypeIndex]; return getIconToIconWidthForColumns(columns) - iconExtraSpacePx; return getIconToIconWidthForColumns(mHotseatColumnSpan) - iconExtraSpacePx; } } Loading Loading @@ -890,10 +893,31 @@ public class DeviceProfile { public void recalculateHotseatWidthAndBorderSpace() { if (!mIsScalableGrid) return; int columns = inv.hotseatColumnSpan[mTypeIndex]; float hotseatWidthPx = getIconToIconWidthForColumns(columns); hotseatBorderSpace = calculateHotseatBorderSpace(hotseatWidthPx, /* numExtraBorder= */ 0); updateHotseatWidthAndBorderSpace(inv.numColumns); int numWorkspaceColumns = getPanelCount() * inv.numColumns; if (isTwoPanels) { updateHotseatWidthAndBorderSpace(inv.numDatabaseHotseatIcons); // If hotseat doesn't fit with current width, increase column span to fit by multiple // of 2. while (hotseatBorderSpace < mMinHotseatIconSpacePx && mHotseatColumnSpan < numWorkspaceColumns) { updateHotseatWidthAndBorderSpace(mHotseatColumnSpan + 2); } } if (isQsbInline) { // If QSB is inline, reduce column span until it fits. int maxHotseatWidthAllowedPx = getIconToIconWidthForColumns(numWorkspaceColumns); int minHotseatWidthRequiredPx = mMinHotseatQsbWidthPx + hotseatBorderSpace + mHotseatWidthPx; while (minHotseatWidthRequiredPx > maxHotseatWidthAllowedPx && mHotseatColumnSpan > 1) { updateHotseatWidthAndBorderSpace(mHotseatColumnSpan - 1); minHotseatWidthRequiredPx = mMinHotseatQsbWidthPx + hotseatBorderSpace + mHotseatWidthPx; } } hotseatQsbWidth = calculateQsbWidth(hotseatBorderSpace); // Spaces should be correct when the nav buttons are not inline if (!areNavButtonsInline) { return; Loading Loading @@ -935,6 +959,12 @@ public class DeviceProfile { } while (hotseatBorderSpace < mMinHotseatIconSpacePx && numShownHotseatIcons > 1); } private void updateHotseatWidthAndBorderSpace(int columns) { mHotseatColumnSpan = columns; mHotseatWidthPx = getIconToIconWidthForColumns(mHotseatColumnSpan); hotseatBorderSpace = calculateHotseatBorderSpace(mHotseatWidthPx, /* numExtraBorder= */ 0); } private Point getCellLayoutBorderSpace(InvariantDeviceProfile idp) { return getCellLayoutBorderSpace(idp, 1f); } Loading @@ -958,6 +988,16 @@ public class DeviceProfile { return mInfo; } @VisibleForTesting public int getHotseatColumnSpan() { return mHotseatColumnSpan; } @VisibleForTesting public int getHotseatWidthPx() { return mHotseatWidthPx; } public Builder toBuilder(Context context) { WindowBounds bounds = new WindowBounds( widthPx, heightPx, availableWidthPx, availableHeightPx, rotationHint); Loading Loading @@ -2120,7 +2160,8 @@ public class DeviceProfile { writer.println(prefix + pxToDpStr("allAppsLeftRightMargin", allAppsLeftRightMargin)); writer.println(prefix + pxToDpStr("hotseatBarSizePx", hotseatBarSizePx)); writer.println(prefix + "\tinv.hotseatColumnSpan: " + inv.hotseatColumnSpan[mTypeIndex]); writer.println(prefix + "\tmHotseatColumnSpan: " + mHotseatColumnSpan); writer.println(prefix + pxToDpStr("mHotseatWidthPx", mHotseatWidthPx)); writer.println(prefix + pxToDpStr("hotseatCellHeightPx", hotseatCellHeightPx)); writer.println(prefix + pxToDpStr("hotseatBarBottomSpacePx", hotseatBarBottomSpacePx)); writer.println(prefix + pxToDpStr("mHotseatBarEdgePaddingPx", Loading Loading
quickstep/tests/src/com/android/quickstep/HotseatWidthCalculationTest.kt +37 −9 Original line number Diff line number Diff line Loading @@ -42,6 +42,8 @@ class HotseatWidthCalculationTest : FakeInvariantDeviceProfileTest() { assertThat(dp.hotseatBarEndOffset).isEqualTo(510) assertThat(dp.numShownHotseatIcons).isEqualTo(6) assertThat(dp.hotseatBorderSpace).isEqualTo(70) assertThat(dp.hotseatColumnSpan).isEqualTo(6) assertThat(dp.hotseatWidthPx).isEqualTo(1445) assertThat(dp.getHotseatLayoutPadding(context).left).isEqualTo(150) assertThat(dp.getHotseatLayoutPadding(context).right).isEqualTo(580) Loading @@ -64,6 +66,8 @@ class HotseatWidthCalculationTest : FakeInvariantDeviceProfileTest() { assertThat(dp.hotseatBarEndOffset).isEqualTo(510) assertThat(dp.numShownHotseatIcons).isEqualTo(4) assertThat(dp.hotseatBorderSpace).isEqualTo(40) assertThat(dp.hotseatColumnSpan).isEqualTo(6) assertThat(dp.hotseatWidthPx).isEqualTo(1080) assertThat(dp.getHotseatLayoutPadding(context).left).isEqualTo(150) assertThat(dp.getHotseatLayoutPadding(context).right).isEqualTo(550) Loading @@ -85,6 +89,8 @@ class HotseatWidthCalculationTest : FakeInvariantDeviceProfileTest() { assertThat(dp.hotseatBarEndOffset).isEqualTo(705) assertThat(dp.numShownHotseatIcons).isEqualTo(6) assertThat(dp.hotseatBorderSpace).isEqualTo(54) assertThat(dp.hotseatColumnSpan).isEqualTo(6) assertThat(dp.hotseatWidthPx).isEqualTo(1468) assertThat(dp.getHotseatLayoutPadding(context).left).isEqualTo(231) assertThat(dp.getHotseatLayoutPadding(context).right).isEqualTo(759) Loading @@ -100,22 +106,21 @@ class HotseatWidthCalculationTest : FakeInvariantDeviceProfileTest() { @Test fun nav_buttons_dont_interfere_with_required_hotseat_width() { initializeVarsForTablet(isGestureMode = false, isLandscape = true) inv?.apply { hotseatColumnSpan = IntArray(4) { 4 } inlineQsb = BooleanArray(4) { false } } inv?.apply { inlineQsb = BooleanArray(4) { false } } val dp = newDP() dp.isTaskbarPresentInApps = true assertThat(dp.hotseatBarEndOffset).isEqualTo(660) assertThat(dp.numShownHotseatIcons).isEqualTo(6) assertThat(dp.hotseatBorderSpace).isEqualTo(100) assertThat(dp.hotseatColumnSpan).isEqualTo(6) assertThat(dp.hotseatWidthPx).isEqualTo(1975) assertThat(dp.getHotseatLayoutPadding(context).left).isEqualTo(300) assertThat(dp.getHotseatLayoutPadding(context).right).isEqualTo(1040) assertThat(dp.isQsbInline).isFalse() assertThat(dp.hotseatQsbWidth).isEqualTo(1223) assertThat(dp.hotseatQsbWidth).isEqualTo(1965) } /** This is a case when after setting the hotseat, the QSB width needs to be changed to fit */ Loading @@ -128,13 +133,15 @@ class HotseatWidthCalculationTest : FakeInvariantDeviceProfileTest() { assertThat(dp.hotseatBarEndOffset).isEqualTo(660) assertThat(dp.numShownHotseatIcons).isEqualTo(6) assertThat(dp.hotseatBorderSpace).isEqualTo(36) assertThat(dp.hotseatBorderSpace).isEqualTo(34) assertThat(dp.hotseatColumnSpan).isEqualTo(4) assertThat(dp.hotseatWidthPx).isEqualTo(1179) assertThat(dp.getHotseatLayoutPadding(context).left).isEqualTo(864) assertThat(dp.getHotseatLayoutPadding(context).right).isEqualTo(696) assertThat(dp.getHotseatLayoutPadding(context).left).isEqualTo(876) assertThat(dp.getHotseatLayoutPadding(context).right).isEqualTo(694) assertThat(dp.isQsbInline).isTrue() assertThat(dp.hotseatQsbWidth).isEqualTo(528) assertThat(dp.hotseatQsbWidth).isEqualTo(542) } /** Loading @@ -151,6 +158,8 @@ class HotseatWidthCalculationTest : FakeInvariantDeviceProfileTest() { assertThat(dp.hotseatBarEndOffset).isEqualTo(660) assertThat(dp.numShownHotseatIcons).isEqualTo(5) assertThat(dp.hotseatBorderSpace).isEqualTo(36) assertThat(dp.hotseatColumnSpan).isEqualTo(4) assertThat(dp.hotseatWidthPx).isEqualTo(1095) assertThat(dp.getHotseatLayoutPadding(context).left).isEqualTo(816) assertThat(dp.getHotseatLayoutPadding(context).right).isEqualTo(700) Loading @@ -158,4 +167,23 @@ class HotseatWidthCalculationTest : FakeInvariantDeviceProfileTest() { assertThat(dp.isQsbInline).isTrue() assertThat(dp.hotseatQsbWidth).isEqualTo(480) } @Test fun increase_span_when_space_between_icons_is_less_than_minimum() { initializeVarsForTwoPanel(isGestureMode = false, isLandscape = false, rows = 5, cols = 5) val dp = newDP() dp.isTaskbarPresentInApps = true assertThat(dp.hotseatBarEndOffset).isEqualTo(600) assertThat(dp.numShownHotseatIcons).isEqualTo(6) assertThat(dp.hotseatBorderSpace).isEqualTo(48) assertThat(dp.hotseatColumnSpan).isEqualTo(8) assertThat(dp.hotseatWidthPx).isEqualTo(1383) assertThat(dp.getHotseatLayoutPadding(context).left).isEqualTo(126) assertThat(dp.getHotseatLayoutPadding(context).right).isEqualTo(652) assertThat(dp.isQsbInline).isFalse() assertThat(dp.hotseatQsbWidth).isEqualTo(1372) } }
res/values-sw600dp/dimens.xml +1 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ <!-- Hotseat --> <dimen name="dynamic_grid_hotseat_side_padding">0dp</dimen> <dimen name="spring_loaded_hotseat_top_margin">65dp</dimen> <dimen name="min_hotseat_icon_space">17dp</dimen> <!-- Dragging --> <dimen name="drop_target_top_margin">64dp</dimen> Loading
res/values/attrs.xml +0 −11 Original line number Diff line number Diff line Loading @@ -204,17 +204,6 @@ defaults to 2 * numHotseatIcons --> <attr name="numExtendedHotseatIcons" format="integer" /> <!-- alignment of hotseat to the grid. Not applicable for 3 button mode when taskbar is enabled --> <!-- defaults to numColumns, if not specified --> <attr name="hotseatColumnSpan" format="integer" /> <!-- defaults to numColumns, if not specified --> <attr name="hotseatColumnSpanLandscape" format="integer" /> <!-- defaults to numColumns, if not specified --> <attr name="hotseatColumnSpanTwoPanelLandscape" format="integer" /> <!-- defaults to numColumns, if not specified --> <attr name="hotseatColumnSpanTwoPanelPortrait" format="integer" /> <!-- Spacing to have at the end of the nav buttons in large screen 3 button nav, defaults to @dimen/taskbar_button_margin_default --> <attr name="inlineNavButtonsEndSpacing" format="reference" /> Loading
res/xml/device_profiles.xml +0 −1 Original line number Diff line number Diff line Loading @@ -168,7 +168,6 @@ launcher:numFolderRows="3" launcher:numFolderColumns="3" launcher:numHotseatIcons="6" launcher:hotseatColumnSpanLandscape="4" launcher:numAllAppsColumns="6" launcher:isScalable="true" launcher:inlineNavButtonsEndSpacing="@dimen/taskbar_button_margin_6_5" Loading
src/com/android/launcher3/DeviceProfile.java +47 −6 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ import android.view.Surface; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.core.content.res.ResourcesCompat; import com.android.launcher3.CellLayout.ContainerType; Loading Loading @@ -212,6 +213,8 @@ public class DeviceProfile { // Hotseat public int numShownHotseatIcons; public int hotseatCellHeightPx; private int mHotseatColumnSpan; private int mHotseatWidthPx; // not used in vertical bar layout public final boolean areNavButtonsInline; // In portrait: size = height, in landscape: size = width public int hotseatBarSizePx; Loading Loading @@ -551,6 +554,7 @@ public class DeviceProfile { areNavButtonsInline = isTaskbarPresent && !isGestureMode; numShownHotseatIcons = isTwoPanels ? inv.numDatabaseHotseatIcons : inv.numShownHotseatIcons; mHotseatColumnSpan = inv.numColumns; numShownAllAppsColumns = isTwoPanels ? inv.numDatabaseAllAppsColumns : inv.numAllAppsColumns; Loading Loading @@ -818,8 +822,7 @@ public class DeviceProfile { - hotseatBorderSpace * numShownHotseatIcons - iconExtraSpacePx; } else { int columns = inv.hotseatColumnSpan[mTypeIndex]; return getIconToIconWidthForColumns(columns) - iconExtraSpacePx; return getIconToIconWidthForColumns(mHotseatColumnSpan) - iconExtraSpacePx; } } Loading Loading @@ -890,10 +893,31 @@ public class DeviceProfile { public void recalculateHotseatWidthAndBorderSpace() { if (!mIsScalableGrid) return; int columns = inv.hotseatColumnSpan[mTypeIndex]; float hotseatWidthPx = getIconToIconWidthForColumns(columns); hotseatBorderSpace = calculateHotseatBorderSpace(hotseatWidthPx, /* numExtraBorder= */ 0); updateHotseatWidthAndBorderSpace(inv.numColumns); int numWorkspaceColumns = getPanelCount() * inv.numColumns; if (isTwoPanels) { updateHotseatWidthAndBorderSpace(inv.numDatabaseHotseatIcons); // If hotseat doesn't fit with current width, increase column span to fit by multiple // of 2. while (hotseatBorderSpace < mMinHotseatIconSpacePx && mHotseatColumnSpan < numWorkspaceColumns) { updateHotseatWidthAndBorderSpace(mHotseatColumnSpan + 2); } } if (isQsbInline) { // If QSB is inline, reduce column span until it fits. int maxHotseatWidthAllowedPx = getIconToIconWidthForColumns(numWorkspaceColumns); int minHotseatWidthRequiredPx = mMinHotseatQsbWidthPx + hotseatBorderSpace + mHotseatWidthPx; while (minHotseatWidthRequiredPx > maxHotseatWidthAllowedPx && mHotseatColumnSpan > 1) { updateHotseatWidthAndBorderSpace(mHotseatColumnSpan - 1); minHotseatWidthRequiredPx = mMinHotseatQsbWidthPx + hotseatBorderSpace + mHotseatWidthPx; } } hotseatQsbWidth = calculateQsbWidth(hotseatBorderSpace); // Spaces should be correct when the nav buttons are not inline if (!areNavButtonsInline) { return; Loading Loading @@ -935,6 +959,12 @@ public class DeviceProfile { } while (hotseatBorderSpace < mMinHotseatIconSpacePx && numShownHotseatIcons > 1); } private void updateHotseatWidthAndBorderSpace(int columns) { mHotseatColumnSpan = columns; mHotseatWidthPx = getIconToIconWidthForColumns(mHotseatColumnSpan); hotseatBorderSpace = calculateHotseatBorderSpace(mHotseatWidthPx, /* numExtraBorder= */ 0); } private Point getCellLayoutBorderSpace(InvariantDeviceProfile idp) { return getCellLayoutBorderSpace(idp, 1f); } Loading @@ -958,6 +988,16 @@ public class DeviceProfile { return mInfo; } @VisibleForTesting public int getHotseatColumnSpan() { return mHotseatColumnSpan; } @VisibleForTesting public int getHotseatWidthPx() { return mHotseatWidthPx; } public Builder toBuilder(Context context) { WindowBounds bounds = new WindowBounds( widthPx, heightPx, availableWidthPx, availableHeightPx, rotationHint); Loading Loading @@ -2120,7 +2160,8 @@ public class DeviceProfile { writer.println(prefix + pxToDpStr("allAppsLeftRightMargin", allAppsLeftRightMargin)); writer.println(prefix + pxToDpStr("hotseatBarSizePx", hotseatBarSizePx)); writer.println(prefix + "\tinv.hotseatColumnSpan: " + inv.hotseatColumnSpan[mTypeIndex]); writer.println(prefix + "\tmHotseatColumnSpan: " + mHotseatColumnSpan); writer.println(prefix + pxToDpStr("mHotseatWidthPx", mHotseatWidthPx)); writer.println(prefix + pxToDpStr("hotseatCellHeightPx", hotseatCellHeightPx)); writer.println(prefix + pxToDpStr("hotseatBarBottomSpacePx", hotseatBarBottomSpacePx)); writer.println(prefix + pxToDpStr("mHotseatBarEdgePaddingPx", Loading