From 1ac3b4d90ca2181a5d26e3d300635bec1d7e96e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Mlynari=C4=8D?= Date: Mon, 23 May 2022 14:37:30 +0200 Subject: [PATCH] Use DisposableEffect + rememberMetricsStateHolder for Interests tab selection Change-Id: I1b7820ebd4d9e16f0aa4d576c250e5aa137706c0 --- .../feature/interests/InterestsScreen.kt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreen.kt b/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreen.kt index 54fe3c9cf..eeba8e53d 100644 --- a/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreen.kt +++ b/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreen.kt @@ -29,19 +29,19 @@ import androidx.compose.material.icons.filled.MoreVert import androidx.compose.material.icons.filled.Search import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.LocalView import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import com.google.samples.apps.nowinandroid.core.ui.LoadingWheel -import com.google.samples.apps.nowinandroid.core.ui.addPerformanceMetricsState import com.google.samples.apps.nowinandroid.core.ui.component.NiaTab import com.google.samples.apps.nowinandroid.core.ui.component.NiaTabRow import com.google.samples.apps.nowinandroid.core.ui.component.NiaTopAppBar +import com.google.samples.apps.nowinandroid.core.ui.rememberMetricsStateHolder @Composable fun InterestsRoute( @@ -62,7 +62,15 @@ fun InterestsRoute( switchTab = viewModel::switchTab, modifier = modifier ) - LocalView.current.addPerformanceMetricsState("Interests", "$tabState") + + val metricsHolder = rememberMetricsStateHolder() + DisposableEffect(tabState, metricsHolder) { + metricsHolder.state?.addState("Interests:TabState", "currentIndex:${tabState.currentIndex}") + + onDispose { + metricsHolder.state?.removeState("Interests:TabState") + } + } } @Composable