Merge "Fix bug where physics appears not to run in all apps." into ub-launcher3-dorval-polish
diff --git a/src/com/android/launcher3/allapps/AllAppsContainerView.java b/src/com/android/launcher3/allapps/AllAppsContainerView.java
index a399d74..f1616fc 100644
--- a/src/com/android/launcher3/allapps/AllAppsContainerView.java
+++ b/src/com/android/launcher3/allapps/AllAppsContainerView.java
@@ -20,7 +20,6 @@
import android.graphics.Rect;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.InsetDrawable;
-import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.Selection;
@@ -426,8 +425,11 @@
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
- if (mScrollState == RecyclerView.SCROLL_STATE_DRAGGING) {
- mSpringAnimationHandler.skipToEnd();
+ if (mScrollState == RecyclerView.SCROLL_STATE_DRAGGING
+ || (dx == 0 && dy == 0)) {
+ if (mSpringAnimationHandler.isRunning()){
+ mSpringAnimationHandler.skipToEnd();
+ }
return;
}
@@ -436,7 +438,7 @@
// We only show the spring animation when at the top or bottom, so we wait until the
// first or last row is visible to ensure that all animations run in sync.
- if (first == 0 || last >= mAdapter.getItemCount() - mAdapter.getNumAppsPerRow()) {
+ if ((first == 0 && dy < 0) || (last == mAdapter.getItemCount() - 1 && dy > 0)) {
mSpringAnimationHandler.animateToFinalPosition(0);
}
}
diff --git a/src/com/android/launcher3/anim/SpringAnimationHandler.java b/src/com/android/launcher3/anim/SpringAnimationHandler.java
index 488657c..6a5e351 100644
--- a/src/com/android/launcher3/anim/SpringAnimationHandler.java
+++ b/src/com/android/launcher3/anim/SpringAnimationHandler.java
@@ -138,6 +138,11 @@
reset();
}
+ public boolean isRunning() {
+ // All the animations run at the same time so we can just check the first one.
+ return !mAnimations.isEmpty() && mAnimations.get(0).isRunning();
+ }
+
public void skipToEnd() {
if (DEBUG) Log.d(TAG, "setStartVelocity#skipToEnd");
if (DEBUG) Log.v(TAG, "setStartVelocity#skipToEnd", new Exception());