Merge "launcher: correct page spacing for multiple panels" into sc-v2-dev

This commit is contained in:
Thales Lima
2021-07-22 09:41:56 +00:00
committed by Android (Google) Code Review
2 changed files with 19 additions and 16 deletions
+7 -2
View File
@@ -709,6 +709,7 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou
final int scrollOffsetStart = mOrientationHandler.getScrollOffsetStart(this, mInsets);
final int scrollOffsetEnd = mOrientationHandler.getScrollOffsetEnd(this, mInsets);
boolean pageScrollChanged = false;
int panelCount = getPanelCount();
for (int i = startIndex, childStart = scrollOffsetStart; i != endIndex; i += delta) {
final View child = getPageAt(i);
@@ -726,11 +727,15 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou
pageScrollChanged = true;
outPageScrolls[i] = pageScroll;
}
childStart += primaryDimension + mPageSpacing + getChildGap();
childStart += primaryDimension + getChildGap();
// This makes sure that the space is added after the page, not after each panel
if (i % panelCount == panelCount - 1) {
childStart += mPageSpacing;
}
}
}
int panelCount = getPanelCount();
if (panelCount > 1) {
for (int i = 0; i < childCount; i++) {
// In case we have multiple panels, always use left panel's page scroll for all
+12 -14
View File
@@ -315,9 +315,19 @@ public class Workspace extends PagedView<WorkspacePageIndicator>
// Increase our bottom insets so we don't overlap with the taskbar.
mInsets.bottom += grid.nonOverlappingTaskbarInset;
if (grid.isTwoPanels) {
setPageSpacing(0); // we have two pages and we don't want any spacing
if (mWorkspaceFadeInAdjacentScreens) {
// In landscape mode the page spacing is set to the default.
setPageSpacing(grid.edgeMarginPx);
} else {
// In portrait, we want the pages spaced such that there is no
// overhang of the previous / next page into the current page viewport.
// We assume symmetrical padding in portrait mode.
int maxInsets = Math.max(insets.left, insets.right);
int maxPadding = Math.max(grid.edgeMarginPx, padding.left + 1);
setPageSpacing(Math.max(maxInsets, maxPadding));
}
if (grid.isTwoPanels) {
// Add left widget panel if it isn't already there
if (!mWorkspaceScreens.containsKey(LEFT_PANEL_ID)) {
int newCurrentPage = mCurrentPage + 1;
@@ -325,18 +335,6 @@ public class Workspace extends PagedView<WorkspacePageIndicator>
setCurrentPage(newCurrentPage);
}
} else {
if (mWorkspaceFadeInAdjacentScreens) {
// In landscape mode the page spacing is set to the default.
setPageSpacing(grid.edgeMarginPx);
} else {
// In portrait, we want the pages spaced such that there is no
// overhang of the previous / next page into the current page viewport.
// We assume symmetrical padding in portrait mode.
int maxInsets = Math.max(insets.left, insets.right);
int maxPadding = Math.max(grid.edgeMarginPx, padding.left + 1);
setPageSpacing(Math.max(maxInsets, maxPadding));
}
// Remove left widget panel if it is present
if (mWorkspaceScreens.containsKey(LEFT_PANEL_ID)) {
int newCurrentPage = mCurrentPage - 1;