generated from dellevin/template
docs(wiki): 更新 Wiki 文档
- Home.md: 新增 EPUB 阅读、布局设置功能概览 - Pages-and-Navigation.md: 新增影视墙/书架模式说明、添加按钮规范 - Theme-and-UI.md: 新增布局设置界面、标签选择面板文档 - User-Preferences.md: 新增布局设置、排序方式、影视墙/书架模式配置
This commit is contained in:
@@ -7,10 +7,12 @@
|
|||||||
- **影视管理** — 增删改查、影评、海报墙、豆瓣链接爬取
|
- **影视管理** — 增删改查、影评、海报墙、豆瓣链接爬取
|
||||||
- **书籍管理** — 增删改查、书评、摘抄
|
- **书籍管理** — 增删改查、书评、摘抄
|
||||||
- **笔记管理** — Markdown 笔记、标签、图片
|
- **笔记管理** — Markdown 笔记、标签、图片
|
||||||
|
- **EPUB 阅读** — 本地 EPUB 阅读、书摘、高亮
|
||||||
- **数据同步** — 服务端实时同步、WebDAV 同步、自动本地备份
|
- **数据同步** — 服务端实时同步、WebDAV 同步、自动本地备份
|
||||||
- **回收站** — 软删除 + 恢复/彻底删除
|
- **回收站** — 软删除 + 恢复/彻底删除
|
||||||
- **标签管理** — 影视类型、书籍类型、笔记标签统一管理
|
- **标签管理** — 影视类型、书籍类型、笔记标签统一管理
|
||||||
- **统计分析** — 观影/阅读数据统计
|
- **统计分析** — 观影/阅读数据统计
|
||||||
|
- **布局设置** — 影视墙/书架模式、网格/列表/大图卡片布局
|
||||||
|
|
||||||
## 技术栈
|
## 技术栈
|
||||||
|
|
||||||
@@ -33,6 +35,6 @@
|
|||||||
- [图片存储](Image-Storage.md) — 图片路径管理、存储结构
|
- [图片存储](Image-Storage.md) — 图片路径管理、存储结构
|
||||||
- [同步系统](Sync-System.md) — 服务端同步、WebDAV、自动备份
|
- [同步系统](Sync-System.md) — 服务端同步、WebDAV、自动备份
|
||||||
- [服务端 API](Server-API.md) — Flask 后端、API 端点、激活码机制
|
- [服务端 API](Server-API.md) — Flask 后端、API 端点、激活码机制
|
||||||
- [页面与路由](Pages-and-Navigation.md) — 页面结构、路由表、过渡动画
|
- [页面与路由](Pages-and-Navigation.md) — 页面结构、路由表、过渡动画、添加按钮规范
|
||||||
- [主题与 UI](Theme-and-UI.md) — 主题配置、共享组件
|
- [主题与 UI](Theme-and-UI.md) — 主题配置、布局设置界面、标签选择面板、共享组件
|
||||||
- [用户偏好](User-Preferences.md) — SharedPreferences 配置项
|
- [用户偏好](User-Preferences.md) — SharedPreferences 配置项、布局设置、排序方式
|
||||||
|
|||||||
@@ -25,13 +25,13 @@ HomePage
|
|||||||
|
|
||||||
| 页面 | 文件 | 说明 |
|
| 页面 | 文件 | 说明 |
|
||||||
|------|------|------|
|
|------|------|------|
|
||||||
| MovieTabPage | `pages/movies/movie_tab_page.dart` | 影视列表(按状态筛选)|
|
| MovieTabPage | `pages/movies/movie_tab_page.dart` | 影视列表(支持影视墙模式)|
|
||||||
| MovieFormPage | `pages/movies/movie_form_page.dart` | 新增/编辑影视 |
|
| MovieFormPage | `pages/movies/movie_form_page.dart` | 新增/编辑影视 |
|
||||||
| MovieDetailPage | `pages/movies/movie_detail_page.dart` | 影视详情 |
|
| MovieDetailPage | `pages/movies/movie_detail_page.dart` | 影视详情 |
|
||||||
| MovieReviewsPage | `pages/movies/movie_reviews_page.dart` | 影评列表 |
|
| MovieReviewsPage | `pages/movies/movie_reviews_page.dart` | 影评列表(右下角浮动添加按钮)|
|
||||||
| MovieReviewFormPage | `pages/movies/movie_review_form_page.dart` | 新增/编辑影评 |
|
| MovieReviewFormPage | `pages/movies/movie_review_form_page.dart` | 新增/编辑影评 |
|
||||||
| MovieReviewDetailPage | `pages/movies/movie_review_detail_page.dart` | 影评详情 |
|
| MovieReviewDetailPage | `pages/movies/movie_review_detail_page.dart` | 影评详情 |
|
||||||
| MoviePostersPage | `pages/movies/movie_posters_page.dart` | 海报墙 |
|
| MoviePostersPage | `pages/movies/movie_posters_page.dart` | 海报墙(右下角浮动添加按钮)|
|
||||||
| PosterGalleryPage | `pages/movies/poster_gallery_page.dart` | 海报画廊浏览 |
|
| PosterGalleryPage | `pages/movies/poster_gallery_page.dart` | 海报画廊浏览 |
|
||||||
| MovieSharePage | `pages/movies/movie_share_page.dart` | 影视分享 |
|
| MovieSharePage | `pages/movies/movie_share_page.dart` | 影视分享 |
|
||||||
| DoubanWebViewPage | `pages/movies/douban_webview_page.dart` | 豆瓣 WebView |
|
| DoubanWebViewPage | `pages/movies/douban_webview_page.dart` | 豆瓣 WebView |
|
||||||
@@ -40,13 +40,13 @@ HomePage
|
|||||||
|
|
||||||
| 页面 | 文件 | 说明 |
|
| 页面 | 文件 | 说明 |
|
||||||
|------|------|------|
|
|------|------|------|
|
||||||
| BookTabPage | `pages/book/book_tab_page.dart` | 书籍列表 |
|
| BookTabPage | `pages/book/book_tab_page.dart` | 书籍列表(支持书架模式)|
|
||||||
| BookFormPage | `pages/book/book_form_page.dart` | 新增/编辑书籍 |
|
| BookFormPage | `pages/book/book_form_page.dart` | 新增/编辑书籍 |
|
||||||
| BookDetailPage | `pages/book/book_detail_page.dart` | 书籍详情 |
|
| BookDetailPage | `pages/book/book_detail_page.dart` | 书籍详情 |
|
||||||
| BookReviewsPage | `pages/book/book_reviews_page.dart` | 书评列表 |
|
| BookReviewsPage | `pages/book/book_reviews_page.dart` | 书评列表(右下角浮动添加按钮)|
|
||||||
| BookReviewFormPage | `pages/book/book_review_form_page.dart` | 新增/编辑书评 |
|
| BookReviewFormPage | `pages/book/book_review_form_page.dart` | 新增/编辑书评 |
|
||||||
| BookReviewDetailPage | `pages/book/book_review_detail_page.dart` | 书评详情 |
|
| BookReviewDetailPage | `pages/book/book_review_detail_page.dart` | 书评详情 |
|
||||||
| BookExcerptsPage | `pages/book/book_excerpts_page.dart` | 摘抄列表 |
|
| BookExcerptsPage | `pages/book/book_excerpts_page.dart` | 摘抄列表(右下角浮动添加按钮)|
|
||||||
| BookExcerptFormPage | `pages/book/book_excerpt_form_page.dart` | 新增/编辑摘抄 |
|
| BookExcerptFormPage | `pages/book/book_excerpt_form_page.dart` | 新增/编辑摘抄 |
|
||||||
| BookSharePage | `pages/book/book_share_page.dart` | 书籍分享 |
|
| BookSharePage | `pages/book/book_share_page.dart` | 书籍分享 |
|
||||||
|
|
||||||
@@ -78,6 +78,8 @@ HomePage
|
|||||||
| WebDAVSyncPage | `pages/sync/webdav_sync_page.dart` | WebDAV 同步 |
|
| WebDAVSyncPage | `pages/sync/webdav_sync_page.dart` | WebDAV 同步 |
|
||||||
| MdReaderTabPage | `pages/markdown_reader/md_reader_tab_page.dart` | Markdown 阅读器目录 |
|
| MdReaderTabPage | `pages/markdown_reader/md_reader_tab_page.dart` | Markdown 阅读器目录 |
|
||||||
| MdViewerPage | `pages/markdown_reader/md_viewer_page.dart` | Markdown 查看器 |
|
| MdViewerPage | `pages/markdown_reader/md_viewer_page.dart` | Markdown 查看器 |
|
||||||
|
| EpubReaderPage | `pages/epub_reader/epub_reader_page.dart` | EPUB 阅读器 |
|
||||||
|
| EpubDetailPage | `pages/epub_reader/epub_detail_page.dart` | EPUB 详情(书摘、高亮)|
|
||||||
|
|
||||||
## 路由
|
## 路由
|
||||||
|
|
||||||
@@ -97,4 +99,15 @@ HomePage
|
|||||||
|
|
||||||
所有路由使用 `SlideUpPageRoute`(`lib/utils/slide_up_page_route.dart`),实现从底部滑入的过渡效果。
|
所有路由使用 `SlideUpPageRoute`(`lib/utils/slide_up_page_route.dart`),实现从底部滑入的过渡效果。
|
||||||
|
|
||||||
|
## 添加按钮统一规范
|
||||||
|
|
||||||
|
为保证界面一致性,以下页面使用 `FloatingActionButton.extended` 作为右下角添加按钮:
|
||||||
|
|
||||||
|
| 页面 | 添加按钮文案 | 图标 |
|
||||||
|
|------|------------|------|
|
||||||
|
| BookExcerptsPage | 添加摘抄 | `Icons.add` |
|
||||||
|
| BookReviewsPage | 添加书评 | `Icons.add` |
|
||||||
|
| MovieReviewsPage | 添加影评 | `Icons.add` |
|
||||||
|
| MoviePostersPage | 添加海报 | `Icons.add_photo_alternate` |
|
||||||
|
|
||||||
[返回首页](Home.md)
|
[返回首页](Home.md)
|
||||||
|
|||||||
@@ -52,6 +52,55 @@ ThemeData(
|
|||||||
- 字体族:`Inter`
|
- 字体族:`Inter`
|
||||||
- 字重:`w400`(Regular)、`w500`(Medium)、`w600`(Semibold)
|
- 字重:`w400`(Regular)、`w500`(Medium)、`w600`(Semibold)
|
||||||
|
|
||||||
|
## 布局设置界面
|
||||||
|
|
||||||
|
`lib/pages/profile_page.dart` 中的 `LayoutSettingsPage` — 设置中的布局配置页面。
|
||||||
|
|
||||||
|
### 界面结构
|
||||||
|
|
||||||
|
- **分类分组**:影视、阅读、笔记三个模块分别用图标+标题分组
|
||||||
|
- **开关卡片**:影视墙模式、书架模式用带图标的卡片+Switch展示
|
||||||
|
- **布局选择器**:自定义卡片式选择器,替代原生的 `SegmentedButton`
|
||||||
|
|
||||||
|
### 布局选择器样式
|
||||||
|
|
||||||
|
```dart
|
||||||
|
_buildLayoutSelector(
|
||||||
|
selected: _movieLayout,
|
||||||
|
options: [
|
||||||
|
(0, Icons.grid_view_outlined, '海报网格'),
|
||||||
|
(1, Icons.view_list_outlined, '列表'),
|
||||||
|
(2, Icons.crop_landscape_outlined, '大图卡片'),
|
||||||
|
],
|
||||||
|
onChanged: (v) => _setLayout('movie', v),
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
特点:
|
||||||
|
- **卡片式布局**:每个选项是圆角卡片(圆角12px)
|
||||||
|
- **选中状态**:主色填充 + 白色图标文字
|
||||||
|
- **未选中状态**:浅灰背景 + 灰色图标文字
|
||||||
|
- **动画效果**:`AnimatedContainer` 实现150ms平滑过渡
|
||||||
|
- **图标+文字垂直排列**:22px图标 + 12px文字
|
||||||
|
- **等宽分布**:`Expanded` 让选项等宽排列
|
||||||
|
|
||||||
|
### 影视墙/书架模式开关
|
||||||
|
|
||||||
|
```dart
|
||||||
|
_buildWallSwitch(
|
||||||
|
icon: Icons.wallpaper_outlined,
|
||||||
|
title: '影视墙模式',
|
||||||
|
subtitle: '显示全部影片,不区分状态',
|
||||||
|
value: _movieWallMode,
|
||||||
|
onChanged: (v) => _setWallMode('movie', v),
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
开关卡片样式:
|
||||||
|
- 左侧:36px圆角图标容器(主色8%透明度背景)
|
||||||
|
- 中间:标题+副标题文字
|
||||||
|
- 右侧:Switch开关
|
||||||
|
|
||||||
## 共享 Widget
|
## 共享 Widget
|
||||||
|
|
||||||
| Widget | 文件 | 说明 |
|
| Widget | 文件 | 说明 |
|
||||||
@@ -59,14 +108,39 @@ ThemeData(
|
|||||||
| `MovieListItem` | `widgets/movie_list_item.dart` | 影视列表项 |
|
| `MovieListItem` | `widgets/movie_list_item.dart` | 影视列表项 |
|
||||||
| `BookListItem` | `widgets/book_list_item.dart` | 书籍列表项 |
|
| `BookListItem` | `widgets/book_list_item.dart` | 书籍列表项 |
|
||||||
| `NoteListItem` | `widgets/note_list_item.dart` | 笔记列表项 |
|
| `NoteListItem` | `widgets/note_list_item.dart` | 笔记列表项 |
|
||||||
| `MovieStatusBar` | `widgets/movie_status_bar.dart` | 影视状态筛选栏 |
|
| `MovieStatusBar` | `widgets/movie_status_bar.dart` | 影视状态筛选栏(已看/在看/想看)|
|
||||||
| `BookStatusBar` | `widgets/book_status_bar.dart` | 书籍状态筛选栏 |
|
| `BookStatusBar` | `widgets/book_status_bar.dart` | 书籍状态筛选栏(已读/在读/想读)|
|
||||||
| `AnimatedStarRating` | `widgets/animated_star_rating.dart` | 动画星级评分 |
|
| `AnimatedStarRating` | `widgets/animated_star_rating.dart` | 动画星级评分 |
|
||||||
| `BottomNavBar` | `widgets/bottom_nav_bar.dart` | 底部导航栏 |
|
| `BottomNavBar` | `widgets/bottom_nav_bar.dart` | 底部导航栏 |
|
||||||
| `CustomDrawer` | `widgets/custom_drawer.dart` | 侧边抽屉菜单 |
|
| `CustomDrawer` | `widgets/custom_drawer.dart` | 侧边抽屉菜单 |
|
||||||
| `FadeInLocalImage` | `widgets/fade_in_local_image.dart` | 本地图片渐入显示 |
|
| `FadeInLocalImage` | `widgets/fade_in_local_image.dart` | 本地图片渐入显示 |
|
||||||
| `AppRefreshIndicator` | `widgets/app_refresh_indicator.dart` | 自定义下拉刷新 |
|
| `AppRefreshIndicator` | `widgets/app_refresh_indicator.dart` | 自定义下拉刷新 |
|
||||||
| `ShimmerSkeleton` | `widgets/shimmer_skeleton.dart` | 骨架屏加载效果 |
|
| `ShimmerSkeleton` | `widgets/shimmer_skeleton.dart` | 骨架屏加载效果 |
|
||||||
|
| `TagSidePanel` | `widgets/tag_side_panel.dart` | 标签选择侧边面板 |
|
||||||
|
| `MasterDetailScaffold` | `widgets/master_detail_scaffold.dart` | 平板双栏布局 |
|
||||||
|
|
||||||
|
## 标签选择面板
|
||||||
|
|
||||||
|
`TagSidePanel` — 从右侧滑入的标签选择面板。
|
||||||
|
|
||||||
|
### 特点
|
||||||
|
|
||||||
|
- **滑入动画**:从右侧250ms滑入,带遮罩层
|
||||||
|
- **已选标签**:主色填充的圆角标签,点击移除
|
||||||
|
- **全部标签**:可选中/取消选中,选中状态带主色边框
|
||||||
|
- **新建标签**:顶部输入框,回车或点击+号添加
|
||||||
|
- **保存按钮**:右上角圆角主色按钮,替代原来的关闭图标
|
||||||
|
|
||||||
|
### 布局对齐
|
||||||
|
|
||||||
|
已选标签和全部标签均使用 `Wrap` 组件,配置:
|
||||||
|
```dart
|
||||||
|
Wrap(
|
||||||
|
alignment: WrapAlignment.start,
|
||||||
|
crossAxisAlignment: WrapCrossAlignment.start,
|
||||||
|
)
|
||||||
|
```
|
||||||
|
确保标签严格左对齐。
|
||||||
|
|
||||||
## 系统 UI
|
## 系统 UI
|
||||||
|
|
||||||
|
|||||||
@@ -4,91 +4,65 @@
|
|||||||
|
|
||||||
`lib/utils/user_prefs.dart` — SharedPreferences 单例包装器。
|
`lib/utils/user_prefs.dart` — SharedPreferences 单例包装器。
|
||||||
|
|
||||||
```dart
|
### 布局设置
|
||||||
class UserPrefs {
|
|
||||||
static final UserPrefs _instance = UserPrefs._internal();
|
|
||||||
factory UserPrefs() => _instance;
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
使用前必须调用 `UserPrefs.init()`(在 `main.dart` 中完成)。
|
| 偏好项 | 类型 | 默认值 | 说明 |
|
||||||
|
|--------|------|--------|------|
|
||||||
|
| `movieLayoutStyle` | int | 0 | 影视布局:0=海报网格, 1=列表, 2=大图卡片 |
|
||||||
|
| `bookLayoutStyle` | int | 0 | 阅读布局:0=封面网格, 1=列表 |
|
||||||
|
| `noteLayoutStyle` | int | 0 | 笔记布局:0=列表, 1=瀑布流, 2=时间线 |
|
||||||
|
| `movieWallMode` | bool | false | 影视墙模式:显示全部影片,不区分状态 |
|
||||||
|
| `bookshelfMode` | bool | false | 书架模式:显示全部书籍,不区分状态 |
|
||||||
|
|
||||||
## 配置项列表
|
### 排序方式
|
||||||
|
|
||||||
### 用户信息
|
| 偏好项 | 类型 | 默认值 | 说明 |
|
||||||
|
|--------|------|--------|------|
|
||||||
|
| `movieSortMode` | int | 0 | 影视排序:0=更新时间, 1=创建时间, 2=评分 |
|
||||||
|
| `bookSortMode` | int | 0 | 书籍排序:0=更新时间, 1=创建时间, 2=评分 |
|
||||||
|
| `noteSortMode` | int | 0 | 笔记排序:0=更新时间, 1=创建时间 |
|
||||||
|
|
||||||
| 键 | 类型 | 默认值 | 说明 |
|
### 主界面标签显示
|
||||||
|----|------|--------|------|
|
|
||||||
| `nickname` | String | `'Mook'` | 昵称 |
|
|
||||||
| `motto` | String | `'好运不会眷顾一无所有之人。'` | 座右铭 |
|
|
||||||
| `avatarPath` | String? | `null` | 头像本地路径 |
|
|
||||||
|
|
||||||
### 应用设置
|
| 偏好项 | 类型 | 默认值 | 说明 |
|
||||||
|
|--------|------|--------|------|
|
||||||
|
| `showMovieTab` | bool | true | 显示影视标签 |
|
||||||
|
| `showBookTab` | bool | true | 显示阅读标签 |
|
||||||
|
| `showNoteTab` | bool | true | 显示笔记标签 |
|
||||||
|
| `showNotePlusTab` | bool | false | 显示 Note Plus 标签 |
|
||||||
|
| `defaultMainTabIndex` | int | 0 | 默认启动标签 |
|
||||||
|
|
||||||
| 键 | 类型 | 默认值 | 说明 |
|
### 主题设置
|
||||||
|----|------|--------|------|
|
|
||||||
| `themeMode` | int | `0` | 0=跟随系统, 1=浅色, 2=深色 |
|
|
||||||
| `showExactReleaseDate` | bool | `true` | 上映日期显示到日/月 |
|
|
||||||
| `isFirstLaunch` | bool | `true` | 是否首次启动 |
|
|
||||||
|
|
||||||
### 主界面显示
|
| 偏好项 | 类型 | 默认值 | 说明 |
|
||||||
|
|--------|------|--------|------|
|
||||||
|
| `themeMode` | int | 0 | 0=跟随系统, 1=浅色, 2=深色 |
|
||||||
|
| `colorSchemeIndex` | int | 0 | 配色方案:0=经典, 1=靛蓝, 2=薄荷, 3=琥珀, 4=玫瑰, 5=紫罗兰 |
|
||||||
|
| `fontFamily` | String | '' | 字体,空字符串=系统默认 |
|
||||||
|
|
||||||
| 键 | 类型 | 默认值 | 说明 |
|
### 侧边栏功能开关
|
||||||
|----|------|--------|------|
|
|
||||||
| `hideBottomNavOnScroll` | bool | `true` | 滚动时隐藏底部导航 |
|
|
||||||
| `showMovieTab` | bool | `true` | 是否显示观影标签 |
|
|
||||||
| `showBookTab` | bool | `true` | 是否显示阅读标签 |
|
|
||||||
| `showNoteTab` | bool | `true` | 是否显示笔记标签 |
|
|
||||||
| `defaultMainTabIndex` | int | `0` | 默认启动标签(0=影视, 1=阅读, 2=笔记)|
|
|
||||||
|
|
||||||
### 布局样式
|
| 偏好项 | 类型 | 默认值 | 说明 |
|
||||||
|
|--------|------|--------|------|
|
||||||
|
| `showSidebarHeatmap` | bool | true | 热力图 |
|
||||||
|
| `showSidebarRecent` | bool | true | 最近添加 |
|
||||||
|
| `showSidebarEncounter` | bool | true | 随机邂逅 |
|
||||||
|
| `showSidebarStroll` | bool | true | 漫步 |
|
||||||
|
| `showSidebarCalendar` | bool | true | 日历 |
|
||||||
|
| `showSidebarPerson` | bool | true | 人物 |
|
||||||
|
| `showSidebarTags` | bool | true | 标签 |
|
||||||
|
| `showSidebarMdReader` | bool | false | Markdown 阅读器 |
|
||||||
|
| `showSidebarEpub` | bool | true | EPUB 阅读器 |
|
||||||
|
|
||||||
| 键 | 类型 | 默认值 | 说明 |
|
### 其他设置
|
||||||
|----|------|--------|------|
|
|
||||||
| `noteLayoutStyle` | int | `0` | 笔记布局(0=列表, 1=瀑布流, 2=时间线)|
|
|
||||||
| `movieLayoutStyle` | int | `0` | 影视布局(0=海报网格, 1=列表)|
|
|
||||||
| `bookLayoutStyle` | int | `0` | 阅读布局(0=封面网格, 1=列表)|
|
|
||||||
|
|
||||||
### Markdown 阅读器
|
| 偏好项 | 类型 | 默认值 | 说明 |
|
||||||
|
|--------|------|--------|------|
|
||||||
| 键 | 类型 | 默认值 | 说明 |
|
| `hideBottomNavOnScroll` | bool | true | 滚动时隐藏底部导航栏 |
|
||||||
|----|------|--------|------|
|
| `showExactReleaseDate` | bool | true | 上映日期显示到日(false=显示到月) |
|
||||||
| `lastMdFolder` | String? | `null` | 最近选择的目录 |
|
| `detailPageStyle` | int | 0 | 详情页样式:0=标准, 1=叠层 |
|
||||||
| `showEmptyDirs` | bool | `true` | 是否显示空目录 |
|
| `epubFontSize` | double | 18.0 | EPUB 阅读器字体大小 |
|
||||||
| `showImageOnlyDirs` | bool | `true` | 是否显示纯图片目录 |
|
| `epubViewMode` | int | 0 | EPUB 书架视图:0=宽松, 1=紧凑 |
|
||||||
|
| `highlightsViewMode` | int | 0 | 摘抄视图:0=瀑布流, 1=列表 |
|
||||||
### 应用图标
|
|
||||||
|
|
||||||
| 键 | 类型 | 默认值 | 说明 |
|
|
||||||
|----|------|--------|------|
|
|
||||||
| `appIconName` | String | `'app_icon'` | 当前应用图标名称 |
|
|
||||||
|
|
||||||
### 用户统计
|
|
||||||
|
|
||||||
| 键 | 类型 | 默认值 | 说明 |
|
|
||||||
|----|------|--------|------|
|
|
||||||
| `deviceId` | String | `''` | 匿名设备标识(首次启动自动生成)|
|
|
||||||
|
|
||||||
### 服务端同步
|
|
||||||
|
|
||||||
| 键 | 类型 | 默认值 | 说明 |
|
|
||||||
|----|------|--------|------|
|
|
||||||
| `syncServerUrl` | String | `''` | 服务器地址 |
|
|
||||||
| `syncActivationCode` | String | `''` | 激活码 |
|
|
||||||
| `syncExpiresAt` | String | `''` | 激活码有效期 |
|
|
||||||
| `syncIsPermanent` | bool | `false` | 是否永久有效 |
|
|
||||||
| `syncEnabled` | bool | `true` | 实时同步开关 |
|
|
||||||
| `syncLastEntryId` | int | `0` | 上次同步的 entry ID |
|
|
||||||
|
|
||||||
## 主题模式迁移
|
|
||||||
|
|
||||||
`UserPrefs.init()` 中包含旧版 `isDarkMode`(布尔值)到新版 `themeMode`(三态值)的自动迁移:
|
|
||||||
|
|
||||||
```dart
|
|
||||||
if (_prefs!.containsKey('isDarkMode') && !_prefs!.containsKey('themeMode')) {
|
|
||||||
final oldValue = _prefs!.getBool('isDarkMode') ?? false;
|
|
||||||
await _prefs!.setInt('themeMode', oldValue ? 2 : 0);
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
[返回首页](Home.md)
|
[返回首页](Home.md)
|
||||||
|
|||||||
Reference in New Issue
Block a user