diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 409ee83782..0340694fa0 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -2118,8 +2118,16 @@ public class Launcher extends StatefulActivity implements Launche @Override public IntSet getPagesToBindSynchronously(IntArray orderedScreenIds) { - IntSet visibleIds = mPagesToBindSynchronously.isEmpty() - ? mWorkspace.getCurrentPageScreenIds() : mPagesToBindSynchronously; + IntSet visibleIds; + if (!mPagesToBindSynchronously.isEmpty()) { + visibleIds = mPagesToBindSynchronously; + } else if (!mWorkspaceLoading) { + visibleIds = mWorkspace.getCurrentPageScreenIds(); + } else { + // If workspace binding is still in progress, getCurrentPageScreenIds won't be accurate, + // and we should use mSynchronouslyBoundPages that's set during initial binding. + visibleIds = mSynchronouslyBoundPages; + } IntArray actualIds = new IntArray(); IntSet result = new IntSet();