diff --git a/app/src/main/java/com/example/research/ui/about/AboutScreen.kt b/app/src/main/java/com/example/research/ui/about/AboutScreen.kt index 7795d27..ad6d88c 100644 --- a/app/src/main/java/com/example/research/ui/about/AboutScreen.kt +++ b/app/src/main/java/com/example/research/ui/about/AboutScreen.kt @@ -1,6 +1,5 @@ package com.example.research.ui.about -import androidx.compose.animation.animateContentSize import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ExperimentalLayoutApi @@ -27,6 +26,7 @@ import androidx.compose.material3.TopAppBarDefaults import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.produceState import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment @@ -43,6 +43,8 @@ import androidx.compose.ui.unit.dp import com.example.research.R import com.example.research.common.ui.components.OutlinedChoiceButton import com.example.research.ui.theme.AppWindowInsets +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext @OptIn(ExperimentalMaterial3Api::class, ExperimentalLayoutApi::class) @Composable @@ -57,8 +59,10 @@ fun AboutScreen( } val versionName = packageInfo?.versionName ?: stringResource(R.string.version_unknown) val uriHandler = LocalUriHandler.current - val librariesData = remember(context) { - AboutLibrariesParser.read(context, R.raw.aboutlibraries) + val librariesData by produceState(initialValue = null, context) { + value = withContext(Dispatchers.IO) { + AboutLibrariesParser.read(context, R.raw.aboutlibraries) + } } var expandedLibraryId by remember { mutableStateOf(null) } var dialogLicense by remember { mutableStateOf(null) } @@ -93,12 +97,12 @@ fun AboutScreen( AboutHeader(versionName = versionName) } items( - items = librariesData.libraries, + items = librariesData?.libraries.orEmpty(), key = AboutLibrary::uniqueId, ) { library -> AboutLibraryRow( library = library, - licenses = librariesData.licenses, + licenses = librariesData?.licenses.orEmpty(), expanded = expandedLibraryId == library.uniqueId, onToggle = { expandedLibraryId = if (expandedLibraryId == library.uniqueId) { @@ -191,8 +195,7 @@ private fun AboutLibraryRow( ) { Column( modifier = Modifier - .padding(horizontal = 16.dp, vertical = 12.dp) - .animateContentSize(), + .padding(horizontal = 16.dp, vertical = 12.dp), verticalArrangement = Arrangement.spacedBy(5.dp) ) { Row( diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 735f249..98bdfc7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -aboutlibraries = "15.0.4" +aboutlibraries = "15.2.0" activity_compose = "1.13.0" agp = "9.3.1" compose_bom = "2026.08.00"