package sushi.hardcore.droidfs import android.os.Bundle import android.view.MenuItem import androidx.preference.ListPreference import androidx.preference.PreferenceFragmentCompat import sushi.hardcore.droidfs.databinding.ActivitySettingsBinding class SettingsActivity : BaseActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val binding = ActivitySettingsBinding.inflate(layoutInflater) setContentView(binding.root) setSupportActionBar(binding.toolbar.toolbar) supportActionBar?.setDisplayHomeAsUpEnabled(true) val screen = intent.extras?.getString("screen") ?: "main" val fragment = if (screen == "UnsafeFeaturesSettingsFragment") { UnsafeFeaturesSettingsFragment() } else { MainSettingsFragment() } supportFragmentManager .beginTransaction() .replace(R.id.settings, fragment) .commit() } override fun onOptionsItemSelected(item: MenuItem): Boolean { return when (item.itemId){ android.R.id.home -> { onBackPressed() //return to the previous fragment rather than the activity true } else -> super.onOptionsItemSelected(item) } } class MainSettingsFragment : PreferenceFragmentCompat() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.root_preferences, rootKey) findPreference("theme")?.setOnPreferenceChangeListener { _, newValue -> (activity as BaseActivity).onThemeChanged(newValue as String) true } } } class UnsafeFeaturesSettingsFragment : PreferenceFragmentCompat() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.unsafe_features_preferences, rootKey) } } }