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"
private AnimatorSet mBounceAnimatorSet;
private int mAnimatingToPage = -1;
+ private float mLastExpansion;
public PagedTileLayout(Context context, AttributeSet attrs) {
super(context, attrs);
@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);
}
}
new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
+ updateSelected();
if (mPageIndicator == null) return;
if (mPageListener != null) {
mPageListener.onPageChanged(isLayoutRtl() ? position == mPages.size() - 1
}
@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) {