From 949d4ca6f2ffb284666e94bbef0aaf379de84db3 Mon Sep 17 00:00:00 2001 From: xiaoe Date: Thu, 4 Dec 2025 10:25:04 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=9A=E6=97=B6=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../initiateaphonecallapp/MainActivity.kt | 15 ++++++++---- .../data/model/CallRecordUploadRequest.kt | 4 ++-- .../manager/CallRecordManager.kt | 23 ++++++++++++++++--- .../ui/home/HomeScreen.kt | 2 +- 4 files changed, 33 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/example/initiateaphonecallapp/MainActivity.kt b/app/src/main/java/com/example/initiateaphonecallapp/MainActivity.kt index 4289c0a..d39ae1d 100644 --- a/app/src/main/java/com/example/initiateaphonecallapp/MainActivity.kt +++ b/app/src/main/java/com/example/initiateaphonecallapp/MainActivity.kt @@ -90,19 +90,24 @@ class MainActivity : ComponentActivity() { } ) - if (false) { - LoginScreen( + // 添加一个可切换状态 + var isSmsLogin by remember { mutableStateOf(true) } + if (isSmsLogin) { + // 验证码登录 + LoginSmsScreen( onLoginSuccess = { token -> - // 登录成功后跳转到主页,并传递 token navController.navigate("main/$token") { popUpTo("login") { inclusive = true } } + }, + onSwitchToPasswordLogin = { + isSmsLogin = false // 切换到密码登录 } ) } else { - LoginSmsScreen( + // 密码登录 + LoginScreen( onLoginSuccess = { token -> - // 登录成功后跳转到主页,并传递 token navController.navigate("main/$token") { popUpTo("login") { inclusive = true } } diff --git a/app/src/main/java/com/example/initiateaphonecallapp/data/model/CallRecordUploadRequest.kt b/app/src/main/java/com/example/initiateaphonecallapp/data/model/CallRecordUploadRequest.kt index 1e04ad8..217e058 100644 --- a/app/src/main/java/com/example/initiateaphonecallapp/data/model/CallRecordUploadRequest.kt +++ b/app/src/main/java/com/example/initiateaphonecallapp/data/model/CallRecordUploadRequest.kt @@ -27,8 +27,8 @@ data class CallRecordUploadRequest( return CallRecordUploadRequest( phone = callRecord.phoneNumber, duration = callRecord.duration, - status = callRecord.status == CallStatus.COMPLETED, // 根据你的业务逻辑调整 - fileUrl = audioFileUrl ?: callRecord.audioFileUri, + status = audioFileUrl != null, + fileUrl = audioFileUrl, createTime = formatDateTimeForApi(callRecord.startTime) ) } diff --git a/app/src/main/java/com/example/initiateaphonecallapp/manager/CallRecordManager.kt b/app/src/main/java/com/example/initiateaphonecallapp/manager/CallRecordManager.kt index c29090f..1f3db66 100644 --- a/app/src/main/java/com/example/initiateaphonecallapp/manager/CallRecordManager.kt +++ b/app/src/main/java/com/example/initiateaphonecallapp/manager/CallRecordManager.kt @@ -178,6 +178,24 @@ object CallRecordManager { println(" 🕐 修改时间: ${latestFile.dateModified}") println(" 📊 文件大小: ${latestFile.size} 字节") + // 判断latestFile文件名是否匹配callRecord.phoneNumber + val fileNameLower = latestFile.displayName.lowercase() + val phoneLower = callRecord.phoneNumber.lowercase() + + if (!fileNameLower.contains(phoneLower)) { + println("⚠️ 最新录音文件与当前手机号不匹配,忽略此文件") + println(" ❌ 文件名: ${latestFile.displayName}") + println(" ❌ 不包含号码: ${callRecord.phoneNumber}") + + // 上传没有录音的通话记录 + _recentCall.value = callRecord.copy( + audioFileName = null, + audioFileUri = null + ) + uploadCallRecord(callRecord) + return + } + // 创建 SelectedAudioFile val selectedAudioFile = SelectedAudioFile( uri = latestFile.contentUri, @@ -313,9 +331,8 @@ object CallRecordManager { println("🚀 CallRecordManager: 开始真实上传流程") println(" 📍 通话状态: ${callRecord.status}") println(" 🎵 是否有录音文件: ${callRecord.audioFileName != null}") - - // 根据通话状态决定上传方式 - val success = if (callRecord.status == CallStatus.CONNECTED && callRecord.audioFileName != null) { + // 根据是否有录音判断通话状态 + val success = if (callRecord.audioFileName != null) { // 已接通且有录音文件:上传完整记录(包含录音) repository.uploadCallRecordWithAudio(callRecord) } else { diff --git a/app/src/main/java/com/example/initiateaphonecallapp/ui/home/HomeScreen.kt b/app/src/main/java/com/example/initiateaphonecallapp/ui/home/HomeScreen.kt index 42c05bb..0400627 100644 --- a/app/src/main/java/com/example/initiateaphonecallapp/ui/home/HomeScreen.kt +++ b/app/src/main/java/com/example/initiateaphonecallapp/ui/home/HomeScreen.kt @@ -347,7 +347,7 @@ fun HomeScreen( Text("🕐 开始时间: ${call.formattedStartTime}") Text("🕐 结束时间: ${call.formattedEndTime}") Text("⏱️ 时长: ${call.formattedDuration}") - Text("🎵 音频文件: ${call.audioFileName ?: "自动查找中..."}") + Text("🎵 音频文件: ${call.audioFileName ?: "无录音文件"}") Text("📍 状态: ${call.status}") Text( text = if (call.uploaded) "✅ 已上传" else "⏳ ${if (call.audioFileName != null) "准备上传" else "查找文件中"}",