diff --git a/shared/src/androidMain/kotlin/com/whitefish/ring/data/DeviceDataProvider.android.kt b/shared/src/androidMain/kotlin/com/whitefish/ring/data/DeviceDataProvider.android.kt index cf72dc8..954f346 100644 --- a/shared/src/androidMain/kotlin/com/whitefish/ring/data/DeviceDataProvider.android.kt +++ b/shared/src/androidMain/kotlin/com/whitefish/ring/data/DeviceDataProvider.android.kt @@ -1,7 +1,9 @@ package com.whitefish.ring.data import com.whitefish.ring.bean.ui.HeartRate +import com.whitefish.ring.bean.ui.Oximetry import com.whitefish.ring.bean.ui.SleepState +import com.whitefish.ring.bean.ui.Temperature import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.withContext @@ -34,5 +36,19 @@ actual suspend fun getSleep( end: Long ): SleepState { //todo android sleep data - return SleepState(0,emptyList()) + return SleepState(0,emptyList(),0,0) +} + +actual suspend fun getOximetry( + start: Long, + end: Long +): List { + TODO("Not yet implemented") +} + +actual suspend fun getTemperature( + start: Long, + end: Long +): List { + TODO("Not yet implemented") } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/whitefish/ring/ui/chart/RecoveryChartWithTimeLabels.kt b/shared/src/commonMain/kotlin/com/whitefish/ring/ui/chart/RecoveryChartWithTimeLabels.kt index b196e1e..6013685 100644 --- a/shared/src/commonMain/kotlin/com/whitefish/ring/ui/chart/RecoveryChartWithTimeLabels.kt +++ b/shared/src/commonMain/kotlin/com/whitefish/ring/ui/chart/RecoveryChartWithTimeLabels.kt @@ -17,6 +17,7 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.compose.foundation.Canvas import androidx.compose.foundation.Image +import androidx.compose.material3.CardDefaults import androidx.compose.ui.geometry.Offset import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.text.TextMeasurer @@ -24,6 +25,7 @@ import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.drawText import androidx.compose.ui.text.rememberTextMeasurer import org.jetbrains.compose.resources.painterResource +import org.jetbrains.compose.ui.tooling.preview.Preview import ring.shared.generated.resources.Res import ring.shared.generated.resources.bg_recovery_chart import ring.shared.generated.resources.bg_recovery_score @@ -38,18 +40,11 @@ fun RecoveryChartWithTimeLabels( val textMeasurer = rememberTextMeasurer() Card( - modifier = modifier - .clip(RoundedCornerShape(24.dp)), - shape = RoundedCornerShape(24.dp) + modifier = modifier, + colors = CardDefaults.cardColors().copy(containerColor = Color(0xff352764)) ) { - Box(modifier = Modifier.wrapContentSize()) { - Image( - painterResource(Res.drawable.bg_recovery_chart), - contentDescription = null, - modifier = Modifier.fillMaxSize(), - contentScale = ContentScale.Crop - ) + Box(modifier = Modifier.fillMaxSize().background(Color.Transparent)) { Box( modifier = Modifier.padding(horizontal = 24.dp) ) { @@ -433,4 +428,16 @@ private fun generateSamplePredictedData(): List { val noise = cos(timeInHours * 0.3f).toFloat() * 0.03f (baseValue + noise).coerceIn(0f, 1f) } -} \ No newline at end of file +} + +@Preview +@Composable +fun RecoveryChartWithTimeLabelsPreview() { + RecoveryChartWithTimeLabels( + modifier = Modifier + .fillMaxWidth() + .height(300.dp), + actualData = generateSampleActualData(), + predictedData = generateSamplePredictedData() + ) +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/com/whitefish/ring/ui/chart/RecoveryStateCard.kt b/shared/src/commonMain/kotlin/com/whitefish/ring/ui/chart/RecoveryStateCard.kt index 716f156..9fdbaf5 100644 --- a/shared/src/commonMain/kotlin/com/whitefish/ring/ui/chart/RecoveryStateCard.kt +++ b/shared/src/commonMain/kotlin/com/whitefish/ring/ui/chart/RecoveryStateCard.kt @@ -2,25 +2,20 @@ package com.whitefish.ring.ui.chart import androidx.compose.foundation.Image import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxHeight -import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.wrapContentHeight -import androidx.compose.foundation.layout.wrapContentSize -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.items import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -33,11 +28,8 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.whitefish.app.ui.chart.sleep.SleepChart import com.whitefish.ring.bean.ui.SleepState -import com.whitefish.ring.utils.buildStyledText import org.jetbrains.compose.resources.DrawableResource import org.jetbrains.compose.resources.painterResource -import org.jetbrains.compose.ui.tooling.preview.Preview -import ring.shared.generated.resources.Res data class RecoveryStateCardItem( @@ -60,7 +52,7 @@ sealed class RecoveryStateCardType() { fun RecoveryStateCard(states: List) { Card( shape = RoundedCornerShape(40.dp), - modifier = Modifier.fillMaxWidth().wrapContentHeight() + modifier = Modifier.fillMaxWidth().wrapContentHeight(), colors = CardDefaults.cardColors().copy(containerColor = Color.White) ) { Spacer(modifier = Modifier.height(6.dp)) Box(modifier = Modifier.width(92.dp).height(6.dp).clip(RoundedCornerShape(15.dp)).background(Color(0xff352764)).align( @@ -81,7 +73,9 @@ fun RecoveryStateCard(states: List) { is RecoveryStateCardType.Oximetry -> { ComposeMultiplatformBasicLineChart(it.type.values,modifier = modifier) } - is RecoveryStateCardType.Pressure -> TODO() + is RecoveryStateCardType.Pressure -> { + + } is RecoveryStateCardType.Temperature -> { ComposeMultiplatformBasicLineChart(it.type.values,modifier = modifier) }