新增"日期记录器"工具:相册式记录管理,支持拍照→编辑→记录信息的完整流程。 数据层: - Room 2.8.4 首个数据库(KSP 2.3.10),DateRecord 实体含标题/备注/拍摄日期/关联日期 - DateRecordConverters 处理 kotlinx-datetime ↔ ISO 字符串 - DateRecorderRepository 封装 DAO + filesDir 照片文件管理 UI 层: - CameraScreen: CameraX 1.5.3 应用内预览,运行时权限请求,前后摄切换 - PhotoEditorScreen: 纯 Compose 自实现旋转/裁剪/手写三 Tab 编辑器 - DateRecorderScreen: LazyVerticalGrid 相册网格 + 多选 + 6 种排序 + 批量删除 - RecordEditScreen / RecordDetailScreen: 记录信息编辑与详情查看 基础设施: - CAMERA 权限 + FileProvider(filesDir 存储,免存储权限) - 5 个 Activity 延续项目 Activity+Intent 滑动转场模式 - 2 个单测:排序逻辑 6 种组合 + 降采样计算
71 lines
4.1 KiB
TOML
71 lines
4.1 KiB
TOML
[versions]
|
|
agp = "9.2.1"
|
|
android-compileSdk = "37"
|
|
android-minSdk = "24"
|
|
android-targetSdk = "37"
|
|
androidx-activity = "1.13.0"
|
|
androidx-espresso = "3.7.0"
|
|
androidx-lifecycle = "2.11.0"
|
|
androidx-media3 = "1.6.1"
|
|
androidx-testExt = "1.3.0"
|
|
androidx-uiautomator = "2.4.0"
|
|
benchmarkMacro = "1.4.1"
|
|
camerax = "1.5.3"
|
|
catalogUpdate = "1.1.0"
|
|
composeBom = "2026.06.01"
|
|
kotlin = "2.3.21"
|
|
kotlinx-datetime = "0.8.0"
|
|
ksp = "2.3.10"
|
|
profileinstaller = "1.4.1"
|
|
room = "2.8.4"
|
|
sketch = "4.4.0"
|
|
spotless = "8.8.0"
|
|
tyme4kt = "1.5.0"
|
|
versions = "0.54.0"
|
|
|
|
[libraries]
|
|
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity" }
|
|
androidx-benchmark-macro = { module = "androidx.benchmark:benchmark-macro-junit4", version.ref = "benchmarkMacro" }
|
|
camera-camera2 = { module = "androidx.camera:camera-camera2", version.ref = "camerax" }
|
|
camera-core = { module = "androidx.camera:camera-core", version.ref = "camerax" }
|
|
camera-lifecycle = { module = "androidx.camera:camera-lifecycle", version.ref = "camerax" }
|
|
camera-view = { module = "androidx.camera:camera-view", version.ref = "camerax" }
|
|
androidx-lifecycle-runtimeCompose = { module = "androidx.lifecycle:lifecycle-runtime-compose", version.ref = "androidx-lifecycle" }
|
|
androidx-lifecycle-viewmodelCompose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "androidx-lifecycle" }
|
|
androidx-media3-exoplayer = { module = "androidx.media3:media3-exoplayer", version.ref = "androidx-media3" }
|
|
androidx-media3-ui = { module = "androidx.media3:media3-ui", version.ref = "androidx-media3" }
|
|
androidx-profileinstaller = { module = "androidx.profileinstaller:profileinstaller", version.ref = "profileinstaller" }
|
|
androidx-test-espresso = { module = "androidx.test.espresso:espresso-core", version.ref = "androidx-espresso" }
|
|
androidx-test-ext-junit = { module = "androidx.test.ext:junit", version.ref = "androidx-testExt" }
|
|
androidx-test-uiautomator = { module = "androidx.test.uiautomator:uiautomator", version.ref = "androidx-uiautomator" }
|
|
compose-animation = { module = "androidx.compose.animation:animation" }
|
|
compose-bom = { module = "androidx.compose:compose-bom", version.ref = "composeBom" }
|
|
compose-foundation = { module = "androidx.compose.foundation:foundation" }
|
|
compose-material-icons = { module = "androidx.compose.material:material-icons-extended" }
|
|
compose-material3 = { module = "androidx.compose.material3:material3" }
|
|
compose-runtime = { module = "androidx.compose.runtime:runtime" }
|
|
compose-ui = { module = "androidx.compose.ui:ui" }
|
|
compose-uiTooling = { module = "androidx.compose.ui:ui-tooling" }
|
|
compose-uiToolingPreview = { module = "androidx.compose.ui:ui-tooling-preview" }
|
|
kotlinx-coroutines-test = "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.11.0"
|
|
kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinx-datetime" }
|
|
room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" }
|
|
room-ktx = { module = "androidx.room:room-ktx", version.ref = "room" }
|
|
room-runtime = { module = "androidx.room:room-runtime", version.ref = "room" }
|
|
room-testing = { module = "androidx.room:room-testing", version.ref = "room" }
|
|
sketch-animated-webp = { module = "io.github.panpf.sketch4:sketch-animated-webp", version.ref = "sketch" }
|
|
sketch-compose = { module = "io.github.panpf.sketch4:sketch-compose", version.ref = "sketch" }
|
|
tyme4kt = { module = "cn.6tail:tyme4kt", version.ref = "tyme4kt" }
|
|
|
|
[plugins]
|
|
androidApplication = { id = "com.android.application", version.ref = "agp" }
|
|
androidLibrary = { id = "com.android.library", version.ref = "agp" }
|
|
androidTest = { id = "com.android.test", version.ref = "agp" }
|
|
catalogUpdate = { id = "nl.littlerobots.version-catalog-update", version.ref = "catalogUpdate" }
|
|
composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
|
|
kotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
|
|
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
|
|
room = { id = "androidx.room", version.ref = "room" }
|
|
spotless = { id = "com.diffplug.spotless", version.ref = "spotless" }
|
|
versions = { id = "com.github.ben-manes.versions", version.ref = "versions" }
|