From 4c9048c364abcfa5edd26706f59c306c2ed772af Mon Sep 17 00:00:00 2001 From: Amin Shaikh Date: Fri, 20 Apr 2018 11:27:46 -0400 Subject: [PATCH] Ensure QS tile secondary text marquees. Update the logic to marquee only the currently selected page. Change-Id: Idc2398e1c67c614414ae4298c43a1609431c62fa Fixes: 78159844 Test: visual --- .../android/systemui/plugins/qs/QSTileView.java | 2 -- packages/SystemUI/res/layout/qs_tile_label.xml | 2 +- .../android/systemui/qs/PagedTileLayout.java | 17 +++++++++++++++-- .../systemui/qs/tileimpl/QSTileView.java | 9 --------- 4 files changed, 16 insertions(+), 14 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 ad300f43d88d1..53f7e44bc25a2 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 @@ -50,6 +50,4 @@ public abstract class QSTileView extends LinearLayout { public abstract void onStateChanged(State state); public abstract int getDetailY(); - - public void setExpansion(float expansion) {} } diff --git a/packages/SystemUI/res/layout/qs_tile_label.xml b/packages/SystemUI/res/layout/qs_tile_label.xml index 74c22b06838d9..49d142a1e6d69 100644 --- a/packages/SystemUI/res/layout/qs_tile_label.xml +++ b/packages/SystemUI/res/layout/qs_tile_label.xml @@ -76,7 +76,7 @@ android:layout_below="@id/label_group" android:clickable="false" android:ellipsize="marquee" - android:maxLines="1" + android:singleLine="true" android:padding="0dp" android:visibility="gone" android:gravity="center" diff --git a/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java b/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java index d8d07c01fc964..1fd60239ee98c 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java +++ b/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java @@ -56,6 +56,7 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout { private AnimatorSet mBounceAnimatorSet; private int mAnimatingToPage = -1; + private float mLastExpansion; public PagedTileLayout(Context context, AttributeSet attrs) { super(context, attrs); @@ -172,8 +173,19 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout { @Override public void setExpansion(float expansion) { - for (TileRecord tr : mTiles) { - tr.tileView.setExpansion(expansion); + mLastExpansion = expansion; + updateSelected(); + } + + private void updateSelected() { + // Start the marquee when fully expanded and stop when fully collapsed. Leave as is for + // other expansion ratios since there is no way way to pause the marquee. + if (mLastExpansion > 0f && mLastExpansion < 1f) { + return; + } + boolean selected = mLastExpansion == 1f; + for (int i = 0; i < mPages.size(); i++) { + mPages.get(i).setSelected(i == getCurrentItem() ? selected : false); } } @@ -323,6 +335,7 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout { new ViewPager.SimpleOnPageChangeListener() { @Override public void onPageSelected(int position) { + updateSelected(); if (mPageIndicator == null) return; if (mPageListener != null) { mPageListener.onPageChanged(isLayoutRtl() ? position == mPages.size() - 1 diff --git a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileView.java b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileView.java index d21b06f02f166..5649f7f5d7640 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileView.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileView.java @@ -106,15 +106,6 @@ public class QSTileView extends QSTileBaseView { } } - @Override - public void setExpansion(float expansion) { - // Start the marquee when fully expanded and stop when fully collapsed. Leave as is for - // other expansion ratios since there is no way way to pause the marquee. - boolean selected = expansion == 1f ? true : expansion == 0f ? false : mLabel.isSelected(); - mLabel.setSelected(selected); - mSecondLine.setSelected(selected); - } - @Override protected void handleStateChanged(QSTile.State state) { super.handleStateChanged(state);