Compare commits
3 Commits
feature/IS
...
feature/IS
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3c9a07bf9a | ||
| 53cd5976bb | |||
|
|
841d9221a6 |
@@ -5,6 +5,7 @@ import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.border
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
@@ -13,15 +14,19 @@ import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material3.HorizontalDivider
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
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.text.style.TextAlign
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import com.laseroptek.raman.const.temperatureTypes
|
||||
import com.laseroptek.raman.data.model.serial.Temperature
|
||||
import com.laseroptek.raman.ui.theme.RobotoTypography
|
||||
import com.laseroptek.raman.utils.ext.px
|
||||
import timber.log.Timber
|
||||
|
||||
@@ -56,7 +61,33 @@ fun TemperatureView(
|
||||
),
|
||||
)
|
||||
|
||||
Spacer(modifier = Modifier.height(10.px.dp))
|
||||
Row(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(start = 20.px.dp, end = 20.px.dp),
|
||||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
Spacer(modifier = Modifier.weight(1.5f))
|
||||
Text(
|
||||
modifier = Modifier.weight(1f),
|
||||
text = "Read",
|
||||
style = RobotoTypography.labelMedium,
|
||||
fontSize = 12.px.sp,
|
||||
color = Color.Black,
|
||||
textAlign = TextAlign.End
|
||||
)
|
||||
Text(
|
||||
modifier = Modifier.weight(1f),
|
||||
text = "Write",
|
||||
style = RobotoTypography.labelMedium,
|
||||
fontSize = 12.px.sp,
|
||||
color = Color.Black,
|
||||
textAlign = TextAlign.End
|
||||
)
|
||||
Spacer(modifier = Modifier.weight(1f))
|
||||
}
|
||||
|
||||
Spacer(modifier = Modifier.height(2.px.dp))
|
||||
|
||||
// Tempearture
|
||||
for (i in 0..temperatureTypes.size -1) {
|
||||
@@ -116,4 +147,4 @@ fun TemperatureView(
|
||||
@Composable
|
||||
fun PreviewSerialNumber() {
|
||||
TemperatureView()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,25 +75,6 @@ fun TwoCountItemView(
|
||||
)
|
||||
}
|
||||
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.weight(1f)
|
||||
.height(30.px.dp),
|
||||
verticalArrangement = Arrangement.Center,
|
||||
horizontalAlignment = Alignment.Start
|
||||
) {
|
||||
Text(
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
text = "Read",
|
||||
style = RobotoTypography.bodyMedium,
|
||||
fontWeight = FontWeight.Normal,
|
||||
fontSize = 12.px.sp,
|
||||
color = Color.Black,
|
||||
textAlign = TextAlign.End
|
||||
)
|
||||
}
|
||||
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
@@ -113,25 +94,6 @@ fun TwoCountItemView(
|
||||
)
|
||||
}
|
||||
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.weight(1f)
|
||||
.height(30.px.dp),
|
||||
verticalArrangement = Arrangement.Center,
|
||||
horizontalAlignment = Alignment.Start
|
||||
) {
|
||||
Text(
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
text = "Write",
|
||||
style = RobotoTypography.bodyMedium,
|
||||
fontWeight = FontWeight.Normal,
|
||||
fontSize = 12.px.sp,
|
||||
color = Color.Black,
|
||||
textAlign = TextAlign.End
|
||||
)
|
||||
}
|
||||
|
||||
Column(
|
||||
modifier = Modifier
|
||||
//.noRippleClickable(onClick = onDeviceOpTimeClick)
|
||||
|
||||
@@ -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