diff --git a/app/src/main/java/com/vobbla16/mesh/data/remote/dto/schedule/ScheduleDto.kt b/app/src/main/java/com/vobbla16/mesh/data/remote/dto/schedule/ScheduleDto.kt index a05ea96..acbfcac 100644 --- a/app/src/main/java/com/vobbla16/mesh/data/remote/dto/schedule/ScheduleDto.kt +++ b/app/src/main/java/com/vobbla16/mesh/data/remote/dto/schedule/ScheduleDto.kt @@ -44,7 +44,8 @@ fun ScheduleDto.toDomain(): com.vobbla16.mesh.domain.model.schedule.ScheduleMode Mark( mark.id, mark.value, - mark.weight + mark.weight, + mark.isPoint ) }, homework = act.lesson.homework, diff --git a/app/src/main/java/com/vobbla16/mesh/domain/model/schedule/Mark.kt b/app/src/main/java/com/vobbla16/mesh/domain/model/schedule/Mark.kt index 3093d2a..6d7aa1f 100644 --- a/app/src/main/java/com/vobbla16/mesh/domain/model/schedule/Mark.kt +++ b/app/src/main/java/com/vobbla16/mesh/domain/model/schedule/Mark.kt @@ -1,7 +1,15 @@ package com.vobbla16.mesh.domain.model.schedule +import com.vobbla16.mesh.ui.screens.marksScreen.components.MarkDefaultValue + data class Mark( val id: Long, val value: String, - val weight: Int -) \ No newline at end of file + val weight: Int, + val isPoint: Boolean +) { + fun toMarkDefaultValue() = MarkDefaultValue( + value.toInt(), + weight, isPoint + ) +} \ No newline at end of file diff --git a/app/src/main/java/com/vobbla16/mesh/ui/screens/marksScreen/components/MarkDefault.kt b/app/src/main/java/com/vobbla16/mesh/ui/screens/marksScreen/components/MarkDefault.kt index f5a0aba..00a4c53 100644 --- a/app/src/main/java/com/vobbla16/mesh/ui/screens/marksScreen/components/MarkDefault.kt +++ b/app/src/main/java/com/vobbla16/mesh/ui/screens/marksScreen/components/MarkDefault.kt @@ -15,6 +15,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.scale import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.vobbla16.mesh.domain.model.marks.GradeType import com.vobbla16.mesh.domain.model.marks.Mark @@ -22,9 +23,13 @@ import com.vobbla16.mesh.domain.model.marks.MarkValue import kotlinx.datetime.LocalDate @Composable -fun MarkDefault(mark: MarkDefaultValue, modifier: Modifier = Modifier) { +fun MarkDefault( + mark: MarkDefaultValue, + modifier: Modifier = Modifier, + size: MarkDefaultSize = MarkDefaultSize.Default +) { OutlinedCard(modifier) { - Box(Modifier.size(48.dp)) { + Box(Modifier.size(size.size)) { Text( text = mark.value.toString(), modifier = Modifier.align( @@ -53,6 +58,11 @@ fun MarkDefault(mark: MarkDefaultValue, modifier: Modifier = Modifier) { } } +enum class MarkDefaultSize(val size: Dp) { + Default(48.dp), + Small(38.dp) +} + data class MarkDefaultValue( val value: Int, val weight: Int, @@ -70,13 +80,13 @@ fun MarkDefaultPreview1() { controlFormName = "Самостоятельная работа", date = LocalDate(2022, 12, 28), gradeType = GradeType.Five, - isPoint = false, + isPoint = true, pointDate = null, topic = "Что-то там", value = MarkValue(4f, 80f), weight = 2 ) - MarkDefault(mark = mark.toMarkDefaultValue()) + MarkDefault(mark = mark.toMarkDefaultValue(), size = MarkDefaultSize.Small) } @Preview( diff --git a/app/src/main/java/com/vobbla16/mesh/ui/screens/scheduleScreen/components/ScheduleLessonItem.kt b/app/src/main/java/com/vobbla16/mesh/ui/screens/scheduleScreen/components/ScheduleLessonItem.kt index bc5ca48..530753d 100644 --- a/app/src/main/java/com/vobbla16/mesh/ui/screens/scheduleScreen/components/ScheduleLessonItem.kt +++ b/app/src/main/java/com/vobbla16/mesh/ui/screens/scheduleScreen/components/ScheduleLessonItem.kt @@ -3,6 +3,8 @@ package com.vobbla16.mesh.ui.screens.scheduleScreen.components import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.basicMarquee import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.ExperimentalLayoutApi +import androidx.compose.foundation.layout.FlowRow import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth @@ -22,9 +24,13 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.vobbla16.mesh.domain.model.schedule.Activity import com.vobbla16.mesh.domain.model.schedule.LessonType +import com.vobbla16.mesh.ui.screens.marksScreen.components.MarkDefault +import com.vobbla16.mesh.ui.screens.marksScreen.components.MarkDefaultSize import kotlinx.datetime.LocalTime -@OptIn(ExperimentalFoundationApi::class, ExperimentalMaterial3Api::class) +@OptIn(ExperimentalFoundationApi::class, ExperimentalMaterial3Api::class, + ExperimentalLayoutApi::class +) @Composable fun ScheduleLessonItem(activity: Activity.Lesson, onClick: () -> Unit) { Card( @@ -94,6 +100,13 @@ fun ScheduleLessonItem(activity: Activity.Lesson, onClick: () -> Unit) { else -> {} } + FlowRow( + modifier = Modifier.fillMaxWidth().padding(2.dp, 6.dp, 2.dp, 2.dp) + ) { + activity.marks.forEach { mark -> + MarkDefault(mark = mark.toMarkDefaultValue(), size = MarkDefaultSize.Small) + } + } } } }