summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java14
1 files changed, 11 insertions, 3 deletions
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 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
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 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
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);
}