diff options
Diffstat (limited to 'src/com/android/launcher2/Workspace.java')
-rw-r--r-- | src/com/android/launcher2/Workspace.java | 41 |
1 files changed, 19 insertions, 22 deletions
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java index 2c95beea8..1d2d75e51 100644 --- a/src/com/android/launcher2/Workspace.java +++ b/src/com/android/launcher2/Workspace.java @@ -90,6 +90,7 @@ public class Workspace extends ViewGroup implements DropTarget, DragSource, Drag private OnLongClickListener mLongClickListener; private Launcher mLauncher; + private IconCache mIconCache; private DragController mDragController; /** @@ -142,9 +143,12 @@ public class Workspace extends ViewGroup implements DropTarget, DragSource, Drag * Initializes various states for this workspace. */ private void initWorkspace() { - mScroller = new Scroller(getContext()); + Context context = getContext(); + mScroller = new Scroller(context); mCurrentScreen = mDefaultScreen; Launcher.setScreen(mCurrentScreen); + LauncherApplication app = (LauncherApplication)context.getApplicationContext(); + mIconCache = app.getIconCache(); final ViewConfiguration configuration = ViewConfiguration.get(getContext()); mTouchSlop = configuration.getScaledTouchSlop(); @@ -880,11 +884,11 @@ public class Workspace extends ViewGroup implements DropTarget, DragSource, Drag } } - void addApplicationShortcut(ApplicationInfo info, CellLayout.CellInfo cellInfo) { + void addApplicationShortcut(ShortcutInfo info, CellLayout.CellInfo cellInfo) { addApplicationShortcut(info, cellInfo, false); } - void addApplicationShortcut(ApplicationInfo info, CellLayout.CellInfo cellInfo, + void addApplicationShortcut(ShortcutInfo info, CellLayout.CellInfo cellInfo, boolean insertAtFirst) { final CellLayout layout = (CellLayout) getChildAt(cellInfo.screen); final int[] result = new int[2]; @@ -950,10 +954,9 @@ public class Workspace extends ViewGroup implements DropTarget, DragSource, Drag case LauncherSettings.Favorites.ITEM_TYPE_SHORTCUT: if (info.container == NO_ID) { // Came from all apps -- make a copy - info = new ApplicationInfo((ApplicationInfo) info); + info = new ShortcutInfo((ShortcutInfo)info); } - view = mLauncher.createShortcut(R.layout.application, cellLayout, - (ApplicationInfo) info); + view = mLauncher.createShortcut(R.layout.application, cellLayout, (ShortcutInfo)info); break; case LauncherSettings.Favorites.ITEM_TYPE_USER_FOLDER: view = FolderIcon.fromXml(R.layout.folder_icon, mLauncher, @@ -1183,8 +1186,8 @@ public class Workspace extends ViewGroup implements DropTarget, DragSource, Drag final View view = layout.getChildAt(j); Object tag = view.getTag(); - if (tag instanceof ApplicationInfo) { - final ApplicationInfo info = (ApplicationInfo) tag; + if (tag instanceof ShortcutInfo) { + final ShortcutInfo info = (ShortcutInfo) tag; // We need to check for ACTION_MAIN otherwise getComponent() might // return null for some shortcuts (for instance, for shortcuts to // web pages.) @@ -1199,14 +1202,13 @@ public class Workspace extends ViewGroup implements DropTarget, DragSource, Drag } } else if (tag instanceof UserFolderInfo) { final UserFolderInfo info = (UserFolderInfo) tag; - final ArrayList<ApplicationInfo> contents = info.contents; - final ArrayList<ApplicationInfo> toRemove = - new ArrayList<ApplicationInfo>(1); + final ArrayList<ShortcutInfo> contents = info.contents; + final ArrayList<ShortcutInfo> toRemove = new ArrayList<ShortcutInfo>(1); final int contentsCount = contents.size(); boolean removedFromFolder = false; for (int k = 0; k < contentsCount; k++) { - final ApplicationInfo appInfo = contents.get(k); + final ShortcutInfo appInfo = contents.get(k); final Intent intent = appInfo.intent; final ComponentName name = intent.getComponent(); @@ -1277,8 +1279,8 @@ public class Workspace extends ViewGroup implements DropTarget, DragSource, Drag for (int j = 0; j < childCount; j++) { final View view = layout.getChildAt(j); Object tag = view.getTag(); - if (tag instanceof ApplicationInfo) { - ApplicationInfo info = (ApplicationInfo) tag; + if (tag instanceof ShortcutInfo) { + ShortcutInfo info = (ShortcutInfo)tag; // We need to check for ACTION_MAIN otherwise getComponent() might // return null for some shortcuts (for instance, for shortcuts to // web pages.) @@ -1288,14 +1290,9 @@ public class Workspace extends ViewGroup implements DropTarget, DragSource, Drag Intent.ACTION_MAIN.equals(intent.getAction()) && name != null && packageName.equals(name.getPackageName())) { - final Drawable icon = AppInfoCache.getIconDrawable(pm, info); - if (icon != null && icon != info.icon) { - info.icon.setCallback(null); - info.icon = Utilities.createIconThumbnail(icon, mContext); - info.filtered = true; - ((TextView) view).setCompoundDrawablesWithIntrinsicBounds(null, - info.icon, null, null); - } + info.setIcon(mIconCache.getIcon(info.intent)); + ((TextView) view).setCompoundDrawablesWithIntrinsicBounds(null, + new FastBitmapDrawable(info.getIcon(mIconCache)), null, null); } } } |