diff --git a/app/src/main/java/org/lineageos/updater/UpdatesActivity.java b/app/src/main/java/org/lineageos/updater/UpdatesActivity.java
index 358f06ab029ae20a2decec351084fdb6024a2e8c..65f52127fc9d10b2a1472630bbecd323819a955f 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 914f11b59a374a3809873c25675c23a9b7ae679c..f14c85044b6f67caa8779a93da1b711f189acd2b 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 92368ffe63e314544e9cf5f1e8fd1243b8ab6896..e315921783c45d0773481791048d2c30b9714742 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 83c8eac390d7f21c1e5381fc60dd2a52c4189405..c8c7e53da5be8d78b900b29f5e26abc2639fe25d 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