Fix QSTileViewImpl label set ellipsize performance issue
health/microbench/systemui/systemui-latency-suite regress wake & unlock time : +50ms Root cuase: TextView.setEllipsize() overhead is high, and the overhead x QSTileView numbers would obviously affect the test latency time. Solution: By default we left tileView as Marquee but not setSelected(), then we setSelected on tile views when QQS expanding until proposedTranslation meet 1f(showing truncated at End with '...' visualization) Adding 3 major factors to achieve below state machine 1. Selected(T) : expansion == 1f or proposedTranslation < 0f 2. NoAction in transitioning : expansion > 0f or expansion < 1f 3. Signal when mLastHeaderTranslation != headerTranslation The expansion state will be: - init Collapsed : setSelected(true) - Header expanding QQS : setSelected(false) - QQS expanded : NoAction - QQS -> Expanding QS : NoAction - QS expanded : setSelected(true) - QS Collapsing -> QQS : setSelected(true) or QS full collapsing : setSelected(true) - QS collapsed in QQS : setSelected(false) - Back to init state : setSelected(true) Test: health/microbench/systemui/systemui-latency-suite Test: Manual check QS/QQS long label tile QQS : ellipsize at end QS: Marquee Test: SystemUITests Bug: 192680464 Change-Id: Iebf1e84043501916dd90378973a6736135c9f653
Loading
Please register or sign in to comment