1
0
Fork 0
mirror of https://github.com/M66B/NetGuard.git synced 2025-02-24 15:21:19 +00:00

Move setup to post create

This commit is contained in:
M66B 2015-12-03 11:23:10 +01:00
parent e0fc528054
commit 433113e18e
2 changed files with 59 additions and 52 deletions

View file

@ -87,6 +87,65 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere
getSupportActionBar().setTitle(R.string.menu_settings);
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
PreferenceFragment frag = (PreferenceFragment) getFragmentManager().findFragmentById(android.R.id.content);
PreferenceScreen screen = frag.getPreferenceScreen();
// Handle export
Preference pref_export = screen.findPreference("export");
pref_export.setEnabled(getIntentCreateDocument().resolveActivity(getPackageManager()) != null);
pref_export.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
startActivityForResult(getIntentCreateDocument(), ActivitySettings.REQUEST_EXPORT);
return true;
}
});
// Handle import
Preference pref_import = screen.findPreference("import");
pref_import.setEnabled(getIntentCreateDocument().resolveActivity(getPackageManager()) != null);
pref_import.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
startActivityForResult(getIntentOpenDocument(), ActivitySettings.REQUEST_IMPORT);
return true;
}
});
// Handle technical info
pref_technical = screen.findPreference("technical");
if (Util.isDebuggable(this)) {
pref_technical.setEnabled(INTENT_VPN_SETTINGS.resolveActivity(this.getPackageManager()) != null);
pref_technical.setIntent(INTENT_VPN_SETTINGS);
}
pref_technical.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
updateTechnicalInfo();
return true;
}
});
updateTechnicalInfo();
// Handle devices without telephony
if (!Util.hasTelephony(this)) {
PreferenceCategory defaults = (PreferenceCategory) screen.findPreference("category_defaults");
defaults.removePreference(screen.findPreference("whitelist_other"));
defaults.removePreference(screen.findPreference("screen_other"));
defaults.removePreference(screen.findPreference("whitelist_roaming"));
PreferenceCategory options = (PreferenceCategory) screen.findPreference("category_options");
options.removePreference(screen.findPreference("use_metered"));
options.removePreference(screen.findPreference("unmetered_2g"));
options.removePreference(screen.findPreference("unmetered_3g"));
options.removePreference(screen.findPreference("unmetered_4g"));
options.removePreference(screen.findPreference("national_roaming"));
}
}
@Override
protected void onResume() {
super.onResume();
@ -157,56 +216,6 @@ public class ActivitySettings extends AppCompatActivity implements SharedPrefere
}
}
public void setup(PreferenceScreen screen) {
Preference pref_export = screen.findPreference("export");
pref_export.setEnabled(getIntentCreateDocument().resolveActivity(getPackageManager()) != null);
pref_export.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
startActivityForResult(getIntentCreateDocument(), ActivitySettings.REQUEST_EXPORT);
return true;
}
});
Preference pref_import = screen.findPreference("import");
pref_import.setEnabled(getIntentCreateDocument().resolveActivity(getPackageManager()) != null);
pref_import.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
startActivityForResult(getIntentOpenDocument(), ActivitySettings.REQUEST_IMPORT);
return true;
}
});
pref_technical = screen.findPreference("technical");
if (Util.isDebuggable(this)) {
pref_technical.setEnabled(INTENT_VPN_SETTINGS.resolveActivity(this.getPackageManager()) != null);
pref_technical.setIntent(INTENT_VPN_SETTINGS);
}
pref_technical.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
updateTechnicalInfo();
return true;
}
});
updateTechnicalInfo();
if (!Util.hasTelephony(this)) {
PreferenceCategory defaults = (PreferenceCategory) screen.findPreference("category_defaults");
defaults.removePreference(screen.findPreference("whitelist_other"));
defaults.removePreference(screen.findPreference("screen_other"));
defaults.removePreference(screen.findPreference("whitelist_roaming"));
PreferenceCategory options = (PreferenceCategory) screen.findPreference("category_options");
options.removePreference(screen.findPreference("use_metered"));
options.removePreference(screen.findPreference("unmetered_2g"));
options.removePreference(screen.findPreference("unmetered_3g"));
options.removePreference(screen.findPreference("unmetered_4g"));
options.removePreference(screen.findPreference("national_roaming"));
}
}
@Override
@TargetApi(Build.VERSION_CODES.M)
public void onSharedPreferenceChanged(SharedPreferences prefs, String name) {

View file

@ -28,7 +28,5 @@ public class FragmentSettings extends PreferenceFragment {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
((ActivitySettings) getActivity()).setup(getPreferenceScreen());
}
}