Compare commits
1 Commits
feature/IS
...
feature/IS
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3c9a07bf9a |
@@ -59,7 +59,7 @@ fun LifeTimeView(
|
||||
|
||||
// Temp 0..7
|
||||
for (i in 0..lifeTimeTypes.size -1) {
|
||||
val value = when (i) {
|
||||
val hour = when (i) {
|
||||
0 -> lifeTime.lamp
|
||||
1 -> lifeTime.hp5x5
|
||||
2 -> lifeTime.hp7x7
|
||||
@@ -70,35 +70,22 @@ fun LifeTimeView(
|
||||
7 -> lifeTime.water
|
||||
else -> 0
|
||||
}
|
||||
val modifier = Modifier
|
||||
HourItemView(
|
||||
modifier = Modifier
|
||||
.fillMaxSize()
|
||||
.weight(1f)
|
||||
.padding(
|
||||
start = 20.px.dp,
|
||||
end = 20.px.dp,
|
||||
//bottom = 10.px.dp
|
||||
)
|
||||
val title = lifeTimeTypes[i]
|
||||
val onItemClick = {
|
||||
Timber.d("onClick > Temp $i ($title)")
|
||||
),
|
||||
title = lifeTimeTypes[i],
|
||||
hour = hour,
|
||||
onClick = {
|
||||
Timber.d("onClick > Temp $i (${lifeTimeTypes[i]})")
|
||||
onClick.invoke(i)
|
||||
}
|
||||
|
||||
if (i <= 4) {
|
||||
CountItemView(
|
||||
modifier = modifier,
|
||||
title = title,
|
||||
count = value,
|
||||
onClick = onItemClick
|
||||
)
|
||||
} else {
|
||||
HourItemView(
|
||||
modifier = modifier,
|
||||
title = title,
|
||||
hour = value,
|
||||
onClick = onItemClick
|
||||
)
|
||||
}
|
||||
|
||||
if (i < lifeTimeTypes.size -1) {
|
||||
HorizontalDivider(
|
||||
|
||||
@@ -646,7 +646,7 @@ fun PresetLoadPopup(
|
||||
Timber.d("onClick - Confirm Save")
|
||||
|
||||
// Check empty names and conflict priority exist in the preset viewmodel's presetList
|
||||
val listToValidate = presetViewModel.presetList.value
|
||||
var listToValidate = presetViewModel.presetList.value
|
||||
|
||||
// Check for any presets with an empty name
|
||||
val hasEmptyName =
|
||||
@@ -678,18 +678,32 @@ fun PresetLoadPopup(
|
||||
}
|
||||
|
||||
// Check for duplicate priorities (ignoring priority 0)
|
||||
val priorityConflicts = listToValidate
|
||||
.filter { it.priority > 0 } // Only consider prioritized items
|
||||
.groupBy { it.priority } // Group them by priority
|
||||
.any { it.value.size > 1 } // Check if any group is larger than 1
|
||||
val duplicatePriorityGroups = listToValidate
|
||||
.filter { it.priority > 0 }
|
||||
.groupBy { it.priority }
|
||||
.filter { it.value.size > 1 }
|
||||
|
||||
if (priorityConflicts) {
|
||||
Toast.makeText(
|
||||
context,
|
||||
"There are duplicate priorities. Please ensure each priority is unique.",
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
return@noRippleClickable // Stop the process
|
||||
if (duplicatePriorityGroups.isNotEmpty()) {
|
||||
val resolvedList = listToValidate.map { it.copy() }.toMutableList()
|
||||
val selectedPreset = resolvedList.getOrNull(selectedPresetIndex)
|
||||
|
||||
duplicatePriorityGroups.forEach { (priorityValue, presets) ->
|
||||
val keeperId = presets
|
||||
.firstOrNull { preset ->
|
||||
selectedPreset != null && preset.id == selectedPreset.id
|
||||
}
|
||||
?.id
|
||||
?: presets.first().id
|
||||
|
||||
resolvedList.forEachIndexed { index, preset ->
|
||||
if (preset.priority == priorityValue && preset.id != keeperId) {
|
||||
resolvedList[index] = preset.copy(priority = 0)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
presetViewModel.setPresetList(resolvedList)
|
||||
listToValidate = resolvedList
|
||||
}
|
||||
|
||||
Timber.d("Validation successful. Saving list to MainViewModel.")
|
||||
|
||||
Reference in New Issue
Block a user