From 988cbecc57ef0b25dda5e483299e7c215bcce6da Mon Sep 17 00:00:00 2001 From: Raj Yengisetty Date: Mon, 10 Nov 2014 10:35:01 -0800 Subject: Protected Folder Fragment: Add remove Shortcut from list. Change-Id: I0e9f141bc34bcfa955d7f5f3535d9d437e94b1da --- res/drawable-hdpi/ic_remove.png | Bin 0 -> 931 bytes res/drawable-mdpi/ic_remove.png | Bin 0 -> 646 bytes res/drawable-xhdpi/ic_remove.png | Bin 0 -> 1403 bytes res/drawable-xxhdpi/ic_remove.png | Bin 0 -> 2177 bytes res/layout/hidden_folder_apps_list_item.xml | 9 +++++++-- src/com/android/launcher3/Folder.java | 14 ++++++++++++++ src/com/android/launcher3/HiddenFolderFragment.java | 20 +++++++++++++++++++- 7 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 res/drawable-hdpi/ic_remove.png create mode 100644 res/drawable-mdpi/ic_remove.png create mode 100644 res/drawable-xhdpi/ic_remove.png create mode 100644 res/drawable-xxhdpi/ic_remove.png diff --git a/res/drawable-hdpi/ic_remove.png b/res/drawable-hdpi/ic_remove.png new file mode 100644 index 000000000..d26b12b8f Binary files /dev/null and b/res/drawable-hdpi/ic_remove.png differ diff --git a/res/drawable-mdpi/ic_remove.png b/res/drawable-mdpi/ic_remove.png new file mode 100644 index 000000000..48c82fa1c Binary files /dev/null and b/res/drawable-mdpi/ic_remove.png differ diff --git a/res/drawable-xhdpi/ic_remove.png b/res/drawable-xhdpi/ic_remove.png new file mode 100644 index 000000000..38a8705ad Binary files /dev/null and b/res/drawable-xhdpi/ic_remove.png differ diff --git a/res/drawable-xxhdpi/ic_remove.png b/res/drawable-xxhdpi/ic_remove.png new file mode 100644 index 000000000..ac36b34c0 Binary files /dev/null and b/res/drawable-xxhdpi/ic_remove.png differ diff --git a/res/layout/hidden_folder_apps_list_item.xml b/res/layout/hidden_folder_apps_list_item.xml index 13441941e..f3af4ad1d 100644 --- a/res/layout/hidden_folder_apps_list_item.xml +++ b/res/layout/hidden_folder_apps_list_item.xml @@ -5,8 +5,7 @@ android:minHeight="48dp" android:gravity="center_vertical" android:paddingRight="?android:attr/scrollbarSize" - android:background="?android:attr/selectableItemBackground" - android:descendantFocusability="blocksDescendants"> + android:background="?android:attr/selectableItemBackground"> + + \ No newline at end of file diff --git a/src/com/android/launcher3/Folder.java b/src/com/android/launcher3/Folder.java index 7f3f47f87..dc33552ff 100644 --- a/src/com/android/launcher3/Folder.java +++ b/src/com/android/launcher3/Folder.java @@ -1482,6 +1482,20 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList return mItemsInReadingOrder; } + public ShortcutInfo getShortcutForComponent(ComponentName componentName) { + for (View v : mItemsInReadingOrder) { + Object tag = v.getTag(); + if (tag instanceof ShortcutInfo) { + ComponentName cName = ((ShortcutInfo) tag).getIntent().getComponent(); + if (cName.equals(componentName)) { + return (ShortcutInfo) tag; + } + } + } + + return null; + } + public void getLocationInDragLayer(int[] loc) { mLauncher.getDragLayer().getLocationInDragLayer(this, loc); } diff --git a/src/com/android/launcher3/HiddenFolderFragment.java b/src/com/android/launcher3/HiddenFolderFragment.java index d43f61d23..07b0e4a8a 100644 --- a/src/com/android/launcher3/HiddenFolderFragment.java +++ b/src/com/android/launcher3/HiddenFolderFragment.java @@ -140,6 +140,16 @@ public class HiddenFolderFragment extends Fragment { return apps; } + private void removeComponentFromFolder(AppEntry app) { + mLauncher.mHiddenFolderIcon.getFolderInfo().remove( + mLauncher.mHiddenFolderIcon.getFolder() + .getShortcutForComponent(app.componentName)); + + mAppEntries.remove(app); + mAppsAdapter.remove(app); + mAppsAdapter.notifyDataSetInvalidated(); + } + public void saveHiddenFolderStatus(int position) { String newTitle = mFolderName.getText().toString(); if (mLauncher.mHiddenFolderIcon != null) { @@ -221,12 +231,18 @@ public class HiddenFolderFragment extends Fragment { viewHolder = (AppViewHolder) convertView.getTag(); } - AppEntry app = getItem(position); + final AppEntry app = getItem(position); viewHolder.title.setText(app.title); Drawable icon = mIcons.get(app.componentName.getPackageName()); viewHolder.icon.setImageDrawable(icon != null ? icon : mDefaultImg); + viewHolder.remove.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + removeComponentFromFolder(app); + } + }); convertView.setOnClickListener(new OnClickListener() { @Override @@ -314,10 +330,12 @@ public class HiddenFolderFragment extends Fragment { private static class AppViewHolder { public final TextView title; public final ImageView icon; + public final ImageView remove; public final int position; public AppViewHolder(View parentView, int position) { icon = (ImageView) parentView.findViewById(R.id.icon); + remove = (ImageView) parentView.findViewById(R.id.remove); title = (TextView) parentView.findViewById(R.id.title); this.position = position; } -- cgit v1.2.3