Merge "Change grid migration to start from top to bottom" into tm-dev am: 3e40089771

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

Change-Id: Iad520e0333934d2642298bbe452ef5e2046ec845
This commit is contained in:
Alex Chau
2022-03-16 18:34:42 +00:00
committed by Automerger Merge Worker
2 changed files with 26 additions and 15 deletions
@@ -395,7 +395,8 @@ public class GridSizeMigrationTaskV2 {
mTrgX = trgX;
mTrgY = trgY;
mNextStartX = 0;
mNextStartY = mTrgY - 1;
mNextStartY = mScreenId == 0 && FeatureFlags.QSB_ON_FIRST_SCREEN
? 1 /* smartspace */ : 0;
List<DbEntry> existedEntries = mDestReader.mWorkspaceEntriesByScreenId.get(screenId);
if (existedEntries != null) {
for (DbEntry entry : existedEntries) {
@@ -430,7 +431,7 @@ public class GridSizeMigrationTaskV2 {
* to speed up the search.
*/
private boolean findPlacement(DbEntry entry) {
for (int y = mNextStartY; y >= (mScreenId == 0 ? 1 /* smartspace */ : 0); y--) {
for (int y = mNextStartY; y < mTrgY; y++) {
for (int x = mNextStartX; x < mTrgX; x++) {
boolean fits = mOccupied.isRegionVacant(x, y, entry.spanX, entry.spanY);
boolean minFits = mOccupied.isRegionVacant(x, y, entry.minSpanX,
@@ -753,7 +754,7 @@ public class GridSizeMigrationTaskV2 {
return Integer.compare(screenId, another.screenId);
}
if (cellY != another.cellY) {
return -Integer.compare(cellY, another.cellY);
return Integer.compare(cellY, another.cellY);
}
return Integer.compare(cellX, another.cellX);
}
@@ -101,16 +101,21 @@ class GridSizeMigrationTaskV2Test {
modelHelper.addItem(SHORTCUT, 3, HOTSEAT, 0, 0, testPackage3, 3, TMP_CONTENT_URI)
modelHelper.addItem(APP_ICON, 4, HOTSEAT, 0, 0, testPackage4, 4, TMP_CONTENT_URI)
// Src grid icons
modelHelper.addItem(APP_ICON, 0, DESKTOP, 2, 2, testPackage5, 5, TMP_CONTENT_URI)
modelHelper.addItem(APP_ICON, 0, DESKTOP, 2, 3, testPackage6, 6, TMP_CONTENT_URI)
modelHelper.addItem(APP_ICON, 0, DESKTOP, 4, 1, testPackage8, 8, TMP_CONTENT_URI)
modelHelper.addItem(APP_ICON, 0, DESKTOP, 4, 2, testPackage9, 9, TMP_CONTENT_URI)
modelHelper.addItem(APP_ICON, 0, DESKTOP, 4, 3, testPackage10, 10, TMP_CONTENT_URI)
// _ _ _ _ _
// _ _ _ _ 5
// _ _ 6 _ 7
// _ _ 8 _ 9
// _ _ _ _ _
modelHelper.addItem(APP_ICON, 0, DESKTOP, 4, 1, testPackage5, 5, TMP_CONTENT_URI)
modelHelper.addItem(APP_ICON, 0, DESKTOP, 2, 2, testPackage6, 6, TMP_CONTENT_URI)
modelHelper.addItem(APP_ICON, 0, DESKTOP, 4, 2, testPackage7, 7, TMP_CONTENT_URI)
modelHelper.addItem(APP_ICON, 0, DESKTOP, 2, 3, testPackage8, 8, TMP_CONTENT_URI)
modelHelper.addItem(APP_ICON, 0, DESKTOP, 4, 3, testPackage9, 9, TMP_CONTENT_URI)
// Dest hotseat icons
modelHelper.addItem(SHORTCUT, 1, HOTSEAT, 0, 0, testPackage2)
// Dest grid icons
modelHelper.addItem(APP_ICON, 0, DESKTOP, 2, 2, testPackage7)
modelHelper.addItem(APP_ICON, 0, DESKTOP, 2, 2, testPackage10)
idp.numDatabaseHotseatIcons = 4
idp.numColumns = 4
@@ -174,13 +179,18 @@ class GridSizeMigrationTaskV2Test {
Point(c.getInt(cellXIndex), c.getInt(cellYIndex))
}
c.close()
// Expected dest grid icons
// _ _ _ _
// 5 6 7 8
// 9 _ 10_
// _ _ _ _
assertThat(locMap.size.toLong()).isEqualTo(6)
assertThat(locMap[testPackage8]).isEqualTo(Point(0, 2))
assertThat(locMap[testPackage6]).isEqualTo(Point(0, 3))
assertThat(locMap[testPackage10]).isEqualTo(Point(1, 3))
assertThat(locMap[testPackage7]).isEqualTo(Point(2, 2))
assertThat(locMap[testPackage5]).isEqualTo(Point(2, 3))
assertThat(locMap[testPackage9]).isEqualTo(Point(3, 3))
assertThat(locMap[testPackage5]).isEqualTo(Point(0, 1))
assertThat(locMap[testPackage6]).isEqualTo(Point(1, 1))
assertThat(locMap[testPackage7]).isEqualTo(Point(2, 1))
assertThat(locMap[testPackage8]).isEqualTo(Point(3, 1))
assertThat(locMap[testPackage9]).isEqualTo(Point(0, 2))
assertThat(locMap[testPackage10]).isEqualTo(Point(2, 2))
}
@Test