Files
frameworks_base/packages/SystemUI/res/layout/qs_carrier.xml
Fabian Kozynski 956b597a4e Fix Marquees in QSHeader animating when invisible
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
2019-05-21 15:46:09 -04:00

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>