Send live wallpaper taps.
Change-Id: I25465e6fa7a69ef5c35e69ddc375e65797f44bc6
diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java
index 023e9f4..8fe489d 100644
--- a/src/com/android/launcher2/CellLayout.java
+++ b/src/com/android/launcher2/CellLayout.java
@@ -796,7 +796,8 @@
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 31cfb5b..257531e 100644
--- a/src/com/android/launcher2/PagedView.java
+++ b/src/com/android/launcher2/PagedView.java
@@ -757,8 +757,9 @@
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 @@
} else {
snapToDestination();
}
+ } else {
+ onWallpaperTap(ev);
}
mTouchState = TOUCH_STATE_REST;
mActivePointerId = INVALID_POINTER;
@@ -1011,6 +1014,12 @@
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 b12d357..7027d83 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -542,10 +542,6 @@
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 @@
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;
}