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.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.aspectRatio
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.lazy.grid.GridCells
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
import androidx.compose.foundation.shape.CircleShape
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.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.MaterialTheme
import androidx.compose.material3.Text
@ -27,31 +34,55 @@ import androidx.compose.runtime.remember
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.platform.LocalConfiguration
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
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.util.weekdayListByLocale
import java.time.LocalDate
import java.time.format.DateTimeFormatter
import java.time.format.FormatStyle
import java.time.temporal.WeekFields
@Preview
@Composable
fun TrackingScreen() {
TopCalendar()
}
@Preview(device = "id:pixel_5", locale = "de")
@Composable
private fun TopCalendarPrev() {
Box(Modifier.background(Color.White)) {
TopCalendar()
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()
}
Spacer(modifier = Modifier.height(10.dp))
Button(
onClick = {
//TODO: Add diary card here
},
modifier = Modifier.fillMaxWidth(),
) {
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
@ -129,7 +160,7 @@ private fun TopCalendar() {
}
@Composable
fun CalendarDaysGrid(selectedDateMut: MutableState<LocalDate>, modifier: Modifier = Modifier) {
fun CalendarDaysGrid(selectedDateMut: MutableState<LocalDate>) {
val locale = LocalConfiguration.current.locales[0]
val selectedDate = selectedDateMut.value
@ -172,7 +203,7 @@ fun CalendarDaysGrid(selectedDateMut: MutableState<LocalDate>, modifier: Modifie
if (day == selectedDate.dayOfMonth) {
dayBoxModifier = dayBoxModifier.border(
2.dp,
MaterialTheme.colorScheme.primaryContainer,
MaterialTheme.colorScheme.onPrimaryContainer,
CircleShape
)
}
@ -186,4 +217,37 @@ 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="desc_btn_fav">Favorisieren Button</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>

View file

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