From 70acdc756a66b8e035381fcd3487efcaae82c640 Mon Sep 17 00:00:00 2001 From: Milo Date: Mon, 2 Jun 2025 21:53:59 +0200 Subject: [PATCH] worked on tracking screen --- DBTApp/.idea/misc.xml | 1 - .../de/cdaut/dbtapp/components/Tracking.kt | 93 ++++++++++++++++++- .../cdaut/dbtapp/model/TherapyAssignment.kt | 35 +++++++ DBTApp/app/src/main/res/values-de/strings.xml | 2 + DBTApp/app/src/main/res/values/strings.xml | 2 + 5 files changed, 130 insertions(+), 3 deletions(-) create mode 100644 DBTApp/app/src/main/java/de/cdaut/dbtapp/model/TherapyAssignment.kt diff --git a/DBTApp/.idea/misc.xml b/DBTApp/.idea/misc.xml index 74dd639..b2c751a 100644 --- a/DBTApp/.idea/misc.xml +++ b/DBTApp/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/DBTApp/app/src/main/java/de/cdaut/dbtapp/components/Tracking.kt b/DBTApp/app/src/main/java/de/cdaut/dbtapp/components/Tracking.kt index 7ea7a0a..5bd9d04 100644 --- a/DBTApp/app/src/main/java/de/cdaut/dbtapp/components/Tracking.kt +++ b/DBTApp/app/src/main/java/de/cdaut/dbtapp/components/Tracking.kt @@ -23,12 +23,16 @@ import androidx.compose.material.icons.filled.Add import androidx.compose.material.icons.filled.CalendarMonth import androidx.compose.material.icons.filled.ChevronLeft import androidx.compose.material.icons.filled.ChevronRight +import androidx.compose.material.icons.filled.DataExploration +import androidx.compose.material.icons.filled.RemoveRedEye import androidx.compose.material3.Button import androidx.compose.material3.Card +import androidx.compose.material3.Checkbox import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text +import androidx.compose.material3.VerticalDivider import androidx.compose.runtime.Composable import androidx.compose.runtime.MutableState import androidx.compose.runtime.mutableStateOf @@ -44,6 +48,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.em import de.cdaut.dbtapp.R +import de.cdaut.dbtapp.model.TherapyAssignment.Companion.mockTherapyAssignments import de.cdaut.dbtapp.util.weekdayListByLocale import java.time.LocalDate import java.time.format.DateTimeFormatter @@ -66,11 +71,69 @@ fun TrackingScreen() { horizontalAlignment = Alignment.CenterHorizontally ) { Spacer(modifier = Modifier.height(20.dp)) - Card( - ) { + Card { TopCalendar() } Spacer(modifier = Modifier.height(10.dp)) + Row( + modifier = Modifier + .fillMaxWidth() + .background( + color = MaterialTheme.colorScheme.primary, + shape = CircleShape + ), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween + ) { + Row( + modifier = Modifier + .padding(10.dp) + .padding(horizontal = 10.dp, vertical = 0.dp) + .clickable(onClick = { + //TODO: Add tracker + }), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.Start + ) { + Icon( + Icons.Filled.Add, + contentDescription = "//TODO: Provide", + tint = MaterialTheme.colorScheme.onPrimary + ) + Text( + text = stringResource(R.string.add_trackter), + style = MaterialTheme.typography.labelLarge, + color = MaterialTheme.colorScheme.onPrimary + ) + } + VerticalDivider( + modifier = Modifier + .fillMaxHeight(0.1f) + .padding(5.dp) + ) + Row( + modifier = Modifier + .padding(10.dp) + .padding(horizontal = 10.dp, vertical = 0.dp) + .clickable(onClick = { + //TODO: Add tracker + }), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.Start + ) { + Text( + modifier = Modifier.padding(horizontal = 5.dp), + text = stringResource(R.string.view_stats), + style = MaterialTheme.typography.labelLarge, + color = MaterialTheme.colorScheme.onPrimary + ) + Icon( + Icons.Filled.RemoveRedEye, + contentDescription = "//TODO: Provide", + tint = MaterialTheme.colorScheme.onPrimary + ) + } + } Button( onClick = { //TODO: Add diary card here @@ -262,6 +325,32 @@ fun TitledListCard(title: String) { ) } HorizontalDivider() + for (assignment in mockTherapyAssignments()) { + Row( + modifier = Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween, + ) { + Column { + Text( + modifier = Modifier.padding(horizontal = 10.dp, vertical = 0.dp), + text = assignment.title, + style = MaterialTheme.typography.bodyMedium + ) + Text( + modifier = Modifier.padding(horizontal = 10.dp, vertical = 0.dp), + text = assignment.description, + style = MaterialTheme.typography.bodySmall + ) + } + Checkbox( + onCheckedChange = { + assignment.done = !assignment.done + }, + checked = assignment.done + ) + } + } } } } \ No newline at end of file diff --git a/DBTApp/app/src/main/java/de/cdaut/dbtapp/model/TherapyAssignment.kt b/DBTApp/app/src/main/java/de/cdaut/dbtapp/model/TherapyAssignment.kt new file mode 100644 index 0000000..4c54dfb --- /dev/null +++ b/DBTApp/app/src/main/java/de/cdaut/dbtapp/model/TherapyAssignment.kt @@ -0,0 +1,35 @@ +package de.cdaut.dbtapp.model + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.PrimaryKey +import java.util.UUID + +@Entity +class TherapyAssignment( + @PrimaryKey val identifier: UUID, + @ColumnInfo(name = "title") val title: String, + @ColumnInfo(name = "description") val description: String, + @ColumnInfo(name = "done") var done: Boolean +) { + + companion object { + fun mockTherapyAssignments(): List { + return listOf( + TherapyAssignment( + identifier = UUID.randomUUID(), + title = "Selbstfürsorge", + description = "Mir selbst eine gute Sache tun", + done = false + ), + TherapyAssignment( + identifier = UUID.randomUUID(), + title = "Bedürfnis durchsetzen", + description = "Eine Sache durchsetzen, die mir schwer fällt", + done = false + ) + ) + } + } + +} \ No newline at end of file diff --git a/DBTApp/app/src/main/res/values-de/strings.xml b/DBTApp/app/src/main/res/values-de/strings.xml index e110037..315bb4d 100644 --- a/DBTApp/app/src/main/res/values-de/strings.xml +++ b/DBTApp/app/src/main/res/values-de/strings.xml @@ -11,4 +11,6 @@ Ausklappen Diary Card Hinzufügen Therapiehausaufgaben + Tracker hinzufügen + Statistiken \ No newline at end of file diff --git a/DBTApp/app/src/main/res/values/strings.xml b/DBTApp/app/src/main/res/values/strings.xml index 76afc25..2daf59e 100644 --- a/DBTApp/app/src/main/res/values/strings.xml +++ b/DBTApp/app/src/main/res/values/strings.xml @@ -10,4 +10,6 @@ Expand Add Diary Card Therapy Assignments + Add Tracker + View Statistics \ No newline at end of file