Skip to content

Commit 0165ae3

Browse files
committed
Issue rtyley#100: Made a few changes that were found during review of PR rtyley#103.
The following items were changed: * Removed commented options to sync on a specific day of the week and sync on a specific day of the month. * Added additional possibilities to sync every: 5 minutes, 4 hours, daily (not at a specified time), and weekly.
1 parent ab7b25a commit 0165ae3

File tree

3 files changed

+49
-14
lines changed

3 files changed

+49
-14
lines changed

agit/res/values/strings.xml

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -124,25 +124,35 @@
124124
<string name="setting_sync_frequency_daily_title">Sync daily at</string>
125125
<string name="setting_sync_frequency_daily_hour_key">setting_sync_frequency_daily_hour</string>
126126
<string name="setting_sync_frequency_daily_min_key">setting_sync_frequency_daily_min</string>
127+
<string name="setting_sync_frequency_subtitle_key">setting_sync_frequency_subtitle</string>
127128

129+
<!--
130+
These next two arrays need to be in sync (no pun intended). In other words, if you change
131+
setting_sync_choices to have another value, you need to put a corresponding integer value
132+
into the setting_sync_choices_values
133+
-->
128134
<string-array name="setting_sync_choices">
129135
<item>Manually</item>
130136
<item>Schedule daily at&#8230;</item>
137+
<item>Every minute</item>
138+
<item>Every 5 minutes</item>
131139
<item>Every 15 minutes</item>
132140
<item>Every hour</item>
133-
<item>Every 3 hours</item>
134-
<item>Every 6 hours</item>
135-
<item>Every 12 hours</item>
141+
<item>Every 4 hours</item>
142+
<item>Every day</item>
143+
<item>Every week</item>
136144
</string-array>
145+
146+
<!-- These next values are in MINUTES (except for the special values for "Manually" and "Sync Daily" -->
137147
<string-array name="setting_sync_choices_values">
138148
<item>-1</item>
139149
<item>@string/setting_sync_frequency_daily</item>
150+
<item>1</item>
151+
<item>5</item>
140152
<item>15</item>
141153
<item>60</item>
142-
<item>180</item>
143-
<item>360</item>
144-
<item>720</item>
145-
<!-- <item>Every week on&#8230;</item> -->
146-
<!-- <item>Every month on&#8230;</item> -->
154+
<item>240</item>
155+
<item>1440</item>
156+
<item>10080</item>
147157
</string-array>
148158
</resources>

agit/src/main/java/com/madgag/agit/SettingsActivity.java

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,17 @@ public void onCreate(Bundle aSavedInstanceState) {
3737
super.onCreate(aSavedInstanceState);
3838
addPreferencesFromResource(R.layout.settings_activity);
3939
ListPreference syncFreq = (ListPreference) findPreference(getString(R.string.setting_sync_frequency_key));
40+
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(SettingsActivity.this);
41+
setSummary();
4042
syncFreq.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
4143
@Override
4244
public boolean onPreferenceChange(Preference preference, Object o) {
4345
String value = (String)o;
46+
final SharedPreferences.Editor edtr = prefs.edit();
47+
4448
if (value.equals(getString(R.string.setting_sync_frequency_daily))) {
4549
// Check if our previous value was the same thing, so we can set it in the time
4650
// picker dialog.
47-
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(SettingsActivity.this);
4851
int hourDefault = 12;
4952
int minDefault = 0;
5053
String prevVal = prefs.getString(getString(R.string.setting_sync_frequency_key), "-1");
@@ -56,13 +59,15 @@ public boolean onPreferenceChange(Preference preference, Object o) {
5659
TimePickerDialog.OnTimeSetListener timeListener = new TimePickerDialog.OnTimeSetListener() {
5760
@Override
5861
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;
6063
edtr.putInt(getString(R.string.setting_sync_frequency_daily_hour_key), hourOfDay);
6164
edtr.putInt(getString(R.string.setting_sync_frequency_daily_min_key), minOfHour);
65+
edtr.putString(getString(R.string.setting_sync_frequency_subtitle_key), subTitle);
6266
edtr.commit();
6367

6468
SyncRepoManager manager = new SyncRepoManager();
6569
manager.setDailySync(SettingsActivity.this, hourOfDay, minOfHour);
70+
SettingsActivity.this.setSummary();
6671
}
6772
};
6873

@@ -71,10 +76,27 @@ public void onTimeSet(TimePicker timePicker, int hourOfDay, int minOfHour) {
7176
timePicker.setTitle(getString(R.string.setting_sync_frequency_daily_title));
7277
timePicker.show();
7378
} 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();
7494
SyncRepoManager manager = new SyncRepoManager();
7595
manager.cancelDailySync(SettingsActivity.this);
7696
}
7797

98+
SettingsActivity.this.setSummary();
99+
78100
return true;
79101
}
80102
});
@@ -90,6 +112,12 @@ public void onDestroy() {
90112
}
91113
}
92114

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+
94122
private static final String TAG = "SettingsActivity";
95123
}

agit/src/main/java/com/madgag/agit/sync/SyncRepoManager.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ public static void cancelDailySync(Context aContext) {
8686
@Override
8787
public void onReceive(Context aContext, Intent aIntent) {
8888
Calendar rightNow = Calendar.getInstance();
89-
long timeInMs = rightNow.getTimeInMillis();
9089
long offset = rightNow.get(Calendar.ZONE_OFFSET) +
9190
rightNow.get(Calendar.DST_OFFSET);
9291
long sinceMidnight = (rightNow.getTimeInMillis() + offset) %
@@ -96,8 +95,6 @@ public void onReceive(Context aContext, Intent aIntent) {
9695
int clockHour = hoursSinceMidnight % 12;
9796
int minutesSinceMidnight = (int)((sinceMidnight % (hoursSinceMidnight * (60 * 60 * 1000))) / (60*1000));
9897

99-
long msAtMidnight = (rightNow.getTimeInMillis() + offset) - sinceMidnight;
100-
10198
Log.d(TAG, "onReceive called at " + clockHour + ":" + minutesSinceMidnight + " " + (isPM ? "pm" : "am"));
10299
doSyncNow();
103100
}

0 commit comments

Comments
 (0)