#21 begin styling subject
This commit is contained in:
parent
4bbc3af4b2
commit
c33aad5496
5 changed files with 65 additions and 8 deletions
|
@ -1,19 +1,60 @@
|
||||||
package be.ugent.sel.studeez.common.composable
|
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.material.Text
|
||||||
import androidx.compose.runtime.Composable
|
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.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
|
import be.ugent.sel.studeez.data.local.models.task.Subject
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun SubjectEntry(
|
fun SubjectEntry(
|
||||||
subject: Subject,
|
subject: Subject,
|
||||||
) {
|
) {
|
||||||
|
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)
|
Text(text = subject.name)
|
||||||
}
|
}
|
||||||
|
StealthButton(text = R.string.view_task) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Preview
|
@Preview
|
||||||
@Composable
|
@Composable
|
||||||
fun SubjectEntryPreview() {
|
fun SubjectEntryPreview() {
|
||||||
SubjectEntry(subject = Subject(name = "Test Subject"))
|
SubjectEntry(subject = Subject(name = "Test Subject", argb_color = 0xFFF44336))
|
||||||
}
|
}
|
|
@ -7,5 +7,7 @@ data class Subject(
|
||||||
val name: String = "",
|
val name: String = "",
|
||||||
val tasks: List<Task> = mutableListOf(),
|
val tasks: List<Task> = mutableListOf(),
|
||||||
val time: Int = 0,
|
val time: Int = 0,
|
||||||
val color: Int = 0,
|
val argb_color: Long = 0,
|
||||||
)
|
) {
|
||||||
|
// fun getColor(): Color = Color(ARGB_color)
|
||||||
|
}
|
|
@ -1,11 +1,15 @@
|
||||||
package be.ugent.sel.studeez.screens.tasks
|
package be.ugent.sel.studeez.screens.tasks
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.lazy.LazyColumn
|
import androidx.compose.foundation.lazy.LazyColumn
|
||||||
import androidx.compose.foundation.lazy.items
|
import androidx.compose.foundation.lazy.items
|
||||||
|
import androidx.compose.material.Divider
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.collectAsState
|
import androidx.compose.runtime.collectAsState
|
||||||
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
|
import androidx.compose.ui.unit.dp
|
||||||
import be.ugent.sel.studeez.R
|
import be.ugent.sel.studeez.R
|
||||||
import be.ugent.sel.studeez.common.composable.NewTaskSubjectButton
|
import be.ugent.sel.studeez.common.composable.NewTaskSubjectButton
|
||||||
import be.ugent.sel.studeez.common.composable.PrimaryScreenTemplate
|
import be.ugent.sel.studeez.common.composable.PrimaryScreenTemplate
|
||||||
|
@ -47,16 +51,25 @@ fun TaskScreen(
|
||||||
val subjects = getSubjects().collectAsState(initial = emptyList())
|
val subjects = getSubjects().collectAsState(initial = emptyList())
|
||||||
Column {
|
Column {
|
||||||
LazyColumn {
|
LazyColumn {
|
||||||
items(subjects.value) {
|
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)
|
SubjectEntry(subject = it)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
NewTaskSubjectButton(onClick = addSubject, R.string.new_subject)
|
NewTaskSubjectButton(onClick = addSubject, R.string.new_subject)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Preview
|
@Preview
|
||||||
@Composable
|
@Composable
|
||||||
fun TaskScreenPreview() {
|
fun TaskScreenPreview() {
|
||||||
|
|
|
@ -19,7 +19,7 @@ class TaskViewModel @Inject constructor(
|
||||||
name = "Test Subject",
|
name = "Test Subject",
|
||||||
tasks = listOf(),
|
tasks = listOf(),
|
||||||
time = 0,
|
time = 0,
|
||||||
color = 0,
|
argb_color = 0xFFF44336,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,6 +44,7 @@
|
||||||
<string name="tasks">Tasks</string>
|
<string name="tasks">Tasks</string>
|
||||||
<string name="new_subject">New Subject</string>
|
<string name="new_subject">New Subject</string>
|
||||||
<string name="new_task">New Task</string>
|
<string name="new_task">New Task</string>
|
||||||
|
<string name="view_task">View</string>
|
||||||
|
|
||||||
<!-- Sessions -->
|
<!-- Sessions -->
|
||||||
<string name="sessions">Sessions</string>
|
<string name="sessions">Sessions</string>
|
||||||
|
|
Reference in a new issue