From a1d15f16bd212b0ad773e4afebdb6de4d835fbd7 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 8 Apr 2026 16:08:02 +0800 Subject: [PATCH] compose: SearchScreen: Use random UUID as keys Server can send same package again as we are filtering through different bundles. Keys are basically packageName's hashcode, so they can end up as being similar and crash the app. Signed-off-by: Aayush Gupta --- app/build.gradle.kts | 3 ++- .../java/com/aurora/store/compose/ui/search/SearchScreen.kt | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 032c125dc..450da7f94 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -44,7 +44,8 @@ kotlin { "androidx.compose.material3.ExperimentalMaterial3ExpressiveApi", "androidx.compose.foundation.layout.ExperimentalLayoutApi", "androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi", - "coil3.annotation.ExperimentalCoilApi" + "coil3.annotation.ExperimentalCoilApi", + "kotlin.uuid.ExperimentalUuidApi" ) } } diff --git a/app/src/main/java/com/aurora/store/compose/ui/search/SearchScreen.kt b/app/src/main/java/com/aurora/store/compose/ui/search/SearchScreen.kt index 2d06463f4..49de49d13 100644 --- a/app/src/main/java/com/aurora/store/compose/ui/search/SearchScreen.kt +++ b/app/src/main/java/com/aurora/store/compose/ui/search/SearchScreen.kt @@ -63,7 +63,6 @@ import androidx.paging.LoadState import androidx.paging.PagingData import androidx.paging.compose.LazyPagingItems import androidx.paging.compose.collectAsLazyPagingItems -import androidx.paging.compose.itemKey import com.aurora.extensions.emptyPagingItems import com.aurora.gplayapi.SearchSuggestEntry import com.aurora.gplayapi.data.models.App @@ -82,6 +81,7 @@ import kotlinx.coroutines.android.awaitFrame import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch +import kotlin.uuid.Uuid @Composable fun SearchScreen(onNavigateUp: () -> Unit, viewModel: SearchViewModel = hiltViewModel()) { @@ -257,7 +257,7 @@ private fun ScreenContent( LazyColumn { items( count = results.itemCount, - key = results.itemKey { it.id } + key = { Uuid.random().toString() } ) { index -> results[index]?.let { app -> LargeAppListItem(