@Override public boolean onPreferenceStartScreen(PreferenceFragmentCompat preferenceFragmentCompat, PreferenceScreen preferenceScreen) { SettingsFragment fragment = new SettingsFragment(); Bundle args = new Bundle(); args.putString(PreferenceFragmentCompat.ARG_PREFERENCE_ROOT, preferenceScreen.getKey()); fragment.setArguments(args); FragmentTransaction ft = preferenceFragmentCompat.getFragmentManager().beginTransaction(); ft.add(R.id.fragment_container, fragment, preferenceScreen.getKey()); ft.addToBackStack(preferenceScreen.getTitle().toString()); ft.commit(); toolbar.setTitle(preferenceScreen.getTitle()); return true; }
public static boolean onPreferenceDisplayDialog( final @NonNull PreferenceFragmentCompat preferenceFragment, final @NonNull android.support.v7.preference.Preference preference) { if (preference instanceof ColorPreference) { final String key = preference.getKey(); final DialogFragment f = XpColorPreferenceDialogFragment.newInstance(key); f.setTargetFragment(preferenceFragment, 0); final FragmentManager fm = preferenceFragment.getFragmentManager(); assert fm != null; f.show(fm, key); return true; } return false; }
public static boolean onDisplayPreferenceDialog(PreferenceFragmentCompat preferenceFragment, Preference preference) { if (preference instanceof ClearPatternPreference) { // getChildFragmentManager() will lead to looking for target fragment in the child // fragment manager. FragmentManager fragmentManager = preferenceFragment.getFragmentManager(); if(fragmentManager.findFragmentByTag(DIALOG_FRAGMENT_TAG) == null) { ClearPatternPreferenceDialogFragment dialogFragment = ClearPatternPreferenceDialogFragment.newInstance(preference.getKey()); dialogFragment.setTargetFragment(preferenceFragment, 0); dialogFragment.show(fragmentManager, DIALOG_FRAGMENT_TAG); } return true; } return false; }
public static boolean onDisplayPreferenceDialog(Preference preference, PreferenceFragmentCompat target) { boolean handled = false; if (target.getTargetFragment() instanceof PreferenceFragmentCompat.OnPreferenceDisplayDialogCallback) { handled = ((PreferenceFragmentCompat.OnPreferenceDisplayDialogCallback) target.getTargetFragment()) .onPreferenceDisplayDialog(target, preference); } if (!handled && target.getActivity() instanceof PreferenceFragmentCompat.OnPreferenceDisplayDialogCallback) { handled = ((PreferenceFragmentCompat.OnPreferenceDisplayDialogCallback) target.getActivity()) .onPreferenceDisplayDialog(target, preference); } // check if dialog is already showing if (!handled && target.getFragmentManager().findFragmentByTag(DIALOG_FRAGMENT_TAG) != null) { handled = true; } if (!handled && preference instanceof SpectrumPreferenceCompat) { DialogFragment f = SpectrumPreferenceDialogFragmentCompat.newInstance(preference.getKey()); f.setTargetFragment(target, 0); f.show(target.getFragmentManager(), DIALOG_FRAGMENT_TAG); handled = true; } return handled; } }