Show alarm tile for the current user.

We were already refreshing the tile on user switch, but we
were only pulling the information (and observing changes)
for the owner.

Bug: 7596329
Change-Id: I33959af405bc79037b5b1321631d993bea65772f
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java
index ec42883..00991c1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java
@@ -121,7 +121,8 @@
         public void startObserving() {
             final ContentResolver cr = mContext.getContentResolver();
             cr.registerContentObserver(
-                    Settings.System.getUriFor(Settings.System.NEXT_ALARM_FORMATTED), false, this);
+                    Settings.System.getUriFor(Settings.System.NEXT_ALARM_FORMATTED), false, this,
+                    UserHandle.USER_ALL);
         }
     }
 
@@ -311,8 +312,15 @@
         mAlarmCallback.refreshView(mAlarmTile, mAlarmState);
     }
     void onNextAlarmChanged() {
-        mAlarmState.label = Settings.System.getString(mContext.getContentResolver(),
-                Settings.System.NEXT_ALARM_FORMATTED);
+        final String alarmText = Settings.System.getStringForUser(mContext.getContentResolver(),
+                Settings.System.NEXT_ALARM_FORMATTED,
+                UserHandle.USER_CURRENT);
+        mAlarmState.label = alarmText;
+
+        // When switching users, this is the only clue we're going to get about whether the
+        // alarm is actually set, since we won't get the ACTION_ALARM_CHANGED broadcast
+        mAlarmState.enabled = ! TextUtils.isEmpty(alarmText);
+
         mAlarmCallback.refreshView(mAlarmTile, mAlarmState);
     }