From 18851cf7a1b26d476e87e4aa3f402e1ad7960dbe Mon Sep 17 00:00:00 2001 From: moon <56061215+MgKyawLay@users.noreply.github.com> Date: Wed, 10 Jun 2026 13:25:38 +0630 Subject: [PATCH] tms config download page --- .../utsmyanmar/ui/tms_setup/TmsSetupScreen.kt | 16 +++++++++-- .../ui/tms_setup/TmsSetupViewModel.kt | 27 ++++++++++++++++++- .../mob/utsmyanmar/utils/tms/TMSSetupsImpl.kt | 2 -- 3 files changed, 40 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/mob/utsmyanmar/ui/tms_setup/TmsSetupScreen.kt b/app/src/main/java/com/mob/utsmyanmar/ui/tms_setup/TmsSetupScreen.kt index 3a0e601..f2c9f9f 100644 --- a/app/src/main/java/com/mob/utsmyanmar/ui/tms_setup/TmsSetupScreen.kt +++ b/app/src/main/java/com/mob/utsmyanmar/ui/tms_setup/TmsSetupScreen.kt @@ -22,6 +22,7 @@ import androidx.compose.material3.CardDefaults import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.Icon import androidx.compose.material3.LinearProgressIndicator +import androidx.compose.material3.OutlinedButton import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -49,14 +50,16 @@ fun TmsSetupRoute( TmsSetupScreen( state = state, - onRetry = viewModel::downloadConfigs + onRetry = viewModel::downloadConfigs, + onSkip = viewModel::skipDownload ) } @Composable fun TmsSetupScreen( state: TmsSetupUiState, - onRetry: () -> Unit + onRetry: () -> Unit, + onSkip: () -> Unit ) { Box( modifier = Modifier @@ -155,6 +158,15 @@ fun TmsSetupScreen( ) Text(text = "Retry", fontSize = 16.sp) } + + OutlinedButton( + onClick = onSkip, + modifier = Modifier.fillMaxWidth(), + shape = RoundedCornerShape(12.dp), + colors = ButtonDefaults.outlinedButtonColors(contentColor = AppColor.LegacyRed) + ) { + Text(text = "Skip", fontSize = 16.sp) + } } } } diff --git a/app/src/main/java/com/mob/utsmyanmar/ui/tms_setup/TmsSetupViewModel.kt b/app/src/main/java/com/mob/utsmyanmar/ui/tms_setup/TmsSetupViewModel.kt index 0e92f3c..886252b 100644 --- a/app/src/main/java/com/mob/utsmyanmar/ui/tms_setup/TmsSetupViewModel.kt +++ b/app/src/main/java/com/mob/utsmyanmar/ui/tms_setup/TmsSetupViewModel.kt @@ -87,7 +87,7 @@ class TmsSetupViewModel @Inject constructor( isLoading = false, isError = true, statusText = "Download failed", - errorMessage = error.message ?: "Network error" + errorMessage = formatNetworkError(error) ) } } @@ -122,6 +122,31 @@ class TmsSetupViewModel @Inject constructor( } } + fun skipDownload() { + viewModelScope.launch { _navigateToDashboard.emit(Unit) } + } + + private fun formatNetworkError(error: Throwable): String { + return when (error) { + is javax.net.ssl.SSLHandshakeException -> + "SSL handshake failed: ${error.message ?: "Certificate or protocol mismatch"}" + is javax.net.ssl.SSLException -> + "SSL/TLS error: ${error.message ?: "Secure connection could not be established"}" + is java.security.cert.CertificateException -> + "Server certificate error: ${error.message ?: "Certificate is invalid or untrusted"}" + is java.net.UnknownHostException -> + "Host not found: ${error.message ?: "Check server URL and network connection"}" + is java.net.ConnectException -> + "Connection refused: ${error.message ?: "Server is unreachable"}" + is java.net.SocketTimeoutException -> + "Connection timed out: ${error.message ?: "Server did not respond in time"}" + is retrofit2.HttpException -> + "HTTP ${error.code()} ${error.message()}" + else -> + error.message ?: "Unknown network error" + } + } + @SuppressLint("MissingPermission") private fun buildRequest(): SiriusRequest { return try { diff --git a/app/src/main/java/com/mob/utsmyanmar/utils/tms/TMSSetupsImpl.kt b/app/src/main/java/com/mob/utsmyanmar/utils/tms/TMSSetupsImpl.kt index dd4b6b6..e340302 100644 --- a/app/src/main/java/com/mob/utsmyanmar/utils/tms/TMSSetupsImpl.kt +++ b/app/src/main/java/com/mob/utsmyanmar/utils/tms/TMSSetupsImpl.kt @@ -143,11 +143,9 @@ class TMSSetupsImpl : TMSSetups { "carousel_img_4", "carousel_img_5", "carousel_img_6" -> imgUrls.add(data) - //host "host_timeout", "host_connect_timeout" -> ops.hostResponseTimeout = data - "host_read_timeout" -> ops.hostReadTimeout = data "reversal_delay" -> ops.reversalDelay = data "key_index" -> ops.tmkIndex = data