diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml index c785358..6b07fd0 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.yml +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -1,5 +1,5 @@ name: 问题反馈 / Bug Report -description: 发现并反馈问题以帮助改进待办 / Create a report to help us improve To Do +description: 发现并反馈问题以帮助改进 VerveDo / Create a report to help us improve VerveDo title: "[Bug] " labels: [ "bug" ] body: @@ -8,7 +8,7 @@ body: attributes: label: 检查列表 / Checklist options: - - label: 我正在使用待办的最新版本 / I am using the latest version of To Do + - label: 我正在使用 VerveDo 的最新版本 / I am using the latest version of VerveDo required: true - label: 确认没有之前相似或重复的问题(若重复会直接关闭) / Confirm that there are no similar or duplicate issues previously raised (if duplicate, the issue will be closed directly) required: true @@ -16,8 +16,8 @@ body: - type: dropdown id: version-variant attributes: - label: 待办版本类型 / To Do Variant - description: 请选择当前待办的版本类型 / Select the version of To Do variant you're currently using + label: VerveDo 版本类型 / VerveDo Variant + description: 请选择当前 VerveDo 的版本类型 / Select the version of VerveDo variant you're currently using options: - 最新 Release(F-Droid)版 / Latest release (F-Droid) - 最新 CI 版 / Latest CI @@ -27,8 +27,8 @@ body: - type: input id: version-code attributes: - label: 待办版本 - description: 请输入你正在使用的待办版本,你可以在设置中找到 / Enter the version of To Do you're using. You can find this in the settings + label: VerveDo 版本 + description: 请输入你正在使用的 VerveDo 版本,你可以在设置中找到 / Enter the version of VerveDo you're using. You can find this in the settings placeholder: 例如:2.0.2(561) / e.g. 2.0.2(561) validations: required: true diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml index 81e7f59..4d4902b 100644 --- a/.github/ISSUE_TEMPLATE/feature-request.yml +++ b/.github/ISSUE_TEMPLATE/feature-request.yml @@ -1,5 +1,5 @@ name: 功能请求 / Feature request -description: 为待办提出一个新功能 / Suggest an idea for To Do +description: 为 VerveDo 提出一个新功能 / Suggest an idea for VerveDo title: "[Feature] " labels: [ "enhancement" ] body: diff --git a/.github/workflows/android_ci.yml b/.github/workflows/android_ci.yml index 29746b8..7d19ac4 100644 --- a/.github/workflows/android_ci.yml +++ b/.github/workflows/android_ci.yml @@ -43,7 +43,7 @@ jobs: run: chmod +x gradlew - name: Write sign info - if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main' && github.repository == 'Super12138/ToDo' + if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main' && github.repository == 'Super12138/VerveDo' run: | if [ ! -z "${{ secrets.SIGNING_KEY }}" ]; then echo releaseStorePassword='${{ secrets.KEY_STORE_PASSWORD }}' >> gradle.properties @@ -61,7 +61,7 @@ jobs: run: ./gradlew assembleRelease - name: Upload APK - if: success() && github.event_name != 'pull_request' && github.repository == 'Super12138/ToDo' + if: success() && github.event_name != 'pull_request' && github.repository == 'Super12138/VerveDo' uses: actions/upload-artifact@v6.0.0 with: name: Release diff --git a/.github/workflows/script_build.yml b/.github/workflows/script_build.yml index 9923dff..f306bc8 100644 --- a/.github/workflows/script_build.yml +++ b/.github/workflows/script_build.yml @@ -1,4 +1,4 @@ -name: Todo Script Build +name: VerveDo Script Build on: push: @@ -37,5 +37,5 @@ jobs: - name: Upload artifact uses: actions/upload-artifact@v6.0.0 with: - name: Todo Script + name: VerveDo Script path: ./script/updateVersionCode.js \ No newline at end of file diff --git a/README.md b/README.md index 3fab093..cd22554 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,28 @@ -![应用界面一览](https://s2.loli.net/2025/02/17/l7soMcfm6HJRg8t.png) +![应用界面一览](https://s2.loli.net/2026/02/09/EJS1HLOAvKyaRsl.png) -# 待办 +# VerveDo 一个简单的、遵循 Material 3 Expressive 的待办应用,使用 Jetpack Compose 编写 -**简体中文** | [English](https://github.com/Super12138/ToDo/blob/main/README_EN.md) +**简体中文** | [English](https://github.com/Super12138/VerveDo/blob/main/README_EN.md) -[![Android CI](https://github.com/Super12138/ToDo/actions/workflows/android_ci.yml/badge.svg)](https://github.com/Super12138/ToDo/actions/workflows/android_ci.yml) -![GitHub Release 最新版本](https://img.shields.io/github/v/release/Super12138/ToDo?style=flat-square) -![GitHub Release 总下载数](https://img.shields.io/github/downloads/Super12138/ToDo/total?style=flat-square) +[![Android CI](https://github.com/Super12138/VerveDo/actions/workflows/android_ci.yml/badge.svg)](https://github.com/Super12138/VerveDo/actions/workflows/android_ci.yml) +![GitHub Release 最新版本](https://img.shields.io/github/v/release/Super12138/VerveDo?style=flat-square) +![GitHub Release 总下载数](https://img.shields.io/github/downloads/Super12138/VerveDo/total?style=flat-square) # 📦 版本支持 支持 `Android 7.0 (Nougat)` 至 `Android 16.0 (Baklava)` +# 📃 许可证 + +[GPL-3.0-only](https://github.com/Super12138/VerveDo/blob/main/LICENSE) + # ✨ 功能 - [x] Jetpack Compose -- [x] 最新的 Material 3 Expressive 设计 +- [x] Material 3 **Expressive** 设计 - [x] 任务分类 @@ -26,16 +30,18 @@ - [x] 数据备份 -- [ ] 时间划分功能(正在施工中) +- [x] 时间划分功能 + +- ... # ⬇️ 下载 > [!IMPORTANT] > 下方两个渠道是官方认定的安全渠道,请从这两个渠道下载待办以保证个人隐私不被侵犯。 -> +> > 待办不会自动更新,建议[订阅 GitHub Release 发行通知](https://docs.github.com/zh/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#configuring-your-watch-settings-for-an-individual-repository)或者[安装 F-Droid](https://f-droid.org/) 检查更新 -[前往 GitHub Release](https://github.com/Super12138/ToDo/releases/) +[前往 GitHub Release](https://github.com/Super12138/VerveDo/releases/) 或者[从 F-Droid 上下载](https://f-droid.org/packages/cn.super12138.todo) @@ -43,12 +49,8 @@ # 📸 截图 -| ![主界面(浅色)](https://s2.loli.net/2025/02/17/mDz9jFIHW23YPUK.png) | ![主界面(深色)](https://s2.loli.net/2025/02/17/7ZLoHRifKka93c1.png) | -| -------------------------------------------------------------- | ---------------------------------------------------------------- | -| 主界面(浅色) | 主界面(深色) | -| ![添加待办](https://s2.loli.net/2025/08/01/NWOQGRtVUpDmXIA.png) | ![正在完成待办的效果](https://s2.loli.net/2025/02/17/UFna9tvRkAphrIS.png) | -| 添加待办 | 正在完成待办的效果 | - -# 📃 许可证 - -[GPL-3.0-only](https://github.com/Super12138/ToDo/blob/main/LICENSE) +| ![概览界面(浅色)](https://s2.loli.net/2026/02/09/nhuMmF8L7Oqk4dp.png) | ![概览界面(深色)](https://s2.loli.net/2026/02/09/Oari6zwC14gLPNl.png) | +| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| 概览界面(浅色) | 概览界面(深色) | +| ![待办列表](https://s2.loli.net/2026/02/09/LbqGhyJXjke2gZ3.png) | ![添加待办](https://s2.loli.net/2026/02/09/Da3h29rxFMmJQiV.png) | +| 待办列表 | 添加待办 | diff --git a/README_EN.md b/README_EN.md index 82c7950..1724433 100644 --- a/README_EN.md +++ b/README_EN.md @@ -1,41 +1,55 @@ -![Preview of the app UI](https://s2.loli.net/2025/02/17/SIeA9KaGFZkl4BX.png) -# To Do -A simple to-do app that follows Material Design 3, using Jetpack Compose +![Preview of the app UI](https://s2.loli.net/2026/02/09/zUrZdykbWN68lYM.png) -[简体中文](https://github.com/Super12138/ToDo/blob/main/README.md) | **English** +# VerveDo -[![Android CI](https://github.com/Super12138/ToDo/actions/workflows/android_ci.yml/badge.svg)](https://github.com/Super12138/ToDo/actions/workflows/android_ci.yml) -![GitHub latest release](https://img.shields.io/github/v/release/Super12138/ToDo?style=flat-square) -![GitHub all releases download](https://img.shields.io/github/downloads/Super12138/ToDo/total?style=flat-square) +A simple to-do app that follows Material 3 Expressive, using Jetpack Compose. + +[简体中文](https://github.com/Super12138/VerveDo/blob/main/README.md) | **English** + +[![Android CI](https://github.com/Super12138/VerveDo/actions/workflows/android_ci.yml/badge.svg)](https://github.com/Super12138/VerveDo/actions/workflows/android_ci.yml) +![GitHub latest release](https://img.shields.io/github/v/release/Super12138/VerveDo?style=flat-square) +![GitHub all releases download](https://img.shields.io/github/downloads/Super12138/VerveDo/total?style=flat-square) # 📦 Supported Versions + From `Android 7.0 (Nougat)` to `Android 16.0 (Baklava)` +# 📃 License + +[GPL-3.0-only](https://github.com/Super12138/VerveDo/blob/main/LICENSE) + # ✨ Features -- Jetpack Compose -- Customizable theming system based on Material Design 3 -- Custom categories -- Task priority + +- [x] Jetpack Compose + +- [x] Material 3 **Expressive** Design + +- [x] Task Categorization + +- [x] Task Priority + +- [x] Data Backup + +- [x] Time Segmentation + - ... # ⬇️ Download + > [!IMPORTANT] -> The two download channels below are the official and secure sources for To Do. To protect your privacy, only download the app from these links. +> The two download channels below are the official and secure sources for VerveDo. To protect your privacy, only download the app from these links. > -> To Do can't update automatically. It is recommended to [subscribe to GitHub Release notifications](https://docs.github.com/en/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#configuring-your-watch-settings-for-an-individual-repository) or [install F-Droid](https://f-droid.org/) to check for updates. +> VerveDo can't update automatically. It is recommended to [subscribe to GitHub Release notifications](https://docs.github.com/en/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#configuring-your-watch-settings-for-an-individual-repository) or [install F-Droid](https://f-droid.org/) to check for updates. -[From Github Release](https://github.com/Super12138/ToDo/releases/) +[From Github Release](https://github.com/Super12138/VerveDo/releases/) -Or get it from F-Droid +Or get it from [F-Droid](https://f-droid.org/packages/cn.super12138.todo) [](https://f-droid.org/packages/cn.super12138.todo) - # 📸 Screenshots -| ![Main page (Light)](https://s2.loli.net/2025/02/17/WB3sP8uckvYJCIi.png) | ![Main page (Dark)](https://s2.loli.net/2025/02/17/ty3ZwjbOkBgFLsf.png) | -| --- | --- | -| Main page (Light) | Main page (Dark) | -| ![Add task page](https://s2.loli.net/2025/08/01/JD1y2iqmkRNTezg.png) | ![The effect of completing a task](https://s2.loli.net/2025/02/17/9FRKx72DqVBtnfX.png) | -| Add task page | The effect of completing a task | -# 📃 License -[GPL-3.0-only](https://github.com/Super12138/ToDo/blob/main/LICENSE) \ No newline at end of file +| ![Overview page (Light)](https://s2.loli.net/2026/02/09/p7L3vcZ4KnOHdol.png) | ![Overview page (Dark)](https://s2.loli.net/2026/02/09/gU9x3lpYvJXLfDs.png) | +| ---------------------------------------------------------------------------- | --------------------------------------------------------------------------- | +| Overview page (Light) | Overview page (Dark) | +| ![Task list](https://s2.loli.net/2026/02/09/klB2e4XRYI98zdG.png) | ![Add new task](https://s2.loli.net/2026/02/09/KXEGDWc1lfSRyCP.png) | +| Task list | Add new task | diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 961dc41..a10005d 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -38,8 +38,8 @@ android { applicationId = "cn.super12138.todo" minSdk = 24 targetSdk = 36 - versionCode = 997 - versionName = "2.3.3" + versionCode = 998 + versionName = "3.0.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/TodoDefaults.kt b/app/src/main/kotlin/cn/super12138/todo/ui/VerveDoDefaults.kt similarity index 98% rename from app/src/main/kotlin/cn/super12138/todo/ui/TodoDefaults.kt rename to app/src/main/kotlin/cn/super12138/todo/ui/VerveDoDefaults.kt index ef51827..4ea6cfc 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/TodoDefaults.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/VerveDoDefaults.kt @@ -10,7 +10,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shape import androidx.compose.ui.unit.dp -object TodoDefaults { +object VerveDoDefaults { /** * 屏幕左右两边预留边距(防止内容全部贴边显示过丑) */ diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/activities/MainActivity.kt b/app/src/main/kotlin/cn/super12138/todo/ui/activities/MainActivity.kt index 343d523..6b60c67 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/activities/MainActivity.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/activities/MainActivity.kt @@ -27,7 +27,7 @@ import cn.super12138.todo.constants.Constants import cn.super12138.todo.logic.datastore.DataStoreManager import cn.super12138.todo.logic.model.DarkMode import cn.super12138.todo.logic.model.PaletteStyle -import cn.super12138.todo.ui.TodoDefaults +import cn.super12138.todo.ui.VerveDoDefaults import cn.super12138.todo.ui.components.Konfetti import cn.super12138.todo.ui.navigation.VerveDoDestinations import cn.super12138.todo.ui.navigation.TopNavigation @@ -106,7 +106,7 @@ class MainActivity : ComponentActivity() { dynamicColor = dynamicColor ) { Surface( - color = TodoDefaults.Colors.Background, + color = VerveDoDefaults.Colors.Background, modifier = Modifier.fillMaxSize() ) { val view = LocalView.current @@ -140,7 +140,7 @@ class MainActivity : ComponentActivity() { ) } }, - containerColor = TodoDefaults.Colors.Background, + containerColor = VerveDoDefaults.Colors.Background, modifier = Modifier.fillMaxSize() ) { TopNavigation( diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/components/EmptyTip.kt b/app/src/main/kotlin/cn/super12138/todo/ui/components/EmptyTip.kt index e76ffe9..3339bbf 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/components/EmptyTip.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/components/EmptyTip.kt @@ -17,7 +17,7 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import cn.super12138.todo.R -import cn.super12138.todo.ui.TodoDefaults +import cn.super12138.todo.ui.VerveDoDefaults enum class EmptyTipType { Search, @@ -36,7 +36,7 @@ fun EmptyTip( Box( contentAlignment = Alignment.Center, modifier = modifier - .padding(TodoDefaults.screenHorizontalPadding) + .padding(VerveDoDefaults.screenHorizontalPadding) .size(size) .clip(CircleShape) .background(containerColor) diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/components/Scaffolds.kt b/app/src/main/kotlin/cn/super12138/todo/ui/components/Scaffolds.kt index 7498154..0dd8ff6 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/components/Scaffolds.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/components/Scaffolds.kt @@ -25,7 +25,7 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import cn.super12138.todo.R -import cn.super12138.todo.ui.TodoDefaults +import cn.super12138.todo.ui.VerveDoDefaults import cn.super12138.todo.utils.VibrationUtils /** @@ -130,7 +130,7 @@ fun TopAppBarScaffold( navigationIcon = navigationIcon, actions = actions, colors = TopAppBarDefaults.topAppBarColors( - containerColor = TodoDefaults.Colors.Background, + containerColor = VerveDoDefaults.Colors.Background, ) ) }, @@ -151,8 +151,8 @@ fun TopAppBarScaffold( floatingActionButton: @Composable () -> Unit = {}, floatingActionButtonPosition: FabPosition = FabPosition.End, contentWindowInsets: WindowInsets = ScaffoldDefaults.contentWindowInsets, - containerColor: Color = TodoDefaults.Colors.Background, - screenShape: Shape = TodoDefaults.ScreenContainerShape, + containerColor: Color = VerveDoDefaults.Colors.Background, + screenShape: Shape = VerveDoDefaults.ScreenContainerShape, content: @Composable () -> Unit ) = Scaffold( modifier = modifier, @@ -166,7 +166,7 @@ fun TopAppBarScaffold( Surface( modifier = Modifier .padding(paddingValues = innerPadding) - .padding(horizontal = TodoDefaults.screenHorizontalPadding), + .padding(horizontal = VerveDoDefaults.screenHorizontalPadding), color = containerColor, shape = screenShape, content = content diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/components/ScreenContainer.kt b/app/src/main/kotlin/cn/super12138/todo/ui/components/ScreenContainer.kt index 77b5539..cb0d935 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/components/ScreenContainer.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/components/ScreenContainer.kt @@ -5,7 +5,7 @@ import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi import androidx.compose.material3.Surface import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import cn.super12138.todo.ui.TodoDefaults +import cn.super12138.todo.ui.VerveDoDefaults @OptIn(ExperimentalMaterial3ExpressiveApi::class) @Composable @@ -14,9 +14,9 @@ fun RoundedScreenContainer( content: @Composable () -> Unit, ) { Surface( - modifier = modifier.padding(horizontal = TodoDefaults.screenHorizontalPadding), - color = TodoDefaults.Colors.Background, - shape = TodoDefaults.ScreenContainerShape, + modifier = modifier.padding(horizontal = VerveDoDefaults.screenHorizontalPadding), + color = VerveDoDefaults.Colors.Background, + shape = VerveDoDefaults.ScreenContainerShape, content = content ) } \ No newline at end of file diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/crash/CrashPage.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/crash/CrashPage.kt index 2a8da2f..4170d04 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/crash/CrashPage.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/crash/CrashPage.kt @@ -36,7 +36,7 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.text.withStyle import androidx.compose.ui.unit.dp import cn.super12138.todo.R -import cn.super12138.todo.ui.TodoDefaults +import cn.super12138.todo.ui.VerveDoDefaults import cn.super12138.todo.ui.activities.CrashActivity.Companion.BEGINNING_CRASH import cn.super12138.todo.ui.activities.CrashActivity.Companion.BRAND_PREFIX import cn.super12138.todo.ui.activities.CrashActivity.Companion.CRASH_TIME_PREFIX @@ -113,7 +113,7 @@ fun CrashPage( Column( modifier = Modifier .padding(innerPadding) - .padding(horizontal = TodoDefaults.screenHorizontalPadding) + .padding(horizontal = VerveDoDefaults.screenHorizontalPadding) .fillMaxSize() .verticalScroll(scrollState) ) { diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/editor/TaskEditorPage.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/editor/TaskEditorPage.kt index 39eeabe..a19c757 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/editor/TaskEditorPage.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/editor/TaskEditorPage.kt @@ -34,7 +34,7 @@ import cn.super12138.todo.R import cn.super12138.todo.constants.Constants import cn.super12138.todo.logic.database.TodoEntity import cn.super12138.todo.logic.datastore.DataStoreManager -import cn.super12138.todo.ui.TodoDefaults +import cn.super12138.todo.ui.VerveDoDefaults import cn.super12138.todo.ui.components.ChipItem import cn.super12138.todo.ui.components.ConfirmDialog import cn.super12138.todo.ui.components.TodoFloatingActionButton @@ -184,7 +184,7 @@ fun SharedTransitionScope.TaskEditorPage( modifier = Modifier.fillMaxSize() ) { item(key = 0) { - Spacer(modifier = Modifier.size(TodoDefaults.screenVerticalPadding)) + Spacer(modifier = Modifier.size(VerveDoDefaults.screenVerticalPadding)) } item(key = 1) { @@ -262,7 +262,7 @@ fun SharedTransitionScope.TaskEditorPage( } item(key = 5) { - Spacer(modifier = Modifier.size(TodoDefaults.screenVerticalPadding)) + Spacer(modifier = Modifier.size(VerveDoDefaults.screenVerticalPadding)) } } } diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/editor/state/EditorState.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/editor/state/EditorState.kt index 6219903..56ccd56 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/editor/state/EditorState.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/editor/state/EditorState.kt @@ -77,7 +77,17 @@ class EditorState(val initialTodo: TodoEntity? = null) { object Saver : androidx.compose.runtime.saveable.Saver { override fun SaverScope.save(value: EditorState): Any { return listOf( - value.initialTodo, + // 避免错误:java.lang.RuntimeException: Parcel: unable to marshal value TodoEntity(...) + value.initialTodo?.let { + listOf( + it.content, + it.category, + it.isCompleted, + it.priority, + it.dueDate, + it.id + ) + }, value.toDoContent, value.isErrorContent, value.selectedCategoryIndex, @@ -93,7 +103,17 @@ class EditorState(val initialTodo: TodoEntity? = null) { override fun restore(value: Any): EditorState { val list = value as List<*> - val initialTodo = list[0] as? TodoEntity? + val initialTodoList = list[0] as? List<*> + val initialTodo = initialTodoList?.let { + TodoEntity( + content = it[0] as String, + category = it[1] as String, + isCompleted = it[2] as Boolean, + priority = it[3] as Float, + dueDate = it[4] as Long?, + id = it[5] as Int + ) + } return EditorState(initialTodo).apply { toDoContent = list[1] as String isErrorContent = list[2] as Boolean diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/overview/OverviewPage.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/overview/OverviewPage.kt index b2dfa94..a89cbe2 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/overview/OverviewPage.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/overview/OverviewPage.kt @@ -16,6 +16,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import cn.super12138.todo.R +import cn.super12138.todo.logic.database.TodoEntity import cn.super12138.todo.ui.components.TopAppBarScaffold import cn.super12138.todo.ui.pages.overview.components.ListCard import cn.super12138.todo.ui.pages.overview.components.ProgressCard @@ -33,15 +34,14 @@ fun OverviewPage( val totalTasks by remember { derivedStateOf { toDos.size } } val completedTasks by remember { derivedStateOf { toDos.count { it.isCompleted } } } - val todayMillis = SystemUtils.getToday() + val todayMillis = SystemUtils.getTodayEightAM() val dayMillis = 24L * 60 * 60 * 1000 - val todayEnd = todayMillis + dayMillis val todayTodo by remember { derivedStateOf { toDos.filter { todo -> val due = todo.dueDate ?: return@filter false - due in todayMillis until todayEnd + due == todayMillis } } } @@ -49,10 +49,16 @@ fun OverviewPage( val nextWeekTodo by remember { derivedStateOf { val weekFromToday = todayMillis + 7 * dayMillis - toDos.filter { todo -> - val due = todo.dueDate ?: return@filter false - due in todayMillis until weekFromToday - } + toDos + .filter { todo -> + val due = todo.dueDate ?: return@filter false + due in todayMillis..weekFromToday && !todo.isCompleted + } + .sortedWith( + comparator = compareBy { it.dueDate } + .thenBy { it.category } + .thenByDescending { it.priority } + ) } } diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/overview/components/ListCard.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/overview/components/ListCard.kt index 4f4b81e..82e1a82 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/overview/components/ListCard.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/overview/components/ListCard.kt @@ -32,7 +32,7 @@ import androidx.compose.ui.unit.dp import cn.super12138.todo.R import cn.super12138.todo.logic.database.TodoEntity import cn.super12138.todo.logic.model.Priority -import cn.super12138.todo.ui.TodoDefaults +import cn.super12138.todo.ui.VerveDoDefaults import cn.super12138.todo.ui.components.EmptyTip import cn.super12138.todo.ui.components.EmptyTipType import cn.super12138.todo.ui.theme.fadeScale @@ -44,18 +44,18 @@ fun ListCard( modifier: Modifier = Modifier, title: String, list: List, - containerColor: Color = TodoDefaults.Colors.Container, + containerColor: Color = VerveDoDefaults.Colors.Container, emptyTipContainerColor: Color = MaterialTheme.colorScheme.secondaryContainer ) { Card( - modifier = modifier.height(TodoDefaults.overviewCardHeight * 2), + modifier = modifier.height(VerveDoDefaults.overviewCardHeight * 2), colors = CardDefaults.cardColors(containerColor = containerColor), - shape = TodoDefaults.defaultShape + shape = VerveDoDefaults.defaultShape ) { Column( modifier = Modifier .fillMaxWidth() - .padding(TodoDefaults.screenHorizontalPadding), + .padding(VerveDoDefaults.screenHorizontalPadding), horizontalAlignment = Alignment.Start, verticalArrangement = Arrangement.spacedBy(8.dp) ) { @@ -123,7 +123,7 @@ fun UpcomingTaskItem( modifier = modifier .fillMaxWidth() .wrapContentHeight() - .padding(vertical = TodoDefaults.settingsItemVerticalPadding / 4), + .padding(vertical = VerveDoDefaults.settingsItemVerticalPadding / 4), horizontalAlignment = Alignment.Start ) { Row( @@ -145,7 +145,7 @@ fun UpcomingTaskItem( color = MaterialTheme.colorScheme.onSurfaceVariant, fontWeight = FontWeight.Bold ), - modifier = Modifier.padding(start = TodoDefaults.screenVerticalPadding) + modifier = Modifier.padding(start = VerveDoDefaults.screenVerticalPadding) ) } @@ -167,7 +167,7 @@ fun UpcomingTaskItem( Text( text = stringResource(priority.nameRes), style = MaterialTheme.typography.labelMedium.copy(priority.containerColor()), - modifier = Modifier.padding(start = TodoDefaults.screenVerticalPadding) + modifier = Modifier.padding(start = VerveDoDefaults.screenVerticalPadding) ) } } diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/overview/components/ProgressCard.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/overview/components/ProgressCard.kt index c0cbb46..fb152dc 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/overview/components/ProgressCard.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/overview/components/ProgressCard.kt @@ -31,7 +31,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import cn.super12138.todo.R -import cn.super12138.todo.ui.TodoDefaults +import cn.super12138.todo.ui.VerveDoDefaults import cn.super12138.todo.ui.components.EmptyTip import cn.super12138.todo.ui.components.EmptyTipType import cn.super12138.todo.ui.theme.fadeScale @@ -43,20 +43,20 @@ fun ProgressCard( title: String, total: Int, completed: Int, - containerColor: Color = TodoDefaults.Colors.Container, + containerColor: Color = VerveDoDefaults.Colors.Container, emptyTipContainerColor: Color = MaterialTheme.colorScheme.secondaryContainer ) { val progress = if (total == 0) 0f else completed / total.toFloat() Card( - modifier = modifier.height(TodoDefaults.overviewCardHeight * 2), + modifier = modifier.height(VerveDoDefaults.overviewCardHeight * 2), colors = CardDefaults.cardColors(containerColor = containerColor), - shape = TodoDefaults.defaultShape + shape = VerveDoDefaults.defaultShape ) { Column( modifier = Modifier .fillMaxWidth() - .padding(TodoDefaults.screenHorizontalPadding), + .padding(VerveDoDefaults.screenHorizontalPadding), horizontalAlignment = Alignment.Start, verticalArrangement = Arrangement.spacedBy(8.dp) ) { @@ -112,7 +112,7 @@ fun ProgressCard( stroke = thickStroke, trackStroke = thickStroke, modifier = Modifier - .padding(TodoDefaults.screenHorizontalPadding) + .padding(VerveDoDefaults.screenHorizontalPadding) .size(90.dp) ) diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/overview/components/StatusCard.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/overview/components/StatusCard.kt index bd0aaa1..b720ebb 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/overview/components/StatusCard.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/overview/components/StatusCard.kt @@ -31,7 +31,7 @@ import androidx.compose.ui.graphics.ColorProducer import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import cn.super12138.todo.ui.TodoDefaults +import cn.super12138.todo.ui.VerveDoDefaults import cn.super12138.todo.ui.theme.shapeByInteraction @OptIn(ExperimentalMaterial3ExpressiveApi::class) @@ -41,17 +41,17 @@ fun RoundedCornerCardLarge( @DrawableRes iconRes: Int, title: String, count: Int, - containerColor: Color = TodoDefaults.Colors.Container, - shapes: ButtonShapes = TodoDefaults.shapes(), + containerColor: Color = VerveDoDefaults.Colors.Container, + shapes: ButtonShapes = VerveDoDefaults.shapes(), onClick: () -> Unit = {} ) { val interactionSource = remember { MutableInteractionSource() } val pressed by interactionSource.collectIsPressedAsState() - val animatedShape = shapeByInteraction(shapes, pressed, TodoDefaults.shapesDefaultAnimationSpec) + val animatedShape = shapeByInteraction(shapes, pressed, VerveDoDefaults.shapesDefaultAnimationSpec) val cardColors = CardDefaults.cardColors(containerColor = containerColor) Card( - modifier = modifier.height(TodoDefaults.overviewCardHeight), + modifier = modifier.height(VerveDoDefaults.overviewCardHeight), colors = cardColors, shape = animatedShape ) { @@ -63,7 +63,7 @@ fun RoundedCornerCardLarge( onClick = onClick, interactionSource = interactionSource ) - .padding(TodoDefaults.screenHorizontalPadding), + .padding(VerveDoDefaults.screenHorizontalPadding), verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(16.dp) ) { diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/SettingsData.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/SettingsData.kt index f7eb820..293ba94 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/SettingsData.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/SettingsData.kt @@ -112,7 +112,7 @@ fun SettingsData( title = stringResource(R.string.pref_backup), description = stringResource(R.string.pref_backup_desc), onClick = { - backupLauncher.launch("Todo-backup-${SystemUtils.getTime()}.zip") + backupLauncher.launch("VerveDo-backup-${SystemUtils.getTime()}.zip") } ) } diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/RowSettingsItem.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/RowSettingsItem.kt index 476614e..df43cdf 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/RowSettingsItem.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/RowSettingsItem.kt @@ -27,7 +27,7 @@ import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.sp -import cn.super12138.todo.ui.TodoDefaults +import cn.super12138.todo.ui.VerveDoDefaults import cn.super12138.todo.utils.drawFadedEdge @Composable @@ -37,12 +37,12 @@ fun RowSettingsItem( title: String, description: String? = null, trailingContent: (@Composable () -> Unit)? = null, - background: Color = TodoDefaults.Colors.Container, + background: Color = VerveDoDefaults.Colors.Container, horizontalArrangement: Arrangement.Horizontal = Arrangement.Start, verticalAlignment: Alignment.Vertical = Alignment.Top, scrollState: ScrollState = rememberScrollState(), fadedEdgeWidth: Dp, - maskColor: Color = TodoDefaults.Colors.Container, + maskColor: Color = VerveDoDefaults.Colors.Container, content: @Composable RowScope.() -> Unit ) { MoreContentSettingsItem( @@ -88,11 +88,11 @@ fun LazyRowSettingsItem( title: String, description: String? = null, trailingContent: (@Composable () -> Unit)? = null, - background: Color = TodoDefaults.Colors.Container, + background: Color = VerveDoDefaults.Colors.Container, horizontalArrangement: Arrangement.Horizontal = Arrangement.Start, verticalAlignment: Alignment.Vertical = Alignment.Top, fadedEdgeWidth: Dp, - maskColor: Color = TodoDefaults.Colors.Container, + maskColor: Color = VerveDoDefaults.Colors.Container, content: LazyListScope.() -> Unit ) { MoreContentSettingsItem( @@ -137,8 +137,8 @@ fun MoreContentSettingsItem( title: String, description: String? = null, trailingContent: (@Composable () -> Unit)? = null, - background: Color = TodoDefaults.Colors.Container, - shape: CornerBasedShape = TodoDefaults.defaultShape, + background: Color = VerveDoDefaults.Colors.Container, + shape: CornerBasedShape = VerveDoDefaults.defaultShape, content: @Composable () -> Unit ) { Column( @@ -148,8 +148,8 @@ fun MoreContentSettingsItem( .clip(shape) .background(background) .padding( - horizontal = TodoDefaults.settingsItemHorizontalPadding, - vertical = TodoDefaults.settingsItemVerticalPadding + horizontal = VerveDoDefaults.settingsItemHorizontalPadding, + vertical = VerveDoDefaults.settingsItemVerticalPadding ) ) { Row { diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/SettingsCategory.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/SettingsCategory.kt index 3d940e3..77527d8 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/SettingsCategory.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/SettingsCategory.kt @@ -9,7 +9,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import cn.super12138.todo.ui.TodoDefaults +import cn.super12138.todo.ui.VerveDoDefaults @Composable fun SettingsCategory( @@ -21,10 +21,10 @@ fun SettingsCategory( modifier = modifier .fillMaxWidth() .padding( - top = if (first) 0.dp else TodoDefaults.screenVerticalPadding, - start = TodoDefaults.screenHorizontalPadding / 2, - end = TodoDefaults.screenHorizontalPadding / 2, - bottom = TodoDefaults.screenVerticalPadding + top = if (first) 0.dp else VerveDoDefaults.screenVerticalPadding, + start = VerveDoDefaults.screenHorizontalPadding / 2, + end = VerveDoDefaults.screenHorizontalPadding / 2, + bottom = VerveDoDefaults.screenVerticalPadding ) ) { Text( diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/SettingsContainer.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/SettingsContainer.kt index d14ee41..2cd4c23 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/SettingsContainer.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/SettingsContainer.kt @@ -9,7 +9,7 @@ import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import cn.super12138.todo.ui.TodoDefaults +import cn.super12138.todo.ui.VerveDoDefaults @Composable fun SettingsContainer( @@ -18,18 +18,18 @@ fun SettingsContainer( content: LazyListScope.() -> Unit, ) { LazyColumn( - verticalArrangement = Arrangement.spacedBy(TodoDefaults.settingsItemPadding), + verticalArrangement = Arrangement.spacedBy(VerveDoDefaults.settingsItemPadding), state = state, modifier = modifier ) { item { - Spacer(modifier = Modifier.size(TodoDefaults.screenVerticalPadding)) + Spacer(modifier = Modifier.size(VerveDoDefaults.screenVerticalPadding)) } content() item { - Spacer(modifier = Modifier.size(TodoDefaults.screenVerticalPadding)) + Spacer(modifier = Modifier.size(VerveDoDefaults.screenVerticalPadding)) } } } \ No newline at end of file diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/SettingsDialogs.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/SettingsDialogs.kt index 82f3363..362543d 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/SettingsDialogs.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/SettingsDialogs.kt @@ -25,7 +25,7 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.platform.LocalView import androidx.compose.ui.semantics.Role import androidx.compose.ui.unit.dp -import cn.super12138.todo.ui.TodoDefaults +import cn.super12138.todo.ui.VerveDoDefaults import cn.super12138.todo.ui.components.BasicDialog import cn.super12138.todo.ui.theme.shapeByInteraction import cn.super12138.todo.utils.VibrationUtils @@ -86,9 +86,9 @@ fun RadioItem( .height(56.dp) .clip( shapeByInteraction( - shapes = TodoDefaults.shapes(), + shapes = VerveDoDefaults.shapes(), pressed = pressed, - animationSpec = TodoDefaults.shapesDefaultAnimationSpec + animationSpec = VerveDoDefaults.shapesDefaultAnimationSpec ) ) // .background(MaterialTheme.colorScheme.surfaceContainerHighest) @@ -101,7 +101,7 @@ fun RadioItem( }, role = Role.RadioButton ) - .padding(horizontal = TodoDefaults.screenHorizontalPadding), + .padding(horizontal = VerveDoDefaults.screenHorizontalPadding), verticalAlignment = Alignment.CenterVertically ) { RadioButton( diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/SettingsItem.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/SettingsItem.kt index 0a51d4f..f4938ed 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/SettingsItem.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/SettingsItem.kt @@ -28,7 +28,7 @@ import androidx.compose.ui.platform.LocalView import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.sp -import cn.super12138.todo.ui.TodoDefaults +import cn.super12138.todo.ui.VerveDoDefaults import cn.super12138.todo.ui.theme.shapeByInteraction import cn.super12138.todo.utils.VibrationUtils @@ -61,8 +61,8 @@ fun SettingsItem( title: String, description: String? = null, trailingContent: (@Composable () -> Unit)? = null, - background: Color = TodoDefaults.Colors.Container, - shapes: ButtonShapes = TodoDefaults.shapes(), + background: Color = VerveDoDefaults.Colors.Container, + shapes: ButtonShapes = VerveDoDefaults.shapes(), enableClick: Boolean = true, onClick: () -> Unit = {} ) = SettingsItem( @@ -82,7 +82,7 @@ fun SettingsItem( painter = leadingIcon, contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, - modifier = Modifier.padding(end = TodoDefaults.settingsItemHorizontalPadding) + modifier = Modifier.padding(end = VerveDoDefaults.settingsItemHorizontalPadding) ) // } } @@ -125,8 +125,8 @@ fun SettingsItem( title: String, description: String? = null, trailingContent: (@Composable () -> Unit)? = null, - background: Color = TodoDefaults.Colors.Container, - shapes: ButtonShapes = TodoDefaults.shapes(), + background: Color = VerveDoDefaults.Colors.Container, + shapes: ButtonShapes = VerveDoDefaults.shapes(), enableClick: Boolean = true, onClick: () -> Unit = {} ) = SettingsItem( @@ -136,7 +136,7 @@ fun SettingsItem( imageVector = it, contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, - modifier = Modifier.padding(end = TodoDefaults.settingsItemHorizontalPadding), + modifier = Modifier.padding(end = VerveDoDefaults.settingsItemHorizontalPadding), ) } }, @@ -159,8 +159,8 @@ fun SettingsItem( title: String, description: String? = null, trailingContent: (@Composable () -> Unit)? = null, - background: Color = TodoDefaults.Colors.Container, - shapes: ButtonShapes = TodoDefaults.shapes(), + background: Color = VerveDoDefaults.Colors.Container, + shapes: ButtonShapes = VerveDoDefaults.shapes(), enableClick: Boolean = true, onClick: () -> Unit = {}, ) = SettingsItem( @@ -204,8 +204,8 @@ fun SettingsItem( headlineContent: (@Composable () -> Unit)? = null, supportingContent: (@Composable () -> Unit)? = null, trailingContent: (@Composable () -> Unit)? = null, - background: Color = TodoDefaults.Colors.Container, - shapes: ButtonShapes = TodoDefaults.shapes(), + background: Color = VerveDoDefaults.Colors.Container, + shapes: ButtonShapes = VerveDoDefaults.shapes(), interactionSource: MutableInteractionSource? = null, enableClick: Boolean = true, onClick: () -> Unit = {}, @@ -213,7 +213,7 @@ fun SettingsItem( val view = LocalView.current val userInteractionSource = interactionSource ?: remember { MutableInteractionSource() } val pressed by userInteractionSource.collectIsPressedAsState() - val animatedShape = shapeByInteraction(shapes, pressed, TodoDefaults.shapesDefaultAnimationSpec) + val animatedShape = shapeByInteraction(shapes, pressed, VerveDoDefaults.shapesDefaultAnimationSpec) Row( modifier = modifier @@ -230,8 +230,8 @@ fun SettingsItem( ) .background(background) .padding( - horizontal = TodoDefaults.settingsItemHorizontalPadding, - vertical = TodoDefaults.settingsItemVerticalPadding + horizontal = VerveDoDefaults.settingsItemHorizontalPadding, + vertical = VerveDoDefaults.settingsItemVerticalPadding ), verticalAlignment = Alignment.CenterVertically ) { diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/SettingsPlainBox.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/SettingsPlainBox.kt index af68ab6..e72e51b 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/SettingsPlainBox.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/SettingsPlainBox.kt @@ -17,7 +17,7 @@ import androidx.compose.ui.semantics.clearAndSetSemantics import androidx.compose.ui.semantics.contentDescription import androidx.compose.ui.unit.dp import cn.super12138.todo.R -import cn.super12138.todo.ui.TodoDefaults +import cn.super12138.todo.ui.VerveDoDefaults @Composable fun SettingsPlainBox( @@ -30,8 +30,8 @@ fun SettingsPlainBox( .fillMaxWidth() .wrapContentHeight() .padding( - vertical = TodoDefaults.settingsItemVerticalPadding, - horizontal = TodoDefaults.settingsItemHorizontalPadding / 2 + vertical = VerveDoDefaults.settingsItemVerticalPadding, + horizontal = VerveDoDefaults.settingsItemHorizontalPadding / 2 ), ) { Icon( diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/SwitchSettingsItem.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/SwitchSettingsItem.kt index f81ca80..c62c177 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/SwitchSettingsItem.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/SwitchSettingsItem.kt @@ -9,7 +9,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalView import androidx.compose.ui.res.painterResource -import cn.super12138.todo.ui.TodoDefaults +import cn.super12138.todo.ui.VerveDoDefaults import cn.super12138.todo.utils.VibrationUtils @OptIn(ExperimentalMaterial3ExpressiveApi::class) @@ -30,7 +30,7 @@ fun SwitchSettingsItem( Switch( checked = checked, onCheckedChange = null, - modifier = Modifier.padding(start = TodoDefaults.settingsItemHorizontalPadding / 2) + modifier = Modifier.padding(start = VerveDoDefaults.settingsItemHorizontalPadding / 2) ) }, onClick = { onCheckedChange(!checked) }, @@ -60,7 +60,7 @@ fun SwitchSettingsItem( VibrationUtils.performHapticFeedback(view) onCheckedChange(it) }, - modifier = Modifier.padding(start = TodoDefaults.settingsItemHorizontalPadding / 2) + modifier = Modifier.padding(start = VerveDoDefaults.settingsItemHorizontalPadding / 2) ) }, onClick = { onCheckedChange(!checked) }, diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/appearance/darkmode/DarkModeItem.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/appearance/darkmode/DarkModeItem.kt index e48a1ba..ca170ce 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/appearance/darkmode/DarkModeItem.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/appearance/darkmode/DarkModeItem.kt @@ -28,7 +28,7 @@ import androidx.compose.ui.platform.LocalView import androidx.compose.ui.res.painterResource import androidx.compose.ui.semantics.Role import androidx.compose.ui.unit.dp -import cn.super12138.todo.ui.TodoDefaults +import cn.super12138.todo.ui.VerveDoDefaults import cn.super12138.todo.ui.theme.shapeByInteraction import cn.super12138.todo.utils.VibrationUtils @@ -42,13 +42,13 @@ fun DarkModeItem( containerColor: Color, selected: Boolean, onSelect: () -> Unit, - shapes: ButtonShapes = TodoDefaults.shapes() + shapes: ButtonShapes = VerveDoDefaults.shapes() ) { val view = LocalView.current val interactionSource = remember { MutableInteractionSource() } val pressed by interactionSource.collectIsPressedAsState() - val animatedShape = shapeByInteraction(shapes, pressed, TodoDefaults.shapesDefaultAnimationSpec) + val animatedShape = shapeByInteraction(shapes, pressed, VerveDoDefaults.shapesDefaultAnimationSpec) val borderWidth by animateDpAsState(if (selected) 3.dp else (-1).dp) Column( diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/appearance/darkmode/DarkModePicker.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/appearance/darkmode/DarkModePicker.kt index 4d5a070..7c7e3aa 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/appearance/darkmode/DarkModePicker.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/appearance/darkmode/DarkModePicker.kt @@ -14,7 +14,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import cn.super12138.todo.R import cn.super12138.todo.logic.model.DarkMode -import cn.super12138.todo.ui.TodoDefaults +import cn.super12138.todo.ui.VerveDoDefaults import cn.super12138.todo.ui.pages.settings.components.LazyRowSettingsItem @OptIn(ExperimentalMaterial3ExpressiveApi::class) @@ -32,7 +32,7 @@ fun DarkModePicker( title = stringResource(R.string.pref_dark_mode), description = stringResource(R.string.pref_dark_mode_desc), horizontalArrangement = Arrangement.spacedBy(5.dp), - fadedEdgeWidth = TodoDefaults.fadedEdgeWidth, + fadedEdgeWidth = VerveDoDefaults.fadedEdgeWidth, modifier = modifier ) { items(items = darkModeList, key = { it.id }) { diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/appearance/palette/PaletteItem.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/appearance/palette/PaletteItem.kt index d85a1e9..348e966 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/appearance/palette/PaletteItem.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/appearance/palette/PaletteItem.kt @@ -35,7 +35,7 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.util.fastForEach import cn.super12138.todo.logic.model.ContrastLevel import cn.super12138.todo.logic.model.PaletteStyle -import cn.super12138.todo.ui.TodoDefaults +import cn.super12138.todo.ui.VerveDoDefaults import cn.super12138.todo.ui.theme.dynamicColorScheme import cn.super12138.todo.ui.theme.shapeByInteraction import cn.super12138.todo.utils.VibrationUtils @@ -50,12 +50,12 @@ fun PaletteItem( contrastLevel: ContrastLevel, selected: Boolean, onSelect: () -> Unit, - shapes: ButtonShapes = TodoDefaults.shapes() + shapes: ButtonShapes = VerveDoDefaults.shapes() ) { val view = LocalView.current val interactionSource = remember { MutableInteractionSource() } val pressed by interactionSource.collectIsPressedAsState() - val animatedShape = shapeByInteraction(shapes, pressed, TodoDefaults.shapesDefaultAnimationSpec) + val animatedShape = shapeByInteraction(shapes, pressed, VerveDoDefaults.shapesDefaultAnimationSpec) Column( modifier = modifier diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/appearance/palette/PalettePicker.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/appearance/palette/PalettePicker.kt index 26e9217..7083502 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/appearance/palette/PalettePicker.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/settings/components/appearance/palette/PalettePicker.kt @@ -15,7 +15,7 @@ import cn.super12138.todo.R import cn.super12138.todo.logic.model.ContrastLevel import cn.super12138.todo.logic.model.DarkMode import cn.super12138.todo.logic.model.PaletteStyle -import cn.super12138.todo.ui.TodoDefaults +import cn.super12138.todo.ui.VerveDoDefaults import cn.super12138.todo.ui.pages.settings.components.LazyRowSettingsItem @OptIn(ExperimentalMaterial3ExpressiveApi::class) @@ -34,7 +34,7 @@ fun PalettePicker( title = stringResource(R.string.pref_palette_style), description = stringResource(R.string.pref_palette_style_desc), horizontalArrangement = Arrangement.spacedBy(5.dp), - fadedEdgeWidth = TodoDefaults.fadedEdgeWidth, + fadedEdgeWidth = VerveDoDefaults.fadedEdgeWidth, modifier = modifier ) { items(items = paletteOptions, key = { it.id }) { diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/tasks/TasksPage.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/tasks/TasksPage.kt index d2ba16f..67d998e 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/tasks/TasksPage.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/tasks/TasksPage.kt @@ -42,7 +42,7 @@ import cn.super12138.todo.R import cn.super12138.todo.constants.Constants import cn.super12138.todo.logic.database.TodoEntity import cn.super12138.todo.logic.model.Priority -import cn.super12138.todo.ui.TodoDefaults +import cn.super12138.todo.ui.VerveDoDefaults import cn.super12138.todo.ui.components.ConfirmDialog import cn.super12138.todo.ui.components.EmptyTip import cn.super12138.todo.ui.components.EmptyTipType @@ -168,11 +168,11 @@ fun SharedTransitionScope.TasksPage( } else { LazyColumn( state = viewModel.toDoListState, - verticalArrangement = Arrangement.spacedBy(TodoDefaults.settingsItemPadding), + verticalArrangement = Arrangement.spacedBy(VerveDoDefaults.settingsItemPadding), modifier = Modifier.fillMaxSize() ) { item { - Spacer(modifier = Modifier.size(TodoDefaults.screenVerticalPadding)) + Spacer(modifier = Modifier.size(VerveDoDefaults.screenVerticalPadding)) } items( @@ -214,7 +214,7 @@ fun SharedTransitionScope.TasksPage( } item { - Spacer(modifier = Modifier.size(TodoDefaults.screenVerticalPadding)) + Spacer(modifier = Modifier.size(VerveDoDefaults.screenVerticalPadding)) } } } diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/tasks/components/TodoCard.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/tasks/components/TodoCard.kt index 267ac3d..eb4a73c 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/tasks/components/TodoCard.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/tasks/components/TodoCard.kt @@ -48,7 +48,7 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import cn.super12138.todo.R import cn.super12138.todo.logic.model.Priority -import cn.super12138.todo.ui.TodoDefaults +import cn.super12138.todo.ui.VerveDoDefaults import cn.super12138.todo.ui.theme.shapeByInteraction import cn.super12138.todo.utils.VibrationUtils import cn.super12138.todo.utils.containerColor @@ -71,11 +71,11 @@ fun TodoCard( onCardClick: () -> Unit = {}, onCardLongClick: () -> Unit = {}, onChecked: () -> Unit = {}, - shapes: ButtonShapes = TodoDefaults.shapes(), + shapes: ButtonShapes = VerveDoDefaults.shapes(), ) { val view = LocalView.current val context = LocalContext.current - val cardColors = CardDefaults.cardColors(containerColor = TodoDefaults.Colors.Container) + val cardColors = CardDefaults.cardColors(containerColor = VerveDoDefaults.Colors.Container) val animatedContainerColor by animateColorAsState(targetValue = if (selected) MaterialTheme.colorScheme.secondaryContainer else if (completed) cardColors.disabledContainerColor else cardColors.containerColor) val interactionSource = remember { MutableInteractionSource() } @@ -83,7 +83,7 @@ fun TodoCard( val animatedShape = shapeByInteraction( shapes = shapes, pressed = if (selected) true else pressed, - animationSpec = TodoDefaults.shapesDefaultAnimationSpec + animationSpec = VerveDoDefaults.shapesDefaultAnimationSpec ) val enterTransition = fadeIn(MaterialTheme.motionScheme.fastSpatialSpec()) + expandHorizontally( @@ -97,7 +97,7 @@ fun TodoCard( verticalAlignment = Alignment.CenterVertically, modifier = modifier .fillMaxWidth() - .height(TodoDefaults.toDoCardHeight) + .height(VerveDoDefaults.toDoCardHeight) .clip(animatedShape) .combinedClickable( interactionSource = interactionSource, @@ -112,7 +112,7 @@ fun TodoCard( .drawBehind { drawRect(animatedContainerColor) } - .padding(start = TodoDefaults.screenHorizontalPadding) + .padding(start = VerveDoDefaults.screenHorizontalPadding) ) { AnimatedVisibility( visible = selected, @@ -159,14 +159,14 @@ fun TodoCard( Column( horizontalAlignment = Alignment.End, modifier = Modifier.padding( - start = TodoDefaults.screenVerticalPadding, - end = TodoDefaults.screenHorizontalPadding + start = VerveDoDefaults.screenVerticalPadding, + end = VerveDoDefaults.screenHorizontalPadding ) ) { Text( text = dueDate.toLocalDateString(), style = MaterialTheme.typography.labelLarge.copy( - color = MaterialTheme.colorScheme.onSurface, + color = if (completed) cardColors.disabledContentColor else MaterialTheme.colorScheme.onSurface, fontWeight = FontWeight.Bold ) ) @@ -174,7 +174,7 @@ fun TodoCard( Text( text = dueDate.toRelativeTimeString(context), style = MaterialTheme.typography.labelSmall.copy( - color = MaterialTheme.colorScheme.onSurfaceVariant + color = if (completed) cardColors.disabledContentColor else MaterialTheme.colorScheme.onSurfaceVariant ) ) } @@ -211,7 +211,7 @@ fun TodoCard( contentAlignment = Alignment.Center, modifier = Modifier .fillMaxHeight() - .background(TodoDefaults.Colors.Green) + .background(VerveDoDefaults.Colors.Green) .clickable { VibrationUtils.performHapticFeedback(view) onChecked() @@ -221,7 +221,7 @@ fun TodoCard( painter = painterResource(R.drawable.ic_check), tint = Color.White, contentDescription = null, - modifier = Modifier.padding(TodoDefaults.screenHorizontalPadding) + modifier = Modifier.padding(VerveDoDefaults.screenHorizontalPadding) ) } } diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/tasks/components/TodoTopAppBar.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/tasks/components/TodoTopAppBar.kt index 3ff01f5..c49b85a 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/tasks/components/TodoTopAppBar.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/tasks/components/TodoTopAppBar.kt @@ -34,7 +34,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import cn.super12138.todo.R -import cn.super12138.todo.ui.TodoDefaults +import cn.super12138.todo.ui.VerveDoDefaults import cn.super12138.todo.ui.theme.fadeScale import cn.super12138.todo.utils.VibrationUtils @@ -72,7 +72,7 @@ fun TodoTopAppBar( targetValue = if (selectedMode) { MaterialTheme.colorScheme.surfaceContainerHighest } else { - TodoDefaults.Colors.Background + VerveDoDefaults.Colors.Background } ) diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/viewmodels/MainViewModel.kt b/app/src/main/kotlin/cn/super12138/todo/ui/viewmodels/MainViewModel.kt index 560bf43..1f10c91 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/viewmodels/MainViewModel.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/viewmodels/MainViewModel.kt @@ -87,6 +87,7 @@ class MainViewModel : ViewModel() { SortingMethod.DueDate -> list.sortedWith( comparator = compareBy { it.isCompleted } + .thenBy { it.category } .thenBy { it.dueDate } .thenByDescending { it.priority } ) diff --git a/app/src/main/kotlin/cn/super12138/todo/utils/SystemUtils.kt b/app/src/main/kotlin/cn/super12138/todo/utils/SystemUtils.kt index bf2c42e..ab9331c 100644 --- a/app/src/main/kotlin/cn/super12138/todo/utils/SystemUtils.kt +++ b/app/src/main/kotlin/cn/super12138/todo/utils/SystemUtils.kt @@ -45,10 +45,10 @@ object SystemUtils { /** * 获取当天的时间戳 */ - fun getToday(): Long = Calendar.getInstance().apply { + fun getTodayEightAM(): Long = Calendar.getInstance().apply { // 将时间设置为当天的开始(00:00:00.000) // 兼容API24 - set(Calendar.HOUR_OF_DAY, 0) + set(Calendar.HOUR_OF_DAY, 8) set(Calendar.MINUTE, 0) set(Calendar.SECOND, 0) set(Calendar.MILLISECOND, 0) diff --git a/app/src/main/kotlin/cn/super12138/todo/utils/TodoExt.kt b/app/src/main/kotlin/cn/super12138/todo/utils/TodoExt.kt index 6df05a1..6819422 100644 --- a/app/src/main/kotlin/cn/super12138/todo/utils/TodoExt.kt +++ b/app/src/main/kotlin/cn/super12138/todo/utils/TodoExt.kt @@ -15,7 +15,6 @@ import androidx.compose.ui.unit.Dp import cn.super12138.todo.R import cn.super12138.todo.logic.model.Priority import java.text.SimpleDateFormat -import java.util.Calendar import java.util.Date import java.util.Locale import kotlin.time.Duration.Companion.days @@ -25,8 +24,8 @@ import kotlin.time.Duration.Companion.milliseconds @Stable fun Priority.containerColor(): Color = when (this) { - Priority.NotUrgent -> MaterialTheme.colorScheme.surfaceContainerHighest - Priority.NotImportant -> MaterialTheme.colorScheme.surfaceContainerHighest + Priority.NotUrgent -> MaterialTheme.colorScheme.onSurfaceVariant + Priority.NotImportant -> MaterialTheme.colorScheme.onSurfaceVariant Priority.Default -> MaterialTheme.colorScheme.secondary Priority.Important -> MaterialTheme.colorScheme.tertiary Priority.Urgent -> MaterialTheme.colorScheme.error @@ -100,14 +99,7 @@ fun Long?.toLocalDateString(): String { */ fun Long?.toRelativeTimeString(context: Context): String { if (this == null) return "" - val today = Calendar.getInstance().apply { - // 将时间设置为当天的开始(00:00:00.000) - // 兼容API24 - set(Calendar.HOUR_OF_DAY, 0) - set(Calendar.MINUTE, 0) - set(Calendar.SECOND, 0) - set(Calendar.MILLISECOND, 0) - }.timeInMillis + val today = SystemUtils.getTodayEightAM() val diff = (this - today).milliseconds return diff.toComponents { days, _, _, _, _ -> @@ -129,6 +121,27 @@ fun Long?.toRelativeTimeString(context: Context): String { ) days.days >= 365.days -> context.getString(R.string.time_in_years, (days / 365).toInt()) + days.days == (-1).days -> context.getString(R.string.time_yesterday) + days.days < (-1).days && days.days > (-7).days -> context.getString( + R.string.time_days_ago, + -days.toInt() + ) + + days.days in (-7).days..<(-30).days -> context.getString( + R.string.time_weeks_ago, + -(days / 7).toInt() + ) + + days.days in (-30).days..<(-365).days -> context.getString( + R.string.time_months_ago, + -(days / 30).toInt() + ) + + days.days <= (-365).days -> context.getString( + R.string.time_years_ago, + -(days / 365).toInt() + ) + else -> context.getString(R.string.time_today) } } diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index b3d44d8..59bc8f9 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -124,6 +124,11 @@ %d 周后 %d 个月后 %d 年后 + 昨天 + %d 天前 + %d 周前 + %d 个月前 + %d 年前 截止日期(可选) 总任务 已完成 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b3b822a..83fd05c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -73,7 +73,7 @@ View source code, submit bug reports, and improvement suggestions After exiting edit mode, you will not be able to retrieve the data you have modified. Are you sure you want to exit editing? Sequential - category + Category Priority Completion Alphabetical (Ascending) @@ -126,6 +126,11 @@ in %d w in %d mo in %d y + Yesterday + %d d ago + %d w ago + %d mo ago + %d y ago Due Date (Optional) All Completed diff --git a/fastlane/metadata/android/en-US/full_description.txt b/fastlane/metadata/android/en-US/full_description.txt index 00c2bb7..18ba7e7 100644 --- a/fastlane/metadata/android/en-US/full_description.txt +++ b/fastlane/metadata/android/en-US/full_description.txt @@ -1 +1 @@ -A simple to-do app that follows Material Design 3. You can use it to keep track of your daily school homeworks or as a memo for everyday life. You can set priorities to each task and sort them, helping you stay organized and in control of your life. \ No newline at end of file +VerveDo is a concise to-do app that follows Material 3 Expressive. You can use it to keep track of your daily school homeworks or as a memo for everyday life. You can set priorities to each task and sort them, helping you stay organized and in control of your life. \ No newline at end of file diff --git a/fastlane/metadata/android/en-US/images/featureGraphic.png b/fastlane/metadata/android/en-US/images/featureGraphic.png index f003d7c..b38daa4 100644 Binary files a/fastlane/metadata/android/en-US/images/featureGraphic.png and b/fastlane/metadata/android/en-US/images/featureGraphic.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/01.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/01.png index b90ee08..cf56344 100644 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/01.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/01.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/02.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/02.png index 823916b..147f907 100644 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/02.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/02.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/03.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/03.png index f0ed36b..fc22d00 100644 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/03.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/03.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/04.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/04.png index ba47ae5..3336668 100644 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/04.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/04.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/05.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/05.png index 024c376..55e0bf2 100644 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/05.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/05.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/06.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/06.png index 36c4e43..478d70e 100644 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/06.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/06.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/VerveDo_EN_01.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/VerveDo_EN_01.png new file mode 100644 index 0000000..cf56344 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/VerveDo_EN_01.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/VerveDo_EN_02.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/VerveDo_EN_02.png new file mode 100644 index 0000000..147f907 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/VerveDo_EN_02.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/VerveDo_EN_03.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/VerveDo_EN_03.png new file mode 100644 index 0000000..fc22d00 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/VerveDo_EN_03.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/VerveDo_EN_04.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/VerveDo_EN_04.png new file mode 100644 index 0000000..55e0bf2 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/VerveDo_EN_04.png differ diff --git a/fastlane/metadata/android/en-US/short_description.txt b/fastlane/metadata/android/en-US/short_description.txt index eaa9b67..1f2145e 100644 --- a/fastlane/metadata/android/en-US/short_description.txt +++ b/fastlane/metadata/android/en-US/short_description.txt @@ -1 +1 @@ -A simple to-do app that follows Material Design 3. \ No newline at end of file +A concise to-do app that follows Material 3 Expressive. \ No newline at end of file diff --git a/fastlane/metadata/android/en-US/title.txt b/fastlane/metadata/android/en-US/title.txt index 9ce0aad..cf8009d 100644 --- a/fastlane/metadata/android/en-US/title.txt +++ b/fastlane/metadata/android/en-US/title.txt @@ -1 +1 @@ -To Do \ No newline at end of file +VerveDo \ No newline at end of file diff --git a/fastlane/metadata/android/zh-CN/full_description.txt b/fastlane/metadata/android/zh-CN/full_description.txt index c8e38d8..706f4de 100644 --- a/fastlane/metadata/android/zh-CN/full_description.txt +++ b/fastlane/metadata/android/zh-CN/full_description.txt @@ -1 +1 @@ -一个简单的、遵循 Material Design 3 的待办应用。你可以用它来记每日要完成的学校作业,抑或当作日常生活的备忘录。你可以为每项任务设置优先级,并为它们排序,让你的生活有条不紊。 \ No newline at end of file +VerveDo 是一个简约的、遵循 Material 3 Expressive 的待办应用。你可以用它来记每日要完成的学校作业,抑或当作日常生活的备忘录。你可以为每项任务设置优先级,并为它们排序,让你的生活有条不紊。 \ No newline at end of file diff --git a/fastlane/metadata/android/zh-CN/images/featureGraphic.png b/fastlane/metadata/android/zh-CN/images/featureGraphic.png index 6dc479c..e1b064d 100644 Binary files a/fastlane/metadata/android/zh-CN/images/featureGraphic.png and b/fastlane/metadata/android/zh-CN/images/featureGraphic.png differ diff --git a/fastlane/metadata/android/zh-CN/images/phoneScreenshots/01.png b/fastlane/metadata/android/zh-CN/images/phoneScreenshots/01.png index a736e34..72d0b2b 100644 Binary files a/fastlane/metadata/android/zh-CN/images/phoneScreenshots/01.png and b/fastlane/metadata/android/zh-CN/images/phoneScreenshots/01.png differ diff --git a/fastlane/metadata/android/zh-CN/images/phoneScreenshots/02.png b/fastlane/metadata/android/zh-CN/images/phoneScreenshots/02.png index c98c7b2..1f15555 100644 Binary files a/fastlane/metadata/android/zh-CN/images/phoneScreenshots/02.png and b/fastlane/metadata/android/zh-CN/images/phoneScreenshots/02.png differ diff --git a/fastlane/metadata/android/zh-CN/images/phoneScreenshots/03.png b/fastlane/metadata/android/zh-CN/images/phoneScreenshots/03.png index 32d2bf8..554677b 100644 Binary files a/fastlane/metadata/android/zh-CN/images/phoneScreenshots/03.png and b/fastlane/metadata/android/zh-CN/images/phoneScreenshots/03.png differ diff --git a/fastlane/metadata/android/zh-CN/images/phoneScreenshots/04.png b/fastlane/metadata/android/zh-CN/images/phoneScreenshots/04.png index db02b99..85599e3 100644 Binary files a/fastlane/metadata/android/zh-CN/images/phoneScreenshots/04.png and b/fastlane/metadata/android/zh-CN/images/phoneScreenshots/04.png differ diff --git a/fastlane/metadata/android/zh-CN/images/phoneScreenshots/05.png b/fastlane/metadata/android/zh-CN/images/phoneScreenshots/05.png index 2df5789..557585d 100644 Binary files a/fastlane/metadata/android/zh-CN/images/phoneScreenshots/05.png and b/fastlane/metadata/android/zh-CN/images/phoneScreenshots/05.png differ diff --git a/fastlane/metadata/android/zh-CN/images/phoneScreenshots/06.png b/fastlane/metadata/android/zh-CN/images/phoneScreenshots/06.png index 441d51c..4e49087 100644 Binary files a/fastlane/metadata/android/zh-CN/images/phoneScreenshots/06.png and b/fastlane/metadata/android/zh-CN/images/phoneScreenshots/06.png differ diff --git a/fastlane/metadata/android/zh-CN/short_description.txt b/fastlane/metadata/android/zh-CN/short_description.txt index 02bf75f..089b7bb 100644 --- a/fastlane/metadata/android/zh-CN/short_description.txt +++ b/fastlane/metadata/android/zh-CN/short_description.txt @@ -1 +1 @@ -一个简单的、遵循 Material Design 3 的待办应用。 \ No newline at end of file +一个简约的、遵循 Material 3 Expressive 的待办应用。 \ No newline at end of file diff --git a/fastlane/metadata/android/zh-CN/title.txt b/fastlane/metadata/android/zh-CN/title.txt index 9179a9e..cf8009d 100644 --- a/fastlane/metadata/android/zh-CN/title.txt +++ b/fastlane/metadata/android/zh-CN/title.txt @@ -1 +1 @@ -待办 \ No newline at end of file +VerveDo \ No newline at end of file diff --git a/script/package.json b/script/package.json index 6451b63..d8b4aac 100644 --- a/script/package.json +++ b/script/package.json @@ -1,5 +1,5 @@ { - "name": "todo_script", + "name": "vervedo_script", "version": "1.0.0", "description": "自动在 build.gradle.kts 写入版本号", "license": "GPL-3.0-only", diff --git a/settings.gradle.kts b/settings.gradle.kts index f9b1b8c..74487bb 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -20,5 +20,5 @@ dependencyResolutionManagement { } } -rootProject.name = "ToDo" +rootProject.name = "VerveDo" include(":app")