From: Amin Shaikh Date: Fri, 20 Apr 2018 15:27:46 +0000 (-0400) Subject: Ensure QS tile secondary text marquees. X-Git-Tag: android-x86-9.0-r1~133^2~22^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=4c9048c364abcfa5edd26706f59c306c2ed772af;p=android-x86%2Fframeworks-base.git 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 ad300f43d88d..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 @@ -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 74c22b06838d..49d142a1e6d6 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 d8d07c01fc96..1fd60239ee98 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 d21b06f02f16..5649f7f5d764 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 @@ 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); if (!Objects.equals(mLabel.getText(), state.label) || mState != state.state) {