Disable poll outside of schedule

This commit is contained in:
M66B 2019-12-29 12:26:51 +01:00
parent f5306720e1
commit 4f7917d8bf
3 changed files with 4 additions and 8 deletions

View File

@ -132,9 +132,7 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr
if (value != current) {
adapterView.setTag(value);
prefs.edit().putInt("poll_interval", value).apply();
if (value == 0)
ServiceSynchronize.eval(getContext(), "poll_interval");
WorkerPoll.init(getContext());
ServiceSynchronize.reschedule(getContext());
}
}
@ -142,8 +140,7 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr
public void onNothingSelected(AdapterView<?> adapterView) {
adapterView.setTag(null);
prefs.edit().remove("poll_interval").apply();
ServiceSynchronize.eval(getContext(), "poll_interval");
WorkerPoll.init(getContext());
ServiceSynchronize.reschedule(getContext());
}
});

View File

@ -1528,7 +1528,7 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
AlarmManagerCompat.setAndAllowWhileIdle(am, AlarmManager.RTC_WAKEUP, next, pi);
WorkerPoll.init(context);
WorkerPoll.init(context, enabled);
}
private static long[] getSchedule(Context context) {

View File

@ -50,10 +50,9 @@ public class WorkerPoll extends Worker {
return Result.success();
}
static void init(Context context) {
static void init(Context context, boolean enabled) {
try {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean enabled = prefs.getBoolean("enabled", true);
int pollInterval = prefs.getInt("poll_interval", 0);
if (enabled && pollInterval > 0) {
Log.i("Queuing " + getName() + " every " + pollInterval + " minutes");