diff --git a/DBTApp/.idea/codeStyles/Project.xml b/DBTApp/.idea/codeStyles/Project.xml index 7643783..7f70f7e 100644 --- a/DBTApp/.idea/codeStyles/Project.xml +++ b/DBTApp/.idea/codeStyles/Project.xml @@ -1,5 +1,40 @@ + + + diff --git a/DBTApp/app/src/main/java/de/cdaut/dbtapp/MainActivity.kt b/DBTApp/app/src/main/java/de/cdaut/dbtapp/MainActivity.kt index 5f5b8ef..b78a40d 100644 --- a/DBTApp/app/src/main/java/de/cdaut/dbtapp/MainActivity.kt +++ b/DBTApp/app/src/main/java/de/cdaut/dbtapp/MainActivity.kt @@ -22,6 +22,7 @@ import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController import de.cdaut.dbtapp.components.BottomNavigationBar import de.cdaut.dbtapp.components.SkillsScreen +import de.cdaut.dbtapp.components.TrackingScreen import de.cdaut.dbtapp.navigation.Screens class MainActivity : ComponentActivity() { @@ -49,7 +50,7 @@ private fun MainContent() { modifier = Modifier.padding(paddingValues = paddingValues) ) { composable(Screens.Tracking.route) { - Text("Tracking") + TrackingScreen() } composable(Screens.Skillslist.route) { SkillsScreen() @@ -70,7 +71,6 @@ private fun MainContent() { } } -@Preview @Composable private fun EmergencyButton() { FloatingActionButton( 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 new file mode 100644 index 0000000..5b81a30 --- /dev/null +++ b/DBTApp/app/src/main/java/de/cdaut/dbtapp/components/Tracking.kt @@ -0,0 +1,79 @@ +package de.cdaut.dbtapp.components + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +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.fillMaxWidth +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.ChevronLeft +import androidx.compose.material.icons.filled.ChevronRight +import androidx.compose.material3.DatePicker +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.Text +import androidx.compose.material3.rememberDatePickerState +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.tooling.preview.Preview +import de.cdaut.dbtapp.util.WeekdayListByLocale + +@Composable +fun TrackingScreen() { + TopCalendar() +} + +@OptIn(ExperimentalMaterial3Api::class) +@Preview +@Composable +private fun DatePickerPreview() { + val datePickerState = rememberDatePickerState() + DatePicker(datePickerState) +} + +@Preview +@Composable +private fun TopCalendarPrev() { + Box(Modifier.background(Color.White)) { + TopCalendar() + } +} + +@Composable +private fun TopCalendar() { + Column { + //Top Navigation and display items + Row( + modifier = Modifier.fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween + ) { + Text(text = "currentDate") + Row { + Icon( + modifier = Modifier.clickable(onClick = {}), + imageVector = Icons.Filled.ChevronLeft, + contentDescription = "TODO: Provide" + ) + + Icon( + modifier = Modifier.clickable(onClick = {}), + imageVector = Icons.Filled.ChevronRight, + contentDescription = "TODO: Provide" + ) + } + } + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween + ) { + for (label in WeekdayListByLocale()) { + Text(text = label) + } + } + } +} diff --git a/DBTApp/app/src/main/java/de/cdaut/dbtapp/util/DateHelpers.kt b/DBTApp/app/src/main/java/de/cdaut/dbtapp/util/DateHelpers.kt new file mode 100644 index 0000000..528d4fd --- /dev/null +++ b/DBTApp/app/src/main/java/de/cdaut/dbtapp/util/DateHelpers.kt @@ -0,0 +1,16 @@ +package de.cdaut.dbtapp.util + +import java.time.DayOfWeek +import java.time.format.TextStyle +import java.time.temporal.WeekFields +import java.util.Locale + +fun WeekdayListByLocale(): List { + val locale = Locale.getDefault() + val listOfDayNames = DayOfWeek.entries.map { it.getDisplayName(TextStyle.NARROW, locale).substring(0, 1) } + val firstDayOfWeek = WeekFields.of(locale).firstDayOfWeek.ordinal + val orderedListOfDayNames = + listOfDayNames.subList(firstDayOfWeek, 7) + listOfDayNames.subList(0, firstDayOfWeek) + + return orderedListOfDayNames +}