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);
}