diff --git a/app/src/main/kotlin/plus/rua/project/LicensesActivity.kt b/app/src/main/kotlin/plus/rua/project/LicensesActivity.kt index 9c99f4e..ef8d0ab 100644 --- a/app/src/main/kotlin/plus/rua/project/LicensesActivity.kt +++ b/app/src/main/kotlin/plus/rua/project/LicensesActivity.kt @@ -12,8 +12,8 @@ class LicensesActivity : BaseActivity() { setContent { YaYaTheme { LicensesScreen( - onBack = { finishWithSlideBack() } - ) + onBack = { finishWithSlideBack() } + ) } } } diff --git a/core/src/main/kotlin/plus/rua/project/ui/Licenses.kt b/core/src/main/kotlin/plus/rua/project/ui/Licenses.kt index b21e9ae..da09f04 100644 --- a/core/src/main/kotlin/plus/rua/project/ui/Licenses.kt +++ b/core/src/main/kotlin/plus/rua/project/ui/Licenses.kt @@ -16,11 +16,14 @@ data class LicenseItem( */ val licenses = listOf( LicenseItem("AndroidX Activity Compose", "Apache-2.0"), + LicenseItem("AndroidX CameraX", "Apache-2.0"), LicenseItem("AndroidX Lifecycle", "Apache-2.0"), + LicenseItem("AndroidX Media3 (ExoPlayer)", "Apache-2.0"), + LicenseItem("AndroidX Room", "Apache-2.0"), LicenseItem("Compose Material 3", "Apache-2.0"), - LicenseItem("Compose Multiplatform", "Apache-2.0"), LicenseItem("Kotlin", "Apache-2.0"), LicenseItem("kotlinx-datetime", "Apache-2.0"), LicenseItem("Sketch", "Apache-2.0"), LicenseItem("tyme4kt", "MIT"), + LicenseItem("ZoomImage", "Apache-2.0"), ) diff --git a/core/src/main/kotlin/plus/rua/project/ui/LicensesScreen.kt b/core/src/main/kotlin/plus/rua/project/ui/LicensesScreen.kt index ef22d53..da33bcb 100644 --- a/core/src/main/kotlin/plus/rua/project/ui/LicensesScreen.kt +++ b/core/src/main/kotlin/plus/rua/project/ui/LicensesScreen.kt @@ -1,6 +1,5 @@ package plus.rua.project.ui -import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn @@ -10,7 +9,6 @@ import androidx.compose.material.icons.filled.ChevronLeft import androidx.compose.material3.Card import androidx.compose.material3.CardDefaults import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.ListItem @@ -21,7 +19,6 @@ import androidx.compose.material3.TopAppBar import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp - /** * 开放源代码许可页面,展示项目使用的第三方库及其许可证。 * @@ -57,7 +54,6 @@ fun LicensesScreen( ) { items(licenses) { item -> Card( - onClick = {}, colors = CardDefaults.cardColors( containerColor = MaterialTheme.colorScheme.surfaceContainerHigh ), diff --git a/core/src/test/kotlin/plus/rua/project/ui/LicensesTest.kt b/core/src/test/kotlin/plus/rua/project/ui/LicensesTest.kt new file mode 100644 index 0000000..61a6314 --- /dev/null +++ b/core/src/test/kotlin/plus/rua/project/ui/LicensesTest.kt @@ -0,0 +1,31 @@ +package plus.rua.project.ui + +import kotlin.test.Test +import kotlin.test.assertTrue + +/** + * 开放源代码许可列表测试。 + */ +class LicensesTest { + + @Test + fun `licenses list is non empty and contains valid library names and licenses`() { + assertTrue(licenses.isNotEmpty(), "许可列表不应为空") + licenses.forEach { item -> + assertTrue(item.library.isNotBlank(), "库名称不应为空") + assertTrue(item.license.isNotBlank(), "许可证名称不应为空") + } + } + + @Test + fun `licenses list contains core dependencies`() { + val libraries = licenses.map { it.library } + assertTrue(libraries.contains("AndroidX Activity Compose")) + assertTrue(libraries.contains("Kotlin")) + assertTrue(libraries.contains("kotlinx-datetime")) + assertTrue(libraries.contains("tyme4kt")) + assertTrue(libraries.contains("Sketch")) + assertTrue(libraries.contains("ZoomImage")) + assertTrue(libraries.contains("AndroidX Room")) + } +}