@@ -37,14 +37,17 @@ public void onCreate(Bundle aSavedInstanceState) {
37
37
super .onCreate (aSavedInstanceState );
38
38
addPreferencesFromResource (R .layout .settings_activity );
39
39
ListPreference syncFreq = (ListPreference ) findPreference (getString (R .string .setting_sync_frequency_key ));
40
+ final SharedPreferences prefs = PreferenceManager .getDefaultSharedPreferences (SettingsActivity .this );
41
+ setSummary ();
40
42
syncFreq .setOnPreferenceChangeListener (new Preference .OnPreferenceChangeListener () {
41
43
@ Override
42
44
public boolean onPreferenceChange (Preference preference , Object o ) {
43
45
String value = (String )o ;
46
+ final SharedPreferences .Editor edtr = prefs .edit ();
47
+
44
48
if (value .equals (getString (R .string .setting_sync_frequency_daily ))) {
45
49
// Check if our previous value was the same thing, so we can set it in the time
46
50
// picker dialog.
47
- final SharedPreferences prefs = PreferenceManager .getDefaultSharedPreferences (SettingsActivity .this );
48
51
int hourDefault = 12 ;
49
52
int minDefault = 0 ;
50
53
String prevVal = prefs .getString (getString (R .string .setting_sync_frequency_key ), "-1" );
@@ -56,13 +59,15 @@ public boolean onPreferenceChange(Preference preference, Object o) {
56
59
TimePickerDialog .OnTimeSetListener timeListener = new TimePickerDialog .OnTimeSetListener () {
57
60
@ Override
58
61
public void onTimeSet (TimePicker timePicker , int hourOfDay , int minOfHour ) {
59
- SharedPreferences . Editor edtr = prefs . edit () ;
62
+ String subTitle = "Sync daily at " + hourOfDay + ":" + ( minOfHour < 10 ? "0" : "" ) + minOfHour ;
60
63
edtr .putInt (getString (R .string .setting_sync_frequency_daily_hour_key ), hourOfDay );
61
64
edtr .putInt (getString (R .string .setting_sync_frequency_daily_min_key ), minOfHour );
65
+ edtr .putString (getString (R .string .setting_sync_frequency_subtitle_key ), subTitle );
62
66
edtr .commit ();
63
67
64
68
SyncRepoManager manager = new SyncRepoManager ();
65
69
manager .setDailySync (SettingsActivity .this , hourOfDay , minOfHour );
70
+ SettingsActivity .this .setSummary ();
66
71
}
67
72
};
68
73
@@ -71,10 +76,27 @@ public void onTimeSet(TimePicker timePicker, int hourOfDay, int minOfHour) {
71
76
timePicker .setTitle (getString (R .string .setting_sync_frequency_daily_title ));
72
77
timePicker .show ();
73
78
} else {
79
+ // Loop to find out what the index of the chosen value is in the array - it should be the same
80
+ // as the chosen value in the array of possible choices (see comment in strings.xml).
81
+ String [] indexArray = getResources ().getStringArray (R .array .setting_sync_choices_values );
82
+ String [] subtitleArray = getResources ().getStringArray (R .array .setting_sync_choices );
83
+ int subtitleIndex = 0 ;
84
+ for (String s : indexArray ) {
85
+ if (s .equals (o )) {
86
+ break ;
87
+ }
88
+ subtitleIndex ++;
89
+ }
90
+
91
+ String subTitle = subtitleArray [subtitleIndex ];
92
+ edtr .putString (getString (R .string .setting_sync_frequency_subtitle_key ), subTitle );
93
+ edtr .commit ();
74
94
SyncRepoManager manager = new SyncRepoManager ();
75
95
manager .cancelDailySync (SettingsActivity .this );
76
96
}
77
97
98
+ SettingsActivity .this .setSummary ();
99
+
78
100
return true ;
79
101
}
80
102
});
@@ -90,6 +112,12 @@ public void onDestroy() {
90
112
}
91
113
}
92
114
93
- private ListPreference mSyncPreferences ;
115
+ private void setSummary () {
116
+ ListPreference syncFreq = (ListPreference ) findPreference (getString (R .string .setting_sync_frequency_key ));
117
+ final SharedPreferences prefs = PreferenceManager .getDefaultSharedPreferences (SettingsActivity .this );
118
+ syncFreq .setSummary (prefs .getString (getString (R .string .setting_sync_frequency_subtitle_key ),
119
+ getString (R .string .setting_instruction_sync_frequency )));
120
+ }
121
+
94
122
private static final String TAG = "SettingsActivity" ;
95
123
}
0 commit comments