summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Miranda <jonmiranda@google.com>2017-07-26 21:28:34 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2017-07-26 21:28:34 +0000
commit8806475b8ee18b93ea832d1212daea6cdde8d0a5 (patch)
tree6de32dc3ea3a8e674d7f0a1d441f304c3bd0a3f0
parent5401fb146b4fe44f3686b0da7416a83897b64294 (diff)
parent2d5e0e067c33d123bec25d7353d2fd5cdd8f5d5a (diff)
downloadandroid_packages_apps_Trebuchet-8806475b8ee18b93ea832d1212daea6cdde8d0a5.tar.gz
android_packages_apps_Trebuchet-8806475b8ee18b93ea832d1212daea6cdde8d0a5.tar.bz2
android_packages_apps_Trebuchet-8806475b8ee18b93ea832d1212daea6cdde8d0a5.zip
Merge "All Apps physics polish." into ub-launcher3-dorval-polish
-rw-r--r--src/com/android/launcher3/allapps/AllAppsContainerView.java31
-rw-r--r--src/com/android/launcher3/allapps/AllAppsRecyclerView.java24
2 files changed, 23 insertions, 32 deletions
diff --git a/src/com/android/launcher3/allapps/AllAppsContainerView.java b/src/com/android/launcher3/allapps/AllAppsContainerView.java
index 20951921c..0083d47f2 100644
--- a/src/com/android/launcher3/allapps/AllAppsContainerView.java
+++ b/src/com/android/launcher3/allapps/AllAppsContainerView.java
@@ -21,7 +21,6 @@ import android.graphics.Rect;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.InsetDrawable;
import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
import android.text.Selection;
import android.text.SpannableStringBuilder;
import android.util.AttributeSet;
@@ -227,7 +226,6 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc
mAppsRecyclerView.setHasFixedSize(true);
if (FeatureFlags.LAUNCHER3_PHYSICS) {
mAppsRecyclerView.setSpringAnimationHandler(mSpringAnimationHandler);
- mAppsRecyclerView.addOnScrollListener(new SpringMotionOnScrollListener());
}
mSearchContainer = findViewById(R.id.search_container_all_apps);
@@ -403,33 +401,4 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc
public SpringAnimationHandler getSpringAnimationHandler() {
return mSpringAnimationHandler;
}
-
- public class SpringMotionOnScrollListener extends RecyclerView.OnScrollListener {
-
- private int mScrollState = RecyclerView.SCROLL_STATE_IDLE;
-
- @Override
- public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
- if (mScrollState == RecyclerView.SCROLL_STATE_DRAGGING || (dx == 0 && dy == 0)) {
- if (mSpringAnimationHandler.isRunning()){
- mSpringAnimationHandler.skipToEnd();
- }
- return;
- }
-
- // We only start the spring animation when we fling and hit the top/bottom, to ensure
- // that all of the animations start at the same time.
- if (dy < 0 && !mAppsRecyclerView.canScrollVertically(-1)) {
- mSpringAnimationHandler.animateToFinalPosition(0, 1);
- } else if (dy > 0 && !mAppsRecyclerView.canScrollVertically(1)) {
- mSpringAnimationHandler.animateToFinalPosition(0, -1);
- }
- }
-
- @Override
- public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
- super.onScrollStateChanged(recyclerView, newState);
- mScrollState = newState;
- }
- }
}
diff --git a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java
index 25144584e..701402b02 100644
--- a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java
+++ b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java
@@ -103,7 +103,10 @@ public class AllAppsRecyclerView extends BaseRecyclerView implements LogContaine
}
public void setSpringAnimationHandler(SpringAnimationHandler springAnimationHandler) {
- mSpringAnimationHandler = springAnimationHandler;
+ if (FeatureFlags.LAUNCHER3_PHYSICS) {
+ mSpringAnimationHandler = springAnimationHandler;
+ addOnScrollListener(new SpringMotionOnScrollListener());
+ }
}
@Override
@@ -485,6 +488,25 @@ public class AllAppsRecyclerView extends BaseRecyclerView implements LogContaine
y + mEmptySearchBackground.getIntrinsicHeight());
}
+ private class SpringMotionOnScrollListener extends RecyclerView.OnScrollListener {
+
+ @Override
+ public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
+ if (mOverScrollHelper.isInOverScroll()) {
+ // OverScroll will handle animating the springs.
+ return;
+ }
+
+ // We only start the spring animation when we hit the top/bottom, to ensure
+ // that all of the animations start at the same time.
+ if (dy < 0 && !canScrollVertically(-1)) {
+ mSpringAnimationHandler.animateToFinalPosition(0, 1);
+ } else if (dy > 0 && !canScrollVertically(1)) {
+ mSpringAnimationHandler.animateToFinalPosition(0, -1);
+ }
+ }
+ }
+
private class OverScrollHelper implements VerticalPullDetector.Listener {
private static final float MAX_RELEASE_VELOCITY = 5000; // px / s