Merge branch 'fix-817--info-why-priv-extension-disabled' into master
Remove Privileged Installer preference when appropriate See merge request !430
This commit is contained in:
commit
e27ce21b65
@ -166,7 +166,11 @@ public class PreferencesFragment extends PreferenceFragment
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case Preferences.PREF_PRIVILEGED_INSTALLER:
|
case Preferences.PREF_PRIVILEGED_INSTALLER:
|
||||||
checkSummary(key, R.string.system_installer_on);
|
// We may have removed this preference if it is not suitable to show the user. So lets check it is here first.
|
||||||
|
final CheckBoxPreference pref = (CheckBoxPreference) findPreference(Preferences.PREF_PRIVILEGED_INSTALLER);
|
||||||
|
if (pref != null) {
|
||||||
|
checkSummary(key, R.string.system_installer_on);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Preferences.PREF_ENABLE_PROXY:
|
case Preferences.PREF_ENABLE_PROXY:
|
||||||
@ -214,23 +218,34 @@ public class PreferencesFragment extends PreferenceFragment
|
|||||||
boolean enabled = p.isPrivilegedInstallerEnabled();
|
boolean enabled = p.isPrivilegedInstallerEnabled();
|
||||||
boolean installed = PrivilegedInstaller.isExtensionInstalledCorrectly(getActivity())
|
boolean installed = PrivilegedInstaller.isExtensionInstalledCorrectly(getActivity())
|
||||||
== PrivilegedInstaller.IS_EXTENSION_INSTALLED_YES;
|
== PrivilegedInstaller.IS_EXTENSION_INSTALLED_YES;
|
||||||
pref.setEnabled(installed);
|
|
||||||
pref.setDefaultValue(installed);
|
|
||||||
pref.setChecked(enabled && installed);
|
|
||||||
|
|
||||||
pref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
// On later versions of Android the privileged installer needs to be installed
|
||||||
@Override
|
// via flashing an update.zip or building into a rom. As such, if it isn't installed
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
// by the time the user boots, opens F-Droid, and views this settings page, then there
|
||||||
SharedPreferences.Editor editor = pref.getSharedPreferences().edit();
|
// is no benefit showing it to them (it will only be disabled and we can't offer any
|
||||||
if (pref.isChecked()) {
|
// way to easily install from here.
|
||||||
editor.remove(Preferences.PREF_PRIVILEGED_INSTALLER);
|
if (Build.VERSION.SDK_INT > 19 && !installed) {
|
||||||
} else {
|
PreferenceCategory other = (PreferenceCategory) findPreference("pref_category_other");
|
||||||
editor.putBoolean(Preferences.PREF_PRIVILEGED_INSTALLER, false);
|
other.removePreference(pref);
|
||||||
|
} else {
|
||||||
|
pref.setEnabled(installed);
|
||||||
|
pref.setDefaultValue(installed);
|
||||||
|
pref.setChecked(enabled && installed);
|
||||||
|
|
||||||
|
pref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceClick(Preference preference) {
|
||||||
|
SharedPreferences.Editor editor = pref.getSharedPreferences().edit();
|
||||||
|
if (pref.isChecked()) {
|
||||||
|
editor.remove(Preferences.PREF_PRIVILEGED_INSTALLER);
|
||||||
|
} else {
|
||||||
|
editor.putBoolean(Preferences.PREF_PRIVILEGED_INSTALLER, false);
|
||||||
|
}
|
||||||
|
editor.apply();
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
editor.apply();
|
});
|
||||||
return true;
|
}
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initUpdatePrivilegedExtensionPreference() {
|
private void initUpdatePrivilegedExtensionPreference() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user