SettingsActivity.kt 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package ml.adamsprogs.bimba.activities
  2. import android.preference.*
  3. import android.os.Bundle
  4. import androidx.core.app.NavUtils
  5. import android.view.MenuItem
  6. import kotlinx.android.synthetic.main.activity_settings.*
  7. import ml.adamsprogs.bimba.*
  8. class SettingsActivity: AppCompatPreferenceActivity() {
  9. override fun onCreate(savedInstanceState: Bundle?) {
  10. super.onCreate(savedInstanceState)
  11. setContentView(R.layout.activity_settings)
  12. setSupportActionBar(toolbar)
  13. supportActionBar.setDisplayHomeAsUpEnabled(true)
  14. }
  15. override fun onOptionsItemSelected(item: MenuItem): Boolean {
  16. when (item.itemId) {
  17. android.R.id.home -> {
  18. NavUtils.navigateUpFromSameTask(this)
  19. return true
  20. }
  21. }
  22. return super.onOptionsItemSelected(item)
  23. }
  24. class MainPreferenceFragment : PreferenceFragment() {
  25. override fun onCreate(savedInstanceState: Bundle?) {
  26. super.onCreate(savedInstanceState)
  27. addPreferencesFromResource(R.xml.pref_main)
  28. bindPreferenceSummaryToValue(findPreference(getString(R.string.key_timetable_source_url)))
  29. }
  30. private fun bindPreferenceSummaryToValue(preference: Preference) {
  31. preference.onPreferenceChangeListener = bindPreferenceSummaryToValueListener
  32. bindPreferenceSummaryToValueListener.onPreferenceChange(preference,
  33. PreferenceManager
  34. .getDefaultSharedPreferences(preference.context)
  35. .getString(preference.key, ""))
  36. }
  37. private val bindPreferenceSummaryToValueListener = Preference.OnPreferenceChangeListener { preference, newValue ->
  38. val stringValue = newValue.toString()
  39. if (preference is EditTextPreference) {
  40. if (preference.getKey() == getString(R.string.key_timetable_source_url)) {
  41. preference.summary = stringValue
  42. }
  43. } else {
  44. preference.summary = stringValue
  45. }
  46. true
  47. }
  48. }
  49. }