summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/util
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2016-07-22 10:50:11 -0700
committerSunny Goyal <sunnygoyal@google.com>2016-07-27 17:37:23 -0700
commita2454ad2d8dcffa94f670853eb464726c73597f1 (patch)
tree63899483e75a7faadff477cb117bf5c5cfc54962 /src/com/android/launcher3/util
parent71538da6e2e70af15684cc270a6e67c9b5a010dc (diff)
downloadandroid_packages_apps_Trebuchet-a2454ad2d8dcffa94f670853eb464726c73597f1.tar.gz
android_packages_apps_Trebuchet-a2454ad2d8dcffa94f670853eb464726c73597f1.tar.bz2
android_packages_apps_Trebuchet-a2454ad2d8dcffa94f670853eb464726c73597f1.zip
Launcher shortcuts animations update.
> The shortcut container closes with an animation > When opening/closing the animation only the icon scales and not the title and drag handle > When dragging the icon, it starts from the original icon position and moves under the user finger. The container grows to follow the drag view. Bug: 28980830 Change-Id: Ic0353c30b682d1f018cbf4d62e8a6e8e7d7d4664
Diffstat (limited to 'src/com/android/launcher3/util')
-rw-r--r--src/com/android/launcher3/util/PillRevealOutlineProvider.java8
-rw-r--r--src/com/android/launcher3/util/PillWidthRevealOutlineProvider.java41
-rw-r--r--src/com/android/launcher3/util/RevealOutlineAnimation.java9
3 files changed, 52 insertions, 6 deletions
diff --git a/src/com/android/launcher3/util/PillRevealOutlineProvider.java b/src/com/android/launcher3/util/PillRevealOutlineProvider.java
index 09ff9bda4..3f1e11a51 100644
--- a/src/com/android/launcher3/util/PillRevealOutlineProvider.java
+++ b/src/com/android/launcher3/util/PillRevealOutlineProvider.java
@@ -31,19 +31,18 @@ public class PillRevealOutlineProvider extends RevealOutlineAnimation {
private int mCenterX;
private int mCenterY;
- private Rect mPillRect;
+ protected Rect mPillRect;
/**
* @param x reveal center x
* @param y reveal center y
* @param pillRect round rect that represents the final pill shape
- * @param pillRectRadius radius of the round rect
*/
- public PillRevealOutlineProvider(int x, int y, Rect pillRect, float pillRectRadius) {
+ public PillRevealOutlineProvider(int x, int y, Rect pillRect) {
mCenterX = x;
mCenterY = y;
mPillRect = pillRect;
- mOutlineRadius = pillRectRadius;
+ mOutlineRadius = pillRect.height() / 2f;
}
@Override
@@ -62,5 +61,6 @@ public class PillRevealOutlineProvider extends RevealOutlineAnimation {
mOutline.top = Math.max(mPillRect.top, mCenterY - currentSize);
mOutline.right = Math.min(mPillRect.right, mCenterX + currentSize);
mOutline.bottom = Math.min(mPillRect.bottom, mCenterY + currentSize);
+ mOutlineRadius = mOutline.height() / 2;
}
}
diff --git a/src/com/android/launcher3/util/PillWidthRevealOutlineProvider.java b/src/com/android/launcher3/util/PillWidthRevealOutlineProvider.java
new file mode 100644
index 000000000..89dda3b26
--- /dev/null
+++ b/src/com/android/launcher3/util/PillWidthRevealOutlineProvider.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.launcher3.util;
+
+import android.graphics.Rect;
+
+/**
+ * Extension of {@link PillRevealOutlineProvider} which only changes the width of the pill.
+ */
+public class PillWidthRevealOutlineProvider extends PillRevealOutlineProvider {
+
+ private final int mStartLeft;
+ private final int mStartRight;
+
+ public PillWidthRevealOutlineProvider(Rect pillRect, int left, int right) {
+ super(0, 0, pillRect);
+ mOutline.set(pillRect);
+ mStartLeft = left;
+ mStartRight = right;
+ }
+
+ @Override
+ public void setProgress(float progress) {
+ mOutline.left = (int) (progress * mPillRect.left + (1 - progress) * mStartLeft);
+ mOutline.right = (int) (progress * mPillRect.right + (1 - progress) * mStartRight);
+ }
+}
diff --git a/src/com/android/launcher3/util/RevealOutlineAnimation.java b/src/com/android/launcher3/util/RevealOutlineAnimation.java
index 4447c3ba9..cd9888232 100644
--- a/src/com/android/launcher3/util/RevealOutlineAnimation.java
+++ b/src/com/android/launcher3/util/RevealOutlineAnimation.java
@@ -29,7 +29,12 @@ public abstract class RevealOutlineAnimation extends ViewOutlineProvider {
abstract void setProgress(float progress);
public ValueAnimator createRevealAnimator(final View revealView) {
- ValueAnimator va = ValueAnimator.ofFloat(0f, 1f);
+ return createRevealAnimator(revealView, false);
+ }
+
+ public ValueAnimator createRevealAnimator(final View revealView, boolean isReversed) {
+ ValueAnimator va =
+ isReversed ? ValueAnimator.ofFloat(1f, 0f) : ValueAnimator.ofFloat(0f, 1f);
final float elevation = revealView.getElevation();
va.addListener(new AnimatorListenerAdapter() {
@@ -54,7 +59,7 @@ public abstract class RevealOutlineAnimation extends ViewOutlineProvider {
va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator arg0) {
- float progress = arg0.getAnimatedFraction();
+ float progress = (Float) arg0.getAnimatedValue();
setProgress(progress);
revealView.invalidateOutline();
if (!Utilities.ATLEAST_LOLLIPOP_MR1) {