diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/launcher2/AppsCustomizePagedView.java | 4 | ||||
-rw-r--r-- | src/com/android/launcher2/LauncherModel.java | 44 |
2 files changed, 28 insertions, 20 deletions
diff --git a/src/com/android/launcher2/AppsCustomizePagedView.java b/src/com/android/launcher2/AppsCustomizePagedView.java index 48f56231b..bcc71dc44 100644 --- a/src/com/android/launcher2/AppsCustomizePagedView.java +++ b/src/com/android/launcher2/AppsCustomizePagedView.java @@ -1691,7 +1691,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen public void setApps(ArrayList<ApplicationInfo> list) { mApps = list; - Collections.sort(mApps, LauncherModel.APP_NAME_COMPARATOR); + Collections.sort(mApps, LauncherModel.getAppNameComparator()); updatePageCounts(); invalidateOnDataChange(); } @@ -1700,7 +1700,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen int count = list.size(); for (int i = 0; i < count; ++i) { ApplicationInfo info = list.get(i); - int index = Collections.binarySearch(mApps, info, LauncherModel.APP_NAME_COMPARATOR); + int index = Collections.binarySearch(mApps, info, LauncherModel.getAppNameComparator()); if (index < 0) { mApps.add(-(index + 1), info); } diff --git a/src/com/android/launcher2/LauncherModel.java b/src/com/android/launcher2/LauncherModel.java index 909cc795f..11beda8dd 100644 --- a/src/com/android/launcher2/LauncherModel.java +++ b/src/com/android/launcher2/LauncherModel.java @@ -2437,17 +2437,18 @@ public class LauncherModel extends BroadcastReceiver { return folderInfo; } - private static final Collator sCollator = Collator.getInstance(); - public static final Comparator<ApplicationInfo> APP_NAME_COMPARATOR - = new Comparator<ApplicationInfo>() { - public final int compare(ApplicationInfo a, ApplicationInfo b) { - int result = sCollator.compare(a.title.toString(), b.title.toString()); - if (result == 0) { - result = a.componentName.compareTo(b.componentName); + public static final Comparator<ApplicationInfo> getAppNameComparator() { + final Collator collator = Collator.getInstance(); + return new Comparator<ApplicationInfo>() { + public final int compare(ApplicationInfo a, ApplicationInfo b) { + int result = collator.compare(a.title.toString(), b.title.toString()); + if (result == 0) { + result = a.componentName.compareTo(b.componentName); + } + return result; } - return result; - } - }; + }; + } public static final Comparator<ApplicationInfo> APP_INSTALL_TIME_COMPARATOR = new Comparator<ApplicationInfo>() { public final int compare(ApplicationInfo a, ApplicationInfo b) { @@ -2456,12 +2457,14 @@ public class LauncherModel extends BroadcastReceiver { return 0; } }; - public static final Comparator<AppWidgetProviderInfo> WIDGET_NAME_COMPARATOR - = new Comparator<AppWidgetProviderInfo>() { - public final int compare(AppWidgetProviderInfo a, AppWidgetProviderInfo b) { - return sCollator.compare(a.label.toString(), b.label.toString()); - } - }; + public static final Comparator<AppWidgetProviderInfo> getWidgetNameComparator() { + 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()); + } + }; + } static ComponentName getComponentNameFromResolveInfo(ResolveInfo info) { if (info.activityInfo != null) { return new ComponentName(info.activityInfo.packageName, info.activityInfo.name); @@ -2470,15 +2473,18 @@ public class LauncherModel extends BroadcastReceiver { } } public static class ShortcutNameComparator implements Comparator<ResolveInfo> { + private Collator mCollator; private PackageManager mPackageManager; private HashMap<Object, CharSequence> mLabelCache; ShortcutNameComparator(PackageManager pm) { mPackageManager = pm; mLabelCache = new HashMap<Object, CharSequence>(); + mCollator = Collator.getInstance(); } ShortcutNameComparator(PackageManager pm, HashMap<Object, CharSequence> labelCache) { mPackageManager = pm; mLabelCache = labelCache; + mCollator = Collator.getInstance(); } public final int compare(ResolveInfo a, ResolveInfo b) { CharSequence labelA, labelB; @@ -2498,15 +2504,17 @@ public class LauncherModel extends BroadcastReceiver { mLabelCache.put(keyB, labelB); } - return sCollator.compare(labelA, labelB); + return mCollator.compare(labelA, labelB); } }; public static class WidgetAndShortcutNameComparator implements Comparator<Object> { + private Collator mCollator; private PackageManager mPackageManager; private HashMap<Object, String> mLabelCache; WidgetAndShortcutNameComparator(PackageManager pm) { mPackageManager = pm; mLabelCache = new HashMap<Object, String>(); + mCollator = Collator.getInstance(); } public final int compare(Object a, Object b) { String labelA, labelB; @@ -2526,7 +2534,7 @@ public class LauncherModel extends BroadcastReceiver { ((ResolveInfo) b).loadLabel(mPackageManager).toString(); mLabelCache.put(b, labelB); } - return sCollator.compare(labelA, labelB); + return mCollator.compare(labelA, labelB); } }; |