fix: server visually stays when deleted + crash

This commit is contained in:
Jarne Demeulemeester 2023-09-25 22:22:34 +02:00
parent 0512d89bee
commit c43087b1a8
No known key found for this signature in database
GPG key ID: 1E5C6AFBD622E9F5

View file

@ -37,11 +37,15 @@ constructor(
init { init {
viewModelScope.launch { viewModelScope.launch {
val servers = database.getAllServersSync() loadServers()
_uiState.emit(UiState.Normal(servers))
} }
} }
private suspend fun loadServers() {
val servers = database.getAllServersSync()
_uiState.emit(UiState.Normal(servers))
}
/** /**
* Delete server from database * Delete server from database
* *
@ -50,12 +54,13 @@ constructor(
fun deleteServer(server: Server) { fun deleteServer(server: Server) {
viewModelScope.launch(Dispatchers.IO) { viewModelScope.launch(Dispatchers.IO) {
database.delete(server.id) database.delete(server.id)
loadServers()
} }
} }
fun connectToServer(server: Server) { fun connectToServer(server: Server) {
viewModelScope.launch { viewModelScope.launch {
val serverWithAddressesAndUsers = database.getServerWithAddressesAndUsers(server.id)!! val serverWithAddressesAndUsers = database.getServerWithAddressesAndUsers(server.id) ?: return@launch
val serverAddress = serverWithAddressesAndUsers.addresses.firstOrNull { it.id == server.currentServerAddressId } ?: return@launch val serverAddress = serverWithAddressesAndUsers.addresses.firstOrNull { it.id == server.currentServerAddressId } ?: return@launch
val user = serverWithAddressesAndUsers.users.firstOrNull { it.id == server.currentUserId } ?: return@launch val user = serverWithAddressesAndUsers.users.firstOrNull { it.id == server.currentUserId } ?: return@launch