Compare commits
1 Commits
feature/IS
...
feature/IS
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1fc9640e38 |
@@ -31,7 +31,7 @@ fun HourItemView(
|
|||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
hour: Int = 0,
|
hour: Int = 0,
|
||||||
onClick: () -> Unit = {},
|
onClick: () -> Unit = {},
|
||||||
title: String = ""
|
title:String = ""
|
||||||
) {
|
) {
|
||||||
Row(modifier = modifier,
|
Row(modifier = modifier,
|
||||||
horizontalArrangement = Arrangement.SpaceBetween,
|
horizontalArrangement = Arrangement.SpaceBetween,
|
||||||
@@ -129,4 +129,4 @@ fun PreviewHourItemView() {
|
|||||||
title = "Hour Item View"
|
title = "Hour Item View"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -59,7 +59,7 @@ fun LifeTimeView(
|
|||||||
|
|
||||||
// Temp 0..7
|
// Temp 0..7
|
||||||
for (i in 0..lifeTimeTypes.size -1) {
|
for (i in 0..lifeTimeTypes.size -1) {
|
||||||
val value = when (i) {
|
val hour = when (i) {
|
||||||
0 -> lifeTime.lamp
|
0 -> lifeTime.lamp
|
||||||
1 -> lifeTime.hp5x5
|
1 -> lifeTime.hp5x5
|
||||||
2 -> lifeTime.hp7x7
|
2 -> lifeTime.hp7x7
|
||||||
@@ -70,35 +70,22 @@ fun LifeTimeView(
|
|||||||
7 -> lifeTime.water
|
7 -> lifeTime.water
|
||||||
else -> 0
|
else -> 0
|
||||||
}
|
}
|
||||||
val modifier = Modifier
|
HourItemView(
|
||||||
.fillMaxSize()
|
modifier = Modifier
|
||||||
.weight(1f)
|
.fillMaxSize()
|
||||||
.padding(
|
.weight(1f)
|
||||||
start = 20.px.dp,
|
.padding(
|
||||||
end = 20.px.dp,
|
start = 20.px.dp,
|
||||||
//bottom = 10.px.dp
|
end = 20.px.dp,
|
||||||
)
|
//bottom = 10.px.dp
|
||||||
val title = lifeTimeTypes[i]
|
),
|
||||||
val onItemClick = {
|
title = lifeTimeTypes[i],
|
||||||
Timber.d("onClick > Temp $i ($title)")
|
hour = hour,
|
||||||
onClick.invoke(i)
|
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) {
|
if (i < lifeTimeTypes.size -1) {
|
||||||
HorizontalDivider(
|
HorizontalDivider(
|
||||||
@@ -121,4 +108,4 @@ fun LifeTimeView(
|
|||||||
@Composable
|
@Composable
|
||||||
fun PreviewLifeTimeView() {
|
fun PreviewLifeTimeView() {
|
||||||
LifeTimeView()
|
LifeTimeView()
|
||||||
}
|
}
|
||||||
@@ -334,7 +334,7 @@ fun DcdSettingPopup(
|
|||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxHeight()
|
.fillMaxHeight()
|
||||||
.size(40.px.dp, 210.px.dp),
|
.size(40.px.dp, 210.px.dp),
|
||||||
chargeRate = gasChargeRate.toInt()
|
chargeRate = gasChargeRate
|
||||||
)
|
)
|
||||||
|
|
||||||
// Icon
|
// Icon
|
||||||
|
|||||||
@@ -28,14 +28,26 @@ import com.laseroptek.raman.ui.screens.main.MainViewModel
|
|||||||
import com.laseroptek.raman.utils.DefaultDispatcherProvider
|
import com.laseroptek.raman.utils.DefaultDispatcherProvider
|
||||||
import com.laseroptek.raman.utils.ext.px
|
import com.laseroptek.raman.utils.ext.px
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
|
import kotlin.math.abs
|
||||||
|
import kotlin.math.ceil
|
||||||
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun GradientSlider(
|
fun GradientSlider(
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
chargeRate: Int = 0, // Value from (0 .. 100)
|
chargeRate: Float = 0f,
|
||||||
) {
|
) {
|
||||||
val chargeIndex = ((chargeRate.coerceIn(0, 100) + 4) / 5).toInt() // 0..19
|
val normalizedRate = chargeRate.coerceIn(0f, 100f)
|
||||||
|
val bucket = normalizedRate / 5f
|
||||||
|
val remainder = normalizedRate % 5f
|
||||||
|
val isExactMultiple = abs(remainder) < 0.0001f
|
||||||
|
|
||||||
|
val chargeIndex = when {
|
||||||
|
normalizedRate == 0f -> -1
|
||||||
|
isExactMultiple -> (bucket - 1f).toInt().coerceAtLeast(-1)
|
||||||
|
else -> (ceil(bucket.toDouble()).toInt() - 1)
|
||||||
|
}.coerceIn(-1, 19)
|
||||||
|
|
||||||
Timber.d("chargeRate: $chargeRate, chargeIndex: $chargeIndex")
|
Timber.d("chargeRate: $chargeRate, chargeIndex: $chargeIndex")
|
||||||
|
|
||||||
Box(
|
Box(
|
||||||
@@ -103,6 +115,6 @@ fun GradientSliderPreview(
|
|||||||
//mainViewModel = mainViewModel
|
//mainViewModel = mainViewModel
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.size(40.px.dp, 210.px.dp),
|
.size(40.px.dp, 210.px.dp),
|
||||||
chargeRate = 20
|
chargeRate = 20f
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user