From e3cfe3690d29d5452132bed6091be27c1dc80c6d Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner <hans@eds.org> Date: Fri, 22 Mar 2019 23:45:02 +0100 Subject: [PATCH] set "Automatically download updates" to default true But keep "Automatically install updates" default false for devices with Privileged Extension. --- app/src/basic/res/xml/preferences.xml | 1 - app/src/main/java/org/fdroid/fdroid/Preferences.java | 12 +++++++++--- app/src/main/res/xml/preferences.xml | 1 - .../test/java/org/fdroid/fdroid/PreferencesTest.java | 10 +++++----- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/app/src/basic/res/xml/preferences.xml b/app/src/basic/res/xml/preferences.xml index 24066bd1d..c473f4cd0 100644 --- a/app/src/basic/res/xml/preferences.xml +++ b/app/src/basic/res/xml/preferences.xml @@ -50,7 +50,6 @@ <SwitchPreference android:title="@string/update_auto_download" android:summary="@string/update_auto_download_summary" - android:defaultValue="true" android:key="updateAutoDownload"/> <org.fdroid.fdroid.views.LiveSeekBarPreference android:key="updateIntervalSeekBarPosition" diff --git a/app/src/main/java/org/fdroid/fdroid/Preferences.java b/app/src/main/java/org/fdroid/fdroid/Preferences.java index 1ed9009d7..e123a654b 100644 --- a/app/src/main/java/org/fdroid/fdroid/Preferences.java +++ b/app/src/main/java/org/fdroid/fdroid/Preferences.java @@ -32,6 +32,7 @@ import android.support.v7.preference.PreferenceManager; import android.text.format.DateUtils; import android.util.Log; import info.guardianproject.netcipher.NetCipher; +import org.fdroid.fdroid.installer.PrivilegedInstaller; import org.fdroid.fdroid.net.ConnectivityMonitorService; import java.net.InetSocketAddress; @@ -69,11 +70,16 @@ public final class Preferences implements SharedPreferences.OnSharedPreferenceCh PreferenceManager.setDefaultValues(context, R.xml.preferences, true); preferences = PreferenceManager.getDefaultSharedPreferences(context); preferences.registerOnSharedPreferenceChangeListener(this); + SharedPreferences.Editor editor = preferences.edit(); if (preferences.getString(PREF_LOCAL_REPO_NAME, null) == null) { - preferences.edit() - .putString(PREF_LOCAL_REPO_NAME, getDefaultLocalRepoName()) - .apply(); + editor.putString(PREF_LOCAL_REPO_NAME, getDefaultLocalRepoName()); } + if (!preferences.contains(PREF_AUTO_DOWNLOAD_INSTALL_UPDATES)) { + editor.putBoolean(PREF_AUTO_DOWNLOAD_INSTALL_UPDATES, + PrivilegedInstaller.isExtensionInstalledCorrectly(context) + != PrivilegedInstaller.IS_EXTENSION_INSTALLED_YES); + } + editor.apply(); } public static final String PREF_OVER_WIFI = "overWifi"; diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 21e0a423c..889b380b7 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -50,7 +50,6 @@ <SwitchPreference android:title="@string/update_auto_download" android:summary="@string/update_auto_download_summary" - android:defaultValue="false" android:key="updateAutoDownload"/> <org.fdroid.fdroid.views.LiveSeekBarPreference android:key="updateIntervalSeekBarPosition" diff --git a/app/src/test/java/org/fdroid/fdroid/PreferencesTest.java b/app/src/test/java/org/fdroid/fdroid/PreferencesTest.java index 3a4b03d85..2149e64fa 100644 --- a/app/src/test/java/org/fdroid/fdroid/PreferencesTest.java +++ b/app/src/test/java/org/fdroid/fdroid/PreferencesTest.java @@ -74,16 +74,18 @@ public class PreferencesTest { * Check that the defaults are being set when using * {@link PreferenceManager#getDefaultSharedPreferences(Context)}, and that * the values match. {@link Preferences#Preferences(Context)} sets the - * value of {@link Preferences#PREF_LOCAL_REPO_NAME} dynamically, so there - * is one more preference. + * values of {@link Preferences#PREF_LOCAL_REPO_NAME} and + * {@link Preferences#PREF_AUTO_DOWNLOAD_INSTALL_UPDATES} dynamically, so + * there are two more preferences. */ @Test public void testSetDefaultValues() { Preferences.setupForTests(CONTEXT); SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(CONTEXT); - assertEquals(defaults.getAll().size() + 1, sharedPreferences.getAll().size()); + assertEquals(defaults.getAll().size() + 2, sharedPreferences.getAll().size()); assertTrue(sharedPreferences.contains(Preferences.PREF_LOCAL_REPO_NAME)); + assertTrue(sharedPreferences.contains(Preferences.PREF_AUTO_DOWNLOAD_INSTALL_UPDATES)); Map<String, ?> entries = sharedPreferences.getAll(); for (Map.Entry<String, ?> entry : defaults.getAll().entrySet()) { @@ -104,8 +106,6 @@ public class PreferencesTest { Preferences.setupForTests(CONTEXT); Preferences preferences = Preferences.get(); - assertEquals(defaults.getBoolean(Preferences.PREF_AUTO_DOWNLOAD_INSTALL_UPDATES, false), - preferences.isAutoDownloadEnabled()); assertEquals(defaults.getBoolean(Preferences.PREF_EXPERT, false), preferences.expertMode()); assertEquals(defaults.getBoolean(Preferences.PREF_FORCE_TOUCH_APPS, false),