mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-19 18:58:19 +00:00
Fix bug where workspace taps were not being sent to WallpaperManager.
Bug: 77218814 Change-Id: Ied464f08dce6f96fd3c56aa790f60a2561edcc84
This commit is contained in:
@@ -477,7 +477,7 @@ public class Workspace extends PagedView<WorkspacePageIndicator>
|
||||
super.onViewAdded(child);
|
||||
}
|
||||
|
||||
boolean isTouchActive() {
|
||||
public boolean isTouchActive() {
|
||||
return mTouchState != TOUCH_STATE_REST;
|
||||
}
|
||||
|
||||
@@ -974,19 +974,9 @@ public class Workspace extends PagedView<WorkspacePageIndicator>
|
||||
|
||||
@Override
|
||||
public boolean onInterceptTouchEvent(MotionEvent ev) {
|
||||
switch (ev.getAction() & MotionEvent.ACTION_MASK) {
|
||||
case MotionEvent.ACTION_DOWN:
|
||||
if (ev.getActionMasked() == MotionEvent.ACTION_DOWN) {
|
||||
mXDown = ev.getX();
|
||||
mYDown = ev.getY();
|
||||
break;
|
||||
case MotionEvent.ACTION_POINTER_UP:
|
||||
case MotionEvent.ACTION_UP:
|
||||
if (mTouchState == TOUCH_STATE_REST) {
|
||||
final CellLayout currentPage = (CellLayout) getChildAt(mCurrentPage);
|
||||
if (currentPage != null) {
|
||||
onWallpaperTap(ev);
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onInterceptTouchEvent(ev);
|
||||
}
|
||||
@@ -1443,7 +1433,7 @@ public class Workspace extends PagedView<WorkspacePageIndicator>
|
||||
}
|
||||
}
|
||||
|
||||
protected void onWallpaperTap(MotionEvent ev) {
|
||||
public void onWallpaperTap(MotionEvent ev) {
|
||||
final int[] position = mTempXY;
|
||||
getLocationOnScreen(position);
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ package com.android.launcher3.touch;
|
||||
|
||||
import static android.view.MotionEvent.ACTION_CANCEL;
|
||||
import static android.view.MotionEvent.ACTION_DOWN;
|
||||
import static android.view.MotionEvent.ACTION_POINTER_UP;
|
||||
import static android.view.MotionEvent.ACTION_UP;
|
||||
import static android.view.ViewConfiguration.getLongPressTimeout;
|
||||
|
||||
@@ -30,6 +31,7 @@ import android.view.View;
|
||||
import android.view.View.OnTouchListener;
|
||||
|
||||
import com.android.launcher3.AbstractFloatingView;
|
||||
import com.android.launcher3.CellLayout;
|
||||
import com.android.launcher3.DeviceProfile;
|
||||
import com.android.launcher3.Launcher;
|
||||
import com.android.launcher3.Workspace;
|
||||
@@ -122,6 +124,17 @@ public class WorkspaceTouchListener implements OnTouchListener, Runnable {
|
||||
// We don't want to handle touch, let workspace handle it as usual.
|
||||
result = false;
|
||||
}
|
||||
|
||||
if (action == ACTION_UP || action == ACTION_POINTER_UP) {
|
||||
if (!mWorkspace.isTouchActive()) {
|
||||
final CellLayout currentPage =
|
||||
(CellLayout) mWorkspace.getChildAt(mWorkspace.getCurrentPage());
|
||||
if (currentPage != null) {
|
||||
mWorkspace.onWallpaperTap(ev);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (action == ACTION_UP || action == ACTION_CANCEL) {
|
||||
cancelLongPress();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user