auth to server-V68
This commit is contained in:
parent
4948388928
commit
a9a17915c5
2 changed files with 21 additions and 20 deletions
|
|
@ -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"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in a new issue