Updater: Implement auto update check interval preference

* This replaces auto update check switch with a dropdown with 4 options:
  * Never
  * Once a day
  * Once a week (default)
  * Once a month

Change-Id: I4bcae4c013a5d44958f9c54d641e64aac3062a8b
This commit is contained in:
LuK1337
2018-11-17 23:53:07 +01:00
committed by Luca Stefani
parent ee251456c3
commit 2454a339a3
7 changed files with 95 additions and 65 deletions

View File

@@ -45,6 +45,7 @@ import android.view.View;
import android.view.animation.Animation;
import android.view.animation.LinearInterpolator;
import android.view.animation.RotateAnimation;
import android.widget.Spinner;
import android.widget.Switch;
import android.widget.TextView;
@@ -292,7 +293,7 @@ public class UpdatesActivity extends UpdatesListActivity {
long millis = System.currentTimeMillis();
preferences.edit().putLong(Constants.PREF_LAST_UPDATE_CHECK, millis).apply();
updateLastCheckedString();
if (json.exists() && preferences.getBoolean(Constants.PREF_AUTO_UPDATES_CHECK, true) &&
if (json.exists() && Utils.isUpdateCheckEnabled(this) &&
Utils.checkForNewUpdates(json, jsonNew)) {
UpdatesCheckReceiver.updateRepeatingUpdatesCheck(this);
}
@@ -406,7 +407,8 @@ public class UpdatesActivity extends UpdatesListActivity {
private void showPreferencesDialog() {
View view = LayoutInflater.from(this).inflate(R.layout.preferences_dialog, null);
Switch autoCheck = view.findViewById(R.id.preferences_auto_updates_check);
Spinner autoCheckInterval =
view.findViewById(R.id.preferences_auto_updates_check_interval);
Switch autoDelete = view.findViewById(R.id.preferences_auto_delete_updates);
Switch dataWarning = view.findViewById(R.id.preferences_mobile_data_warning);
Switch abPerfMode = view.findViewById(R.id.preferences_ab_perf_mode);
@@ -416,7 +418,7 @@ public class UpdatesActivity extends UpdatesListActivity {
}
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
autoCheck.setChecked(prefs.getBoolean(Constants.PREF_AUTO_UPDATES_CHECK, true));
autoCheckInterval.setSelection(Utils.getUpdateCheckSetting(this));
autoDelete.setChecked(prefs.getBoolean(Constants.PREF_AUTO_DELETE_UPDATES, false));
dataWarning.setChecked(prefs.getBoolean(Constants.PREF_MOBILE_DATA_WARNING, true));
abPerfMode.setChecked(prefs.getBoolean(Constants.PREF_AB_PERF_MODE, false));
@@ -426,8 +428,8 @@ public class UpdatesActivity extends UpdatesListActivity {
.setView(view)
.setOnDismissListener(dialogInterface -> {
prefs.edit()
.putBoolean(Constants.PREF_AUTO_UPDATES_CHECK,
autoCheck.isChecked())
.putInt(Constants.PREF_AUTO_UPDATES_CHECK_INTERVAL,
autoCheckInterval.getSelectedItemPosition())
.putBoolean(Constants.PREF_AUTO_DELETE_UPDATES,
autoDelete.isChecked())
.putBoolean(Constants.PREF_MOBILE_DATA_WARNING,
@@ -436,7 +438,7 @@ public class UpdatesActivity extends UpdatesListActivity {
abPerfMode.isChecked())
.apply();
if (autoCheck.isChecked()) {
if (Utils.isUpdateCheckEnabled(this)) {
UpdatesCheckReceiver.scheduleRepeatingUpdatesCheck(this);
} else {
UpdatesCheckReceiver.cancelRepeatingUpdatesCheck(this);