Merge "Tweaks to QS Animation" into nyc-dev

This commit is contained in:
Jason Monk
2016-03-14 20:37:17 +00:00
committed by Android (Google) Code Review
3 changed files with 24 additions and 17 deletions

View File

@@ -178,7 +178,7 @@
<dimen name="qs_date_alarm_anim_translation">22dp</dimen>
<dimen name="qs_date_collapsed_text_size">14sp</dimen>
<dimen name="qs_date_text_size">16sp</dimen>
<dimen name="qs_header_gear_translation">150dp</dimen>
<dimen name="qs_header_gear_translation">16dp</dimen>
<dimen name="qs_page_indicator_size">12dp</dimen>
<dimen name="qs_tile_icon_size">24dp</dimen>
<dimen name="qs_tile_text_size">12sp</dimen>

View File

@@ -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<View> mAllViews = new ArrayList<>();
private final ArrayList<View> 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<QSTile<?>> 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);
}

View File

@@ -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);