Queueing up items for adding later if Launcher is unavailable. (Bug 6457412)

Change-Id: Ia66a6411a54397543db4122a80ebca6a50b6360c
This commit is contained in:
Winson Chung
2012-05-08 14:37:08 -07:00
parent df4c0e25e5
commit de0fb8fbf1
2 changed files with 11 additions and 2 deletions

View File

@@ -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<PendingInstallShortcutInfo> iter = mInstallQueue.iterator();
while (iter.hasNext()) {
processInstallShortcut(context, iter.next());