mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-19 02:38:20 +00:00
Merge "Remove odd screen ids when isTwoPanels is true" into udc-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
2c9a2f2353
@@ -2343,13 +2343,37 @@ public class Launcher extends StatefulActivity<LauncherState>
|
||||
mWorkspace.unlockWallpaperFromDefaultPageOnNextLayout();
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove odd number because they are already included when isTwoPanels and add the pair screen
|
||||
* if not present.
|
||||
*/
|
||||
private IntArray filterTwoPanelScreenIds(IntArray orderedScreenIds) {
|
||||
IntSet screenIds = IntSet.wrap(orderedScreenIds);
|
||||
orderedScreenIds.forEach(screenId -> {
|
||||
if (screenId % 2 == 1) {
|
||||
screenIds.remove(screenId);
|
||||
// In case the pair is not added, add it
|
||||
if (!mWorkspace.containsScreenId(screenId - 1)) {
|
||||
screenIds.add(screenId - 1);
|
||||
}
|
||||
}
|
||||
});
|
||||
return screenIds.getArray();
|
||||
}
|
||||
|
||||
private void bindAddScreens(IntArray orderedScreenIds) {
|
||||
|
||||
if (mDeviceProfile.isTwoPanels) {
|
||||
// Some empty pages might have been removed while the phone was in a single panel
|
||||
// mode, so we want to add those empty pages back.
|
||||
IntSet screenIds = IntSet.wrap(orderedScreenIds);
|
||||
orderedScreenIds.forEach(screenId -> screenIds.add(mWorkspace.getScreenPair(screenId)));
|
||||
orderedScreenIds = screenIds.getArray();
|
||||
if (FOLDABLE_SINGLE_PAGE.get()) {
|
||||
orderedScreenIds = filterTwoPanelScreenIds(orderedScreenIds);
|
||||
} else {
|
||||
// Some empty pages might have been removed while the phone was in a single panel
|
||||
// mode, so we want to add those empty pages back.
|
||||
IntSet screenIds = IntSet.wrap(orderedScreenIds);
|
||||
orderedScreenIds.forEach(
|
||||
screenId -> screenIds.add(mWorkspace.getScreenPair(screenId)));
|
||||
orderedScreenIds = screenIds.getArray();
|
||||
}
|
||||
}
|
||||
|
||||
int count = orderedScreenIds.size();
|
||||
|
||||
@@ -731,6 +731,14 @@ public class Workspace<T extends View & PageIndicator> extends PagedView<T>
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns if the given screenId is already in the Workspace
|
||||
*/
|
||||
public boolean containsScreenId(int screenId) {
|
||||
return this.mWorkspaceScreens.containsKey(screenId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts extra empty pages to the end of the existing workspaces.
|
||||
* Usually we add one extra empty screen, but when two panel home is enabled we add
|
||||
|
||||
@@ -63,8 +63,8 @@ public class CellLayoutTestCaseReader {
|
||||
}
|
||||
|
||||
public static class Board extends TestSection {
|
||||
Point gridSize;
|
||||
String board;
|
||||
public Point gridSize;
|
||||
public String board;
|
||||
|
||||
public Board(Point gridSize, String board) {
|
||||
super(State.BOARD);
|
||||
@@ -127,7 +127,7 @@ public class CellLayoutTestCaseReader {
|
||||
}
|
||||
}
|
||||
|
||||
List<TestSection> parse() {
|
||||
public List<TestSection> parse() {
|
||||
List<TestSection> sections = new ArrayList<>();
|
||||
String[] lines = mTest.split("\n");
|
||||
Iterator<String> it = Arrays.stream(lines).iterator();
|
||||
|
||||
@@ -42,7 +42,7 @@ public class CellLayoutTestUtils {
|
||||
params.getCellX(), params.getCellY(),
|
||||
launcher.getWorkspace().getIdForScreen(cellLayout), CONTAINER_DESKTOP);
|
||||
int screenId = pos.screenId;
|
||||
if (screenId > boards.size() - 1) {
|
||||
for (int j = boards.size(); j <= screenId; j++) {
|
||||
boards.add(new CellLayoutBoard(cellLayout.getCountX(), cellLayout.getCountY()));
|
||||
}
|
||||
CellLayoutBoard board = boards.get(screenId);
|
||||
|
||||
Reference in New Issue
Block a user