diff options
author | Bill Lin <lbill@google.com> | 2021-07-21 12:58:42 +0800 |
---|---|---|
committer | Bill Lin <lbill@google.com> | 2021-08-03 03:44:19 +0000 |
commit | 34562bcf33f29b2a117e63689429351586bb53ee (patch) | |
tree | 79c5625dfd3a3217516887ba0ab46d9882229253 /rs/java/android/renderscript/ProgramFragmentFixedFunction.java | |
parent | 2d5cbc5d2dbc1068c5c2f3181b63d795476e3868 (diff) |
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
Diffstat (limited to 'rs/java/android/renderscript/ProgramFragmentFixedFunction.java')
0 files changed, 0 insertions, 0 deletions