worked on tracking screen

This commit is contained in:
Clara Dautermann 2025-05-30 18:46:22 +02:00
parent c6dd2c633b
commit 45085cdba4
Signed by: clara
GPG key ID: 223391B52FAD4463
3 changed files with 80 additions and 12 deletions

View file

@ -7,16 +7,23 @@ import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.aspectRatio
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size
import androidx.compose.foundation.lazy.grid.GridCells import androidx.compose.foundation.lazy.grid.GridCells
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Add
import androidx.compose.material.icons.filled.ChevronLeft import androidx.compose.material.icons.filled.ChevronLeft
import androidx.compose.material.icons.filled.ChevronRight import androidx.compose.material.icons.filled.ChevronRight
import androidx.compose.material3.Button
import androidx.compose.material3.Card
import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.Icon import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text import androidx.compose.material3.Text
@ -27,31 +34,55 @@ import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.em import androidx.compose.ui.unit.em
import de.cdaut.dbtapp.R
import de.cdaut.dbtapp.util.weekdayListByLocale import de.cdaut.dbtapp.util.weekdayListByLocale
import java.time.LocalDate import java.time.LocalDate
import java.time.format.DateTimeFormatter import java.time.format.DateTimeFormatter
import java.time.format.FormatStyle import java.time.format.FormatStyle
import java.time.temporal.WeekFields import java.time.temporal.WeekFields
@Preview
@Composable @Composable
fun TrackingScreen() { fun TrackingScreen() {
Column(
modifier = Modifier
.fillMaxWidth()
.fillMaxHeight()
.background(MaterialTheme.colorScheme.background),
horizontalAlignment = Alignment.CenterHorizontally
) {
Column(
modifier = Modifier
.fillMaxWidth(0.9f),
horizontalAlignment = Alignment.CenterHorizontally
) {
Spacer(modifier = Modifier.height(20.dp))
Card(
) {
TopCalendar() TopCalendar()
} }
Spacer(modifier = Modifier.height(10.dp))
Button(
@Preview(device = "id:pixel_5", locale = "de") onClick = {
@Composable //TODO: Add diary card here
private fun TopCalendarPrev() { },
Box(Modifier.background(Color.White)) { modifier = Modifier.fillMaxWidth(),
TopCalendar() ) {
Icon(Icons.Filled.Add, stringResource(R.string.btn_add_diarycard))
Text(stringResource(R.string.btn_add_diarycard))
} }
Spacer(modifier = Modifier.height(10.dp))
TitledListCard(stringResource(R.string.card_therapy_hw_heading))
}
}
} }
@Composable @Composable
@ -129,7 +160,7 @@ private fun TopCalendar() {
} }
@Composable @Composable
fun CalendarDaysGrid(selectedDateMut: MutableState<LocalDate>, modifier: Modifier = Modifier) { fun CalendarDaysGrid(selectedDateMut: MutableState<LocalDate>) {
val locale = LocalConfiguration.current.locales[0] val locale = LocalConfiguration.current.locales[0]
val selectedDate = selectedDateMut.value val selectedDate = selectedDateMut.value
@ -172,7 +203,7 @@ fun CalendarDaysGrid(selectedDateMut: MutableState<LocalDate>, modifier: Modifie
if (day == selectedDate.dayOfMonth) { if (day == selectedDate.dayOfMonth) {
dayBoxModifier = dayBoxModifier.border( dayBoxModifier = dayBoxModifier.border(
2.dp, 2.dp,
MaterialTheme.colorScheme.primaryContainer, MaterialTheme.colorScheme.onPrimaryContainer,
CircleShape CircleShape
) )
} }
@ -187,3 +218,36 @@ fun CalendarDaysGrid(selectedDateMut: MutableState<LocalDate>, modifier: Modifie
} }
} }
} }
@Composable
fun TitledListCard(title: String) {
Card(
modifier = Modifier.fillMaxWidth()
) {
Column {
Row(
modifier = Modifier
.padding(10.dp)
.fillMaxWidth(),
horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically
) {
Text(
text = title,
style = MaterialTheme.typography.titleMedium
)
Icon(
modifier = Modifier
.size(30.dp)
.clip(CircleShape)
.clickable(onClick = {
//TODO: Add Therapiehausaufgabe
}),
imageVector = Icons.Filled.Add,
contentDescription = "TODO: Provide"
)
}
HorizontalDivider()
}
}
}

View file

@ -9,4 +9,6 @@
<string name="emergency_button_description">Notfallknopf</string> <string name="emergency_button_description">Notfallknopf</string>
<string name="desc_btn_fav">Favorisieren Button</string> <string name="desc_btn_fav">Favorisieren Button</string>
<string name="desc_btn_expand">Ausklappen</string> <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>
</resources> </resources>

View file

@ -8,4 +8,6 @@
<string name="emergency_button_description">Emergency Button</string> <string name="emergency_button_description">Emergency Button</string>
<string name="desc_btn_fav">Favourte Button</string> <string name="desc_btn_fav">Favourte Button</string>
<string name="desc_btn_expand">Expand</string> <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>
</resources> </resources>