diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java index 023e9f480a..8fe489dff7 100644 --- a/src/com/android/launcher2/CellLayout.java +++ b/src/com/android/launcher2/CellLayout.java @@ -796,7 +796,8 @@ public class CellLayout extends ViewGroup implements Dimmable { final int[] cellXY = mTmpCellXY; getLocationOnScreen(cellXY); - mWallpaperManager.sendWallpaperCommand(getWindowToken(), "android.home.drop", + mWallpaperManager.sendWallpaperCommand(getWindowToken(), + WallpaperManager.COMMAND_DROP, cellXY[0] + childLeft + lp.width / 2, cellXY[1] + childTop + lp.height / 2, 0, null); diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java index 31cfb5b21e..257531ecd2 100644 --- a/src/com/android/launcher2/PagedView.java +++ b/src/com/android/launcher2/PagedView.java @@ -757,8 +757,9 @@ public abstract class PagedView extends ViewGroup { break; } - case MotionEvent.ACTION_CANCEL: case MotionEvent.ACTION_UP: + onWallpaperTap(ev); + case MotionEvent.ACTION_CANCEL: mTouchState = TOUCH_STATE_REST; mAllowLongPress = false; mActivePointerId = INVALID_POINTER; @@ -958,6 +959,8 @@ public abstract class PagedView extends ViewGroup { } else { snapToDestination(); } + } else { + onWallpaperTap(ev); } mTouchState = TOUCH_STATE_REST; mActivePointerId = INVALID_POINTER; @@ -1011,6 +1014,12 @@ public abstract class PagedView extends ViewGroup { mVelocityTracker.clear(); } } + if (mTouchState == TOUCH_STATE_REST) { + onWallpaperTap(ev); + } + } + + protected void onWallpaperTap(MotionEvent ev) { } @Override diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java index b12d357f4b..7027d83593 100644 --- a/src/com/android/launcher2/Workspace.java +++ b/src/com/android/launcher2/Workspace.java @@ -542,10 +542,6 @@ public class Workspace extends SmoothPagedView Launcher.setScreen(mCurrentPage); }; - private void updateWallpaperOffset() { - updateWallpaperOffset(getChildAt(getChildCount() - 1).getRight() - (mRight - mLeft)); - } - private void updateWallpaperOffset(int scrollRange) { final boolean isStaticWallpaper = (mWallpaperManager != null) && (mWallpaperManager.getWallpaperInfo() == null); @@ -892,6 +888,21 @@ public class Workspace extends SmoothPagedView return super.onTouchEvent(ev); } + @Override + protected void onWallpaperTap(MotionEvent ev) { + final int[] position = mTempCell; + getLocationOnScreen(position); + + int pointerIndex = ev.getActionIndex(); + position[0] += (int) ev.getX(pointerIndex); + position[1] += (int) ev.getY(pointerIndex); + + mWallpaperManager.sendWallpaperCommand(getWindowToken(), + ev.getAction() == MotionEvent.ACTION_UP + ? WallpaperManager.COMMAND_TAP : WallpaperManager.COMMAND_SECONDARY_TAP, + position[0], position[1], 0, null); + } + public boolean isSmall() { return mIsSmall; }