diff options
author | Tony Wickham <twickham@google.com> | 2016-09-22 19:55:52 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2016-09-22 19:55:52 +0000 |
commit | 4d917a9793ca0abd079859529a9966182d823c58 (patch) | |
tree | f9661077fb87e0e1aebd45df2169bd73e4572218 /src/com/android/launcher3/shortcuts/DeepShortcutsContainer.java | |
parent | f4502973cc66519359c7382883a8c7d92bacedb8 (diff) | |
parent | b318c0e396b049c134a098a3e589a0550e58c5b4 (diff) | |
download | android_packages_apps_Trebuchet-4d917a9793ca0abd079859529a9966182d823c58.tar.gz android_packages_apps_Trebuchet-4d917a9793ca0abd079859529a9966182d823c58.tar.bz2 android_packages_apps_Trebuchet-4d917a9793ca0abd079859529a9966182d823c58.zip |
Merge "Fade deep shorcuts in and out." into ub-launcher3-calgary-polish
Diffstat (limited to 'src/com/android/launcher3/shortcuts/DeepShortcutsContainer.java')
-rw-r--r-- | src/com/android/launcher3/shortcuts/DeepShortcutsContainer.java | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/src/com/android/launcher3/shortcuts/DeepShortcutsContainer.java b/src/com/android/launcher3/shortcuts/DeepShortcutsContainer.java index 7657ed610..daab74738 100644 --- a/src/com/android/launcher3/shortcuts/DeepShortcutsContainer.java +++ b/src/com/android/launcher3/shortcuts/DeepShortcutsContainer.java @@ -54,6 +54,7 @@ import com.android.launcher3.LauncherAppState; import com.android.launcher3.LauncherModel; import com.android.launcher3.LauncherSettings; import com.android.launcher3.LauncherViewPropertyAnimator; +import com.android.launcher3.LogAccelerateInterpolator; import com.android.launcher3.R; import com.android.launcher3.ShortcutInfo; import com.android.launcher3.Utilities; @@ -228,6 +229,9 @@ public class DeepShortcutsContainer extends LinearLayout implements View.OnLongC final long duration = getResources().getInteger( R.integer.config_deepShortcutOpenDuration); + final long arrowScaleDuration = getResources().getInteger( + R.integer.config_deepShortcutArrowOpenDuration); + final long arrowScaleDelay = duration - arrowScaleDuration; final long stagger = getResources().getInteger( R.integer.config_deepShortcutOpenStagger); @@ -236,6 +240,7 @@ public class DeepShortcutsContainer extends LinearLayout implements View.OnLongC for (int i = 0; i < shortcutCount; i++) { final DeepShortcutView deepShortcutView = getShortcutAt(i); deepShortcutView.setVisibility(INVISIBLE); + deepShortcutView.setAlpha(0); Animator anim = deepShortcutView.createOpenAnimation(mIsAboveIcon, mIsLeftAligned); anim.addListener(new AnimatorListenerAdapter() { @@ -249,6 +254,12 @@ public class DeepShortcutsContainer extends LinearLayout implements View.OnLongC anim.setStartDelay(stagger * animationIndex); anim.setInterpolator(interpolator); shortcutAnims.play(anim); + + Animator fadeAnim = new LauncherViewPropertyAnimator(deepShortcutView).alpha(1); + fadeAnim.setInterpolator(new LogAccelerateInterpolator(100, 0)); + // We want the shortcut to be fully opaque before the arrow starts animating. + fadeAnim.setDuration(arrowScaleDelay); + shortcutAnims.play(fadeAnim); } shortcutAnims.addListener(new AnimatorListenerAdapter() { @Override @@ -264,8 +275,6 @@ public class DeepShortcutsContainer extends LinearLayout implements View.OnLongC // Animate the arrow mArrow.setScaleX(0); mArrow.setScaleY(0); - final long arrowScaleDelay = duration / 6; - final long arrowScaleDuration = duration - arrowScaleDelay; Animator arrowScale = new LauncherViewPropertyAnimator(mArrow).scaleX(1).scaleY(1); arrowScale.setStartDelay(arrowScaleDelay); arrowScale.setDuration(arrowScaleDuration); @@ -611,12 +620,12 @@ public class DeepShortcutsContainer extends LinearLayout implements View.OnLongC } final long duration = getResources().getInteger( R.integer.config_deepShortcutCloseDuration); + final long arrowScaleDuration = getResources().getInteger( + R.integer.config_deepShortcutArrowOpenDuration); final long stagger = getResources().getInteger( R.integer.config_deepShortcutCloseStagger); - long arrowDelay = (numOpenShortcuts - 1) * stagger + (duration * 4 / 6); int firstOpenShortcutIndex = mIsAboveIcon ? shortcutCount - numOpenShortcuts : 0; - int shortcutWithArrowIndex = mIsAboveIcon ? (numOpenShortcuts - 1) : 0; for (int i = firstOpenShortcutIndex; i < firstOpenShortcutIndex + numOpenShortcuts; i++) { final DeepShortcutView view = getShortcutAt(i); Animator anim; @@ -625,6 +634,13 @@ public class DeepShortcutsContainer extends LinearLayout implements View.OnLongC int animationIndex = mIsAboveIcon ? i - firstOpenShortcutIndex : numOpenShortcuts - i - 1; anim.setStartDelay(stagger * animationIndex); + + Animator fadeAnim = new LauncherViewPropertyAnimator(view).alpha(0); + // Don't start fading until the arrow is gone. + fadeAnim.setStartDelay(stagger * animationIndex + arrowScaleDuration); + fadeAnim.setDuration(duration - arrowScaleDuration); + fadeAnim.setInterpolator(new LogAccelerateInterpolator(100, 0)); + shortcutAnims.play(fadeAnim); } else { // The view is being dragged. Animate it such that it collapses with the drag view anim = view.collapseToIcon(); @@ -643,10 +659,6 @@ public class DeepShortcutsContainer extends LinearLayout implements View.OnLongC .translationY(mIconShift.y); anim2.setDuration(DragView.VIEW_ZOOM_DURATION); shortcutAnims.play(anim2); - - if (i == shortcutWithArrowIndex) { - arrowDelay = 0; - } } anim.addListener(new AnimatorListenerAdapter() { @Override @@ -657,8 +669,8 @@ public class DeepShortcutsContainer extends LinearLayout implements View.OnLongC shortcutAnims.play(anim); } Animator arrowAnim = new LauncherViewPropertyAnimator(mArrow) - .scaleX(0).scaleY(0).setDuration(duration / 6); - arrowAnim.setStartDelay(arrowDelay); + .scaleX(0).scaleY(0).setDuration(arrowScaleDuration); + arrowAnim.setStartDelay(0); shortcutAnims.play(arrowAnim); shortcutAnims.addListener(new AnimatorListenerAdapter() { |