Merge "Control the QS label marquees." into pi-dev

This commit is contained in:
TreeHugger Robot
2018-03-30 21:13:04 +00:00
committed by Android (Google) Code Review
5 changed files with 21 additions and 7 deletions

View File

@@ -50,4 +50,6 @@ public abstract class QSTileView extends LinearLayout {
public abstract void onStateChanged(State state);
public abstract int getDetailY();
public void setExpansion(float expansion) {}
}

View File

@@ -167,6 +167,13 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout {
}
}
@Override
public void setExpansion(float expansion) {
for (TileRecord tr : mTiles) {
tr.tileView.setExpansion(expansion);
}
}
public void setPageListener(PageListener listener) {
mPageListener = listener;
}

View File

@@ -291,6 +291,7 @@ public class QSFragment extends Fragment implements QS {
mHeader.setExpansion(mKeyguardShowing, expansion, panelTranslationY);
mFooter.setExpansion(mKeyguardShowing ? 1 : expansion);
mQSPanel.getQsTileRevealController().setExpansion(expansion);
mQSPanel.getTileLayout().setExpansion(expansion);
mQSPanel.setTranslationY(translationScaleY * heightDiff);
mQSDetail.setFullyExpanded(fullyExpanded);

View File

@@ -616,5 +616,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback, Brightne
boolean updateResources();
void setListening(boolean listening);
default void setExpansion(float expansion) {}
}
}

View File

@@ -32,12 +32,10 @@ import com.android.systemui.R;
import com.android.systemui.plugins.qs.QSIconView;
import com.android.systemui.plugins.qs.QSTile;
import java.util.Objects;
/** View that represents a standard quick settings tile. **/
public class QSTileView extends QSTileBaseView {
private static final int DEFAULT_MAX_LINES = 2;
private static final boolean DUAL_TARGET_ALLOWED = false;
private View mDivider;
protected TextView mLabel;
@@ -87,22 +85,17 @@ public class QSTileView extends QSTileBaseView {
mLabelContainer.setClipChildren(false);
mLabelContainer.setClipToPadding(false);
mLabel = mLabelContainer.findViewById(R.id.tile_label);
mLabel.setSelected(true); // Allow marquee to work.
mPadLock = mLabelContainer.findViewById(R.id.restricted_padlock);
mDivider = mLabelContainer.findViewById(R.id.underline);
mExpandIndicator = mLabelContainer.findViewById(R.id.expand_indicator);
mExpandSpace = mLabelContainer.findViewById(R.id.expand_space);
mSecondLine = mLabelContainer.findViewById(R.id.app_label);
mSecondLine.setAlpha(.6f);
mSecondLine.setSelected(true); // Allow marquee to work.
addView(mLabelContainer);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
if (mLabel.getMaxLines() != DEFAULT_MAX_LINES) {
mLabel.setMaxLines(DEFAULT_MAX_LINES);
}
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
// Remeasure view if the secondary label text will be cut off.
@@ -113,6 +106,15 @@ 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);