worked on trackers screen
This commit is contained in:
parent
70acdc756a
commit
50fba5f697
6 changed files with 135 additions and 71 deletions
|
|
@ -23,7 +23,6 @@ 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
|
||||
|
|
@ -32,7 +31,6 @@ 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
|
||||
|
|
@ -48,14 +46,17 @@ 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
|
||||
import de.cdaut.dbtapp.model.TherapyAssignment.Companion.mockTherapyAssignments
|
||||
import de.cdaut.dbtapp.model.Tracker
|
||||
import de.cdaut.dbtapp.model.Tracker.Companion.mockTrackers
|
||||
import de.cdaut.dbtapp.util.weekdayListByLocale
|
||||
import java.time.LocalDate
|
||||
import java.time.format.DateTimeFormatter
|
||||
import java.time.format.FormatStyle
|
||||
import java.time.temporal.WeekFields
|
||||
|
||||
@Preview
|
||||
@Preview(device = "id:pixel_6")
|
||||
@Composable
|
||||
fun TrackingScreen() {
|
||||
Column(
|
||||
|
|
@ -63,6 +64,8 @@ fun TrackingScreen() {
|
|||
.fillMaxWidth()
|
||||
.fillMaxHeight()
|
||||
.background(MaterialTheme.colorScheme.background),
|
||||
//TODO: Scrolling is fucked up
|
||||
//.verticalScroll(rememberScrollState()),
|
||||
horizontalAlignment = Alignment.CenterHorizontally
|
||||
) {
|
||||
Column(
|
||||
|
|
@ -77,23 +80,14 @@ fun TrackingScreen() {
|
|||
Spacer(modifier = Modifier.height(10.dp))
|
||||
Row(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.background(
|
||||
color = MaterialTheme.colorScheme.primary,
|
||||
shape = CircleShape
|
||||
),
|
||||
.fillMaxWidth(),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.SpaceBetween
|
||||
horizontalArrangement = Arrangement.SpaceEvenly
|
||||
) {
|
||||
Row(
|
||||
modifier = Modifier
|
||||
.padding(10.dp)
|
||||
.padding(horizontal = 10.dp, vertical = 0.dp)
|
||||
.clickable(onClick = {
|
||||
Button(
|
||||
onClick = {
|
||||
//TODO: Add tracker
|
||||
}),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
}
|
||||
) {
|
||||
Icon(
|
||||
Icons.Filled.Add,
|
||||
|
|
@ -106,20 +100,11 @@ fun TrackingScreen() {
|
|||
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
|
||||
|
||||
Button(
|
||||
onClick = {
|
||||
//TODO: View statistics
|
||||
}
|
||||
) {
|
||||
Text(
|
||||
modifier = Modifier.padding(horizontal = 5.dp),
|
||||
|
|
@ -144,7 +129,29 @@ fun TrackingScreen() {
|
|||
Text(stringResource(R.string.btn_add_diarycard))
|
||||
}
|
||||
Spacer(modifier = Modifier.height(10.dp))
|
||||
TitledListCard(stringResource(R.string.card_therapy_hw_heading))
|
||||
TitledListCard<TherapyAssignment>(
|
||||
stringResource(R.string.card_therapy_hw_heading),
|
||||
rows = {
|
||||
//TODO: This can probably be typed better…
|
||||
assignments ->
|
||||
TherapyAssignmentCardContent(assignments)
|
||||
},
|
||||
addAction = {
|
||||
//TODO: Add Therapy assignment
|
||||
},
|
||||
items = mockTherapyAssignments()
|
||||
)
|
||||
|
||||
Spacer(modifier = Modifier.height(10.dp))
|
||||
|
||||
TitledListCard<Tracker>(
|
||||
stringResource(R.string.tracker_card_title),
|
||||
rows = { trackers -> OtherTrackersCardContent(trackers = trackers) },
|
||||
addAction = {
|
||||
//TODO: Add new tracker
|
||||
},
|
||||
items = mockTrackers()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -237,7 +244,7 @@ private fun TopCalendar() {
|
|||
}
|
||||
|
||||
@Composable
|
||||
fun CalendarDaysGrid(selectedDateMut: MutableState<LocalDate>) {
|
||||
private fun CalendarDaysGrid(selectedDateMut: MutableState<LocalDate>) {
|
||||
val locale = LocalConfiguration.current.locales[0]
|
||||
val selectedDate = selectedDateMut.value
|
||||
|
||||
|
|
@ -297,7 +304,12 @@ fun CalendarDaysGrid(selectedDateMut: MutableState<LocalDate>) {
|
|||
}
|
||||
|
||||
@Composable
|
||||
fun TitledListCard(title: String) {
|
||||
private fun <T> TitledListCard(
|
||||
title: String,
|
||||
rows: @Composable Function1<List<T>, Unit>,
|
||||
addAction: () -> Unit,
|
||||
items: List<T>
|
||||
) {
|
||||
Card(
|
||||
modifier = Modifier.fillMaxWidth()
|
||||
) {
|
||||
|
|
@ -317,15 +329,20 @@ fun TitledListCard(title: String) {
|
|||
modifier = Modifier
|
||||
.size(30.dp)
|
||||
.clip(CircleShape)
|
||||
.clickable(onClick = {
|
||||
//TODO: Add Therapiehausaufgabe
|
||||
}),
|
||||
.clickable(onClick = addAction),
|
||||
imageVector = Icons.Filled.Add,
|
||||
contentDescription = "TODO: Provide"
|
||||
)
|
||||
}
|
||||
HorizontalDivider()
|
||||
for (assignment in mockTherapyAssignments()) {
|
||||
rows(items)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun TherapyAssignmentCardContent(assignments: List<TherapyAssignment>) {
|
||||
for (assignment in assignments) {
|
||||
Row(
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
|
|
@ -351,6 +368,30 @@ fun TitledListCard(title: String) {
|
|||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun OtherTrackersCardContent(trackers: List<Tracker>) {
|
||||
for (tracker in trackers) {
|
||||
Row(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(5.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.SpaceBetween,
|
||||
) {
|
||||
Column {
|
||||
Text(
|
||||
modifier = Modifier.padding(horizontal = 10.dp, vertical = 0.dp),
|
||||
text = tracker.title,
|
||||
style = MaterialTheme.typography.bodyMedium
|
||||
)
|
||||
Text(
|
||||
modifier = Modifier.padding(horizontal = 10.dp, vertical = 0.dp),
|
||||
text = tracker.description,
|
||||
style = MaterialTheme.typography.bodySmall
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -11,7 +11,7 @@ import java.util.UUID
|
|||
|
||||
@Entity
|
||||
class Skill(
|
||||
@PrimaryKey val identifier: UUID,
|
||||
@PrimaryKey val identifier: UUID = UUID.randomUUID(),
|
||||
@ColumnInfo(name = "title") val title: String,
|
||||
@ColumnInfo(name = "description") val description: String
|
||||
) {
|
||||
|
|
@ -21,17 +21,14 @@ class Skill(
|
|||
fun mockSkills(): List<Skill> {
|
||||
return listOf(
|
||||
Skill(
|
||||
identifier = UUID.randomUUID(),
|
||||
title = "Test Hallo :3",
|
||||
description = "lorem ipsum dolor sid amnet consequetur blabla yada yada"
|
||||
),
|
||||
Skill(
|
||||
identifier = UUID.randomUUID(),
|
||||
title = "5-4-3-2-1",
|
||||
description = "Hier kurz beschreiben wie die Übung funktioniert. Ggf. mehrere Zeilen aber nicht super lang"
|
||||
),
|
||||
Skill(
|
||||
identifier = UUID.randomUUID(),
|
||||
title = "UwU UwU awawawa",
|
||||
description = "Just arf a little like the good fopsgirl you are :3"
|
||||
)
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import java.util.UUID
|
|||
|
||||
@Entity
|
||||
class TherapyAssignment(
|
||||
@PrimaryKey val identifier: UUID,
|
||||
@PrimaryKey val identifier: UUID = UUID.randomUUID(),
|
||||
@ColumnInfo(name = "title") val title: String,
|
||||
@ColumnInfo(name = "description") val description: String,
|
||||
@ColumnInfo(name = "done") var done: Boolean
|
||||
|
|
@ -17,13 +17,11 @@ class TherapyAssignment(
|
|||
fun mockTherapyAssignments(): List<TherapyAssignment> {
|
||||
return listOf(
|
||||
TherapyAssignment(
|
||||
identifier = UUID.randomUUID(),
|
||||
title = "Selbstfürsorge",
|
||||
description = "Mir selbst eine gute Sache tun",
|
||||
done = false
|
||||
done = true
|
||||
),
|
||||
TherapyAssignment(
|
||||
identifier = UUID.randomUUID(),
|
||||
title = "Bedürfnis durchsetzen",
|
||||
description = "Eine Sache durchsetzen, die mir schwer fällt",
|
||||
done = false
|
||||
|
|
|
|||
26
DBTApp/app/src/main/java/de/cdaut/dbtapp/model/Tracker.kt
Normal file
26
DBTApp/app/src/main/java/de/cdaut/dbtapp/model/Tracker.kt
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
package de.cdaut.dbtapp.model
|
||||
|
||||
import androidx.room.ColumnInfo
|
||||
import androidx.room.Entity
|
||||
import androidx.room.PrimaryKey
|
||||
import java.util.UUID
|
||||
|
||||
@Entity
|
||||
class Tracker(
|
||||
@PrimaryKey val identifier: UUID = UUID.randomUUID(),
|
||||
@ColumnInfo(name = "title") val title: String,
|
||||
@ColumnInfo(name = "description") val description: String
|
||||
) {
|
||||
|
||||
companion object {
|
||||
fun mockTrackers(): List<Tracker> {
|
||||
return listOf(
|
||||
Tracker(
|
||||
title = "Stimmung",
|
||||
description = "Deine aktuelle Stimmung"
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -13,4 +13,5 @@
|
|||
<string name="card_therapy_hw_heading">Therapiehausaufgaben</string>
|
||||
<string name="add_trackter">Tracker hinzufügen</string>
|
||||
<string name="view_stats">Statistiken</string>
|
||||
<string name="tracker_card_title">Tracker</string>
|
||||
</resources>
|
||||
|
|
@ -12,4 +12,5 @@
|
|||
<string name="card_therapy_hw_heading">Therapy Assignments</string>
|
||||
<string name="add_trackter">Add Tracker</string>
|
||||
<string name="view_stats">View Statistics</string>
|
||||
<string name="tracker_card_title">Trackers</string>
|
||||
</resources>
|
||||
Loading…
Add table
Add a link
Reference in a new issue