diff options
| author | 2018-01-25 18:22:44 -0800 | |
|---|---|---|
| committer | 2018-01-29 12:20:31 -0800 | |
| commit | a840199853836d04a07a3d49b79bdb908d70a8fe (patch) | |
| tree | 756d474df024a088c2619ed3c39e733116a8693d | |
| parent | 84783905c03d368352fbd05dfb614251a72f1786 (diff) | |
[QS] Fix irritating animation for QS
We're animating 2x the icons and, due to the transparent grey
background color, it looked like the icons were getting darker.
Fixed by having it exclude the full icon frame while animating.
Test: Visually
Bug: 72173914
Change-Id: Ie36973ab44a86e6e1edd99b9266420a274d9aaa2
3 files changed, 30 insertions, 10 deletions
| diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTileView.java b/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTileView.java index 18d27bb419d4..53f7e44bc25a 100644 --- a/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTileView.java +++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/qs/QSTileView.java @@ -26,14 +26,26 @@ import com.android.systemui.plugins.qs.QSTile.State;  @DependsOn(target = QSIconView.class)  @DependsOn(target = QSTile.class)  public abstract class QSTileView extends LinearLayout { -    public static final int VERSION = 1; +    public static final int VERSION = 2;      public QSTileView(Context context) {          super(context);      }      public abstract View updateAccessibilityOrder(View previousView); + +    /** +     * Returns a {@link QSIconView} containing only the icon for this tile. Use +     * {@link #getIconWithBackground()} to retrieve the entire tile (background & peripherals +     * included). +     */      public abstract QSIconView getIcon(); + +    /** +     * Returns a {@link View} containing the icon for this tile along with the accompanying +     * background circle/peripherals. To retrieve only the inner icon, use {@link #getIcon()}. +     */ +    public abstract View getIconWithBackground();      public abstract void init(QSTile tile);      public abstract void onStateChanged(State state); diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java b/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java index 95185c087f38..001b40980065 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java @@ -44,7 +44,11 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha      public static final float EXPANDED_TILE_DELAY = .86f;      private final ArrayList<View> mAllViews = new ArrayList<>(); -    private final ArrayList<View> mTopFiveQs = new ArrayList<>(); +    /** +     * List of {@link View}s representing Quick Settings that are being animated from the quick QS +     * position to the normal QS panel. +     */ +    private final ArrayList<View> mQuickQsViews = new ArrayList<>();      private final QuickQSPanel mQuickQsPanel;      private final QSPanel mQsPanel;      private final QS mQs; @@ -157,7 +161,7 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha          clearAnimationState();          mAllViews.clear(); -        mTopFiveQs.clear(); +        mQuickQsViews.clear();          QSTileLayout tileLayout = mQsPanel.getTileLayout();          mAllViews.add((View) tileLayout); @@ -198,7 +202,7 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha                  translationXBuilder.addFloat(tileView, "translationX", -xDiff, 0);                  translationYBuilder.addFloat(tileView, "translationY", -yDiff, 0); -                mTopFiveQs.add(tileView.getIcon()); +                mQuickQsViews.add(tileView.getIconWithBackground());                  mAllViews.add(tileView.getIcon());                  mAllViews.add(quickTileView);              } else if (mFullRows && isIconInAnimatedRow(count)) { @@ -322,9 +326,9 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha      @Override      public void onAnimationAtEnd() {          mQuickQsPanel.setVisibility(View.INVISIBLE); -        final int N = mTopFiveQs.size(); +        final int N = mQuickQsViews.size();          for (int i = 0; i < N; i++) { -            mTopFiveQs.get(i).setVisibility(View.VISIBLE); +            mQuickQsViews.get(i).setVisibility(View.VISIBLE);          }      } @@ -332,9 +336,9 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha      public void onAnimationStarted() {          mQuickQsPanel.setVisibility(mOnKeyguard ? View.INVISIBLE : View.VISIBLE);          if (mOnFirstPage) { -            final int N = mTopFiveQs.size(); +            final int N = mQuickQsViews.size();              for (int i = 0; i < N; i++) { -                mTopFiveQs.get(i).setVisibility(View.INVISIBLE); +                mQuickQsViews.get(i).setVisibility(View.INVISIBLE);              }          }      } @@ -348,9 +352,9 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha              v.setTranslationX(0);              v.setTranslationY(0);          } -        final int N2 = mTopFiveQs.size(); +        final int N2 = mQuickQsViews.size();          for (int i = 0; i < N2; i++) { -            mTopFiveQs.get(i).setVisibility(View.VISIBLE); +            mQuickQsViews.get(i).setVisibility(View.VISIBLE);          }      } diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java index b4cfda60fba3..c9c678c2ad25 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileBaseView.java @@ -236,6 +236,10 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView {          return mIcon;      } +    public View getIconWithBackground() { +        return mIconFrame; +    } +      @Override      public boolean performClick() {          mClicked = true; |