From 160247d05f01821ec1525ec5257060931105976b Mon Sep 17 00:00:00 2001 From: Eric85710 Date: Tue, 5 May 2026 17:04:42 +0800 Subject: [PATCH] auth to server-V53 --- .../login_v3/data/api/api_class/Personal_Profile.kt | 11 ++++++++++- .../detail_UI/setting_Profile_Page.kt | 7 +++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/example/login_v3/data/api/api_class/Personal_Profile.kt b/app/src/main/java/com/example/login_v3/data/api/api_class/Personal_Profile.kt index 23f46ba..60bc82d 100644 --- a/app/src/main/java/com/example/login_v3/data/api/api_class/Personal_Profile.kt +++ b/app/src/main/java/com/example/login_v3/data/api/api_class/Personal_Profile.kt @@ -29,11 +29,20 @@ data class UserProfileUpdateRequest( val status: String? = null ) -val UserProfile.fullAvatarUrl: Any? +val UserProfile.fullAvatarUrl: Any get() = if (avatar_url.isNullOrBlank()) { R.drawable.avatar_v1 // 如果沒網址,直接回傳預設圖片資源 } else if (avatar_url.startsWith("http")) { avatar_url // 已經是完整網址就直接用 } else { "http://192.168.0.217$avatar_url" // 否則補上 Base URL + } + +val UserProfile.fullBannerUrl: Any + get() = if (banner_url.isNullOrBlank()) { + R.drawable.thumbnail_v1 // 如果沒網址,直接回傳預設圖片資源 + } else if (banner_url.startsWith("http")) { + banner_url // 已經是完整網址就直接用 + } else { + "http://192.168.0.217$banner_url" // 否則補上 Base URL } \ No newline at end of file diff --git a/app/src/main/java/com/example/login_v3/home/setting/setting_detail_page/detail_UI/setting_Profile_Page.kt b/app/src/main/java/com/example/login_v3/home/setting/setting_detail_page/detail_UI/setting_Profile_Page.kt index 6fdb43c..8978e5c 100644 --- a/app/src/main/java/com/example/login_v3/home/setting/setting_detail_page/detail_UI/setting_Profile_Page.kt +++ b/app/src/main/java/com/example/login_v3/home/setting/setting_detail_page/detail_UI/setting_Profile_Page.kt @@ -165,11 +165,14 @@ fun Loaded_setting_profile_page( ){ // 1. 封面圖 (背景) AsyncImage( - model = profile.banner_url, + model = profile.fullAvatarUrl, contentDescription = "Avatar of ${profile.display_name}", modifier = Modifier .fillMaxWidth() .height(180.dp) + .clickable { + bannerLauncher.launch(PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageOnly)) + } , contentScale = ContentScale.Crop, error = painterResource(R.drawable.thumbnail_v1) @@ -347,7 +350,7 @@ fun Loaded_setting_profile_page( if (activeEditTarget != null) { AlertDialog( onDismissRequest = { activeEditTarget = null }, - containerColor = MaterialTheme.colorScheme.primary, + containerColor = Color.White, title = { Text(activeEditTarget?.title ?: "") }, text = { TextField(