Compare commits
3 Commits
feature/IS
...
feature/IS
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1fc9640e38 | ||
| 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) {
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -334,7 +334,7 @@ fun DcdSettingPopup(
|
||||
modifier = Modifier
|
||||
.fillMaxHeight()
|
||||
.size(40.px.dp, 210.px.dp),
|
||||
chargeRate = gasChargeRate.toInt()
|
||||
chargeRate = gasChargeRate
|
||||
)
|
||||
|
||||
// Icon
|
||||
|
||||
@@ -28,14 +28,26 @@ import com.laseroptek.raman.ui.screens.main.MainViewModel
|
||||
import com.laseroptek.raman.utils.DefaultDispatcherProvider
|
||||
import com.laseroptek.raman.utils.ext.px
|
||||
import timber.log.Timber
|
||||
import kotlin.math.abs
|
||||
import kotlin.math.ceil
|
||||
|
||||
|
||||
@Composable
|
||||
fun GradientSlider(
|
||||
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")
|
||||
|
||||
Box(
|
||||
@@ -103,6 +115,6 @@ fun GradientSliderPreview(
|
||||
//mainViewModel = mainViewModel
|
||||
modifier = Modifier
|
||||
.size(40.px.dp, 210.px.dp),
|
||||
chargeRate = 20
|
||||
chargeRate = 20f
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user