worked on tracking screen

This commit is contained in:
Milo 2025-06-02 21:53:59 +02:00
parent f76ec41891
commit 70acdc756a
Signed by: clara
GPG key ID: 223391B52FAD4463
5 changed files with 130 additions and 3 deletions

1
DBTApp/.idea/misc.xml generated
View file

@ -1,4 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK">

View file

@ -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
)
}
}
}
}
}

View file

@ -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<TherapyAssignment> {
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
)
)
}
}
}

View file

@ -11,4 +11,6 @@
<string name="desc_btn_expand">Ausklappen</string>
<string name="btn_add_diarycard">Diary Card Hinzufügen</string>
<string name="card_therapy_hw_heading">Therapiehausaufgaben</string>
<string name="add_trackter">Tracker hinzufügen</string>
<string name="view_stats">Statistiken</string>
</resources>

View file

@ -10,4 +10,6 @@
<string name="desc_btn_expand">Expand</string>
<string name="btn_add_diarycard">Add Diary Card</string>
<string name="card_therapy_hw_heading">Therapy Assignments</string>
<string name="add_trackter">Add Tracker</string>
<string name="view_stats">View Statistics</string>
</resources>