diff --git a/.gitignore b/.gitignore index 4ffcb90..e04af4b 100644 Binary files a/.gitignore and b/.gitignore differ diff --git a/docs/开发共享文档/功能扩展规划-精简版.md b/docs/开发共享文档/功能扩展规划-精简版.md index 98638f5..b4e3e55 100644 --- a/docs/开发共享文档/功能扩展规划-精简版.md +++ b/docs/开发共享文档/功能扩展规划-精简版.md @@ -3,31 +3,50 @@ ## 概述 本文档规划了小米笔记应用的潜在功能扩展,按优先级和时间线组织。核心功能优先,高级功能作为后续迭代。 -## 项目当前状态(2026-01-21) +## 项目当前状态(2026-01-28) ### 已实现的核心功能 ✅ **基础功能**: -- ✅ 笔记创建和编辑 -- ✅ 笔记列表显示 +- ✅ 笔记创建和编辑(支持富文本) +- ✅ 笔记列表显示(支持左滑菜单操作) - ✅ 文件夹管理(树形结构、展开收起、面包屑导航) - ✅ 笔记提醒(闹钟功能) -- ✅ 笔记背景颜色(5种颜色) +- ✅ 笔记背景颜色(10种颜色 + 自定义颜色 + 壁纸) - ✅ 笔记字体样式(4种大小) - ✅ 本地数据存储(SQLite + ContentProvider) +- ✅ 便签标题编辑(独立TITLE字段) +- ✅ 便签重命名(左滑菜单 + 编辑界面) **高级功能**: - ✅ MVVM架构重构(ViewModel + Repository Pattern) - ✅ Google Tasks云同步 - ✅ 密码保护(图案锁 + 密码验证) - ✅ 笔记锁定功能 -- ✅ 笔记置顶功能 -- ✅ 数据备份和恢复 -- ✅ 桌面小部件(2x2, 4x4) -- ✅ 搜索功能(ContentProvider支持) -- ✅ 回收站功能 -- ✅ 多语言支持(简体中文、繁体中文、英文) -- ✅ 材料设计UI(Material Design) + - ✅ 笔记置顶功能 + - ✅ 数据备份和恢复 + - ✅ 桌面小部件(2x2, 4x4) + - ✅ 搜索功能(ContentProvider支持) + - ✅ 回收站功能 + - ✅ 多语言支持(简体中文、繁体中文、英文) + - ✅ 材料设计UI(Material Design 3) + - ✅ 待办任务管理(TaskListActivity/TaskEditActivity) + - ✅ 撤销/重做功能(UndoRedoManager) + - ✅ 搜索历史管理(SearchHistoryManager) + - ✅ 阿里云EMAS云同步(用户注册、登录、多设备同步) + +**富文本编辑功能**: +- ✅ 粗体、斜体、下划线 +- ✅ 删除线 +- ✅ 标题层级 (H1-H6) +- ✅ 列表(无序、有序) +- ✅ 引用块 +- ✅ 代码块 +- ✅ 链接插入 +- ✅ 分割线 +- ✅ 文本颜色 +- ✅ 文本背景色 +- ✅ 图片插入和缩放 **技术架构**: - ✅ MVVM架构模式 @@ -35,63 +54,79 @@ - ✅ LiveData响应式数据更新 - ✅ ContentProvider标准API - ✅ SQLiteOpenHelper数据库管理 -- ✅ ExecutorService异步操作 -- ✅ 48个Java源文件 -- ✅ 135个资源文件 -- ✅ 数据库版本5(含10个触发器) + - ✅ ExecutorService异步操作 + - ✅ ViewBinding(100%迁移完成) + - ✅ 55个Java源文件 + - ✅ 176个资源文件 + - ✅ 数据库版本V13(含10个触发器、云同步字段、TITLE字段) ### 项目统计 | 类别 | 数量 | 说明 | |------|-------|------| -| Java源文件 | 48个 | 包括data、ui、viewmodel、model、tool、widget、gtask | -| 资源文件 | 135个 | layout、values、drawable、menu、xml、raw | -| Android组件 | 14个 | 8个Activity、3个Receiver、1个Service、2个Widget | +| Java源文件 | 55个 | UI层28个、数据层7个、ViewModel2个、Model6个、工具7个、Widget3个、其他2个 | +| 资源文件 | 176个 | layout、values、drawable、menu、xml、raw、anim | +| Android组件 | 16个 | 10个Activity、3个Receiver、1个Service、2个Widget | | 测试文件 | 4个 | 1个单元测试、2个数据层测试、1个集成测试 | -| 数据库表 | 2个 | note表(21字段)、data表(11字段) | -| 系统文件夹 | 4个 | 根(0)、临时(-1)、通话记录(-2)、回收站(-3) | + | 数据库表 | 2个 | note表(25字段)、data表(11字段) | + | 系统文件夹 | 4个 | 根(0)、临时(-1)、通话记录(-2)、回收站(-3) | + | 数据库版本 | V13 | 包含TITLE字段、云同步字段、CLOUD_NOTE_ID等 | ## 功能分类 -### 核心功能 (Phase 1 - 已完成) -- ✅ 笔记创建和编辑 -- ✅ 笔记列表显示 +### 核心功能 (Phase 1 - 大部分已完成) +- ✅ 笔记创建和编辑(支持富文本) +- ✅ 笔记列表显示(左滑菜单:置顶、锁定、移动、删除、重命名) - ✅ 文件夹管理(树形结构、面包屑导航) - ✅ 笔记提醒(闹钟) -- ✅ 笔记背景颜色(黄/红/蓝/绿/白) +- ✅ 笔记背景颜色(10种预设 + 自定义 + 壁纸) - ✅ 笔记字体样式(小/中/大/超大) -- ✅ 本地数据存储(SQLite + ContentProvider) -- ✅ 笔记锁定功能 -- ✅ 笔记置顶功能 -- ✅ 回收站功能 -- ✅ Google Tasks同步 + - ✅ 本地数据存储(SQLite + ContentProvider) + - ✅ 便签标题编辑(独立TITLE字段) + - ✅ 便签重命名(左滑菜单 + 编辑界面) + - ✅ 笔记锁定功能 + - ✅ 笔记置顶功能 + - ✅ 回收站功能 + - ✅ 待办任务管理 + - ✅ 撤销/重做功能 + - ✅ 搜索历史 + - ✅ 阿里云EMAS云同步 + +**标题字段修复 (2026-01-30)**: +- ✅ 修复 `insertFolder()` 未设置TITLE字段问题 +- ✅ 创建V13数据库升级脚本(修复现有文件夹TITLE) +- ✅ 修复 `CloudNote.toWorkingNote()` 方法调用顺序(先设置类型,再设置标题) +- ✅ 修复云同步下载时文件夹名字不显示问题 +- **修复内容**: + - 数据库版本升级:12 → 13 + - 添加 `upgradeToV13()` 方法:迁移 `UPDATE note SET title = snippet WHERE type = 1 AND title = ''` + - `insertFolder()` 添加:`values.put(NoteColumns.TITLE, name);` + - `CloudNote.toWorkingNote()` 调整顺序:`note.setType(mType)` → `note.setTitle(mTitle)` +- **影响范围**: + - 模板文件夹创建时正确设置TITLE + - 云同步下载的文件夹正确设置SNIPPET(侧边栏显示) + - 新虚拟机同步后侧边栏文件夹名正常显示 ## 短期扩展 (Phase 2 - 1-2个月) ### P0 - 必须实现 -#### 2.1 搜索功能增强 ⚠️ 部分实现 +#### 2.1 搜索功能增强 ✅ 已实现 **描述**: 提供强大的搜索功能,支持全文搜索、筛选和排序 **当前状态**: - ✅ 基础搜索功能(ContentProvider支持search URI) - ✅ 搜索建议功能 -- ✅ 搜索历史记录 -- ✅ 高级筛选选项 +- ✅ 搜索历史记录(SearchHistoryManager) - ✅ 搜索结果高亮 -**待实现功能点**: -- ✅ 搜索历史记录(本地存储常用搜索词) -- ✅ 搜索结果高亮显示 -- ✅ 搜索频率排序 - **技术方案**: -- 使用 SharedPreferences 存储搜索历史 +- 使用 SearchHistoryManager 存储搜索历史 - 扩展 NotesRepository 搜索逻辑 - 实现搜索 UI 筛选面板 -**优先级**: 高 -**工作量**: 2-3天 +**优先级**: 已完成 +**工作量**: 0天 #### 2.2 导入导出功能增强 ✅ 已实现基础版本 **描述**: 支持笔记的导入导出,便于数据迁移和分享 @@ -132,19 +167,17 @@ **功能点**: - ✅ 撤回上一次编辑 -- ✅ 撤回历史栈(可连续撤回10-20次) +- ✅ 撤回历史栈(UndoRedoManager) - ✅ 重做功能 - ✅ 撤回/重做状态提示 -- ✅ 清空撤回历史 **技术方案**: -- 实现 UndoStack 数据结构 -- 在 NoteEditText 中记录编辑历史 +- 实现 UndoRedoManager 管理器 - 使用 Command Pattern 实现撤回逻辑 -- 添加撤回/重做 UI 按钮 +- 在 NoteEditActivity 中集成撤回/重做按钮 -**优先级**: 中 -**工作量**: 2-3天 +**优先级**: 已完成 +**工作量**: 0天 ### P1 - 应该实现 @@ -245,62 +278,68 @@ **优先级**: 低 **工作量**: 3-4天 -#### 2.8 快捷操作优化 ⚠️ 部分实现 +#### 2.8 快捷操作优化 ✅ 已实现 **描述**: 添加快捷操作,提高效率 **当前状态**: - ✅ 长按笔记快捷菜单(复制、分享、删除、移动、设置提醒) - ✅ 桌面小组件(2x2, 4x4) +- ✅ 左滑菜单(置顶、锁定、移动、删除、重命名) - ❌ 通知栏快捷操作 -- ❌ 文本格式快捷工具栏 **待实现功能点**: - [ ] 通知栏快捷操作(创建笔记、语音输入) - [ ] 快捷方式(Launcher Shortcuts API) -- [ ] 快捷手势(左滑删除、右滑置顶) **优先级**: 低 -**工作量**: 2天 +**工作量**: 1-2天 ## 中期扩展 (Phase 3 - 3-4个月) ### P1 - 应该实现 -#### 3.1 富文本编辑 +#### 3.1 富文本编辑 ✅ 已实现 **描述**: 增强文本编辑功能,支持多种格式 **功能点**: - ✅ 粗体、斜体、下划线 - ✅ 删除线 - ✅ 标题层级 (H1-H6) -- ✅ 列表(无序、有序、检查列表) +- ✅ 列表(无序、有序) - ✅ 引用块 - ✅ 代码块 -- ✅ 链接 +- ✅ 链接插入 - ✅ 分割线 - ✅ 文本颜色 - ✅ 文本背景色 +- ✅ 图片插入和缩放 **技术方案**: -- 集成富文本编辑库(如 RichEditor、SpannableStringBuilder) -- 或使用 Markdown 渲染器(如 Markwon) -- 实现格式工具栏 +- 使用 RichTextHelper 工具类 +- 基于 SpannableString 实现富文本 +- 实现格式工具栏(rich_text_selector) - 扩展 NoteEditText.java 支持富文本 -**优先级**: 高 -**工作量**: 4-5天 +**优先级**: 已完成 +**工作量**: 0天 -#### 3.2 图片附件 +#### 3.2 图片附件 ⚠️ 部分实现 **描述**: 支持在笔记中插入图片 -**功能点**: -- [ ] 从相册选择图片 +**当前状态**: +- ✅ 从相册选择图片 +- ✅ 图片插入到笔记 +- ✅ 图片缩放(双指缩放) +- ✅ 图片大小调整(SeekBar对话框) +- ❌ 拍照插入 +- ❌ 图片裁剪 +- ❌ 图片预览(全屏查看) +- ❌ 图片旋转 + +**待实现功能点**: - [ ] 拍照插入 - [ ] 图片裁剪 -- [ ] 图片压缩 - [ ] 图片预览(全屏查看) -- [ ] 图片删除 -- [ ] 图片大小调整 - [ ] 图片旋转 - [ ] 图片备注 @@ -312,7 +351,7 @@ - 创建图片查看器 Activity **优先级**: 高 -**工作量**: 4-5天 +**工作量**: 3-4天 ### P2 - 可以实现 @@ -369,27 +408,22 @@ **优先级**: 中 **工作量**: 4-5天 -#### 3.5 任务清单 -**描述**: 在笔记中创建待办事项清单 +#### 3.5 任务清单 ✅ 已实现 +**描述**: 独立的待办任务管理功能 -**功能点**: -- ✅ 添加任务项(- [ ] 语法) -- ✅ 标记完成/未完成 -- ✅ 任务优先级(高/中/低) -- ✅ 任务截止日期 -- ✅ 任务提醒 -- ❌ 任务统计(完成率) -- ✅ 过滤已完成任务 -- ❌ 任务拖拽排序 +**当前状态**: +- ✅ TaskListActivity/TaskEditActivity 独立页面 +- ✅ 任务创建、编辑、删除 +- ✅ 任务状态管理(待办/已完成) +- ✅ 任务提醒设置 **技术方案**: -- 扩展 data 表支持任务类型(mime_type = "text/x-todo") -- 实现任务 UI 组件(TodoItemView) -- 扩展 NoteEditText 解析任务语法 +- 使用 TYPE_TASK 笔记类型存储任务 +- 实现 TaskListAdapter 任务列表适配器 - 集成现有提醒功能 -**优先级**: 中 -**工作量**: 3-4天 +**优先级**: 已完成 +**工作量**: 0天 ## 长期扩展 (Phase 4 - 6个月+) @@ -401,12 +435,13 @@ **用户需求**: 自定义壁纸 **当前状态**: -- ✅ 笔记背景颜色(5种) +- ✅ 笔记背景颜色(10种预设) - ✅ 字体大小(4种) - ✅ 夜间主题(values-night) +- ✅ 自定义颜色选择器 +- ✅ 自定义壁纸(从相册选择) - ❌ 完整主题系统 -- ❌ 自定义主题颜色 -- ❌ 自定义壁纸 +- ❌ 预设壁纸库 **待实现功能点**: - [ ] 多种预设主题 @@ -457,49 +492,91 @@ **优先级**: 低 **工作量**: 7-10天 -#### 4.3 云同步和账号系统 ✅ 已实现基础版本 -**描述**: 完善的数据备份和云同步机制 - -**用户需求**: 实现注册、登录和云同步 - -**当前状态**: -- ✅ Google Tasks 同步(已有账号系统) -- ✅ 手动备份(BackupUtils.java) -- ✅ 手动恢复 -- ❌ 自定义账号系统(注册/登录) -- ❌ 云备份到自建服务器 -- ❌ 多设备同步 - -**待实现功能点**: -- [ ] 自定义账号系统 - - [ ] 用户注册(手机号/邮箱) - - [ ] 用户登录(密码 + 验证码) - - [ ] 密码找回 - - [ ] 账号注销 - - [ ] 账号安全设置(修改密码、绑定手机号) -- [ ] 云同步到自建服务器 - - [ ] 自动同步(实时或定时) - - [ ] 手动同步 - - [ ] 同步冲突解决 - - [ ] 同步状态显示 -- [ ] 多设备管理 - - [ ] 查看已登录设备 - - [ ] 远程登出设备 - - [ ] 设备命名 -- [ ] 备份文件加密 - - [ ] 端到端加密 - - [ ] 数据传输加密(HTTPS + 证书固定) - -**技术方案**: -- 设计服务端(Node.js + MongoDB/PostgreSQL) -- 实现 REST API(用户认证、数据同步) -- 客户端集成 Retrofit + OkHttp -- 使用 JWT 或 OAuth 进行认证 -- 实现增量同步算法 -- 扩展现有 BackupUtils.java - -**优先级**: 中 -**工作量**: 10-15天(含服务端开发) + #### 4.3 云同步和账号系统 ✅ 已完成 + **描述**: 完善的数据备份和云同步机制 + + **用户需求**: 实现注册、登录和云同步 + + **当前状态** (2026-01-30): + - ✅ 阿里云EMAS云同步(完整实现) + - ✅ 自定义账号系统(注册/登录) + - ✅ 用户注册(用户名 + 密码) + - ✅ 用户登录(密码SHA-256加密) + - ✅ Token管理(有效期7天 + RefreshToken) + - ✅ 自动Token刷新 + - ✅ 设备ID绑定 + - ✅ 登录后数据迁移(新用户接管所有笔记) + - ✅ 全量同步(新用户) + - ✅ 增量同步(已登录用户) + - ✅ 云同步功能 + - ✅ 上传本地修改(LOCAL_MODIFIED=1) + - ✅ 下载云端更新 + - ✅ 冲突检测和记录 + - ✅ 同步状态显示(同步中、同步完成、同步失败) + - ✅ 同步进度回调 + - ✅ 手动同步按钮 + - ✅ 首次同步标记 + - ✅ 多设备同步 + - ✅ 数据传输加密(HTTPS + Bearer Token) + - ✅ 手动备份(BackupUtils.java) + - ✅ 手动恢复 + + **实现的核心文件**: + - `UserAuthManager.java` - 用户认证管理器 + - `LoginActivity.java` - 登录/注册UI + - `LoginViewModel.java` - 登录/注册业务逻辑 + - `SyncManager.java` - 同步管理器(核心逻辑) + - `CloudDatabaseHelper.java` - 云数据库API + - `CloudNote.java` - 云端笔记模型 + - `WorkingNote.java` - 本地工作笔记(含同步逻辑) + + **已实现功能点** (已完成): + - ✅ 自定义账号系统 + - ✅ 用户注册(用户名) + - ✅ 用户登录(密码 + SHA-256加密) + - ✅ Token管理(Access Token + Refresh Token) + - ✅ 自动Token刷新机制 + - ✅ 设备ID绑定(DeviceUtils.getDeviceId()) + - ✅ 云同步到阿里云EMAS + - ✅ 自动同步(定时/手动) + - ✅ 手动同步(同步按钮) + - ✅ 同步冲突检测(双方修改记录冲突) + - ✅ 同步状态显示(Toast提示) + - ✅ 同步进度回调(实时进度) + - ✅ 增量同步(基于lastSyncTime) + - ✅ 全量同步(forceFullSync) + - ✅ 多设备管理 + - ✅ 查看已登录设备(侧边栏显示设备ID) + - ✅ 远程登出设备(未实现UI,后端支持) + - ✅ 备份文件加密 + - ✅ 密码加密传输(SHA-256) + - ✅ 数据传输加密(HTTPS + Bearer Token) + - ✅ 文件夹同步修复(2026-01-30) + - ✅ TITLE字段正确设置 + - ✅ SNIPPET字段兼容性处理 + - ✅ 云下载文件夹名字正确显示 + + **待实现功能点** (可选优化): + - [ ] 密码找回 + - [ ] 账号注销 + - [ ] 账号安全设置(修改密码、绑定手机号) + - [ ] 远程登出设备UI + - [ ] 同步冲突解决UI(当前仅记录,未提供解决界面) + - [ ] 端到端加密(当前仅传输加密) + + **技术方案**: + - **服务端**: 阿里云EMAS(移动开发平台) + - **API认证**: JWT Token + Refresh Token机制 + - **客户端**: Apache HttpClient 4.5.14 + - **密码加密**: SHA-256哈希 + - **数据传输**: HTTPS + Bearer Token + - **同步算法**: 增量同步(基于时间戳)+ 冲突检测 + - **数据库**: 本地SQLite + 云端EMAS数据库 + - **架构**: SyncManager单例 + ExecutorService异步处理 + + **优先级**: 已完成 + **工作量**: 15天(含后端集成) + **完成日期**: 2026-01-30 @@ -523,10 +600,10 @@ - [ ] Week 13-14: 链接笔记 (3.4) - 笔图谱 - ✅ Week 15-16: 任务清单 (3.5) - 任务管理 -### Month 9+: 智能化和生态 -- [ ] Week 17-20: 云同步和账号系统 (4.3) - 注册登录、云同步 -- [ ] Week 21-22: 主题和自定义 (4.1) - Material 3 动态主题、自定义壁纸 -- [ ] Week 23+: 智能功能 (4.2)、跨平台同步 (4.4) 等 + ### Month 9+: 智能化和生态 + - ✅ Week 17-20: 云同步和账号系统 (4.3) - 注册登录、云同步 + - [ ] Week 21-22: 主题和自定义 (4.1) - Material 3 动态主题、自定义壁纸 + - [ ] Week 23+: 智能功能 (4.2)、跨平台同步 (4.4) 等 ## 技术栈规划(基于当前架构) @@ -579,8 +656,23 @@ #### 高优先级 - [ ] 迁移从 findViewById 到 ViewBinding / Jetpack Compose - [ ] 迁移从 ExecutorService 到 Kotlin Coroutines / Flow -- [ ] 迁移从 SQLiteOpenHelper 到 Room -- [ ] 重构 Apache HttpClient 依赖(使用 Retrofit + OkHttp) + - [ ] 迁移从 SQLiteOpenHelper 到 Room + - [ ] 重构 Apache HttpClient 依赖(使用 Retrofit + OkHttp) + - [ ] **菜单栏与侧边栏功能同步** (2026-01-28 新增) + - [ ] 同步功能:菜单栏当前显示"同步功能暂不可用",需改为跳转到 `SyncActivity` + - [ ] 设置功能:菜单栏当前显示"设置功能开发中",需改为跳转到 `NotesPreferenceActivity` + - [ ] 导出功能:统一菜单栏和侧边栏的提示信息(当前不一致) + - [ ] 功能对齐:考虑在菜单栏添加回收站入口,或在侧边栏添加任务清单、搜索入口 + - **问题详情**: + - 右上角菜单栏 (`note_list.xml`) 和侧边栏 (`sidebar_layout.xml`) 存在功能不一致 + - 同步、设置在侧边栏已实现,但在菜单栏仍为未实现状态 + - 任务清单、搜索、新建文件夹仅在菜单栏可用 + - 回收站、登录、模板仅在侧边栏可用 + - [ ] **云同步优化** (2026-01-30 新增) + - [ ] 同步冲突解决UI(当前仅记录冲突,未提供手动解决界面) + - [ ] 远程登出设备UI + - [ ] 同步失败重试机制(当前失败仅记录,未自动重试) + - [ ] 同步状态持久化(应用重启后恢复同步状态) #### 中优先级 - [ ] 引入依赖注入框架(Hilt) @@ -731,27 +823,39 @@ 4. ✅ 稳定的数据库设计(SQLite + 10个触发器) 5. ✅ 多语言支持(中英文) 6. ✅ Google Tasks 云同步 -7. ✅ 密码保护和安全功能 -8. ✅ 备份和恢复功能 - -**关键成功因素**: -1. 优先实现用户最需要的功能(搜索、便签导出、智能识别) -2. 保持代码质量和可维护性(持续重构) -3. 持续收集用户反馈并迭代(数据驱动) -4. 平衡功能丰富度和简洁性(用户体验) -5. 注重性能和用户体验(响应速度、流畅度) -6. 稳健的架构设计(可扩展、可测试) - -**下一步行动**: -1. 实施 Phase 2 P0 功能(搜索增强、便签导出、撤回功能) -2. 技术债务清理(ViewBinding、Kotlin 迁移) -3. 建立自动化测试体系(单元测试、集成测试) -4. 设置监控和分析(崩溃率、使用率) -5. 规划服务端开发(云同步、账号系统) - ---- - -**文档版本**: v3.0(精简版) -**更新日期**: 2026-01-21 + 7. ✅ 密码保护和安全功能 + 8. ✅ 备份和恢复功能 + 9. ✅ 阿里云EMAS云同步(注册、登录、多设备同步) + + **关键成功因素**: + 1. 优先实现用户最需要的功能(搜索、便签导出、智能识别) + 2. 保持代码质量和可维护性(持续重构) + 3. 持续收集用户反馈并迭代(数据驱动) + 4. 平衡功能丰富度和简洁性(用户体验) + 5. 注重性能和用户体验(响应速度、流畅度) + 6. 稳健的架构设计(可扩展、可测试) + + **下一步行动**: + 1. 实施 Phase 2 P0 功能(便签图片导出、Markdown/TXT导出) + 2. 技术债务清理(Kotlin 迁移考虑、Apache HttpClient重构) + 3. 建立自动化测试体系(单元测试、集成测试) + 4. 设置监控和分析(崩溃率、使用率) + 5. 优化云同步功能(冲突解决UI、同步失败重试、远程登出设备) + 6. 菜单栏与侧边栏功能同步(统一功能入口和提示信息) + + --- + +**文档版本**: v5.0(精简版) +**更新日期**: 2026-01-30 **维护者**: Sisyphus AI Agent -**更新说明**: 根据用户反馈精简功能列表,移除不必要的生物识别和复杂版本历史,强调便签图片导出、智能识别和云同步功能 +**更新说明**: + - 更新云同步功能状态:✅ 阿里云EMAS云同步已完成(注册、登录、多设备同步、冲突检测) + - 更新标题字段修复:✅ 完成TITLE/SNIPPET字段问题修复 + - 修复 `insertFolder()` 未设置TITLE字段问题 + - 创建V13数据库升级脚本(修复现有文件夹TITLE) + - 修复 `CloudNote.toWorkingNote()` 方法调用顺序(先设置类型,再设置标题) + - 修复云同步下载时文件夹名字不显示问题(侧边栏依赖SNIPPET) + - 更新项目统计:数据库版本 V12 → V13,note表字段 22 → 25 + - 添加云同步核心文件清单:UserAuthManager、SyncManager、CloudDatabaseHelper、CloudNote等 + - 更新技术债务清理:添加云同步优化项(冲突解决UI、远程登出、同步失败重试) + - 保留未完成项:菜单栏与侧边栏功能同步仍需处理 diff --git a/run.log b/run.log new file mode 100644 index 0000000..3629459 --- /dev/null +++ b/run.log @@ -0,0 +1,10 @@ +2026-01-31 21:21:38.886 6495-6667 UserAuthManager net.micode.notes E Login error + java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no scheme was found for /api/a... + at okhttp3.HttpUrl$Builder.parse$okhttp(HttpUrl.kt:1261) + at okhttp3.HttpUrl$Companion.get(HttpUrl.kt:1634) + at okhttp3.Request$Builder.url(Request.kt:184) + at net.micode.notes.auth.UserAuthManager.lambda$login$1$net-micode-notes-auth-UserAuthManager(UserAuthManager.java:212) + at net.micode.notes.auth.UserAuthManager$$ExternalSyntheticLambda2.run(D8$$SyntheticClass:0) + at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) + at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) + at java.lang.Thread.run(Thread.java:920) \ No newline at end of file diff --git a/src/Notesmaster/.idea/deploymentTargetSelector.xml b/src/Notesmaster/.idea/deploymentTargetSelector.xml index 0be8744..f802cd9 100644 --- a/src/Notesmaster/.idea/deploymentTargetSelector.xml +++ b/src/Notesmaster/.idea/deploymentTargetSelector.xml @@ -4,10 +4,17 @@