package ru.pirogov.grapehealthchecker.views import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import coil3.compose.rememberAsyncImagePainter import ru.pirogov.grapehealthchecker.R import ru.pirogov.grapehealthchecker.data.FullDetailRecord import java.io.File @Preview @Composable fun DetailScreen(fullDetailRecord: FullDetailRecord, isCelsius: Boolean) { val imageFile = File(fullDetailRecord.photo!!.filePath) Column(modifier = Modifier .padding(16.dp)) { Text( text = "Фотография от ${fullDetailRecord.detail.dateText}, ${fullDetailRecord.detail.timeText}", style = MaterialTheme.typography.titleLarge ) Text( text = "Виноград ${fullDetailRecord.detail.description}", style = MaterialTheme.typography.bodyLarge ) Text( text = "Погодная статистика во время создания фотографии:", style = MaterialTheme.typography.bodyMedium ) Row(modifier = Modifier.fillMaxWidth(0.5f), horizontalArrangement = Arrangement.SpaceBetween) { Column() { Text( text = "Температура:", style = MaterialTheme.typography.bodyMedium ) Text( text = "Влажность:", style = MaterialTheme.typography.bodyMedium ) } Column(horizontalAlignment = Alignment.End) { Text( text = if (isCelsius) "${fullDetailRecord.weather?.temperature}°C" else "${fullDetailRecord.weather?.temperature?.let { it * 9 / 5 + 32 }}°F", style = MaterialTheme.typography.bodyMedium ) Text( text = "${fullDetailRecord.weather?.humidity}%", style = MaterialTheme.typography.bodyMedium ) } } Spacer(modifier = Modifier.size(16.dp)) PhotoComponent( painter = rememberAsyncImagePainter(model = imageFile), modifier = Modifier .fillMaxWidth() ) } } @Composable private fun PhotoComponent(painter: Painter, modifier: Modifier) { Image( painter = painter, contentDescription = null, contentScale = ContentScale.FillWidth, modifier = modifier.clip(MaterialTheme.shapes.medium), ) }