diff options
Diffstat (limited to 'src/com/android/launcher3/HiddenFolderFragment.java')
-rw-r--r-- | src/com/android/launcher3/HiddenFolderFragment.java | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/com/android/launcher3/HiddenFolderFragment.java b/src/com/android/launcher3/HiddenFolderFragment.java index 4b5314daa..96c086048 100644 --- a/src/com/android/launcher3/HiddenFolderFragment.java +++ b/src/com/android/launcher3/HiddenFolderFragment.java @@ -138,16 +138,25 @@ public class HiddenFolderFragment extends Fragment { private ArrayList<AppEntry> loadApps(List<Pair<ComponentName, CharSequence>> items) { ArrayList<AppEntry> apps = new ArrayList<AppEntry>(); + int pos = 0; for (Pair<ComponentName, CharSequence> item : items) { - apps.add(new AppEntry(item.first, item.second)); + apps.add(new AppEntry(item.first, item.second, pos)); + pos++; } return apps; } private void removeComponentFromFolder(AppEntry app) { - mLauncher.mHiddenFolderIcon.getFolderInfo().remove( - mLauncher.mHiddenFolderIcon.getFolder() - .getShortcutForComponent(app.componentName)); + ShortcutInfo info; + if (app.componentName != null) { + info = mLauncher.mHiddenFolderIcon.getFolder() + .getShortcutForComponent(app.componentName); + } else { + // Shortcut does not have componentName, use position since it maps to + // reading order position in the folder + info = mLauncher.mHiddenFolderIcon.getFolder().getShortcutForPosition(app.position); + } + mLauncher.mHiddenFolderIcon.getFolderInfo().remove(info); mAppEntries.remove(app); mAppsAdapter.remove(app); @@ -325,10 +334,12 @@ public class HiddenFolderFragment extends Fragment { private final class AppEntry { public final ComponentName componentName; public final CharSequence title; + public final int position; - public AppEntry(ComponentName component, CharSequence title) { + public AppEntry(ComponentName component, CharSequence title, int position) { this.componentName = component; this.title = title; + this.position = position; } } |