Volume: Hide zen options during setup.

Only show the slider before provisioning and
user setup.

Bug:16825823

Change-Id: I856c736ed91ed20371176c2bba84b5d7e2ebc6cb
diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java b/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java
index 3a63a79..5233da2 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java
@@ -107,7 +107,7 @@
     private static final int MSG_SLIDER_VISIBILITY_CHANGED = 10;
     private static final int MSG_DISPLAY_SAFE_VOLUME_WARNING = 11;
     private static final int MSG_LAYOUT_DIRECTION = 12;
-    private static final int MSG_ZEN_MODE_CHANGED = 13;
+    private static final int MSG_ZEN_MODE_AVAILABLE_CHANGED = 13;
     private static final int MSG_USER_ACTIVITY = 14;
 
     // Pseudo stream type for master volume
@@ -125,7 +125,7 @@
     private final ZenModeController mZenController;
     private boolean mRingIsSilent;
     private boolean mVoiceCapable;
-    private boolean mZenModeCapable;
+    private boolean mZenModeAvailable;
     private boolean mZenPanelExpanded;
     private int mTimeoutDelay = TIMEOUT_DELAY;
     private float mDisabledAlpha;
@@ -405,9 +405,10 @@
         mVibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
         mVoiceCapable = context.getResources().getBoolean(R.bool.config_voice_capable);
 
-        mZenModeCapable = !useMasterVolume && mZenController != null;
-        updateZenMode(mZenController != null ? mZenController.getZen() : Global.ZEN_MODE_OFF);
-        mZenController.addCallback(mZenCallback);
+        if (mZenController != null && !useMasterVolume) {
+            mZenModeAvailable = mZenController.isZenAvailable();
+            mZenController.addCallback(mZenCallback);
+        }
 
         final boolean masterVolumeOnly = res.getBoolean(R.bool.config_useMasterVolume);
         final boolean masterVolumeKeySounds = res.getBoolean(R.bool.config_useVolumeKeySounds);
@@ -434,7 +435,7 @@
         pw.print("  mTag="); pw.println(mTag);
         pw.print("  mRingIsSilent="); pw.println(mRingIsSilent);
         pw.print("  mVoiceCapable="); pw.println(mVoiceCapable);
-        pw.print("  mZenModeCapable="); pw.println(mZenModeCapable);
+        pw.print("  mZenModeAvailable="); pw.println(mZenModeAvailable);
         pw.print("  mZenPanelExpanded="); pw.println(mZenPanelExpanded);
         pw.print("  mTimeoutDelay="); pw.println(mTimeoutDelay);
         pw.print("  mDisabledAlpha="); pw.println(mDisabledAlpha);
@@ -645,7 +646,7 @@
             active.group.setVisibility(View.VISIBLE);
             updateSlider(active);
             updateTimeoutDelay();
-            setZenPanelVisible(isNotificationOrRing(mActiveStreamType));
+            updateZenPanelVisible();
         }
     }
 
@@ -776,14 +777,8 @@
         }
     }
 
-    private void updateZenMode(int zen) {
-        final boolean show = mZenModeCapable && isNotificationOrRing(mActiveStreamType);
-        setZenPanelVisible(show);
-    }
-
-    public void postZenModeChanged(int zen) {
-        removeMessages(MSG_ZEN_MODE_CHANGED);
-        obtainMessage(MSG_ZEN_MODE_CHANGED, zen).sendToTarget();
+    private void updateZenPanelVisible() {
+        setZenPanelVisible(mZenModeAvailable && isNotificationOrRing(mActiveStreamType));
     }
 
     public void postVolumeChanged(int streamType, int flags) {
@@ -1307,8 +1302,9 @@
                 setLayoutDirection(msg.arg1);
                 break;
 
-            case MSG_ZEN_MODE_CHANGED:
-                updateZenMode(msg.arg1);
+            case MSG_ZEN_MODE_AVAILABLE_CHANGED:
+                mZenModeAvailable = msg.arg1 != 0;
+                updateZenPanelVisible();
                 break;
 
             case MSG_USER_ACTIVITY:
@@ -1359,8 +1355,8 @@
     };
 
     private final ZenModeController.Callback mZenCallback = new ZenModeController.Callback() {
-        public void onZenChanged(int zen) {
-            postZenModeChanged(zen);
+        public void onZenAvailableChanged(boolean available) {
+            obtainMessage(MSG_ZEN_MODE_AVAILABLE_CHANGED, available ? 1 : 0, 0).sendToTarget();
         }
     };