11package com .android .systemui .quicksettings ;
22
3- import android .content .BroadcastReceiver ;
43import android .content .ComponentName ;
54import android .content .ContentResolver ;
65import android .content .Context ;
76import android .content .Intent ;
8- import android .content .IntentFilter ;
97import android .net .Uri ;
108import android .os .Handler ;
119import android .provider .Settings ;
10+ import android .text .TextUtils ;
1211import android .view .LayoutInflater ;
1312import android .view .View ;
1413
1514import com .android .systemui .R ;
1615import com .android .systemui .statusbar .phone .QuickSettingsController ;
1716import com .android .systemui .statusbar .phone .QuickSettingsContainerView ;
1817
19- public class AlarmTile extends QuickSettingsTile {
20-
21- private boolean enabled = false ;
18+ public class AlarmTile extends QuickSettingsTile {
2219
2320 public AlarmTile (Context context , LayoutInflater inflater ,
2421 QuickSettingsContainerView container ,
2522 QuickSettingsController qsc , Handler handler ) {
2623 super (context , inflater , container , qsc );
2724
2825 mDrawable = R .drawable .ic_qs_alarm_on ;
29- String nextAlarmTime = Settings .System .getString (mContext .getContentResolver (), Settings .System .NEXT_ALARM_FORMATTED );
30- if (nextAlarmTime != null ){
31- mLabel = nextAlarmTime ;
32- }
3326
3427 mOnClick = new View .OnClickListener () {
35-
3628 @ Override
3729 public void onClick (View v ) {
3830 Intent intent = new Intent ();
@@ -42,36 +34,30 @@ public void onClick(View v) {
4234 startSettingsActivity (intent );
4335 }
4436 };
45- qsc . registerAction ( Intent . ACTION_ALARM_CHANGED , this );
37+
4638 qsc .registerObservedContent (Settings .System .getUriFor (
4739 Settings .System .NEXT_ALARM_FORMATTED ), this );
48- }
49-
50- @ Override
51- public void onReceive (Context context , Intent intent ) {
52- onAlarmChanged (intent );
40+ updateStatus ();
5341 }
5442
5543 @ Override
5644 public void onChangeUri (ContentResolver resolver , Uri uri ) {
57- onNextAlarmChanged ();
58- }
59-
60- void onAlarmChanged (Intent intent ) {
61- enabled = intent .getBooleanExtra ("alarmSet" , false );
62- updateQuickSettings ();
63- }
64-
65- void onNextAlarmChanged () {
66- mLabel = Settings .System .getString (mContext .getContentResolver (),
67- Settings .System .NEXT_ALARM_FORMATTED );
45+ updateStatus ();
6846 updateQuickSettings ();
6947 }
7048
7149 @ Override
72- void updateQuickSettings () {
73- mTile .setVisibility (enabled ? View .VISIBLE : View .GONE );
50+ public void updateQuickSettings () {
51+ mTile .setVisibility (! TextUtils . isEmpty ( mLabel ) ? View .VISIBLE : View .GONE );
7452 super .updateQuickSettings ();
7553 }
7654
55+ /**
56+ * Updates the alarm status shown on the tile.
57+ */
58+ private void updateStatus () {
59+ mLabel = Settings .System .getString (mContext .getContentResolver (),
60+ Settings .System .NEXT_ALARM_FORMATTED );
61+ }
62+
7763}
0 commit comments