diff --git a/app/src/main/java/com/hippo/ehviewer/ui/fragment/BasePreferenceFragment.java b/app/src/main/java/com/hippo/ehviewer/ui/fragment/BasePreferenceFragment.java index f26c3bcff..386bbce26 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/fragment/BasePreferenceFragment.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/fragment/BasePreferenceFragment.java @@ -22,9 +22,12 @@ import android.os.Bundle; import androidx.annotation.Nullable; import androidx.annotation.StringRes; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentTransaction; import androidx.preference.Preference; import androidx.preference.PreferenceFragmentCompat; +import com.hippo.ehviewer.R; import com.hippo.ehviewer.ui.SettingsActivity; @@ -56,6 +59,22 @@ public class BasePreferenceFragment extends PreferenceFragmentCompat } + @Override + public boolean onPreferenceTreeClick(Preference preference) { + String key = preference.getKey(); + try { + Fragment classObj = (Fragment)Class.forName(key).newInstance(); + requireActivity().getSupportFragmentManager() + .beginTransaction() + .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE) + .replace(R.id.fragment, classObj) + .addToBackStack(null) + .commitAllowingStateLoss(); + } catch (ClassNotFoundException | IllegalAccessException | java.lang.InstantiationException ignored) { + } + return true; + } + private void setTitle(@StringRes int string) { requireActivity().setTitle(string); } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/fragment/SettingsFragment.java b/app/src/main/java/com/hippo/ehviewer/ui/fragment/SettingsFragment.java index 1c87ee64a..98d34ae5e 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/fragment/SettingsFragment.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/fragment/SettingsFragment.java @@ -33,24 +33,6 @@ public class SettingsFragment extends BasePreferenceFragment { addPreferencesFromResource(R.xml.settings_headers); } - @Override - public boolean onPreferenceTreeClick(Preference preference) { - String key = preference.getKey(); - try { - Fragment classObj = (Fragment)Class.forName(key).newInstance(); - requireActivity().getSupportFragmentManager() - .beginTransaction() - .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE) - .replace(R.id.fragment, classObj) - .addToBackStack("1") - .commitAllowingStateLoss(); - } catch (ClassNotFoundException | IllegalAccessException | java.lang.InstantiationException e) { - e.printStackTrace(); - return false; - } - return true; - } - @Override public int getFragmentTitle() { return R.string.settings; diff --git a/app/src/main/res/xml/advanced_settings.xml b/app/src/main/res/xml/advanced_settings.xml index 9f8178ee1..1f35ef6d7 100644 --- a/app/src/main/res/xml/advanced_settings.xml +++ b/app/src/main/res/xml/advanced_settings.xml @@ -80,8 +80,7 @@ app:iconSpaceReserved="false" /> diff --git a/app/src/main/res/xml/eh_settings.xml b/app/src/main/res/xml/eh_settings.xml index 5fcada489..9ac796a3d 100644 --- a/app/src/main/res/xml/eh_settings.xml +++ b/app/src/main/res/xml/eh_settings.xml @@ -39,15 +39,13 @@ app:iconSpaceReserved="false" /> @@ -145,8 +143,7 @@ app:url="@string/settings_eh_tag_translations_source_url" />