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
	
	 lbarraga
						lbarraga