From 5ef5288e3a479e37b988b1e27b819dc45d361ddf Mon Sep 17 00:00:00 2001 From: Peter Serwylo Date: Wed, 29 Mar 2017 16:20:55 +1100 Subject: [PATCH] Prevent preferences fragment from crashing when resuming. It was assuming there is always a priv ext preference. However, we remove the priv ext preference the first time the fragment is opened. In these circumstances, the preference no longer exists, resulting in a NPE. --- .../fdroid/fdroid/views/fragments/PreferencesFragment.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/java/org/fdroid/fdroid/views/fragments/PreferencesFragment.java b/app/src/main/java/org/fdroid/fdroid/views/fragments/PreferencesFragment.java index c190ac645..36af3abab 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/fragments/PreferencesFragment.java +++ b/app/src/main/java/org/fdroid/fdroid/views/fragments/PreferencesFragment.java @@ -215,6 +215,13 @@ public class PreferencesFragment extends PreferenceFragment */ private void initPrivilegedInstallerPreference() { final CheckBoxPreference pref = (CheckBoxPreference) findPreference(Preferences.PREF_PRIVILEGED_INSTALLER); + + // This code will be run each time the activity is resumed, and so we may have already removed + // this preference. + if (pref == null) { + return; + } + Preferences p = Preferences.get(); boolean enabled = p.isPrivilegedInstallerEnabled(); boolean installed = PrivilegedInstaller.isExtensionInstalledCorrectly(getActivity())