Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 25423867 authored by Sebastian Franco's avatar Sebastian Franco Committed by Sebastián Franco
Browse files

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
parent c86678ef
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -100,7 +100,7 @@ public class CellLayout extends ViewGroup {
    private int mFixedCellWidth;
    private int mFixedCellHeight;
    @ViewDebug.ExportedProperty(category = "launcher")
    private Point mBorderSpace;
    protected Point mBorderSpace;

    @ViewDebug.ExportedProperty(category = "launcher")
    protected int mCountX;
+7 −0
Original line number Diff line number Diff line
@@ -94,6 +94,13 @@ public class MultipageCellLayout extends CellLayout {
        }
    }

    @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) {
+2 −1
Original line number Diff line number Diff line
@@ -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 @@ public class TestInformationHandler implements ResourceBasedOverride {

            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:
+15 −5
Original line number Diff line number Diff line
@@ -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 @@ public class CellLayoutTestUtils {
        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;
    }