From d8fb07f53428627c3e32a7e15594b00143ca6476 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Tue, 2 Aug 2016 15:39:42 -0400 Subject: [PATCH 1/2] QS Header: don't update everything unless we need to Because it leads to bad performance. Bug: 30442298 Change-Id: I4c7b68ad30a1fd4fe8245f27ce2d2b2038583d23 --- .../android/systemui/statusbar/phone/QuickStatusBarHeader.java | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java index a9c47834238f9..892fe93717825 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java @@ -197,6 +197,7 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements @Override public void setExpanded(boolean expanded) { + if (mExpanded == expanded) return; mExpanded = expanded; mHeaderQsPanel.setExpanded(expanded); updateEverything(); From 9c74ff12183776558372df6930591f6a8d3f431f Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Wed, 3 Aug 2016 10:25:42 -0400 Subject: [PATCH 2/2] QS Header: post some updates to the header These sometimes trigger binder calls, that can cause jank on the first frame of expanding the panel. Bug: 30442298 Change-Id: Id60fd5ee9732515cd6f9645c7ab307c949dfc506 --- .../systemui/statusbar/phone/QuickStatusBarHeader.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java index 892fe93717825..7a2ae22ed4664 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java @@ -256,8 +256,10 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements @Override public void updateEverything() { - updateVisibilities(); - setClickable(false); + post(() -> { + updateVisibilities(); + setClickable(false); + }); } protected void updateVisibilities() {