only show "install Priv Ext" in Prefs when its supported

The root install method that is available via the "Expert" preferences does
not work on newer than android-19.  So when that's the case, this hides
that item from the preferences screen entirely.
This commit is contained in:
Hans-Christoph Steiner 2016-08-18 01:04:55 +02:00
parent aa848b2617
commit 91cac9fed4
2 changed files with 16 additions and 7 deletions

View File

@ -4,11 +4,13 @@ import android.app.Activity;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.preference.CheckBoxPreference; import android.preference.CheckBoxPreference;
import android.preference.EditTextPreference; import android.preference.EditTextPreference;
import android.preference.ListPreference; import android.preference.ListPreference;
import android.preference.Preference; import android.preference.Preference;
import android.preference.PreferenceCategory;
import android.support.v4.preference.PreferenceFragment; import android.support.v4.preference.PreferenceFragment;
import android.support.v7.app.AlertDialog; import android.support.v7.app.AlertDialog;
import android.text.Html; import android.text.Html;
@ -50,6 +52,7 @@ public class PreferencesFragment extends PreferenceFragment
private static final int REQUEST_INSTALL_ORBOT = 0x1234; private static final int REQUEST_INSTALL_ORBOT = 0x1234;
private CheckBoxPreference enableProxyCheckPref; private CheckBoxPreference enableProxyCheckPref;
private CheckBoxPreference useTorCheckPref; private CheckBoxPreference useTorCheckPref;
private Preference updatePrivilegedExtensionPref;
private long currentKeepCacheTime; private long currentKeepCacheTime;
@Override @Override
@ -58,6 +61,7 @@ public class PreferencesFragment extends PreferenceFragment
addPreferencesFromResource(R.xml.preferences); addPreferencesFromResource(R.xml.preferences);
useTorCheckPref = (CheckBoxPreference) findPreference(Preferences.PREF_USE_TOR); useTorCheckPref = (CheckBoxPreference) findPreference(Preferences.PREF_USE_TOR);
enableProxyCheckPref = (CheckBoxPreference) findPreference(Preferences.PREF_ENABLE_PROXY); enableProxyCheckPref = (CheckBoxPreference) findPreference(Preferences.PREF_ENABLE_PROXY);
updatePrivilegedExtensionPref = findPreference(Preferences.PREF_UNINSTALL_PRIVILEGED_APP);
} }
private void checkSummary(String key, int resId) { private void checkSummary(String key, int resId) {
@ -260,11 +264,15 @@ public class PreferencesFragment extends PreferenceFragment
}); });
} }
private void initManagePrivilegedAppPreference() { private void initUpdatePrivilegedExtensionPreference() {
Preference pref = findPreference(Preferences.PREF_UNINSTALL_PRIVILEGED_APP); if (Build.VERSION.SDK_INT > 19) {
pref.setPersistent(false); // this will never work on newer Android versions, so hide it
PreferenceCategory other = (PreferenceCategory) findPreference("pref_category_other");
pref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { other.removePreference(updatePrivilegedExtensionPref);
return;
}
updatePrivilegedExtensionPref.setPersistent(false);
updatePrivilegedExtensionPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override @Override
public boolean onPreferenceClick(Preference preference) { public boolean onPreferenceClick(Preference preference) {
@ -292,7 +300,7 @@ public class PreferencesFragment extends PreferenceFragment
currentKeepCacheTime = Preferences.get().getKeepCacheTime(); currentKeepCacheTime = Preferences.get().getKeepCacheTime();
initPrivilegedInstallerPreference(); initPrivilegedInstallerPreference();
initManagePrivilegedAppPreference(); initUpdatePrivilegedExtensionPreference();
// this pref's default is dynamically set based on whether Orbot is installed // this pref's default is dynamically set based on whether Orbot is installed
boolean useTor = Preferences.get().isTorEnabled(); boolean useTor = Preferences.get().isTorEnabled();
useTorCheckPref.setDefaultValue(useTor); useTorCheckPref.setDefaultValue(useTor);

View File

@ -72,7 +72,8 @@
android:summary="@string/proxy_port_summary" android:summary="@string/proxy_port_summary"
android:dependency="enableProxy" /> android:dependency="enableProxy" />
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory android:title="@string/other"> <PreferenceCategory android:title="@string/other"
android:key="pref_category_other">
<ListPreference android:title="@string/cache_downloaded" <ListPreference android:title="@string/cache_downloaded"
android:key="keepCacheFor" android:key="keepCacheFor"
android:defaultValue="86400000" android:defaultValue="86400000"