From e64b4a05b5e263a585025b6f91bbe0507e93dc3c Mon Sep 17 00:00:00 2001 From: Eric85710 Date: Fri, 15 May 2026 18:09:51 +0800 Subject: [PATCH] dm-7 --- .../login_v3/home/Message/UI/Message.kt | 38 +++++++++---------- .../Message/ViewModel/Message_ViewModel.kt | 9 ++++- 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/example/login_v3/home/Message/UI/Message.kt b/app/src/main/java/com/example/login_v3/home/Message/UI/Message.kt index cffca71..1a8e4bf 100644 --- a/app/src/main/java/com/example/login_v3/home/Message/UI/Message.kt +++ b/app/src/main/java/com/example/login_v3/home/Message/UI/Message.kt @@ -255,7 +255,7 @@ fun Loaded_Tg_Message( modifier = Modifier .fillMaxSize() ) { - Spacer(modifier = Modifier.height(20.dp)) + Spacer(modifier = Modifier.height(10.dp)) if (rooms.isEmpty()) { // 顯示空狀態或 Loading (這部分可根據需求擴充) @@ -381,6 +381,8 @@ fun RoomItem( overflow = TextOverflow.Ellipsis ) + Spacer(modifier = Modifier.width(6.dp)) + if (room.unreadCount > 0) { Badge( containerColor = Color(0xFFDA7029), // 使用你的主橘色 @@ -397,27 +399,23 @@ fun RoomItem( Spacer(modifier = Modifier.width(2.dp)) } - // 3. 右側:時間與未讀計數 - Column( - verticalArrangement = Arrangement.Center - ) { - val partner = room.partner // 先從 room 取得 partner - if (partner != null) { - val status = UserStatus.fromString(partner.status) - if (status != UserStatus.UNKNOWN) { - Canvas( - modifier = Modifier - .size(14.dp) - // 注意:在 Column 中 Alignment.BottomEnd 可能不適用 - // 如果你要讓點跟在文字旁邊,建議用 Box 或是調整 Alignment - .border(2.dp, Color.White, CircleShape) - ) { - drawCircle(color = status.color) - } - } + + //online status + val partner = room.partner // 先從 room 取得 partner + if (partner != null) { + val status = UserStatus.fromString(partner.status) + if (status != UserStatus.UNKNOWN) { + Box( + modifier = Modifier + .size(14.dp) + .background(status.color, CircleShape) // 直接設定圓形背景 + .border(2.dp, Color.White, CircleShape) // 白色外圈邊線 + ) } } + + Spacer(modifier = Modifier.width(10.dp)) } @@ -441,4 +439,4 @@ enum class UserStatus(val color: Color) { } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/example/login_v3/home/Message/ViewModel/Message_ViewModel.kt b/app/src/main/java/com/example/login_v3/home/Message/ViewModel/Message_ViewModel.kt index 4caa370..de4b178 100644 --- a/app/src/main/java/com/example/login_v3/home/Message/ViewModel/Message_ViewModel.kt +++ b/app/src/main/java/com/example/login_v3/home/Message/ViewModel/Message_ViewModel.kt @@ -27,9 +27,14 @@ class ChatRoomsViewModel @Inject constructor( val result = repository.fetchRooms() result.onSuccess { response -> _roomsState.value = response.rooms + + // 打印偵錯訊息 + response.rooms.forEach { room -> + val status = room.partner?.status + val name = room.partner?.displayName + } }.onFailure { error -> - // 這裡非常重要! - Log.e("Technologia", "讀取失敗!原因:${error.message}", error) + Log.e("ChatRoomsViewModel", "Fetch failed", error) } } }