When QS is collapsed, QuickStatusBarHeader is set to GONE/INVISIBLE. In that case, all it's children should NOT marquee. As they are still visible, they need to override onVisibilityAggregated, which gets called when any view in it's hierarchy changes its visibility. This is still not perfect, as the switch between QQS and QS is changed by just modifying the alpha of high level container views and we have no way of tracking this without dispatching everything down the line. But it's enough for now to significantly improve performance. Test: systrace, systemui is not constantly drawing frames when on AoD Test: inferno.py, in 10s reduces Binder calls from ~600 to ~20 when on AoD Test: Layout inspector with QS collapsed, views have ellipsize END Fixes: 133229320 Fixes: 131427575 Change-Id: I0d742cef3716dce9f32133b2510aeffb7082ae47
49 lines
1.8 KiB
XML
49 lines
1.8 KiB
XML
<!--
|
|
~ Copyright (C) 2019 The Android Open Source Project
|
|
~
|
|
~ Licensed under the Apache License, Version 2.0 (the "License");
|
|
~ you may not use this file except in compliance with the License.
|
|
~ You may obtain a copy of the License at
|
|
~
|
|
~ http://www.apache.org/licenses/LICENSE-2.0
|
|
~
|
|
~ Unless required by applicable law or agreed to in writing, software
|
|
~ distributed under the License is distributed on an "AS IS" BASIS,
|
|
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
~ See the License for the specific language governing permissions and
|
|
~ limitations under the License
|
|
-->
|
|
|
|
<com.android.systemui.qs.QSCarrier
|
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
android:id="@+id/linear_carrier"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="match_parent"
|
|
android:minWidth="48dp"
|
|
android:orientation="horizontal"
|
|
android:gravity="center_vertical|start"
|
|
android:background="@android:color/transparent"
|
|
android:clickable="false"
|
|
android:clipChildren="false"
|
|
android:clipToPadding="false"
|
|
android:focusable="true" >
|
|
|
|
<include
|
|
layout="@layout/mobile_signal_group"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginEnd="@dimen/qs_carrier_margin_width"
|
|
android:visibility="gone" />
|
|
|
|
<com.android.systemui.util.AutoMarqueeTextView
|
|
android:id="@+id/qs_carrier_text"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:layout_weight="1"
|
|
android:textAppearance="@style/TextAppearance.QS.Status"
|
|
android:textDirection="locale"
|
|
android:marqueeRepeatLimit="marquee_forever"
|
|
android:singleLine="true"
|
|
android:maxEms="7"/>
|
|
|
|
</com.android.systemui.qs.QSCarrier> |