summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdam Cohen <adamcohen@google.com>2013-09-29 17:46:49 -0700
committerAdam Cohen <adamcohen@google.com>2013-09-29 18:13:25 -0700
commit2bf63d520576baa433a53a77e4e24386e40c1cda (patch)
tree0eb26c6a7cc21ad0e82d77a41d15b253c082b303 /src
parent4ef75f523c5b2bfed37bf1ed4bd2bcf8bda8b502 (diff)
downloadandroid_packages_apps_Trebuchet-2bf63d520576baa433a53a77e4e24386e40c1cda.tar.gz
android_packages_apps_Trebuchet-2bf63d520576baa433a53a77e4e24386e40c1cda.tar.bz2
android_packages_apps_Trebuchet-2bf63d520576baa433a53a77e4e24386e40c1cda.zip
Fixing issue where you couldn't drag an item multiple pages (issue 10754544)
-> This was caused by a strange race condition. The page snap time was equal to the delay to recheck whether to snap (in DragController). This meant that scrollRight()/Left() would get called, and the scroller would be finished however, the final computeScrollHelper() hadn't been called, so the mCurrentPage hadn't yet been incremented. -> Fixed the underlying race condition. -> Added suitable gap (150 ms) between the two delays. Change-Id: If700eb9e14d77a174e4395ca6933119bdb0da768
Diffstat (limited to 'src')
-rw-r--r--src/com/android/launcher3/DragController.java2
-rw-r--r--src/com/android/launcher3/PagedView.java12
-rw-r--r--src/com/android/launcher3/Workspace.java12
3 files changed, 5 insertions, 21 deletions
diff --git a/src/com/android/launcher3/DragController.java b/src/com/android/launcher3/DragController.java
index 3c1a04c2a..5b5c35c5a 100644
--- a/src/com/android/launcher3/DragController.java
+++ b/src/com/android/launcher3/DragController.java
@@ -50,7 +50,7 @@ public class DragController {
public static int DRAG_ACTION_COPY = 1;
private static final int SCROLL_DELAY = 500;
- private static final int RESCROLL_DELAY = 750;
+ private static final int RESCROLL_DELAY = PagedView.PAGE_SNAP_ANIMATION_DURATION + 150;
private static final boolean PROFILE_DRAWING_DURING_DRAG = false;
diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java
index 8cdd8e2cc..9cfb3d911 100644
--- a/src/com/android/launcher3/PagedView.java
+++ b/src/com/android/launcher3/PagedView.java
@@ -2153,19 +2153,11 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
}
public void scrollLeft() {
- if (mScroller.isFinished()) {
- if (mCurrentPage > 0) snapToPage(mCurrentPage - 1);
- } else {
- if (mNextPage > 0) snapToPage(mNextPage - 1);
- }
+ if (getNextPage() > 0) snapToPage(getNextPage() - 1);
}
public void scrollRight() {
- if (mScroller.isFinished()) {
- if (mCurrentPage < getChildCount() -1) snapToPage(mCurrentPage + 1);
- } else {
- if (mNextPage < getChildCount() -1) snapToPage(mNextPage + 1);
- }
+ if (getNextPage() < getChildCount() -1) snapToPage(getNextPage() + 1);
}
public int getPageForView(View v) {
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 7f6964f0f..baddc2dab 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -1748,25 +1748,17 @@ public class Workspace extends SmoothPagedView
protected void onStartReordering() {
super.onStartReordering();
- int count = getChildCount();
- for (int i = 0; i < count; i++) {
- ((CellLayout) getChildAt(i)).setUseActiveGlowBackground(true);
- }
showOutlines();
-
// Reordering handles its own animations, disable the automatic ones.
setLayoutTransition(null);
}
protected void onEndReordering() {
super.onEndReordering();
- int count = getChildCount();
- for (int i = 0; i < count; i++) {
- ((CellLayout) getChildAt(i)).setUseActiveGlowBackground(false);
- }
- hideOutlines();
+ hideOutlines();
mScreenOrder.clear();
+ int count = getChildCount();
for (int i = 0; i < count; i++) {
CellLayout cl = ((CellLayout) getChildAt(i));
mScreenOrder.add(getIdForScreen(cl));