@@ -121,7 +121,8 @@ public NextAlarmObserver(Handler handler) {
121121 public void startObserving () {
122122 final ContentResolver cr = mContext .getContentResolver ();
123123 cr .registerContentObserver (
124- Settings .System .getUriFor (Settings .System .NEXT_ALARM_FORMATTED ), false , this );
124+ Settings .System .getUriFor (Settings .System .NEXT_ALARM_FORMATTED ), false , this ,
125+ UserHandle .USER_ALL );
125126 }
126127 }
127128
@@ -311,8 +312,15 @@ void onAlarmChanged(Intent intent) {
311312 mAlarmCallback .refreshView (mAlarmTile , mAlarmState );
312313 }
313314 void onNextAlarmChanged () {
314- mAlarmState .label = Settings .System .getString (mContext .getContentResolver (),
315- Settings .System .NEXT_ALARM_FORMATTED );
315+ final String alarmText = Settings .System .getStringForUser (mContext .getContentResolver (),
316+ Settings .System .NEXT_ALARM_FORMATTED ,
317+ UserHandle .USER_CURRENT );
318+ mAlarmState .label = alarmText ;
319+
320+ // When switching users, this is the only clue we're going to get about whether the
321+ // alarm is actually set, since we won't get the ACTION_ALARM_CHANGED broadcast
322+ mAlarmState .enabled = ! TextUtils .isEmpty (alarmText );
323+
316324 mAlarmCallback .refreshView (mAlarmTile , mAlarmState );
317325 }
318326
0 commit comments