Merge "Fix two panel home folder opening display issue" into sc-dev am: 35793a8643

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/14018929

Change-Id: I476616b2146fa0b2ef03a43f040c474ab0bfa95a
This commit is contained in:
András Klöczl
2021-03-30 12:38:13 +00:00
committed by Automerger Merge Worker
2 changed files with 18 additions and 10 deletions
+1 -3
View File
@@ -1781,9 +1781,7 @@ public class Launcher extends StatefulActivity<LauncherState> implements Launche
@Override
public Rect getFolderBoundingBox() {
// We need to bound the folder to the currently visible workspace area
Rect folderBoundingBox = new Rect();
getWorkspace().getPageAreaRelativeToDragLayer(folderBoundingBox);
return folderBoundingBox;
return getWorkspace().getPageAreaRelativeToDragLayer();
}
@Override
+17 -7
View File
@@ -2000,16 +2000,26 @@ public class Workspace extends PagedView<WorkspacePageIndicator>
}
/**
* Computes the area relative to dragLayer which is used to display a page.
* Computes and returns the area relative to dragLayer which is used to display a page.
* In case we have multiple pages displayed at the same time, we return the union of the areas.
*/
public void getPageAreaRelativeToDragLayer(Rect outArea) {
CellLayout child = (CellLayout) getChildAt(getNextPage());
if (child == null) {
return;
public Rect getPageAreaRelativeToDragLayer() {
Rect area = new Rect();
int nextPage = getNextPage();
int panelCount = getPanelCount();
for (int page = nextPage; page < nextPage + panelCount; page++) {
CellLayout child = (CellLayout) getChildAt(page);
if (child == null) {
break;
}
ShortcutAndWidgetContainer boundingLayout = child.getShortcutsAndWidgets();
Rect tmpRect = new Rect();
mLauncher.getDragLayer().getDescendantRectRelativeToSelf(boundingLayout, tmpRect);
area.union(tmpRect);
}
ShortcutAndWidgetContainer boundingLayout = child.getShortcutsAndWidgets();
mLauncher.getDragLayer().getDescendantRectRelativeToSelf(boundingLayout, outArea);
return area;
}
@Override