Remember chronometer instance

This commit is contained in:
Juha Heinanen
2025-11-20 07:42:31 +02:00
parent 76a6c0e4d9
commit be79e05487
@@ -1242,14 +1242,14 @@ private fun CallUriRow(ctx: Context, viewModel: ViewModel) {
} }
if (showCallTimer.value) { if (showCallTimer.value) {
val textColor = MaterialTheme.colorScheme.onBackground.toArgb() val textColor = MaterialTheme.colorScheme.onBackground.toArgb()
var chronometerInstance: Chronometer? = null val chronometerInstance = remember { mutableStateOf<Chronometer?>(null) }
AndroidView( AndroidView(
factory = { context -> factory = { context ->
Chronometer(context).apply { Chronometer(context).apply {
textSize = 16F textSize = 16F
setTextColor(textColor) setTextColor(textColor)
base = SystemClock.elapsedRealtime() - (callDuration * 1000L) base = SystemClock.elapsedRealtime() - (callDuration * 1000L)
chronometerInstance = this chronometerInstance.value = this
} }
}, },
update = { chronometerView -> update = { chronometerView ->
@@ -1266,7 +1266,7 @@ private fun CallUriRow(ctx: Context, viewModel: ViewModel) {
) )
DisposableEffect(Unit) { DisposableEffect(Unit) {
onDispose { onDispose {
chronometerInstance?.let { chronometerInstance.value?.let {
it.stop() it.stop()
Log.d(TAG, "Chronometer stopped in onDispose") Log.d(TAG, "Chronometer stopped in onDispose")
} }