diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/tracing/ConfigureTracingPresenter.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/tracing/ConfigureTracingPresenter.kt index 6ad0529597..b0d2243c70 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/tracing/ConfigureTracingPresenter.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/tracing/ConfigureTracingPresenter.kt @@ -20,6 +20,7 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import io.element.android.libraries.architecture.Presenter +import kotlinx.collections.immutable.toImmutableMap import javax.inject.Inject class ConfigureTracingPresenter @Inject constructor( @@ -46,7 +47,7 @@ class ConfigureTracingPresenter @Inject constructor( } return ConfigureTracingState( - targetsToLogLevel = modifiedMap.value, + targetsToLogLevel = modifiedMap.value.toImmutableMap(), eventSink = ::handleEvents ) } diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/tracing/ConfigureTracingState.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/tracing/ConfigureTracingState.kt index f8433a68fb..bc36a6ede3 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/tracing/ConfigureTracingState.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/tracing/ConfigureTracingState.kt @@ -18,8 +18,9 @@ package io.element.android.features.preferences.impl.developer.tracing import io.element.android.libraries.matrix.api.tracing.LogLevel import io.element.android.libraries.matrix.api.tracing.Target +import kotlinx.collections.immutable.ImmutableMap data class ConfigureTracingState( - val targetsToLogLevel: Map, + val targetsToLogLevel: ImmutableMap, val eventSink: (ConfigureTracingEvents) -> Unit ) diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/tracing/ConfigureTracingStateProvider.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/tracing/ConfigureTracingStateProvider.kt index 06bacb8e74..fe2cfa44a9 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/tracing/ConfigureTracingStateProvider.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/tracing/ConfigureTracingStateProvider.kt @@ -19,6 +19,7 @@ package io.element.android.features.preferences.impl.developer.tracing import androidx.compose.ui.tooling.preview.PreviewParameterProvider import io.element.android.libraries.matrix.api.tracing.LogLevel import io.element.android.libraries.matrix.api.tracing.Target +import kotlinx.collections.immutable.persistentMapOf open class ConfigureTracingStateProvider : PreviewParameterProvider { override val values: Sequence @@ -28,7 +29,7 @@ open class ConfigureTracingStateProvider : PreviewParameterProvider, + data: ImmutableMap, onLogLevelChange: (Target, LogLevel) -> Unit, modifier: Modifier = Modifier, ) { @@ -205,32 +206,34 @@ fun LogLevelDropdownMenu( modifier: Modifier = Modifier, ) { var expanded by remember { mutableStateOf(false) } - DropdownMenuItem( - modifier = modifier.widthIn(max = 120.dp), - text = { Text(text = logLevel.filter) }, - onClick = { expanded = !expanded }, - trailingIcon = { - if (expanded) { - Icon(Icons.Default.ArrowDropUp, contentDescription = null) - } else { - Icon(Icons.Default.ArrowDropDown, contentDescription = null) - } - }, - ) - DropdownMenu( - expanded = expanded, - onDismissRequest = { expanded = false }, - ) { - LogLevel.values().forEach { logLevel -> - DropdownMenuItem( - text = { - Text(text = logLevel.filter) - }, - onClick = { - expanded = false - onLogLevelChange(logLevel) + Box(modifier = modifier) { + DropdownMenuItem( + modifier = Modifier.widthIn(max = 120.dp), + text = { Text(text = logLevel.filter) }, + onClick = { expanded = !expanded }, + trailingIcon = { + if (expanded) { + Icon(Icons.Default.ArrowDropUp, contentDescription = null) + } else { + Icon(Icons.Default.ArrowDropDown, contentDescription = null) } - ) + }, + ) + DropdownMenu( + expanded = expanded, + onDismissRequest = { expanded = false }, + ) { + LogLevel.values().forEach { logLevel -> + DropdownMenuItem( + text = { + Text(text = logLevel.filter) + }, + onClick = { + expanded = false + onLogLevelChange(logLevel) + } + ) + } } } }