diff options
Diffstat (limited to 'src/com/android/launcher2/WidgetChooser.java')
-rw-r--r-- | src/com/android/launcher2/WidgetChooser.java | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/com/android/launcher2/WidgetChooser.java b/src/com/android/launcher2/WidgetChooser.java new file mode 100644 index 000000000..ea6888e14 --- /dev/null +++ b/src/com/android/launcher2/WidgetChooser.java @@ -0,0 +1,47 @@ +package com.android.launcher2; + +import android.appwidget.AppWidgetProviderInfo; +import android.content.Context; +import android.graphics.Bitmap; +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; + + public WidgetChooser(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public void setDragController(DragController dragger) { + mDragController = dragger; + } + + 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); + 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) { + } +} + |