package net.i2p.android.preferences; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceFragmentCompat; import net.i2p.android.router.R; import net.i2p.android.router.SettingsActivity; public class AdvancedPreferenceFragment extends PreferenceFragmentCompat { private static final String PREFERENCE_CATEGORY_TRANSPORTS = "preference_category_transports"; private static final String PREFERENCE_CATEGORY_EXPL_TUNNELS = "preference_category_expl_tunnels"; @Override public void onCreatePreferences(Bundle paramBundle, String s) { addPreferencesFromResource(R.xml.settings_advanced); findPreference(PREFERENCE_CATEGORY_TRANSPORTS) .setOnPreferenceClickListener(new CategoryClickListener(PREFERENCE_CATEGORY_TRANSPORTS)); findPreference(PREFERENCE_CATEGORY_EXPL_TUNNELS) .setOnPreferenceClickListener(new CategoryClickListener(PREFERENCE_CATEGORY_EXPL_TUNNELS)); } @Override public void onResume() { super.onResume(); ((SettingsActivity) getActivity()).getSupportActionBar().setTitle(R.string.settings_label_advanced); } private class CategoryClickListener implements Preference.OnPreferenceClickListener { private String category; public CategoryClickListener(String category) { this.category = category; } @Override public boolean onPreferenceClick(Preference preference) { Fragment fragment; switch (category) { case PREFERENCE_CATEGORY_TRANSPORTS: fragment = new TransportsPreferenceFragment(); break; case PREFERENCE_CATEGORY_EXPL_TUNNELS: fragment = new ExploratoryPoolPreferenceFragment(); break; default: throw new AssertionError(); } getActivity().getSupportFragmentManager().beginTransaction() .replace(R.id.fragment, fragment) .addToBackStack(null) .commit(); return true; } } }