From b46059a1d464d13f983d1aa102d5f872fa2a6e47 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Thu, 30 Jun 2016 14:22:42 -0400 Subject: [PATCH] QS: Layout and animation refinement Bug: 29315917 Fixes: 29879993 Change-Id: I0153e81ff9cd81022958a1baf3531ac5ca6b4144 --- .../res/layout-sw410dp/status_bar_alarm_group.xml | 2 +- .../layout/quick_status_bar_expanded_header.xml | 1 - .../SystemUI/res/layout/status_bar_alarm_group.xml | 2 +- packages/SystemUI/res/values/dimens.xml | 2 -- .../src/com/android/systemui/qs/QSAnimator.java | 29 ++++++++++++++-------- .../src/com/android/systemui/qs/QSPanel.java | 4 +++ .../statusbar/phone/QuickStatusBarHeader.java | 22 ---------------- 7 files changed, 24 insertions(+), 38 deletions(-) diff --git a/packages/SystemUI/res/layout-sw410dp/status_bar_alarm_group.xml b/packages/SystemUI/res/layout-sw410dp/status_bar_alarm_group.xml index ba5c0aa0c772..9f0f4b62ef5e 100644 --- a/packages/SystemUI/res/layout-sw410dp/status_bar_alarm_group.xml +++ b/packages/SystemUI/res/layout-sw410dp/status_bar_alarm_group.xml @@ -20,7 +20,7 @@ android:id="@+id/date_time_alarm_group" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="8dp" + android:layout_marginTop="16dp" android:layout_marginStart="16dp" android:gravity="start" android:orientation="vertical"> diff --git a/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml b/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml index 103e0b04e6e8..edf9de8ea296 100644 --- a/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml +++ b/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml @@ -121,7 +121,6 @@ diff --git a/packages/SystemUI/res/layout/status_bar_alarm_group.xml b/packages/SystemUI/res/layout/status_bar_alarm_group.xml index f94b72794c97..90c30ec091c4 100644 --- a/packages/SystemUI/res/layout/status_bar_alarm_group.xml +++ b/packages/SystemUI/res/layout/status_bar_alarm_group.xml @@ -20,7 +20,7 @@ android:id="@+id/date_time_alarm_group" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="8dp" + android:layout_marginTop="16dp" android:layout_marginStart="16dp" android:gravity="start" android:orientation="vertical"> diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index 0365e800f34a..cd861e14b18b 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -172,8 +172,6 @@ 16dp 48dp 12dp - 14sp - 16sp 16dp 16dp 8dp diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java b/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java index 2dcb5f492688..aaa4e51ae832 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java @@ -41,8 +41,7 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha private static final String ALLOW_FANCY_ANIMATION = "sysui_qs_fancy_anim"; 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 = .86f; + public static final float EXPANDED_TILE_DELAY = .86f; private final ArrayList mAllViews = new ArrayList<>(); private final ArrayList mTopFiveQs = new ArrayList<>(); @@ -58,7 +57,7 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha private TouchAnimator mTranslationXAnimator; private TouchAnimator mTranslationYAnimator; private TouchAnimator mNonfirstPageAnimator; - private TouchAnimator mLastRowAnimator; + private TouchAnimator mBrightnessAnimator; private boolean mOnKeyguard; @@ -144,7 +143,6 @@ 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 lastRowBuilder = new Builder(); if (mQsPanel.getHost() == null) return; Collection> tiles = mQsPanel.getHost().getTiles(); @@ -152,7 +150,6 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha int[] loc1 = new int[2]; int[] loc2 = new int[2]; int lastXDiff = 0; - int lastYDiff = 0; int lastX = 0; clearAnimationState(); @@ -175,7 +172,6 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha final int xDiff = loc2[0] - loc1[0]; final int yDiff = loc2[1] - loc1[1]; lastXDiff = loc1[0] - lastX; - lastYDiff = yDiff; // Move the quick tile right from its location to the new one. translationXBuilder.addFloat(quickTileView, "translationX", 0, xDiff); translationYBuilder.addFloat(quickTileView, "translationY", 0, yDiff); @@ -209,13 +205,25 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha mAllViews.add(tileIcon); } else { - lastRowBuilder.addFloat(tileView, "alpha", 0, 1); + firstPageBuilder.addFloat(tileView, "alpha", 0, 1); } mAllViews.add(tileView); mAllViews.add(label); count++; } if (mAllowFancy) { + // Make brightness appear static position and alpha in through second half. + View brightness = mQsPanel.getBrightnessView(); + if (brightness != null) { + firstPageBuilder.addFloat(brightness, "translationY", mQsPanel.getHeight(), 0); + mBrightnessAnimator = new TouchAnimator.Builder() + .addFloat(brightness, "alpha", 0, 1) + .setStartDelay(.5f) + .build(); + mAllViews.add(brightness); + } else { + mBrightnessAnimator = null; + } mFirstPageAnimator = firstPageBuilder .setListener(this) .build(); @@ -223,9 +231,6 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha 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); @@ -279,7 +284,9 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha mFirstPageDelayedAnimator.setPosition(position); mTranslationXAnimator.setPosition(position); mTranslationYAnimator.setPosition(position); - mLastRowAnimator.setPosition(position); + if (mBrightnessAnimator != null) { + mBrightnessAnimator.setPosition(position); + } } else { mNonfirstPageAnimator.setPosition(position); } diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java index ce6aa7183356..890279f22a5f 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java @@ -166,6 +166,10 @@ public class QSPanel extends LinearLayout implements Tunable, Callback { brightnessSlider.setMirrorController(c); } + View getBrightnessView() { + return mBrightnessView; + } + public void setCallback(Callback callback) { mCallback = callback; } 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 40a93df47002..3861cc30392b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java @@ -83,12 +83,9 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements protected MultiUserSwitch mMultiUserSwitch; private ImageView mMultiUserAvatar; - private float mDateScaleFactor; - protected float mGearTranslation; private TouchAnimator mSecondHalfAnimator; private TouchAnimator mFirstHalfAnimator; - private TouchAnimator mDateSizeAnimator; protected TouchAnimator mSettingsAlpha; private float mExpansionAmount; private QSTileHost mHost; @@ -155,41 +152,23 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements FontSizeUtils.updateFontSize(mAlarmStatus, R.dimen.qs_date_collapsed_size); FontSizeUtils.updateFontSize(mEmergencyOnly, R.dimen.qs_emergency_calls_only_text_size); - mGearTranslation = mContext.getResources().getDimension(R.dimen.qs_header_gear_translation); - - float dateCollapsedSize = mContext.getResources().getDimension( - R.dimen.qs_date_collapsed_text_size); - float dateExpandedSize = mContext.getResources().getDimension( - R.dimen.qs_date_text_size); - mDateScaleFactor = dateExpandedSize / dateCollapsedSize; - mSecondHalfAnimator = new TouchAnimator.Builder() .addFloat(mShowFullAlarm ? mAlarmStatus : findViewById(R.id.date), "alpha", 0, 1) .addFloat(mEmergencyOnly, "alpha", 0, 1) - .setStartDelay(.5f) .build(); if (mShowFullAlarm) { mFirstHalfAnimator = new TouchAnimator.Builder() .addFloat(mAlarmStatusCollapsed, "alpha", 1, 0) - .setEndDelay(.5f) .build(); } - mDateSizeAnimator = new TouchAnimator.Builder() - .addFloat(mDateTimeGroup, "scaleX", 1, mDateScaleFactor) - .addFloat(mDateTimeGroup, "scaleY", 1, mDateScaleFactor) - .setStartDelay(.36f) - .build(); updateSettingsAnimator(); } protected void updateSettingsAnimator() { mSettingsAlpha = new TouchAnimator.Builder() - .addFloat(mEdit, "translationY", -mGearTranslation, 0) - .addFloat(mMultiUserSwitch, "translationY", -mGearTranslation, 0) .addFloat(mEdit, "alpha", 0, 1) .addFloat(mMultiUserSwitch, "alpha", 0, 1) - .setStartDelay(QSAnimator.EXPANDED_TILE_DELAY) .build(); final boolean isRtl = isLayoutRtl(); @@ -248,7 +227,6 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements if (mShowFullAlarm) { mFirstHalfAnimator.setPosition(headerExpansionFraction); } - mDateSizeAnimator.setPosition(headerExpansionFraction); mSettingsAlpha.setPosition(headerExpansionFraction); updateAlarmVisibilities(); -- 2.11.0