update schema module

This commit is contained in:
Marek Lenczewski
2026-04-14 00:43:47 +02:00
parent 4a053c5ee7
commit d576747155
14 changed files with 148 additions and 142 deletions

View File

@@ -97,6 +97,8 @@ private fun SchemaRow(
schema.repeat == null -> "Einmalig"
schema.repeat.containsKey("daily") -> "Täglich"
schema.repeat.containsKey("weekly") -> "Wöchentlich"
schema.repeat.containsKey("2week") -> "2-Wöchentlich"
schema.repeat.containsKey("4week") -> "4-Wöchentlich"
schema.repeat.containsKey("monthly") -> "Monatlich"
else -> ""
}

View File

@@ -91,7 +91,7 @@ fun RepeatTypeDropdown(
current: String,
onChange: (String) -> Unit,
) {
val options = listOf("none" to "Keine (Einmalig)", "daily" to "Täglich", "weekly" to "Wöchentlich", "monthly" to "Monatlich")
val options = listOf("none" to "Keine (Einmalig)", "daily" to "Täglich", "weekly" to "Wöchentlich", "2week" to "2-Wöchentlich", "4week" to "4-Wöchentlich", "monthly" to "Monatlich")
var expanded by remember { mutableStateOf(false) }
ExposedDropdownMenuBox(expanded = expanded, onExpandedChange = { expanded = it }) {
OutlinedTextField(

View File

@@ -71,7 +71,7 @@ fun SchemaCreateScreen(
)
}
if (viewModel.repeatType == "weekly") {
if (viewModel.repeatType in listOf("weekly", "2week", "4week")) {
WeekdaySelector(
selected = viewModel.weekly,
onChange = { viewModel.weekly = it },

View File

@@ -48,6 +48,8 @@ class SchemaCreateViewModel : ViewModel() {
val repeat = when (repeatType) {
"daily" -> JsonObject(mapOf("daily" to JsonPrimitive(true)))
"weekly" -> JsonObject(mapOf("weekly" to buildJsonArray { weekly.forEach { add(JsonPrimitive(it)) } }))
"2week" -> JsonObject(mapOf("2week" to buildJsonArray { weekly.forEach { add(JsonPrimitive(it)) } }))
"4week" -> JsonObject(mapOf("4week" to buildJsonArray { weekly.forEach { add(JsonPrimitive(it)) } }))
"monthly" -> JsonObject(mapOf("monthly" to buildJsonArray { monthly.forEach { add(JsonPrimitive(it)) } }))
else -> null
}

View File

@@ -80,7 +80,7 @@ fun SchemaEditScreen(
)
}
if (viewModel.repeatType == "weekly") {
if (viewModel.repeatType in listOf("weekly", "2week", "4week")) {
WeekdaySelector(
selected = viewModel.weekly,
onChange = { viewModel.weekly = it },

View File

@@ -96,6 +96,16 @@ class SchemaEditViewModel : ViewModel() {
weekly = schema.repeat["weekly"]!!.jsonArray.map { it.jsonPrimitive.boolean }
monthly = List(31) { false }
}
schema.repeat.containsKey("2week") -> {
repeatType = "2week"
weekly = schema.repeat["2week"]!!.jsonArray.map { it.jsonPrimitive.boolean }
monthly = List(31) { false }
}
schema.repeat.containsKey("4week") -> {
repeatType = "4week"
weekly = schema.repeat["4week"]!!.jsonArray.map { it.jsonPrimitive.boolean }
monthly = List(31) { false }
}
schema.repeat.containsKey("monthly") -> {
repeatType = "monthly"
weekly = List(7) { false }
@@ -108,6 +118,8 @@ class SchemaEditViewModel : ViewModel() {
val repeat = when (repeatType) {
"daily" -> JsonObject(mapOf("daily" to JsonPrimitive(true)))
"weekly" -> JsonObject(mapOf("weekly" to buildJsonArray { weekly.forEach { add(JsonPrimitive(it)) } }))
"2week" -> JsonObject(mapOf("2week" to buildJsonArray { weekly.forEach { add(JsonPrimitive(it)) } }))
"4week" -> JsonObject(mapOf("4week" to buildJsonArray { weekly.forEach { add(JsonPrimitive(it)) } }))
"monthly" -> JsonObject(mapOf("monthly" to buildJsonArray { monthly.forEach { add(JsonPrimitive(it)) } }))
else -> null
}