auth to server-V68

This commit is contained in:
Eric85710 2026-05-07 17:25:37 +08:00
parent 4948388928
commit a9a17915c5
2 changed files with 21 additions and 20 deletions

View file

@ -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"
}

View file

@ -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
)