diff --git a/feature/interests/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/TabContent.kt b/feature/interests/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/TabContent.kt index 133c2bedd..dac14bb46 100644 --- a/feature/interests/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/TabContent.kt +++ b/feature/interests/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/TabContent.kt @@ -40,6 +40,7 @@ import com.google.samples.apps.nowinandroid.core.designsystem.component.scrollba import com.google.samples.apps.nowinandroid.core.designsystem.component.scrollbar.scrollbarState import com.google.samples.apps.nowinandroid.core.model.data.FollowableTopic import com.google.samples.apps.nowinandroid.core.ui.InterestsItem +import com.google.samples.apps.nowinandroid.core.ui.TrackScrollJank @Composable fun TopicsTabContent( @@ -56,10 +57,14 @@ fun TopicsTabContent( .fillMaxWidth(), ) { val scrollableState = rememberLazyListState() + val testTag = "interests:topics" + + TrackScrollJank(scrollableState = scrollableState, stateName = testTag) + LazyColumn( modifier = Modifier .padding(horizontal = 24.dp) - .testTag("interests:topics"), + .testTag(testTag), contentPadding = PaddingValues(vertical = 16.dp), state = scrollableState, ) { diff --git a/feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreen.kt b/feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreen.kt index b617f98a9..308a9b2d6 100644 --- a/feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreen.kt +++ b/feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreen.kt @@ -36,6 +36,7 @@ import androidx.compose.foundation.layout.windowInsetsPadding import androidx.compose.foundation.layout.windowInsetsTopHeight import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.lazy.staggeredgrid.LazyVerticalStaggeredGrid import androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridCells import androidx.compose.foundation.lazy.staggeredgrid.StaggeredGridItemSpan @@ -92,6 +93,7 @@ import com.google.samples.apps.nowinandroid.core.ui.InterestsItem import com.google.samples.apps.nowinandroid.core.ui.NewsFeedUiState.Success import com.google.samples.apps.nowinandroid.core.ui.R.string import com.google.samples.apps.nowinandroid.core.ui.TrackScreenViewEvent +import com.google.samples.apps.nowinandroid.core.ui.TrackScrollJank import com.google.samples.apps.nowinandroid.core.ui.newsFeed import com.google.samples.apps.nowinandroid.feature.search.R as searchR @@ -154,8 +156,7 @@ internal fun SearchScreen( -> Unit SearchResultUiState.SearchNotReady -> SearchNotReadyBody() - SearchResultUiState.EmptyQuery, - -> { + SearchResultUiState.EmptyQuery -> { if (recentSearchesUiState is RecentSearchQueriesUiState.Success) { RecentSearchesBody( onClearRecentSearches = onClearRecentSearches, @@ -293,6 +294,10 @@ private fun SearchResultBody( onFollowButtonClick: (String, Boolean) -> Unit, ) { val state = rememberLazyStaggeredGridState() + val testTag = "search:searchResult" + + TrackScrollJank(scrollableState = state, stateName = testTag) + Box( modifier = Modifier .fillMaxSize(), @@ -304,7 +309,7 @@ private fun SearchResultBody( verticalItemSpacing = 24.dp, modifier = Modifier .fillMaxSize() - .testTag("search:newsResources"), + .testTag(testTag), state = state, ) { if (topics.isNotEmpty()) { @@ -394,6 +399,10 @@ private fun RecentSearchesBody( onRecentSearchClicked: (String) -> Unit, ) { Column { + val scrollableState = rememberLazyListState() + + TrackScrollJank(scrollableState = scrollableState, stateName = "search:recentSearches") + Row( horizontalArrangement = Arrangement.SpaceBetween, verticalAlignment = Alignment.CenterVertically, @@ -424,7 +433,10 @@ private fun RecentSearchesBody( } } } - LazyColumn(modifier = Modifier.padding(horizontal = 16.dp)) { + LazyColumn( + modifier = Modifier.padding(horizontal = 16.dp), + state = scrollableState, + ) { items(recentSearchQueries) { recentSearch -> Text( text = recentSearch,