auth to server-V88

This commit is contained in:
Eric85710 2026-05-11 16:28:21 +08:00
parent bcb92ff242
commit 1660ca4de4

View file

@ -1,9 +1,13 @@
package com.example.login_v3.home.Message.UI.Detail
import android.util.Log
import androidx.compose.animation.animateContentSize
import androidx.compose.animation.core.Spring
import androidx.compose.animation.core.spring
import androidx.compose.foundation.background
import androidx.compose.foundation.border
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
@ -21,14 +25,23 @@ import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.text.KeyboardActions
import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.filled.Chat
import androidx.compose.material.icons.filled.Call
import androidx.compose.material.icons.filled.Chat
import androidx.compose.material.icons.filled.Check
import androidx.compose.material.icons.filled.Close
import androidx.compose.material.icons.filled.ExpandLess
import androidx.compose.material.icons.filled.ExpandMore
import androidx.compose.material.icons.filled.MoreHoriz
import androidx.compose.material.icons.filled.Person
import androidx.compose.material.icons.filled.PersonAdd
import androidx.compose.material.icons.filled.Search
import androidx.compose.material.icons.filled.VideoCall
import androidx.compose.material3.Button
import androidx.compose.material3.Card
import androidx.compose.material3.CardDefaults
import androidx.compose.material3.CircularProgressIndicator
import androidx.compose.material3.Divider
import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
@ -130,7 +143,7 @@ fun Message_contact_list(
onAddFriend = { contactListViewModel.sendFriendRequest(user.id) }
)
}
item { Spacer(modifier = Modifier.height(40.dp)) }
item { Spacer(modifier = Modifier.height(60.dp)) }
}
@ -205,6 +218,9 @@ fun FriendRow(
friend: Friend,
onClick: () -> Unit = {} // 建議加入點擊事件,例如跳轉聊天室
) {
// 1. 定義展開狀態
var isExpanded by remember { mutableStateOf(false) }
// 定義狀態顏色
val statusColor = when (friend.status?.lowercase()) {
"online" -> Color(0xFF4CAF50) // 鮮豔的綠色
@ -216,13 +232,26 @@ fun FriendRow(
modifier = Modifier
.fillMaxWidth()
.padding(vertical = 4.dp, horizontal = 2.dp) // 外間距
.clickable(onClick = onClick),
.animateContentSize(
animationSpec = spring(
dampingRatio = Spring.DampingRatioLowBouncy,
stiffness = Spring.StiffnessLow
)
)
.clickable {
isExpanded = !isExpanded // 點擊切換展開/縮合
// 如果原本的 onClick 還有其他用途(如跳轉)可以保留
// onClick()
}
,
shape = RoundedCornerShape(12.dp), // 圓角
colors = CardDefaults.cardColors(
containerColor = MaterialTheme.colorScheme.primary // 使用 Surface 顏色
),
elevation = CardDefaults.cardElevation(defaultElevation = 0.dp)
) {
Column() {
Row(
modifier = Modifier
.padding(16.dp) // 內邊距
@ -302,6 +331,41 @@ fun FriendRow(
Spacer(modifier = Modifier.width(10.dp))
}
// 3. 展開後才顯示的五個內容按鈕
if (isExpanded) {
Divider(
modifier = Modifier.padding(horizontal = 16.dp),
thickness = 0.5.dp,
color = MaterialTheme.colorScheme.outlineVariant
)
Row(
modifier = Modifier
.fillMaxWidth()
.padding(8.dp),
horizontalArrangement = Arrangement.SpaceEvenly // 均勻分佈
) {
val icons = listOf(
Icons.Default.Chat,
Icons.Default.Call,
Icons.Default.VideoCall,
Icons.Default.Person,
Icons.Default.MoreHoriz
)
icons.forEach { icon ->
IconButton(onClick = { /* 執行功能 */ }) {
Icon(
imageVector = icon,
contentDescription = null,
tint = MaterialTheme.colorScheme.primary
)
}
}
}
}
}
}
}