diff options
Diffstat (limited to 'src/com/android/launcher3/HiddenFolderFragment.java')
-rw-r--r-- | src/com/android/launcher3/HiddenFolderFragment.java | 41 |
1 files changed, 33 insertions, 8 deletions
diff --git a/src/com/android/launcher3/HiddenFolderFragment.java b/src/com/android/launcher3/HiddenFolderFragment.java index 94e1d2dbf..279448cdb 100644 --- a/src/com/android/launcher3/HiddenFolderFragment.java +++ b/src/com/android/launcher3/HiddenFolderFragment.java @@ -20,7 +20,9 @@ import android.view.inputmethod.EditorInfo; import android.view.inputmethod.InputMethodManager; import android.widget.ArrayAdapter; import android.widget.EditText; +import android.widget.FrameLayout; import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; @@ -115,6 +117,14 @@ public class HiddenFolderFragment extends Fragment { mListView = (ListView) v.findViewById(R.id.hidden_apps_list); mListView.setAdapter(mAppsAdapter); + // Apply insets + Launcher launcher = (Launcher) getActivity(); + LinearLayout.LayoutParams llp = + (LinearLayout.LayoutParams) mListView.getLayoutParams(); + llp.bottomMargin += ((FrameLayout.LayoutParams) launcher.getOverviewPanel() + .findViewById(R.id.settings_container).getLayoutParams()).bottomMargin; + mListView.setLayoutParams(llp); + return v; } @@ -128,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); @@ -227,7 +246,10 @@ public class HiddenFolderFragment extends Fragment { viewHolder.title.setText(app.title); - Drawable icon = mIcons.get(app.componentName.getPackageName()); + Drawable icon = null; + if (app.componentName != null) { + icon = mIcons.get(app.componentName.getPackageName()); + } viewHolder.icon.setImageDrawable(icon != null ? icon : mDefaultImg); viewHolder.remove.setOnClickListener(new OnClickListener() { @Override @@ -284,8 +306,9 @@ public class HiddenFolderFragment extends Fragment { protected Void doInBackground(AppEntry... apps) { for (AppEntry app : apps) { try { - if (mIcons.containsKey(app.componentName - .getPackageName())) { + // Widget icons do not have a + if (app.componentName == null || + mIcons.containsKey(app.componentName.getPackageName())) { continue; } Drawable icon = mPackageManager @@ -311,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; } } |