diff options
Diffstat (limited to 'src/com/android/launcher3/LauncherModel.java')
-rw-r--r-- | src/com/android/launcher3/LauncherModel.java | 66 |
1 files changed, 40 insertions, 26 deletions
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java index 1d264aa55..f8644b1ec 100644 --- a/src/com/android/launcher3/LauncherModel.java +++ b/src/com/android/launcher3/LauncherModel.java @@ -281,14 +281,14 @@ public class LauncherModel extends BroadcastReceiver { return null; } - public void addAndBindAddedApps(final Context context, final ArrayList<ItemInfo> added, - final ArrayList<AppInfo> addedApps) { + public void addAndBindAddedApps(final Context context, final ArrayList<ItemInfo> workspaceApps, + final ArrayList<AppInfo> allAppsApps) { Callbacks cb = mCallbacks != null ? mCallbacks.get() : null; - addAndBindAddedApps(context, added, cb, addedApps); + addAndBindAddedApps(context, workspaceApps, cb, allAppsApps); } - public void addAndBindAddedApps(final Context context, final ArrayList<ItemInfo> added, - final Callbacks callbacks, final ArrayList<AppInfo> addedApps) { - if (added.isEmpty()) { + public void addAndBindAddedApps(final Context context, final ArrayList<ItemInfo> workspaceApps, + final Callbacks callbacks, final ArrayList<AppInfo> allAppsApps) { + if (workspaceApps.isEmpty() && allAppsApps.isEmpty()) { return; } // Process the newly added applications and add them to the database first @@ -308,7 +308,7 @@ public class LauncherModel extends BroadcastReceiver { } synchronized(sBgLock) { - Iterator<ItemInfo> iter = added.iterator(); + Iterator<ItemInfo> iter = workspaceApps.iterator(); while (iter.hasNext()) { ItemInfo a = iter.next(); final String name = a.title.toString(); @@ -356,6 +356,7 @@ public class LauncherModel extends BroadcastReceiver { } else { throw new RuntimeException("Unexpected info type"); } + // Add the shortcut to the db addItemToDatabase(context, shortcutInfo, LauncherSettings.Favorites.CONTAINER_DESKTOP, @@ -368,24 +369,26 @@ public class LauncherModel extends BroadcastReceiver { // Update the workspace screens updateWorkspaceScreenOrder(context, workspaceScreens); - if (!addedShortcutsFinal.isEmpty()) { + if (!addedShortcutsFinal.isEmpty() || !allAppsApps.isEmpty()) { runOnMainThread(new Runnable() { public void run() { Callbacks cb = mCallbacks != null ? mCallbacks.get() : null; if (callbacks == cb && cb != null) { - ItemInfo info = addedShortcutsFinal.get(addedShortcutsFinal.size() - 1); - long lastScreenId = info.screenId; final ArrayList<ItemInfo> addAnimated = new ArrayList<ItemInfo>(); final ArrayList<ItemInfo> addNotAnimated = new ArrayList<ItemInfo>(); - for (ItemInfo i : addedShortcutsFinal) { - if (i.screenId == lastScreenId) { - addAnimated.add(i); - } else { - addNotAnimated.add(i); + if (!addedShortcutsFinal.isEmpty()) { + ItemInfo info = addedShortcutsFinal.get(addedShortcutsFinal.size() - 1); + long lastScreenId = info.screenId; + for (ItemInfo i : addedShortcutsFinal) { + if (i.screenId == lastScreenId) { + addAnimated.add(i); + } else { + addNotAnimated.add(i); + } } } callbacks.bindAppsAdded(addedWorkspaceScreensFinal, - addNotAnimated, addAnimated, addedApps); + addNotAnimated, addAnimated, allAppsApps); } } }); @@ -2474,7 +2477,7 @@ public class LauncherModel extends BroadcastReceiver { for (int i=0; i<N; i++) { if (DEBUG_LOADERS) Log.d(TAG, "mAllAppsList.updatePackage " + packages[i]); mBgAllAppsList.updatePackage(context, packages[i]); - WidgetPreviewLoader.removeFromDb( + WidgetPreviewLoader.removePackageFromDb( mApp.getWidgetPreviewCacheDb(), packages[i]); } break; @@ -2483,7 +2486,7 @@ public class LauncherModel extends BroadcastReceiver { for (int i=0; i<N; i++) { if (DEBUG_LOADERS) Log.d(TAG, "mAllAppsList.removePackage " + packages[i]); mBgAllAppsList.removePackage(packages[i]); - WidgetPreviewLoader.removeFromDb( + WidgetPreviewLoader.removePackageFromDb( mApp.getWidgetPreviewCacheDb(), packages[i]); } break; @@ -2514,9 +2517,13 @@ public class LauncherModel extends BroadcastReceiver { if (added != null) { // Ensure that we add all the workspace applications to the db - final ArrayList<ItemInfo> addedInfos = new ArrayList<ItemInfo>(added); Callbacks cb = mCallbacks != null ? mCallbacks.get() : null; - addAndBindAddedApps(context, addedInfos, cb, added); + if (!AppsCustomizePagedView.DISABLE_ALL_APPS) { + addAndBindAddedApps(context, new ArrayList<ItemInfo>(), cb, added); + } else { + final ArrayList<ItemInfo> addedInfos = new ArrayList<ItemInfo>(added); + addAndBindAddedApps(context, addedInfos, cb, added); + } } if (modified != null) { final ArrayList<AppInfo> modifiedFinal = modified; @@ -2558,6 +2565,12 @@ public class LauncherModel extends BroadcastReceiver { deleteItemFromDatabase(context, i); } } + + // Remove any queued items from the install queue + String spKey = LauncherAppState.getSharedPreferencesKey(); + SharedPreferences sp = + context.getSharedPreferences(spKey, Context.MODE_PRIVATE); + InstallShortcutReceiver.removeFromInstallQueue(sp, removedPackageNames); } else { for (AppInfo a : removedApps) { ArrayList<ItemInfo> infos = @@ -3055,7 +3068,8 @@ public class LauncherModel extends BroadcastReceiver { final Collator collator = Collator.getInstance(); return new Comparator<AppInfo>() { public final int compare(AppInfo a, AppInfo b) { - int result = collator.compare(a.title.toString(), b.title.toString()); + int result = collator.compare(a.title.toString().trim(), + b.title.toString().trim()); if (result == 0) { result = a.componentName.compareTo(b.componentName); } @@ -3075,7 +3089,7 @@ public class LauncherModel extends BroadcastReceiver { final Collator collator = Collator.getInstance(); return new Comparator<AppWidgetProviderInfo>() { public final int compare(AppWidgetProviderInfo a, AppWidgetProviderInfo b) { - return collator.compare(a.label.toString(), b.label.toString()); + return collator.compare(a.label.toString().trim(), b.label.toString().trim()); } }; } @@ -3107,14 +3121,14 @@ public class LauncherModel extends BroadcastReceiver { if (mLabelCache.containsKey(keyA)) { labelA = mLabelCache.get(keyA); } else { - labelA = a.loadLabel(mPackageManager).toString(); + labelA = a.loadLabel(mPackageManager).toString().trim(); mLabelCache.put(keyA, labelA); } if (mLabelCache.containsKey(keyB)) { labelB = mLabelCache.get(keyB); } else { - labelB = b.loadLabel(mPackageManager).toString(); + labelB = b.loadLabel(mPackageManager).toString().trim(); mLabelCache.put(keyB, labelB); } @@ -3137,7 +3151,7 @@ public class LauncherModel extends BroadcastReceiver { } else { labelA = (a instanceof AppWidgetProviderInfo) ? ((AppWidgetProviderInfo) a).label : - ((ResolveInfo) a).loadLabel(mPackageManager).toString(); + ((ResolveInfo) a).loadLabel(mPackageManager).toString().trim(); mLabelCache.put(a, labelA); } if (mLabelCache.containsKey(b)) { @@ -3145,7 +3159,7 @@ public class LauncherModel extends BroadcastReceiver { } else { labelB = (b instanceof AppWidgetProviderInfo) ? ((AppWidgetProviderInfo) b).label : - ((ResolveInfo) b).loadLabel(mPackageManager).toString(); + ((ResolveInfo) b).loadLabel(mPackageManager).toString().trim(); mLabelCache.put(b, labelB); } return mCollator.compare(labelA, labelB); |