From de0fb8fbf11caac382589ab464b50d528942273a Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Tue, 8 May 2012 14:37:08 -0700 Subject: Queueing up items for adding later if Launcher is unavailable. (Bug 6457412) Change-Id: Ia66a6411a54397543db4122a80ebca6a50b6360c --- src/com/android/launcher2/InstallShortcutReceiver.java | 10 ++++++++-- src/com/android/launcher2/Launcher.java | 3 +++ 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'src/com/android/launcher2') diff --git a/src/com/android/launcher2/InstallShortcutReceiver.java b/src/com/android/launcher2/InstallShortcutReceiver.java index 6d91602dc..e05127b27 100644 --- a/src/com/android/launcher2/InstallShortcutReceiver.java +++ b/src/com/android/launcher2/InstallShortcutReceiver.java @@ -22,6 +22,7 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; +import android.os.Debug; import android.widget.Toast; import com.android.launcher.R; @@ -90,9 +91,12 @@ public class InstallShortcutReceiver extends BroadcastReceiver { return; } } + // Queue the item up for adding if launcher has not loaded properly yet + boolean launcherNotLoaded = LauncherModel.getCellCountX() <= 0 || + LauncherModel.getCellCountY() <= 0; PendingInstallShortcutInfo info = new PendingInstallShortcutInfo(data, name, intent); - if (mUseInstallQueue) { + if (mUseInstallQueue || launcherNotLoaded) { mInstallQueue.add(info); } else { processInstallShortcut(context, info); @@ -102,9 +106,11 @@ public class InstallShortcutReceiver extends BroadcastReceiver { static void enableInstallQueue() { mUseInstallQueue = true; } - static void disableAndFlushInstallQueue(Context context) { mUseInstallQueue = false; + flushInstallQueue(context); + } + static void flushInstallQueue(Context context) { Iterator iter = mInstallQueue.iterator(); while (iter.hasNext()) { processInstallShortcut(context, iter.next()); diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java index d0f4b86fb..6025c701f 100644 --- a/src/com/android/launcher2/Launcher.java +++ b/src/com/android/launcher2/Launcher.java @@ -649,6 +649,9 @@ public final class Launcher extends Activity protected void onResume() { super.onResume(); + // Process any items that were added while Launcher was away + InstallShortcutReceiver.flushInstallQueue(this); + mPaused = false; if (mRestoring || mOnResumeNeedsLoad) { mWorkspaceLoading = true; -- cgit v1.2.3