From 98196b04ca023335d6c2714a562de85782bd9889 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Mon, 14 Mar 2016 10:33:02 -0400 Subject: [PATCH] Tweaks to QS Animation Bug: 27201532 Change-Id: I1aaea4fd611ae9fc4791994bed452c50ecf3e1cf --- packages/SystemUI/res/values/dimens.xml | 2 +- .../com/android/systemui/qs/QSAnimator.java | 29 +++++++++++++------ .../statusbar/phone/QuickStatusBarHeader.java | 10 ++----- 3 files changed, 24 insertions(+), 17 deletions(-) diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index e50f975c873f5..6a9f45606babb 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -178,7 +178,7 @@ 22dp 14sp 16sp - 150dp + 16dp 12dp 24dp 12sp diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java b/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java index f601f908be2f8..88b6caa912f71 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java @@ -41,6 +41,7 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha private static final String MOVE_FULL_ROWS = "sysui_qs_move_whole_rows"; public static final float EXPANDED_TILE_DELAY = .7f; + private static final float LAST_ROW_EXPANDED_DELAY = .84f; private final ArrayList mAllViews = new ArrayList<>(); private final ArrayList mTopFiveQs = new ArrayList<>(); @@ -56,6 +57,7 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha private TouchAnimator mTranslationXAnimator; private TouchAnimator mTranslationYAnimator; private TouchAnimator mNonfirstPageAnimator; + private TouchAnimator mLastRowAnimator; private boolean mOnKeyguard; @@ -129,20 +131,20 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha TouchAnimator.Builder firstPageBuilder = new Builder(); TouchAnimator.Builder translationXBuilder = new Builder(); TouchAnimator.Builder translationYBuilder = new Builder(); - TouchAnimator.Builder firstPageDelayedBuilder = new Builder(); + TouchAnimator.Builder lastRowBuilder = new Builder(); + Collection> tiles = mQsPanel.getHost().getTiles(); int count = 0; int[] loc1 = new int[2]; int[] loc2 = new int[2]; int lastYDiff = 0; - firstPageDelayedBuilder.setStartDelay(EXPANDED_TILE_DELAY); - firstPageBuilder.setListener(this); - // Fade in the tiles/labels as we reach the final position. - firstPageDelayedBuilder.addFloat(mQsPanel.getTileLayout(), "alpha", 0, 1); + clearAnimationState(); mAllViews.clear(); mTopFiveQs.clear(); + mAllViews.add((View) mQsPanel.getTileLayout()); + for (QSTile tile : tiles) { QSTileBaseView tileView = mQsPanel.getTileView(tile); final TextView label = ((QSTileView) tileView).getLabel(); @@ -171,22 +173,30 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha mTopFiveQs.add(tileIcon); mAllViews.add(tileIcon); - mAllViews.add(label); mAllViews.add(quickTileView); } else if (mFullRows && isIconInAnimatedRow(count)) { firstPageBuilder.addFloat(tileView, "translationY", mQsPanel.getHeight(), 0); translationYBuilder.addFloat(label, "translationY", -lastYDiff, 0); translationYBuilder.addFloat(tileIcon, "translationY", -lastYDiff, 0); mAllViews.add(tileIcon); - mAllViews.add(label); + } else { + lastRowBuilder.addFloat(tileView, "alpha", 0, 1); } mAllViews.add(tileView); mAllViews.add(label); count++; } if (mAllowFancy) { - mFirstPageAnimator = firstPageBuilder.build(); - mFirstPageDelayedAnimator = firstPageDelayedBuilder.build(); + mFirstPageAnimator = firstPageBuilder + .setListener(this) + .build(); + // Fade in the tiles/labels as we reach the final position. + mFirstPageDelayedAnimator = new TouchAnimator.Builder() + .setStartDelay(EXPANDED_TILE_DELAY) + .addFloat(mQsPanel.getTileLayout(), "alpha", 0, 1).build(); + mLastRowAnimator = lastRowBuilder + .setStartDelay(LAST_ROW_EXPANDED_DELAY) + .build(); Path path = new Path(); path.moveTo(0, 0); path.cubicTo(0, 0, 0, 1, 1, 1); @@ -235,6 +245,7 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha mFirstPageDelayedAnimator.setPosition(position); mTranslationXAnimator.setPosition(position); mTranslationYAnimator.setPosition(position); + mLastRowAnimator.setPosition(position); } else { mNonfirstPageAnimator.setPosition(position); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java index b29c807b7ad74..8f329c4f270da 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java @@ -83,7 +83,6 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements private float mDateScaleFactor; private float mGearTranslation; - private TouchAnimator mAnimator; private TouchAnimator mSecondHalfAnimator; private TouchAnimator mFirstHalfAnimator; private TouchAnimator mDateSizeAnimator; @@ -154,12 +153,7 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements mDateScaleFactor = dateExpandedSize / dateCollapsedSize; updateDateTimePosition(); - mAnimator = new TouchAnimator.Builder() - .addFloat(mSettingsContainer, "translationY", -mGearTranslation, 0) - .addFloat(mMultiUserSwitch, "translationY", -mGearTranslation, 0) - .build(); mSecondHalfAnimator = new TouchAnimator.Builder() - .addFloat(mSettingsButton, "rotation", -180, 0) .addFloat(mAlarmStatus, "alpha", 0, 1) .addFloat(mEmergencyOnly, "alpha", 0, 1) .setStartDelay(.5f) @@ -174,6 +168,9 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements .setStartDelay(.36f) .build(); mSettingsAlpha = new TouchAnimator.Builder() + .addFloat(mSettingsContainer, "translationY", -mGearTranslation, 0) + .addFloat(mMultiUserSwitch, "translationY", -mGearTranslation, 0) + .addFloat(mSettingsButton, "rotation", -90, 0) .addFloat(mSettingsContainer, "alpha", 0, 1) .addFloat(mMultiUserSwitch, "alpha", 0, 1) .setStartDelay(QSAnimator.EXPANDED_TILE_DELAY) @@ -211,7 +208,6 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements @Override public void setExpansion(float headerExpansionFraction) { mExpansionAmount = headerExpansionFraction; - mAnimator.setPosition(headerExpansionFraction); mSecondHalfAnimator.setPosition(headerExpansionFraction); mFirstHalfAnimator.setPosition(headerExpansionFraction); mDateSizeAnimator.setPosition(headerExpansionFraction);