diff --git a/src/com/android/launcher3/folder/Folder.java b/src/com/android/launcher3/folder/Folder.java index 42556cac8a..b76e0985d5 100644 --- a/src/com/android/launcher3/folder/Folder.java +++ b/src/com/android/launcher3/folder/Folder.java @@ -697,15 +697,23 @@ public class Folder extends AbstractFloatingView implements ClipPathView, DragSo } } + Log.d("b/383526431", "animateOpen: content child count before: " + + mContent.getTotalChildCount()); + mContent.completePendingPageChanges(); mContent.setCurrentPage(pageNo); + Log.d("b/383526431", "animateOpen: content child count after pending page" + + " changes: " + mContent.getTotalChildCount()); + // This is set to true in close(), but isn't reset to false until onDropCompleted(). This // leads to an inconsistent state if you drag out of the folder and drag back in without // dropping. One resulting issue is that replaceFolderWithFinalItem() can be called twice. mDeleteFolderOnDropCompleted = false; cancelRunningAnimations(); + Log.d("b/383526431", "animateOpen: content child count after cancelling" + + " animation: " + mContent.getTotalChildCount()); FolderAnimationManager fam = new FolderAnimationManager(this, true /* isOpening */); AnimatorSet anim = fam.getAnimator(); anim.addListener(new AnimatorListenerAdapter() { diff --git a/src/com/android/launcher3/folder/FolderGridOrganizer.java b/src/com/android/launcher3/folder/FolderGridOrganizer.java index a7ab7b92aa..06286d62f7 100644 --- a/src/com/android/launcher3/folder/FolderGridOrganizer.java +++ b/src/com/android/launcher3/folder/FolderGridOrganizer.java @@ -19,6 +19,7 @@ package com.android.launcher3.folder; import static com.android.launcher3.folder.ClippedFolderIconLayoutRule.MAX_NUM_ITEMS_IN_PREVIEW; import android.graphics.Point; +import android.util.Log; import com.android.launcher3.DeviceProfile; import com.android.launcher3.model.data.FolderInfo; @@ -178,6 +179,14 @@ public class FolderGridOrganizer { break; } } + + if (result.isEmpty()) { + // Log specifics since we are getting empty result + Log.d("b/383526431", "previewItemsForPage: " + + "mCountX = " + mCountX + + ", mCountY = " + mCountY + + ", content size = " + contents.size()); + } return result; } diff --git a/src/com/android/launcher3/folder/FolderPagedView.java b/src/com/android/launcher3/folder/FolderPagedView.java index 22f1164667..bebe1a49ef 100644 --- a/src/com/android/launcher3/folder/FolderPagedView.java +++ b/src/com/android/launcher3/folder/FolderPagedView.java @@ -58,6 +58,7 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.concurrent.atomic.AtomicInteger; import java.util.function.ToIntFunction; import java.util.stream.Collectors; @@ -531,6 +532,16 @@ public class FolderPagedView extends PagedView implements Cli verifyVisibleHighResIcons(getCurrentPage() + 1); } + int getTotalChildCount() { + AtomicInteger count = new AtomicInteger(); + iterateOverItems((i, v) -> { + count.getAndIncrement(); + return false; + }); + + return count.get(); + } + /** * Ensures that all the icons on the given page are of high-res */