From c33aad5496a87ffce1adef873a7dceaac05a14d2 Mon Sep 17 00:00:00 2001 From: brreynie Date: Mon, 1 May 2023 15:15:54 +0200 Subject: [PATCH] #21 begin styling subject --- .../studeez/common/composable/SubjectEntry.kt | 45 ++++++++++++++++++- .../studeez/data/local/models/task/Subject.kt | 6 ++- .../sel/studeez/screens/tasks/TaskScreen.kt | 19 ++++++-- .../studeez/screens/tasks/TaskViewModel.kt | 2 +- app/src/main/res/values/strings.xml | 1 + 5 files changed, 65 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/be/ugent/sel/studeez/common/composable/SubjectEntry.kt b/app/src/main/java/be/ugent/sel/studeez/common/composable/SubjectEntry.kt index 928ab36..59a7cfe 100644 --- a/app/src/main/java/be/ugent/sel/studeez/common/composable/SubjectEntry.kt +++ b/app/src/main/java/be/ugent/sel/studeez/common/composable/SubjectEntry.kt @@ -1,19 +1,60 @@ package be.ugent.sel.studeez.common.composable +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.Card import androidx.compose.material.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.Color import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import be.ugent.sel.studeez.R import be.ugent.sel.studeez.data.local.models.task.Subject @Composable fun SubjectEntry( subject: Subject, ) { - Text(text = subject.name) + Card( + modifier = Modifier + .fillMaxWidth() + .padding(10.dp), + ) { + Row( + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.Top, + ) { + Row( + horizontalArrangement = Arrangement.spacedBy(10.dp), + verticalAlignment = Alignment.Top, + ) { + Box( + modifier = Modifier + .size(20.dp) + .clip(CircleShape) + .background(Color(subject.argb_color)) + .padding(4.dp), + ) + Text(text = subject.name) + } + StealthButton(text = R.string.view_task) { + + } + } + } } @Preview @Composable fun SubjectEntryPreview() { - SubjectEntry(subject = Subject(name = "Test Subject")) + SubjectEntry(subject = Subject(name = "Test Subject", argb_color = 0xFFF44336)) } \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/data/local/models/task/Subject.kt b/app/src/main/java/be/ugent/sel/studeez/data/local/models/task/Subject.kt index 034711a..0410790 100644 --- a/app/src/main/java/be/ugent/sel/studeez/data/local/models/task/Subject.kt +++ b/app/src/main/java/be/ugent/sel/studeez/data/local/models/task/Subject.kt @@ -7,5 +7,7 @@ data class Subject( val name: String = "", val tasks: List = mutableListOf(), val time: Int = 0, - val color: Int = 0, -) \ No newline at end of file + val argb_color: Long = 0, +) { +// fun getColor(): Color = Color(ARGB_color) +} \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/tasks/TaskScreen.kt b/app/src/main/java/be/ugent/sel/studeez/screens/tasks/TaskScreen.kt index 5c8e576..9db49ac 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/tasks/TaskScreen.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/tasks/TaskScreen.kt @@ -1,11 +1,15 @@ package be.ugent.sel.studeez.screens.tasks import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items +import androidx.compose.material.Divider import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState +import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp import be.ugent.sel.studeez.R import be.ugent.sel.studeez.common.composable.NewTaskSubjectButton import be.ugent.sel.studeez.common.composable.PrimaryScreenTemplate @@ -47,8 +51,18 @@ fun TaskScreen( val subjects = getSubjects().collectAsState(initial = emptyList()) Column { LazyColumn { - items(subjects.value) { - SubjectEntry(subject = it) + if (subjects.value.isNotEmpty()) { + item { + SubjectEntry(subject = subjects.value[0]) + } + } + if (subjects.value.size > 1) { + items(subjects.value.subList(1, subjects.value.lastIndex + 1)) { + Column { + Divider(modifier = Modifier.padding(10.dp, 0.dp)) + SubjectEntry(subject = it) + } + } } } NewTaskSubjectButton(onClick = addSubject, R.string.new_subject) @@ -56,7 +70,6 @@ fun TaskScreen( } } - @Preview @Composable fun TaskScreenPreview() { diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/tasks/TaskViewModel.kt b/app/src/main/java/be/ugent/sel/studeez/screens/tasks/TaskViewModel.kt index da489a5..cbd46c2 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/tasks/TaskViewModel.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/tasks/TaskViewModel.kt @@ -19,7 +19,7 @@ class TaskViewModel @Inject constructor( name = "Test Subject", tasks = listOf(), time = 0, - color = 0, + argb_color = 0xFFF44336, ) ) } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 22db344..1ee687c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -44,6 +44,7 @@ Tasks New Subject New Task + View Sessions