From 7241628901ab4d1b60f3afb68e1797eb3d74b00b Mon Sep 17 00:00:00 2001 From: Muyuan Li Date: Fri, 20 May 2016 11:15:18 -0700 Subject: [PATCH] sysui: disable clock when device is not provisioned. Bug: 28557685 Change-Id: I60512206795de18c912fb6a1575e6f57aac56767 (cherry picked from commit 271f3d8f528354de03d6da615ac3a0fe5ee1a8bd) --- .../statusbar/phone/PhoneStatusBar.java | 2 +- .../phone/StatusBarIconController.java | 23 +++++++++++++++++-- .../systemui/statusbar/policy/Clock.java | 3 --- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index 68a798369bc56..95a87641a3d73 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -2256,7 +2256,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, if ((diff1 & StatusBarManager.DISABLE_CLOCK) != 0) { boolean visible = (state1 & StatusBarManager.DISABLE_CLOCK) == 0; - mIconController.setClockVisibility(visible); + mIconController.setClockVisibilityByPolicy(visible); } if ((diff1 & StatusBarManager.DISABLE_EXPAND) != 0) { if ((state1 & StatusBarManager.DISABLE_EXPAND) != 0) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java index f415ae588c4e6..a035eee66f88d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java @@ -101,6 +101,9 @@ public class StatusBarIconController extends StatusBarIconList implements Tunabl private long mTransitionDeferringStartTime; private long mTransitionDeferringDuration; + private boolean mClockVisibleByPolicy = true; + private boolean mClockVisibleByUser = true; + private final ArraySet mIconBlacklist = new ArraySet<>(); private final Runnable mTransitionDeferringDoneRunnable = new Runnable() { @@ -189,6 +192,10 @@ public class StatusBarIconController extends StatusBarIconList implements Tunabl for (int i = 0; i < views.size(); i++) { setIcon(views.get(i).getSlot(), views.get(i).getStatusBarIcon()); } + + setClockVisibleByUser(!StatusBarIconController.getIconBlacklist(newValue) + .contains("clock")); + updateClockVisibility(); } private void loadDimens() { mIconSize = mContext.getResources().getDimensionPixelSize( @@ -332,8 +339,20 @@ public class StatusBarIconController extends StatusBarIconList implements Tunabl animateShow(mNotificationIconAreaInner, animate); } - public void setClockVisibility(boolean visible) { - mClock.setVisibility(visible ? View.VISIBLE : View.GONE); + public void setClockVisibleByUser(boolean visible) { + mClockVisibleByUser = visible; + updateClockVisibility(); + } + + public void setClockVisibilityByPolicy(boolean visible) { + mClockVisibleByPolicy = visible; + updateClockVisibility(); + } + + private void updateClockVisibility() { + int visibility = (mClockVisibleByPolicy && mClockVisibleByUser) + ? View.VISIBLE : View.GONE; + mClock.setVisibility(visibility); } public void dump(PrintWriter pw) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java index 66152fcd965e3..dd16147f7152a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java @@ -167,9 +167,6 @@ public class Clock extends TextView implements DemoMode, Tunable { if (CLOCK_SECONDS.equals(key)) { mShowSeconds = newValue != null && Integer.parseInt(newValue) != 0; updateShowSeconds(); - } else if (StatusBarIconController.ICON_BLACKLIST.equals(key)) { - ArraySet list = StatusBarIconController.getIconBlacklist(newValue); - setVisibility(list.contains("clock") ? View.GONE : View.VISIBLE); } }