diff --git a/app/src/main/java/com/example/medilightv2android/ui/views/clinical/ClinicalHomeView.kt b/app/src/main/java/com/example/medilightv2android/ui/views/clinical/ClinicalHomeView.kt index 7dbf865..340c1c9 100644 --- a/app/src/main/java/com/example/medilightv2android/ui/views/clinical/ClinicalHomeView.kt +++ b/app/src/main/java/com/example/medilightv2android/ui/views/clinical/ClinicalHomeView.kt @@ -84,6 +84,7 @@ fun ClinicalHomeView(appState: AppState) { mutableStateOf(lastFolder?.let { LabdbUploader.lastError(it) }) } var uploadBusy by remember { mutableStateOf(false) } + var showUnpairConfirm by remember { mutableStateOf(false) } // 진입 시 status 자동 확인 (apiKey 있을 때만) LaunchedEffect(Unit) { @@ -151,6 +152,10 @@ fun ClinicalHomeView(appState: AppState) { fontWeight = FontWeight.SemiBold) } } + OutlinedButton( + onClick = { showUnpairConfirm = true }, + colors = ButtonDefaults.outlinedButtonColors(contentColor = Color(0xFFE53935)) + ) { Text("Unpair", fontSize = 12.sp) } } else { Text("BLE Not Connected", fontWeight = FontWeight.Bold, fontSize = 14.sp, color = Color(0xFFFF9800), modifier = Modifier.weight(1f)) @@ -441,6 +446,24 @@ fun ClinicalHomeView(appState: AppState) { Text("저장 위치: Downloads/VesiScan_Sessions/", fontSize = 10.sp, color = MlSecondaryText) } + + if (showUnpairConfirm) { + AlertDialog( + onDismissRequest = { showUnpairConfirm = false }, + title = { Text("Delete pairing?") }, + text = { Text("기기 본딩을 삭제하고 연결을 끊습니다. 다음 측정 시 다시 페어링이 필요합니다.") }, + confirmButton = { + TextButton(onClick = { + showUnpairConfirm = false + bleManager.disconnectAndUnbond() + Toast.makeText(context, "Unpaired", Toast.LENGTH_SHORT).show() + }) { Text("Delete", color = Color.Red) } + }, + dismissButton = { + TextButton(onClick = { showUnpairConfirm = false }) { Text("Cancel") } + } + ) + } } @Composable