From 4f6dc2f36aa68d7974798f8234f6edcae64a0538 Mon Sep 17 00:00:00 2001 From: xfy Date: Fri, 24 Jul 2026 13:28:48 +0800 Subject: [PATCH] =?UTF-8?q?refactor(ui):=20=E8=A1=A5=E5=85=A8=E5=BC=80?= =?UTF-8?q?=E6=94=BE=E6=BA=90=E4=BB=A3=E7=A0=81=E8=AE=B8=E5=8F=AF=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=E9=A1=B9=E5=B9=B6=E4=BC=98=E5=8C=96=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plus/rua/project/LicensesActivity.kt | 4 +-- .../kotlin/plus/rua/project/ui/Licenses.kt | 5 ++- .../plus/rua/project/ui/LicensesScreen.kt | 4 --- .../plus/rua/project/ui/LicensesTest.kt | 31 +++++++++++++++++++ 4 files changed, 37 insertions(+), 7 deletions(-) create mode 100644 core/src/test/kotlin/plus/rua/project/ui/LicensesTest.kt 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")) + } +}