diff --git a/app/src/main/java/com/example/login_v3/data/api/api_class/FriendRequest.kt b/app/src/main/java/com/example/login_v3/data/api/api_class/FriendRequest.kt index 53a72f9..01661a6 100644 --- a/app/src/main/java/com/example/login_v3/data/api/api_class/FriendRequest.kt +++ b/app/src/main/java/com/example/login_v3/data/api/api_class/FriendRequest.kt @@ -11,20 +11,20 @@ data class FriendListResponse( @JsonClass(generateAdapter = true) data class Friend( @field:Json(name = "friend_id") - val friendId: String, + val friendId: String?, // 改為 String? - val username: String, + val username: String?, // 建議 username 也改可空 @field:Json(name = "display_name") - val displayName: String, + val displayName: String?, @field:Json(name = "avatar_url") - val avatarUrl: String?, // 建議給可空性,避免後端沒傳頭像時崩潰 + val avatarUrl: String?, - val status: String, + val status: String?, @field:Json(name = "accepted_at") - val acceptedAt: String + val acceptedAt: String? ) val Friend.fullFriendsAvatarUrl: Any get() = if (avatarUrl.isNullOrBlank()) { @@ -47,28 +47,28 @@ data class PendingFriendsResponse( @JsonClass(generateAdapter = true) data class PendingFriendApiModel( @field:Json(name = "friendship_id") - val friendshipId: String, + val friendshipId: String?, - val username: String, + val username: String?, @field:Json(name = "display_name") val displayName: String, @field:Json(name = "avatar_url") - val PendingAvatarUrl: String?, + val pendingAvatarUrl: String?, @field:Json(name = "from_user_id") - val fromUserId: String, + val fromUserId: String?, @field:Json(name = "created_at") - val createdAt: String + val createdAt: String? ) val PendingFriendApiModel.fullPendingAvatarUrl: Any - get() = if (PendingAvatarUrl.isNullOrBlank()) { + get() = if (pendingAvatarUrl.isNullOrBlank()) { R.drawable.avatar_v1 - } else if (PendingAvatarUrl.startsWith("http")) { - PendingAvatarUrl + } else if (pendingAvatarUrl.startsWith("http")) { + pendingAvatarUrl } else { - "http://192.168.0.217$PendingAvatarUrl" + "http://192.168.0.217$pendingAvatarUrl" } diff --git a/app/src/main/java/com/example/login_v3/home/Message/UI/Detail/Message_contact_list.kt b/app/src/main/java/com/example/login_v3/home/Message/UI/Detail/Message_contact_list.kt index 0735b5a..c50f29a 100644 --- a/app/src/main/java/com/example/login_v3/home/Message/UI/Detail/Message_contact_list.kt +++ b/app/src/main/java/com/example/login_v3/home/Message/UI/Detail/Message_contact_list.kt @@ -111,8 +111,8 @@ fun Message_contact_list( } } } else { - items(uiState.friends) { friend -> - FriendRow(friend) + items(uiState.friends) { friends -> + FriendRow(friends) } } } @@ -122,8 +122,8 @@ fun Message_contact_list( @Composable fun FriendRow(friend: Friend) { ListItem( - headlineContent = { Text(friend.displayName) }, - supportingContent = { Text("@${friend.username}") }, + headlineContent = { Text(friend.displayName ?: "未知用戶") }, + supportingContent = { Text("@${friend.username ?: "unknown"}") }, leadingContent = { // 使用 Coil 載入頭像 AsyncImage( @@ -138,9 +138,10 @@ fun FriendRow(friend: Friend) { ) }, trailingContent = { + val statusText = friend.status ?: "offline" // 簡單顯示狀態 Text( - text = friend.status, + text = statusText, style = MaterialTheme.typography.labelSmall, color = if (friend.status == "online") Color.Green else Color.Gray )