File tree Expand file tree Collapse file tree
app/src/main/java/com/meenbeese/chronos Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -6,6 +6,7 @@ import android.os.Build
66
77import androidx.lifecycle.LiveData
88import androidx.lifecycle.MutableLiveData
9+ import androidx.lifecycle.Observer
910
1011import com.meenbeese.chronos.data.AlarmData
1112import com.meenbeese.chronos.data.Preferences
@@ -29,17 +30,23 @@ class TimerAlarmRepository(
2930 private val _timers = MutableLiveData <List <TimerData >>(emptyList())
3031 val timers: LiveData <List <TimerData >> get() = _timers
3132
33+ private val alarmObserver = Observer <List <AlarmEntity >> { entities ->
34+ _alarms .postValue(
35+ entities.map { it.toData() }
36+ )
37+ }
38+
3239 init {
3340 observeAlarms()
3441 loadTimers()
3542 }
3643
3744 private fun observeAlarms () {
38- alarmRepository.getAll().observeForever { entities ->
39- _alarms .postValue(
40- entities.map { it.toData() }
41- )
42- }
45+ alarmRepository.getAll().observeForever(alarmObserver)
46+ }
47+
48+ fun clear () {
49+ alarmRepository.getAll().removeObserver(alarmObserver)
4350 }
4451
4552 suspend fun insertAlarm (alarm : AlarmEntity ): Long {
Original file line number Diff line number Diff line change @@ -8,12 +8,13 @@ import com.meenbeese.chronos.db.TimerAlarmRepository
88import com.meenbeese.chronos.utils.MediaManager
99
1010import org.koin.dsl.module
11+ import org.koin.dsl.onClose
1112
1213@UnstableApi
1314val appModule = module {
1415 single { MediaManager (get()) }
1516 single { AlarmDatabase .getDatabase(get()) }
1617 single { get<AlarmDatabase >().alarmDao() }
1718 single { AlarmRepository (get()) }
18- single { TimerAlarmRepository (get(), get()) }
19+ single { TimerAlarmRepository (get(), get()) } onClose { it?.clear() }
1920}
You can’t perform that action at this time.
0 commit comments