Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f180ffd0 authored by Amin Shaikh's avatar Amin Shaikh
Browse files

Ellipsize long QS labels.

Since marqueeing only works when a TextView is a single line, make the
label a single line if the layout would otherwise require 3+ lines.

Change-Id: Ib1f47145e01696b01cdce893fe96eca8fbe2ff99
Fixes: 78345638
Test: visual
parent 4a7913c2
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -41,7 +41,6 @@
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:clickable="false"
            android:maxLines="2"
            android:padding="0dp"
            android:gravity="center"
            android:ellipsize="marquee"
+5 −3
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ import java.util.Objects;

/** View that represents a standard quick settings tile. **/
public class QSTileView extends QSTileBaseView {
    private static final int MAX_LABEL_LINES = 2;
    private static final boolean DUAL_TARGET_ALLOWED = false;
    private View mDivider;
    protected TextView mLabel;
@@ -98,8 +99,9 @@ public class QSTileView extends QSTileBaseView {
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);

        // Remeasure view if the secondary label text will be cut off.
        if (!TextUtils.isEmpty(mSecondLine.getText())
        // Remeasure view if the primary label requires more then 2 lines or the secondary label
        // text will be cut off.
        if (mLabel.getLineCount() > MAX_LABEL_LINES || !TextUtils.isEmpty(mSecondLine.getText())
                        && mSecondLine.getLineHeight() > mSecondLine.getHeight()) {
            mLabel.setSingleLine();
            super.onMeasure(widthMeasureSpec, heightMeasureSpec);