diff options
Diffstat (limited to 'src/com/android/launcher2/WidgetChooser.java')
-rw-r--r-- | src/com/android/launcher2/WidgetChooser.java | 44 |
1 files changed, 19 insertions, 25 deletions
diff --git a/src/com/android/launcher2/WidgetChooser.java b/src/com/android/launcher2/WidgetChooser.java index 101b671df..ea6888e14 100644 --- a/src/com/android/launcher2/WidgetChooser.java +++ b/src/com/android/launcher2/WidgetChooser.java @@ -2,13 +2,13 @@ package com.android.launcher2; import android.appwidget.AppWidgetProviderInfo; import android.content.Context; -import android.content.pm.PackageManager.NameNotFoundException; -import android.content.res.Resources; import android.graphics.Bitmap; -import android.graphics.BitmapFactory; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.view.View; import android.widget.AdapterView; +import android.widget.TextView; public class WidgetChooser extends HomeCustomizationItemGallery implements DragSource { private DragController mDragController; @@ -22,29 +22,23 @@ public class WidgetChooser extends HomeCustomizationItemGallery implements DragS } public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { + Drawable[] drawables = ((TextView)view).getCompoundDrawables(); + Bitmap bmp = ((BitmapDrawable)drawables[1]).getBitmap(); + final int w = bmp.getWidth(); + final int h = bmp.getHeight(); + + // We don't really have an accurate location to use. This will do. + int screenX = mMotionDownRawX - (w / 2); + int screenY = mMotionDownRawY - h; + AppWidgetProviderInfo info = (AppWidgetProviderInfo)getAdapter().getItem(position); - try { - Resources r = mContext.getPackageManager().getResourcesForApplication(info.provider.getPackageName()); - - Bitmap bmp = BitmapFactory.decodeResource(r, info.icon); - final int w = bmp.getWidth(); - final int h = bmp.getHeight(); - - // We don't really have an accurate location to use. This will do. - int screenX = mMotionDownRawX - (w / 2); - int screenY = mMotionDownRawY - h; - - AppWidgetProviderInfo appWidgetInfo = (AppWidgetProviderInfo)view.getTag(); - LauncherAppWidgetInfo dragInfo = new LauncherAppWidgetInfo(info.provider); - // TODO: Is this really the best place to do this? - dragInfo.minWidth = appWidgetInfo.minWidth; - dragInfo.minHeight = appWidgetInfo.minHeight; - mDragController.startDrag(bmp, screenX, screenY, - 0, 0, w, h, this, dragInfo, DragController.DRAG_ACTION_COPY); - return true; - } catch (NameNotFoundException e) { - return false; - } + LauncherAppWidgetInfo dragInfo = new LauncherAppWidgetInfo(info.provider); + // TODO: Is this really the best place to do this? + dragInfo.minWidth = info.minWidth; + dragInfo.minHeight = info.minHeight; + mDragController.startDrag(bmp, screenX, screenY, + 0, 0, w, h, this, dragInfo, DragController.DRAG_ACTION_COPY); + return true; } public void onDropCompleted(View target, boolean success) { |