Use DisposableEffect + rememberMetricsStateHolder for Interests tab selection

Change-Id: I1b7820ebd4d9e16f0aa4d576c250e5aa137706c0
pull/145/head
Tomáš Mlynarič 2 years ago
parent a076a50010
commit 1ac3b4d90c

@ -29,19 +29,19 @@ import androidx.compose.material.icons.filled.MoreVert
import androidx.compose.material.icons.filled.Search import androidx.compose.material.icons.filled.Search
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.collectAsState import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel import androidx.hilt.navigation.compose.hiltViewModel
import com.google.samples.apps.nowinandroid.core.ui.LoadingWheel 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.NiaTab
import com.google.samples.apps.nowinandroid.core.ui.component.NiaTabRow 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.component.NiaTopAppBar
import com.google.samples.apps.nowinandroid.core.ui.rememberMetricsStateHolder
@Composable @Composable
fun InterestsRoute( fun InterestsRoute(
@ -62,7 +62,15 @@ fun InterestsRoute(
switchTab = viewModel::switchTab, switchTab = viewModel::switchTab,
modifier = modifier 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 @Composable

Loading…
Cancel
Save