Ensure QS tile secondary text marquees.
Update the logic to marquee only the currently selected page.
Change-Id: Idc2398e1c67c614414ae4298c43a1609431c62fa
Fixes: 78159844
Test: visual
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 ad300f4..53f7e44 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 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 74c22b0..49d142a 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 d8d07c0..1fd6023 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 @@
private AnimatorSet mBounceAnimatorSet;
private int mAnimatingToPage = -1;
+ private float mLastExpansion;
public PagedTileLayout(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -172,8 +173,19 @@
@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 @@
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 d21b06f..5649f7f 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileView.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileView.java
@@ -107,15 +107,6 @@
}
@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);
if (!Objects.equals(mLabel.getText(), state.label) || mState != state.state) {