Untitled
unknown
kotlin
3 years ago
6.3 kB
13
Indexable
package com.kingfu.clok.stopwatch.stopwatchView
import android.content.res.Configuration
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.ScrollState
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.LazyListState
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.material.Divider
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.kingfu.clok.stopwatch.stopwatchViewModel.StopwatchViewModel
import com.kingfu.clok.ui.theme.Black00
import com.kingfu.clok.util.customFontSize
@Composable
fun StopwatchLapView(
vm: StopwatchViewModel,
lazyColumnState: LazyListState,
configurationOrientation: Int
) {
LaunchedEffect(Unit) {
vm.loadStopwatchLapCounter()
vm.loadStopwatchLapNumber()
vm.loadStopwatchLapTimes()
vm.loadStopwatchLapTotalTimes()
}
if (vm.lapCounter > 0) {
if (configurationOrientation == Configuration.ORIENTATION_PORTRAIT) {
Spacer(modifier = Modifier.padding(top = 40.dp, bottom = 5.dp))
} else {
Spacer(modifier = Modifier.padding(horizontal = 25.dp))
}
Column(
modifier = Modifier
.height(if (configurationOrientation == Configuration.ORIENTATION_PORTRAIT) 340.dp else 250.dp)
.width(350.dp)
) {
Row(
Modifier
.padding(10.dp)
.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceAround
) {
Text(
text = "Lap",
modifier = Modifier,
fontSize = customFontSize(textUnit = 16.sp),
fontFamily = FontFamily.Default,
fontWeight = FontWeight.Normal,
color = Color.White.copy(0.70f)
)
Text(
text = "Lap times",
modifier = Modifier,
fontSize = customFontSize(textUnit = 16.sp),
fontFamily = FontFamily.Default,
fontWeight = FontWeight.Normal,
color = Color.White.copy(0.70f)
)
Text(
text = "Total times",
modifier = Modifier,
fontSize = customFontSize(textUnit = 16.sp),
fontFamily = FontFamily.Default,
fontWeight = FontWeight.Normal,
color = Color.White.copy(0.70f)
)
}
Spacer(
modifier = Modifier
.height(0.8.dp)
.padding(horizontal = 12.dp)
.fillMaxWidth()
.background(Color.DarkGray)
)
Box {
LazyColumn(
modifier = Modifier
.fillMaxHeight()
.fillMaxWidth(),
state = lazyColumnState,
) {
items(vm.lapNumber.size) { index ->
Row(
modifier = Modifier
.padding(10.dp)
.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceAround
) {
Text(
text = if (vm.lapNumber[index].toInt() < 10) "0${vm.lapNumber[index]}" else vm.lapNumber[index],
fontSize = customFontSize(textUnit = 16.sp),
fontFamily = FontFamily.Default,
fontWeight = FontWeight.Normal,
color = Color.White.copy(0.50f)
)
Text(
text = vm.lapTime[index].take(8),
fontSize = customFontSize(textUnit = 16.sp),
fontFamily = FontFamily.Default,
fontWeight = FontWeight.Normal,
color = Color.White.copy(0.70f)
)
Text(
text = vm.lapTotalTime[index].take(8),
fontSize = customFontSize(textUnit = 16.sp),
fontFamily = FontFamily.Default,
fontWeight = FontWeight.Normal,
color = Color.White.copy(0.90f)
)
}
}
}
Box(
modifier = Modifier
.background(
Brush.verticalGradient(
listOf(
Color.Transparent,
Color.Transparent,
Color.Transparent,
Color.Transparent,
Color.Transparent,
Color.Transparent,
Color.Transparent,
Color.Transparent,
Color.Transparent,
Black00
)
)
)
.matchParentSize()
)
}
}
}
}Editor is loading...