Fixing test that fail when FOLDABLE_SINGLE_PAGE is set to true
We need to change the result of REQUEST_IS_TWO_PANELS when the
flag is on because now we don't have two panels only 1.
Another of the issues is a rounding error when calling
getUnusedHorizontalSpace().
And lastly updating workspaceToBoards so that it maps the coordinate
of workspace items to their right position.
Bug: 270395274
Test: atest ReorderWidgets
Change-Id: I2620e5bf1ba132f984e00d2a6c21081953d259fd
diff --git a/src/com/android/launcher3/CellLayout.java b/src/com/android/launcher3/CellLayout.java
index 38b0e08..444c811 100644
--- a/src/com/android/launcher3/CellLayout.java
+++ b/src/com/android/launcher3/CellLayout.java
@@ -100,7 +100,7 @@
private int mFixedCellWidth;
private int mFixedCellHeight;
@ViewDebug.ExportedProperty(category = "launcher")
- private Point mBorderSpace;
+ protected Point mBorderSpace;
@ViewDebug.ExportedProperty(category = "launcher")
protected int mCountX;
diff --git a/src/com/android/launcher3/MultipageCellLayout.java b/src/com/android/launcher3/MultipageCellLayout.java
index 12cb35d..20e9f60 100644
--- a/src/com/android/launcher3/MultipageCellLayout.java
+++ b/src/com/android/launcher3/MultipageCellLayout.java
@@ -95,6 +95,13 @@
}
@Override
+ public int getUnusedHorizontalSpace() {
+ return (int) Math.ceil(
+ (getMeasuredWidth() - getPaddingLeft() - getPaddingRight() - (mCountX * mCellWidth)
+ - ((mCountX - 1) * mBorderSpace.x)) / 2f);
+ }
+
+ @Override
protected void onDraw(Canvas canvas) {
if (mLeftBackground.getAlpha() > 0) {
mLeftBackground.setState(mBackground.getState());
diff --git a/src/com/android/launcher3/testing/TestInformationHandler.java b/src/com/android/launcher3/testing/TestInformationHandler.java
index 0b756b6..e62ccbc 100644
--- a/src/com/android/launcher3/testing/TestInformationHandler.java
+++ b/src/com/android/launcher3/testing/TestInformationHandler.java
@@ -16,6 +16,7 @@
package com.android.launcher3.testing;
import static com.android.launcher3.allapps.AllAppsStore.DEFER_UPDATES_TEST;
+import static com.android.launcher3.config.FeatureFlags.FOLDABLE_SINGLE_PAGE;
import static com.android.launcher3.util.Executors.MAIN_EXECUTOR;
import android.annotation.TargetApi;
@@ -156,7 +157,7 @@
case TestProtocol.REQUEST_IS_TWO_PANELS:
response.putBoolean(TestProtocol.TEST_INFO_RESPONSE_FIELD,
- mDeviceProfile.isTwoPanels);
+ FOLDABLE_SINGLE_PAGE.get() ? false : mDeviceProfile.isTwoPanels);
return response;
case TestProtocol.REQUEST_GET_HAD_NONTEST_EVENTS:
diff --git a/tests/src/com/android/launcher3/celllayout/CellLayoutTestUtils.java b/tests/src/com/android/launcher3/celllayout/CellLayoutTestUtils.java
index 1e6737d..2960807 100644
--- a/tests/src/com/android/launcher3/celllayout/CellLayoutTestUtils.java
+++ b/tests/src/com/android/launcher3/celllayout/CellLayoutTestUtils.java
@@ -15,6 +15,8 @@
*/
package com.android.launcher3.celllayout;
+import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_DESKTOP;
+
import android.view.View;
import com.android.launcher3.CellLayout;
@@ -29,23 +31,31 @@
ArrayList<CellLayoutBoard> boards = new ArrayList<>();
int widgetCount = 0;
for (CellLayout cellLayout : launcher.getWorkspace().mWorkspaceScreens) {
- CellLayoutBoard board = new CellLayoutBoard();
+
int count = cellLayout.getShortcutsAndWidgets().getChildCount();
for (int i = 0; i < count; i++) {
View callView = cellLayout.getShortcutsAndWidgets().getChildAt(i);
CellLayoutLayoutParams params =
(CellLayoutLayoutParams) callView.getLayoutParams();
+
+ CellPosMapper.CellPos pos = launcher.getCellPosMapper().mapPresenterToModel(
+ params.getCellX(), params.getCellY(),
+ launcher.getWorkspace().getIdForScreen(cellLayout), CONTAINER_DESKTOP);
+ int screenId = pos.screenId;
+ if (screenId >= boards.size() - 1) {
+ boards.add(new CellLayoutBoard());
+ }
+ CellLayoutBoard board = boards.get(screenId);
// is icon
if (callView instanceof DoubleShadowBubbleTextView) {
- board.addIcon(params.getCellX(), params.getCellY());
+ board.addIcon(pos.cellX, pos.cellY);
} else {
// is widget
- board.addWidget(params.getCellX(), params.getCellY(), params.cellHSpan,
- params.cellVSpan, (char) ('A' + widgetCount));
+ board.addWidget(pos.cellX, pos.cellY, params.cellHSpan, params.cellVSpan,
+ (char) ('A' + widgetCount));
widgetCount++;
}
}
- boards.add(board);
}
return boards;
}