auth to server-V5

This commit is contained in:
Eric85710 2026-04-27 19:36:30 +08:00
parent 299e4c2d1d
commit 880db5b251
4 changed files with 37 additions and 13 deletions

View file

@ -31,7 +31,7 @@ class MainActivity : ComponentActivity() {
val currentAppTheme by themeViewModel.currentTheme.collectAsState()
Login_V3Theme(appTheme = currentAppTheme) {
Technologia()
HealthCheckScreen()
}
}
}

View file

@ -1,10 +1,12 @@
package com.example.login_v3.auth
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import com.example.login_v3.data.health.HealthCheckViewModel
@ -27,17 +29,28 @@ fun HealthCheckScreen(
horizontalAlignment = Alignment.CenterHorizontally
) {
//health
Text(text = "API Health", style = MaterialTheme.typography.titleLarge)
Text(
text = "API Health",
style = MaterialTheme.typography.titleLarge,
color = Color.Gray
)
Spacer(modifier = Modifier.height(16.dp))
// 顯示狀態
Text(text = "Status: $status", style = MaterialTheme.typography.bodyLarge)
Text(
text = "Status: $status",
style = MaterialTheme.typography.bodyLarge,
color = Color.Gray
)
Spacer(modifier = Modifier.height(8.dp))
// 顯示詳細訊息
Text(text = detail, style = MaterialTheme.typography.bodyMedium)
Text(text = detail,
style = MaterialTheme.typography.bodyMedium,
color = Color.Gray
)
Spacer(modifier = Modifier.height(20.dp))
@ -48,16 +61,23 @@ fun HealthCheckScreen(
}
Row {
Button(onClick = { viewModel.checkApiHealth() }) {
Button(
onClick = { viewModel.checkApiHealth() },
modifier = Modifier
.background(color = Color.Gray)
) {
Text("Check Health")
}
Spacer(modifier = Modifier.width(12.dp))
OutlinedButton(onClick = {
// 若需要重置狀態,可在 ViewModel 加一個 reset 方法,或直接呼叫 repository 前先改狀態
}) {
Text("Reset")
OutlinedButton(
onClick = {}
) {
Text(
text = "reset",
color = Color.Gray
)
}
}
}

View file

@ -1,12 +1,13 @@
package com.example.login_v3.data.api.api_class
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true)
data class LoginRequest(
val username: String,
val password: String
)
@JsonClass(generateAdapter = true)
data class LoginResponse(
val token: String,
val userId: String
@ -14,7 +15,7 @@ data class LoginResponse(
@JsonClass(generateAdapter = true)
data class RegisterRequest(
val display_name: String,
@Json(name = "display_name") val displayName: String, // 將 JSON 的底線對應到 Kotlin 的駝峰
val email: String,
val password: String,
val username: String

View file

@ -1,9 +1,12 @@
package com.example.login_v3.data.api.api_class
import com.squareup.moshi.JsonClass
@JsonClass(generateAdapter = true)
data class FriendRequest(
val friendId: String
)
@JsonClass(generateAdapter = true)
data class ApiResponse(
val success: Boolean,
val message: String