package sushi.hardcore.droidfs import android.os.Bundle import androidx.fragment.app.Fragment import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat import kotlinx.android.synthetic.main.toolbar.* import sushi.hardcore.droidfs.widgets.ThemeColor class SettingsActivity : BaseActivity(), PreferenceFragmentCompat.OnPreferenceStartFragmentCallback { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_settings) setSupportActionBar(toolbar) supportActionBar?.setDisplayHomeAsUpEnabled(true) val screen = intent.extras?.getString("screen") ?: "main" val fragment: Fragment fragment = if (screen == "UnsafeFeaturesSettingsFragment") { UnsafeFeaturesSettingsFragment() } else { SettingsFragment() } supportFragmentManager .beginTransaction() .replace(R.id.settings, fragment) .commit() } class SettingsFragment : PreferenceFragmentCompat() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.root_preferences, rootKey) ThemeColor.tintPreferenceIcons(preferenceScreen, ThemeColor.getThemeColor(requireContext())) } } class UnsafeFeaturesSettingsFragment : PreferenceFragmentCompat() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.unsafe_features_preferences, rootKey) ThemeColor.tintPreferenceIcons(preferenceScreen, ThemeColor.getThemeColor(requireContext())) } } override fun onPreferenceStartFragment(caller: PreferenceFragmentCompat, pref: Preference): Boolean { val fragment = supportFragmentManager.fragmentFactory.instantiate(classLoader, pref.fragment) fragment.arguments = pref.extras fragment.setTargetFragment(caller, 0) supportFragmentManager.beginTransaction().replace(R.id.settings, fragment).addToBackStack(null).commit() return true } }