Merge "Fix hotseat border space crash GSI" into udc-qpr-dev am: c6b6a4f3d5

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/24464809

Change-Id: Iadbed5cb04343c74f24fb7d09d30510e596afc16
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Jordan Silva
2023-08-23 19:19:52 +00:00
committed by Automerger Merge Worker
2 changed files with 25 additions and 3 deletions

View File

@@ -1134,10 +1134,11 @@ public class DeviceProfile {
* This method calculates the space between the icons to achieve a certain width.
*/
private int calculateHotseatBorderSpace(float hotseatWidthPx, int numExtraBorder) {
int numBorders = (numShownHotseatIcons - 1 + numExtraBorder);
if (numBorders <= 0) return 0;
float hotseatIconsTotalPx = iconSizePx * numShownHotseatIcons;
int hotseatBorderSpacePx =
(int) (hotseatWidthPx - hotseatIconsTotalPx)
/ (numShownHotseatIcons - 1 + numExtraBorder);
int hotseatBorderSpacePx = (int) (hotseatWidthPx - hotseatIconsTotalPx) / numBorders;
return Math.min(hotseatBorderSpacePx, mMaxHotseatIconSpacePx);
}

View File

@@ -158,4 +158,25 @@ class HotseatWidthCalculationTest : FakeInvariantDeviceProfileTest() {
assertThat(dp.isQsbInline).isFalse()
assertThat(dp.hotseatQsbWidth).isEqualTo(1095)
}
@Test
fun border_space_should_be_zero_when_numHotseatIcons_is_smallerOrEqual_1() {
initializeVarsForTablet(isGestureMode = false)
windowBounds = WindowBounds(Rect(0, 0, 1800, 2560), Rect(0, 104, 0, 0))
val numShownHotseatIcons = listOf(-1, 0, 1)
for (numHotseatIcons in numShownHotseatIcons) {
inv?.numShownHotseatIcons = numHotseatIcons
val dp = newDP()
dp.isTaskbarPresentInApps = true
assertThat(dp.numShownHotseatIcons).isEqualTo(numHotseatIcons)
assertThat(dp.hotseatBorderSpace).isEqualTo(0)
assertThat(dp.getHotseatLayoutPadding(context).left).isEqualTo(177)
assertThat(dp.getHotseatLayoutPadding(context).right).isEqualTo(177)
assertThat(dp.hotseatQsbWidth).isEqualTo(1445)
}
}
}