From e1e3e10794602b004c5868b8401c2f1ca2c2305a Mon Sep 17 00:00:00 2001 From: althafvly Date: Fri, 17 May 2024 15:25:25 +0530 Subject: [PATCH] Updater: add option to show all updates --- .../java/org/lineageos/updater/UpdatesActivity.java | 3 +++ .../java/org/lineageos/updater/misc/Constants.java | 1 + .../main/java/org/lineageos/updater/misc/Utils.java | 10 +++++++++- app/src/main/res/layout/preferences_dialog.xml | 8 ++++++++ app/src/main/res/values/e_strings.xml | 1 + 5 files changed, 22 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/lineageos/updater/UpdatesActivity.java b/app/src/main/java/org/lineageos/updater/UpdatesActivity.java index 358f06ab..65f52127 100644 --- a/app/src/main/java/org/lineageos/updater/UpdatesActivity.java +++ b/app/src/main/java/org/lineageos/updater/UpdatesActivity.java @@ -574,6 +574,7 @@ public class UpdatesActivity extends UpdatesListActivity implements UpdateImport View view = LayoutInflater.from(this).inflate(R.layout.preferences_dialog, null); Spinner autoCheckInterval = view.findViewById(R.id.preferences_auto_updates_check_interval); SwitchCompat autoDelete = view.findViewById(R.id.preferences_auto_delete_updates); + SwitchCompat allUpdates = view.findViewById(R.id.preferences_all_updates); SwitchCompat meteredNetworkWarning = view.findViewById( R.id.preferences_metered_network_warning); SwitchCompat abPerfMode = view.findViewById(R.id.preferences_ab_perf_mode); @@ -604,6 +605,7 @@ public class UpdatesActivity extends UpdatesListActivity implements UpdateImport autoCheckInterval.setSelection(Utils.getUpdateCheckSetting(this)); autoDelete.setChecked(prefs.getBoolean(Constants.PREF_AUTO_DELETE_UPDATES, true)); + allUpdates.setChecked(prefs.getBoolean(Constants.PREF_ALL_UPDATES, false)); meteredNetworkWarning.setChecked(prefs.getBoolean(Constants.PREF_METERED_NETWORK_WARNING, prefs.getBoolean(Constants.PREF_MOBILE_DATA_WARNING, true))); abPerfMode.setChecked(prefs.getBoolean(Constants.PREF_AB_PERF_MODE, @@ -645,6 +647,7 @@ public class UpdatesActivity extends UpdatesListActivity implements UpdateImport .putInt(Constants.PREF_AUTO_UPDATES_CHECK_INTERVAL, autoCheckInterval.getSelectedItemPosition()) .putBoolean(Constants.PREF_AUTO_DELETE_UPDATES, autoDelete.isChecked()) + .putBoolean(Constants.PREF_ALL_UPDATES, allUpdates.isChecked()) .putBoolean(Constants.PREF_METERED_NETWORK_WARNING, meteredNetworkWarning.isChecked()) .putBoolean(Constants.PREF_AB_PERF_MODE, abPerfMode.isChecked()) diff --git a/app/src/main/java/org/lineageos/updater/misc/Constants.java b/app/src/main/java/org/lineageos/updater/misc/Constants.java index 914f11b5..f14c8504 100644 --- a/app/src/main/java/org/lineageos/updater/misc/Constants.java +++ b/app/src/main/java/org/lineageos/updater/misc/Constants.java @@ -23,6 +23,7 @@ public final class Constants { public static final String PREF_LAST_UPDATE_CHECK = "last_update_check"; public static final String PREF_AUTO_UPDATES_CHECK_INTERVAL = "auto_updates_check_interval"; public static final String PREF_AUTO_DELETE_UPDATES = "auto_delete_updates"; + public static final String PREF_ALL_UPDATES = "all_updates"; public static final String PREF_AB_PERF_MODE = "ab_perf_mode"; public static final String PREF_METERED_NETWORK_WARNING = "pref_metered_network_warning"; public static final String PREF_MOBILE_DATA_WARNING = "pref_mobile_data_warning"; diff --git a/app/src/main/java/org/lineageos/updater/misc/Utils.java b/app/src/main/java/org/lineageos/updater/misc/Utils.java index 92368ffe..e3159217 100644 --- a/app/src/main/java/org/lineageos/updater/misc/Utils.java +++ b/app/src/main/java/org/lineageos/updater/misc/Utils.java @@ -257,8 +257,16 @@ public class Utils { serverUrl = context.getString(R.string.updater_server_url); } + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); + boolean allUpdates = preferences.getBoolean(Constants.PREF_ALL_UPDATES, false); + if (Utils.isDevModeOn(context)) { + allUpdates = true; + } + if (anonHash != null && !anonHash.isEmpty()) { - serverUrl += "?ota_anon_hash=" + anonHash; + serverUrl += "?ota_anon_hash=" + anonHash + "&strict=" + !allUpdates; + } else { + serverUrl += "?strict=" + !allUpdates; } return serverUrl.replace("{device}", device) diff --git a/app/src/main/res/layout/preferences_dialog.xml b/app/src/main/res/layout/preferences_dialog.xml index 83c8eac3..c8c7e53d 100644 --- a/app/src/main/res/layout/preferences_dialog.xml +++ b/app/src/main/res/layout/preferences_dialog.xml @@ -32,6 +32,14 @@ android:layout_weight="1" /> + + /e/OS\n%1$s Available updates: Current version: + See all available updates \ No newline at end of file -- GitLab