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

Commit d553571b authored by Bill Lin's avatar Bill Lin Committed by Automerger Merge Worker
Browse files

Merge "Fix QSTileViewImpl label set ellipsize performance issue" into sc-dev am: 518dace0

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15334679

Change-Id: Id05bdf4e514089e5cb9600552e2d438cf64aab3a
parents 8116f291 518dace0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -268,7 +268,7 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout {
    }

    @Override
    public void setExpansion(float expansion) {
    public void setExpansion(float expansion, float proposedTranslation) {
        mLastExpansion = expansion;
        updateSelected();
    }
+7 −5
Original line number Diff line number Diff line
@@ -498,11 +498,13 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
                            : headerTranslation);
        }
        int currentHeight = getView().getHeight();
        mLastHeaderTranslation = headerTranslation;
        if (expansion == mLastQSExpansion && mLastKeyguardAndExpanded == onKeyguardAndExpanded
                && mLastViewHeight == currentHeight) {
        if (expansion == mLastQSExpansion
                && mLastKeyguardAndExpanded == onKeyguardAndExpanded
                && mLastViewHeight == currentHeight
                && mLastHeaderTranslation == headerTranslation) {
            return;
        }
        mLastHeaderTranslation = headerTranslation;
        mLastQSExpansion = expansion;
        mLastKeyguardAndExpanded = onKeyguardAndExpanded;
        mLastViewHeight = currentHeight;
@@ -522,8 +524,8 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
        }
        mFooter.setExpansion(onKeyguardAndExpanded ? 1 : expansion);
        mQSPanelController.setRevealExpansion(expansion);
        mQSPanelController.getTileLayout().setExpansion(expansion);
        mQuickQSPanelController.getTileLayout().setExpansion(expansion);
        mQSPanelController.getTileLayout().setExpansion(expansion, proposedTranslation);
        mQuickQSPanelController.getTileLayout().setExpansion(expansion, proposedTranslation);
        mQSPanelScrollView.setTranslationY(translationScaleY * heightDiff);
        if (fullyCollapsed) {
            mQSPanelScrollView.setScrollY(0);
+6 −3
Original line number Diff line number Diff line
@@ -742,7 +742,7 @@ public class QSPanel extends LinearLayout implements Tunable {
        void setListening(boolean listening, UiEventLogger uiEventLogger);

        /**
         * Set the minimum number of rows to show
         * Sets the minimum number of rows to show
         *
         * @param minRows the minimum.
         */
@@ -751,7 +751,7 @@ public class QSPanel extends LinearLayout implements Tunable {
        }

        /**
         * Set the max number of columns to show
         * Sets the max number of columns to show
         *
         * @param maxColumns the maximum
         *
@@ -761,7 +761,10 @@ public class QSPanel extends LinearLayout implements Tunable {
            return false;
        }

        default void setExpansion(float expansion) {}
        /**
         * Sets the expansion value and proposedTranslation to panel.
         */
        default void setExpansion(float expansion, float proposedTranslation) {}

        int getNumVisibleTiles();
    }
+26 −0
Original line number Diff line number Diff line
@@ -177,6 +177,8 @@ public class QuickQSPanel extends QSPanel {

    static class QQSSideLabelTileLayout extends SideLabelTileLayout {

        private boolean mLastSelected;

        QQSSideLabelTileLayout(Context context) {
            super(context, null);
            setClipChildren(false);
@@ -222,5 +224,29 @@ public class QuickQSPanel extends QSPanel {
                }
            }
        }

        @Override
        public void setExpansion(float expansion, float proposedTranslation) {
            if (expansion > 0f && expansion < 1f) {
                return;
            }
            // The cases we must set select for marquee when QQS/QS collapsed, and QS full expanded.
            // Expansion == 0f is when QQS is fully showing (as opposed to 1f, which is QS). At this
            // point we want them to be selected so the tiles will marquee (but not at other points
            // of expansion.
            boolean selected = (expansion == 1f || proposedTranslation < 0f);
            if (mLastSelected == selected) {
                return;
            }
            // We set it as not important while we change this, so setting each tile as selected
            // will not cause them to announce themselves until the user has actually selected the
            // item.
            setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
            for (int i = 0; i < getChildCount(); i++) {
                getChildAt(i).setSelected(selected);
            }
            setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_AUTO);
            mLastSelected = selected;
        }
    }
}
+0 −3
Original line number Diff line number Diff line
@@ -195,9 +195,6 @@ open class QSTileViewImpl @JvmOverloads constructor(
            // sibling methods to have special behavior for labelContainer.
            labelContainer.forceUnspecifiedMeasure = true
            secondaryLabel.alpha = 0f
            // Do not marque in QQS
            label.ellipsize = TextUtils.TruncateAt.END
            secondaryLabel.ellipsize = TextUtils.TruncateAt.END
        }
        setLabelColor(getLabelColorForState(QSTile.State.DEFAULT_STATE))
        setSecondaryLabelColor(getSecondaryLabelColorForState(QSTile.State.DEFAULT_STATE))