From 312b792421f243eb1db08534a554a4630ba2ea55 Mon Sep 17 00:00:00 2001 From: John Spurlock Date: Tue, 22 Jul 2014 22:23:42 -0400 Subject: [PATCH] Shade: Don't clip header icons pre-expand. Bug:16496619 Change-Id: I1d3a391b2203b172bd525396719b671fe5cc3784 --- .../statusbar/phone/StatusBarHeaderView.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java index ffb4dc1b0b952..2f88e21c315ab 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java @@ -99,6 +99,7 @@ public class StatusBarHeaderView extends RelativeLayout implements View.OnClickL private QSPanel mQSPanel; private final Rect mClipBounds = new Rect(); + private final StatusIconClipper mStatusIconClipper = new StatusIconClipper(); public StatusBarHeaderView(Context context, AttributeSet attrs) { super(context, attrs); @@ -231,6 +232,7 @@ public class StatusBarHeaderView extends RelativeLayout implements View.OnClickL updateAvatarScale(); updateClockLp(); updateBatteryLevelPaddingEnd(); + mStatusIconClipper.update(); } } @@ -445,7 +447,7 @@ public class StatusBarHeaderView extends RelativeLayout implements View.OnClickL mSystemIconsContainer.addView(systemIcons); mStatusIcons = systemIcons.findViewById(R.id.statusIcons); mSignalCluster = systemIcons.findViewById(R.id.signal_cluster); - mSignalCluster.addOnLayoutChangeListener(mSignalClusterChanged); + mSignalCluster.addOnLayoutChangeListener(mStatusIconClipper); } public void onSystemIconsDetached() { @@ -453,7 +455,7 @@ public class StatusBarHeaderView extends RelativeLayout implements View.OnClickL mStatusIcons.setVisibility(View.VISIBLE); } if (mSignalCluster != null) { - mSignalCluster.removeOnLayoutChangeListener(mSignalClusterChanged); + mSignalCluster.removeOnLayoutChangeListener(mStatusIconClipper); mSignalCluster.setVisibility(View.VISIBLE); } mStatusIcons = null; @@ -470,6 +472,7 @@ public class StatusBarHeaderView extends RelativeLayout implements View.OnClickL updateMultiUserSwitch(); updateClickTargets(); updateBatteryLevelPaddingEnd(); + mStatusIconClipper.update(); } public void setUserInfoController(UserInfoController userInfoController) { @@ -536,7 +539,7 @@ public class StatusBarHeaderView extends RelativeLayout implements View.OnClickL // here. } - private final OnLayoutChangeListener mSignalClusterChanged = new OnLayoutChangeListener() { + private final class StatusIconClipper implements OnLayoutChangeListener { private final Rect mClipBounds = new Rect(); @Override @@ -546,9 +549,14 @@ public class StatusBarHeaderView extends RelativeLayout implements View.OnClickL // they are mirrored to the real status bar. mClipBounds.set(left, 0, mSystemIconsContainer.getWidth(), mSystemIconsContainer.getHeight()); - mSystemIconsContainer.setClipBounds(mClipBounds); + update(); } - }; + + public void update() { + final boolean onKeyguardAndCollapsed = mKeyguardShowing && !mExpanded; + mSystemIconsContainer.setClipBounds(onKeyguardAndCollapsed ? null : mClipBounds); + } + } private final QSPanel.Callback mQsPanelCallback = new QSPanel.Callback() { @Override