summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher2/AllAppsView.java
diff options
context:
space:
mode:
authorJoe Onorato <joeo@android.com>2009-10-01 14:09:15 -0700
committerJoe Onorato <joeo@android.com>2009-10-01 14:09:15 -0700
commitf7b0e0188033fe7611cf68c4efa8123e3160b689 (patch)
treebaf4d3a18042d243dccbc172d01a07cd20f0bbad /src/com/android/launcher2/AllAppsView.java
parent2bc6b7c2b8b651dde0a65c64c127f5b85c1290d2 (diff)
downloadandroid_packages_apps_Trebuchet-f7b0e0188033fe7611cf68c4efa8123e3160b689.tar.gz
android_packages_apps_Trebuchet-f7b0e0188033fe7611cf68c4efa8123e3160b689.tar.bz2
android_packages_apps_Trebuchet-f7b0e0188033fe7611cf68c4efa8123e3160b689.zip
Fix the "missing touch events" problem.
- Bias the slop regions so that it's more likely to think that you're scrolling than zooming. - If it could be a scroll or a zoom, pick the scroll.
Diffstat (limited to 'src/com/android/launcher2/AllAppsView.java')
-rw-r--r--src/com/android/launcher2/AllAppsView.java19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/com/android/launcher2/AllAppsView.java b/src/com/android/launcher2/AllAppsView.java
index bf439f5c9..3a45d59f2 100644
--- a/src/com/android/launcher2/AllAppsView.java
+++ b/src/com/android/launcher2/AllAppsView.java
@@ -74,11 +74,13 @@ public class AllAppsView extends RSSurfaceView
* TODO: What about scrolling? */
private int mLocks = LOCK_ICONS_PENDING;
+ private int mSlopX;
+ private int mMaxFlingVelocity;
+
private RenderScript mRS;
private RolloRS mRollo;
private ArrayList<ApplicationInfo> mAllAppsList;
- private ViewConfiguration mConfig;
private int mPageCount;
private boolean mStartedScrolling;
private VelocityTracker mVelocity;
@@ -126,7 +128,10 @@ public class AllAppsView extends RSSurfaceView
super(context, attrs);
setFocusable(true);
getHolder().setFormat(PixelFormat.TRANSLUCENT);
- mConfig = ViewConfiguration.get(context);
+ final ViewConfiguration config = ViewConfiguration.get(context);
+ mSlopX = config.getScaledTouchSlop();
+ mMaxFlingVelocity = config.getScaledMaximumFlingVelocity();
+
setOnClickListener(this);
setOnLongClickListener(this);
setZOrderOnTop(true);
@@ -217,12 +222,11 @@ public class AllAppsView extends RSSurfaceView
break;
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_OUTSIDE:
- int slop = Math.abs(x - mLastMotionX);
- if (!mStartedScrolling && slop < mConfig.getScaledTouchSlop()) {
- // don't update mLastMotionX so slop is right and when we do start scrolling
+ int slopX = Math.abs(x - mLastMotionX);
+ if (!mStartedScrolling && slopX < mSlopX) {
+ // don't update mLastMotionX so slopX is right and when we do start scrolling
// below, we get the right delta.
} else {
-
mRollo.mState.newPositionX = ev.getRawX() / Defines.SCREEN_WIDTH_PX;
mRollo.mState.newTouchDown = 1;
mRollo.mInvokeMove.execute();
@@ -241,8 +245,7 @@ public class AllAppsView extends RSSurfaceView
mRollo.mState.newPositionX = ev.getRawX() / Defines.SCREEN_WIDTH_PX;
if (!mZoomSwipeInProgress) {
- mVelocity.computeCurrentVelocity(1000 /* px/sec */,
- mConfig.getScaledMaximumFlingVelocity());
+ mVelocity.computeCurrentVelocity(1000 /* px/sec */, mMaxFlingVelocity);
mRollo.mState.flingVelocityX = mVelocity.getXVelocity() / Defines.SCREEN_WIDTH_PX;
mRollo.clearSelectedIcon();
mRollo.mState.save();