UI: polish model management screen's error dialog

This commit is contained in:
Han Yin 2025-07-11 12:28:23 -07:00
parent 712bc745df
commit 7c3e477939
2 changed files with 12 additions and 6 deletions

View File

@ -19,11 +19,11 @@ import androidx.compose.foundation.lazy.items
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Attribution import androidx.compose.material.icons.filled.Attribution
import androidx.compose.material.icons.filled.Download import androidx.compose.material.icons.filled.Download
import androidx.compose.material.icons.filled.Error
import androidx.compose.material.icons.filled.Favorite import androidx.compose.material.icons.filled.Favorite
import androidx.compose.material.icons.filled.FolderOpen import androidx.compose.material.icons.filled.FolderOpen
import androidx.compose.material.icons.filled.Today import androidx.compose.material.icons.filled.Today
import androidx.compose.material3.AlertDialog import androidx.compose.material3.AlertDialog
import androidx.compose.material3.Button
import androidx.compose.material3.Card import androidx.compose.material3.Card
import androidx.compose.material3.CardDefaults import androidx.compose.material3.CardDefaults
import androidx.compose.material3.Checkbox import androidx.compose.material3.Checkbox
@ -666,10 +666,16 @@ private fun ErrorDialog(
) { ) {
AlertDialog( AlertDialog(
onDismissRequest = onDismiss, onDismissRequest = onDismiss,
title = { Text(title) }, text = {
text = { Text(message) }, InfoView(
modifier = Modifier.fillMaxWidth(),
title = title,
icon = Icons.Default.Error,
message = message,
)
},
confirmButton = { confirmButton = {
Button(onClick = onDismiss) { TextButton(onClick = onDismiss) {
Text("OK") Text("OK")
} }
} }

View File

@ -262,10 +262,10 @@ class ModelsManagementViewModel @Inject constructor(
_managementState.value = Download.Error(message = "No internet connection") _managementState.value = Download.Error(message = "No internet connection")
} catch (_: SocketTimeoutException) { } catch (_: SocketTimeoutException) {
_managementState.value = Download.Error(message = "Connection timed out") _managementState.value = Download.Error(message = "Connection timed out")
} catch (e: IOException) {
_managementState.value = Download.Error(message = "Network error: ${e.message}")
} catch (_: FileNotFoundException) { } catch (_: FileNotFoundException) {
_managementState.emit(Download.Error(message = "No eligible models")) _managementState.emit(Download.Error(message = "No eligible models"))
} catch (e: IOException) {
_managementState.value = Download.Error(message = "Network error: ${e.message}")
} catch (e: Exception) { } catch (e: Exception) {
_managementState.emit(Download.Error(message = e.message ?: "Unknown error")) _managementState.emit(Download.Error(message = e.message ?: "Unknown error"))
} }