package com.example.myserver import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.background import androidx.compose.foundation.layout.* import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.ArrowBack 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.platform.LocalContext import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import dagger.hilt.android.AndroidEntryPoint @AndroidEntryPoint class ProfileActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // Получаем имя игрока, которое передали из списка val playerName = intent.getStringExtra("PLAYER_NAME") ?: "Неизвестный игрок" setContent { // Важно: MaterialTheme должен быть корневым MaterialTheme { ViewProfileScreen( name = playerName, onBackClick = { finish() } ) } } } } @Composable fun ViewProfileScreen( name: String, onBackClick: () -> Unit ) { Surface( modifier = Modifier.fillMaxSize(), color = Color(0xFF3E4B54) // Фирменный фон ) { Column( modifier = Modifier .fillMaxSize() .padding(16.dp) ) { // Верхняя панель с кнопкой назад и заголовком ProfileTopBar( onBackClick = onBackClick ) Spacer(modifier = Modifier.height(24.dp)) // Заголовок (можно убрать, если он уже есть в TopBar) Text( text = "Профиль игрока", color = Color.White, fontSize = 28.sp, fontWeight = FontWeight.Bold, modifier = Modifier.padding(bottom = 32.dp) ) // Карточка с именем (в твоем стиле с белой обводкой) InfoCard( label = "Игровой ник", value = name ) Spacer(modifier = Modifier.height(16.dp)) // Карточка со статусом InfoCard( label = "Статус", value = "В игре" ) Spacer(modifier = Modifier.height(16.dp)) // Карточка с информацией InfoCard( label = "Ранг", value = "Игрок" ) // Добавим немного места внизу для красоты Spacer(modifier = Modifier.weight(1f)) } } } @Composable fun ProfileTopBar( onBackClick: () -> Unit ) { Row( modifier = Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically ) { IconButton( onClick = onBackClick, modifier = Modifier.size(48.dp) ) { Icon( imageVector = Icons.Default.ArrowBack, contentDescription = "Назад", tint = Color.White ) } Text( text = "Информация об игроке", color = Color.White, fontSize = 20.sp, fontWeight = FontWeight.Medium, modifier = Modifier.padding(start = 8.dp) ) } } @Composable fun InfoCard( label: String, value: String ) { Card( modifier = Modifier.fillMaxWidth(), shape = RoundedCornerShape(20.dp), border = BorderStroke(2.dp, Color.White), colors = CardDefaults.cardColors( containerColor = Color(0xFF3E4B54) ) ) { Column( modifier = Modifier.padding(20.dp) ) { Text( text = label, color = Color.LightGray, fontSize = 12.sp ) Text( text = value, color = Color.White, fontSize = 20.sp, fontWeight = FontWeight.Bold, modifier = Modifier.padding(top = 4.dp) ) } } } // Предпросмотр для разработки @Composable @Preview(showBackground = true) fun ViewProfileScreenPreview() { MaterialTheme { ViewProfileScreen( name = "Steve", onBackClick = {} ) } }