Refactor ViewModel teardown

Remove never called onDestroy from LifecycleObserver, dismiss notification in ViewModel onCleared instead, if necessary
This commit is contained in:
Maxr1998
2020-09-09 17:35:08 +02:00
parent 06c5ed4076
commit 4585634c30
2 changed files with 3 additions and 9 deletions
@@ -22,10 +22,4 @@ class PlayerLifecycleObserver(private val viewModel: PlayerViewModel) : Lifecycl
viewModel.notificationHelper.postNotification()
} else viewModel.pause()
}
@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
fun onDestroy() {
viewModel.notificationHelper.dismissNotification()
viewModel.releasePlayer()
}
}
@@ -107,7 +107,7 @@ class PlayerViewModel(application: Application) : AndroidViewModel(application),
/**
* Release the current ExoPlayer and stop/release the current MediaSession
*/
fun releasePlayer() {
private fun releasePlayer() {
mediaSession.isActive = false
mediaSession.release()
val playerState = playerOrNull?.let { player ->
@@ -256,8 +256,8 @@ class PlayerViewModel(application: Application) : AndroidViewModel(application),
}
override fun onCleared() {
super.onCleared()
releasePlayer()
ProcessLifecycleOwner.get().lifecycle.removeObserver(lifecycleObserver)
notificationHelper.dismissNotification()
releasePlayer()
}
}