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