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:
@@ -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);
|
||||
|
Reference in New Issue
Block a user