From 83079e43aed96d8b04358840399490d0c707b53d Mon Sep 17 00:00:00 2001 From: Adam Cohen Date: Fri, 19 Sep 2014 17:43:08 -0700 Subject: [PATCH] When ensuring screen exists, make sure it's actually referring to a screen, not a rank Bug: 17496589 Change-Id: If60e22dd71fa32530db91e37057689de5fb25646 --- src/com/android/launcher3/Launcher.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index b31e6fc775..22a72ab90b 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -721,8 +721,13 @@ public class Launcher extends Activity * a configuration step, this allows the proper animations to run after other transitions. */ private long completeAdd(PendingAddArguments args) { + long screenId = args.screenId; + if (args.container == LauncherSettings.Favorites.CONTAINER_DESKTOP) { + // When the screen id represents an actual screen (as opposed to a rank) we make sure + // that the drop page actually exists. + screenId = ensurePendingDropLayoutExists(args.screenId); + } - long screenId = ensurePendingDropLayoutExists(args.screenId); switch (args.requestCode) { case REQUEST_CREATE_SHORTCUT: completeAddShortcut(args.intent, args.container, screenId, args.cellX, @@ -814,7 +819,12 @@ public class Launcher extends Activity } } else { if (!workspaceLocked) { - mPendingAddInfo.screenId = ensurePendingDropLayoutExists(mPendingAddInfo.screenId); + if (mPendingAddInfo.container == LauncherSettings.Favorites.CONTAINER_DESKTOP) { + // When the screen id represents an actual screen (as opposed to a rank) + // we make sure that the drop page actually exists. + mPendingAddInfo.screenId = + ensurePendingDropLayoutExists(mPendingAddInfo.screenId); + } final CellLayout dropLayout = mWorkspace.getScreenWithId(mPendingAddInfo.screenId); dropLayout.setDropPending(true);