SleepFragment.kt 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package io.r_a_d.radio2.preferences
  2. import android.os.Bundle
  3. import androidx.preference.*
  4. import io.r_a_d.radio2.R
  5. import android.text.InputType
  6. import io.r_a_d.radio2.alarm.RadioSleeper
  7. class SleepFragment : PreferenceFragmentCompat() {
  8. override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
  9. setPreferencesFromResource(R.xml.sleep_preference, rootKey)
  10. val durationBeforeSleep = findPreference<EditTextPreference>("sleepDuration")
  11. val isSleeping = findPreference<SwitchPreferenceCompat>("isSleeping")
  12. isSleeping?.setOnPreferenceChangeListener { _, newValue ->
  13. if (!(newValue as Boolean))
  14. RadioSleeper.instance.cancelSleep(context!!)
  15. else
  16. RadioSleeper.instance.setSleep(context!!, isForce = true)
  17. true
  18. }
  19. durationBeforeSleep?.setOnBindEditTextListener {
  20. it.inputType = InputType.TYPE_CLASS_NUMBER
  21. }
  22. durationBeforeSleep?.summaryProvider = EditTextPreference.SimpleSummaryProvider.getInstance()
  23. durationBeforeSleep?.setOnPreferenceChangeListener {_, newValue ->
  24. val time = Integer.parseInt(newValue as String)
  25. if (time > 0)
  26. {
  27. RadioSleeper.instance.setSleep(context!!, isForce = true, forceDuration = time.toLong())
  28. isSleeping?.isChecked = true
  29. true
  30. } else {
  31. false
  32. }
  33. }
  34. }
  35. }