Added superclass viewmodel
This commit is contained in:
parent
e3c54ce116
commit
30cfdd2c96
1 changed files with 23 additions and 0 deletions
|
@ -0,0 +1,23 @@
|
|||
package be.ugent.sel.studeez.screens
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import be.ugent.sel.studeez.common.snackbar.SnackbarManager
|
||||
import be.ugent.sel.studeez.common.snackbar.SnackbarMessage.Companion.toSnackbarMessage
|
||||
import be.ugent.sel.studeez.domain.LogService
|
||||
import kotlinx.coroutines.CoroutineExceptionHandler
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
open class StudeezViewModel(private val logService: LogService) : ViewModel() {
|
||||
fun launchCatching(snackbar: Boolean = true, block: suspend CoroutineScope.() -> Unit) =
|
||||
viewModelScope.launch(
|
||||
CoroutineExceptionHandler { _, throwable ->
|
||||
if (snackbar) {
|
||||
SnackbarManager.showMessage(throwable.toSnackbarMessage())
|
||||
}
|
||||
logService.logNonFatalCrash(throwable)
|
||||
},
|
||||
block = block
|
||||
)
|
||||
}
|
Reference in a new issue