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;
     }