结构重构

This commit is contained in:
DelLevin-Home
2026-03-12 14:33:28 +08:00
parent f63b5b1843
commit 0f221456cb
39 changed files with 106 additions and 105 deletions

View File

@@ -1,4 +1,4 @@
# MookNote - Flutter 观影阅读笔记应用
# MookNote - 极简风格的观影阅读笔记应用
## 项目简介
MookNote 是一款用于记录观影、阅读和笔记的 Android 软件,基于 Flutter 框架开发。
@@ -82,6 +82,7 @@ cd mooknote
### 2. 安装依赖
```bash
flutter clean
flutter pub get
# 如果失败可以先添加代理再进行get
$env:HTTP_PROXY="http://127.0.0.1:10808"

View File

@@ -1,11 +1,11 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'pages/home_page.dart';
import 'utils/app_theme.dart';
import 'utils/theme/app_theme.dart';
import 'utils/app_router.dart';
import 'utils/user_prefs.dart';
import 'utils/webdav_service.dart';
import 'utils/auto_backup_service.dart';
import 'utils/sync/webdav_service.dart';
import 'utils/sync/auto_backup_service.dart';
import 'providers/app_provider.dart';
void main() async {

View File

@@ -3,9 +3,9 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:share_plus/share_plus.dart';
import 'package:cross_file/cross_file.dart';
import '../providers/app_provider.dart';
import '../models/data_models.dart';
import '../utils/toast_util.dart';
import '../../providers/app_provider.dart';
import '../../models/data_models.dart';
import '../../utils/toast_util.dart';
import 'book_reviews_page.dart';
import 'book_excerpts_page.dart';

View File

@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../providers/app_provider.dart';
import '../models/data_models.dart';
import '../utils/toast_util.dart';
import '../../providers/app_provider.dart';
import '../../models/data_models.dart';
import '../../utils/toast_util.dart';
import 'package:uuid/uuid.dart';
/// - /

View File

@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../providers/app_provider.dart';
import '../models/data_models.dart';
import '../utils/toast_util.dart';
import '../../providers/app_provider.dart';
import '../../models/data_models.dart';
import '../../utils/toast_util.dart';
import 'book_excerpt_form_page.dart';
///

View File

@@ -4,10 +4,10 @@ import 'package:image_picker/image_picker.dart';
import 'package:path_provider/path_provider.dart';
import 'package:path/path.dart' as p;
import 'package:provider/provider.dart';
import '../providers/app_provider.dart';
import '../models/data_models.dart';
import '../utils/toast_util.dart';
import '../utils/image_path_helper.dart';
import '../../providers/app_provider.dart';
import '../../models/data_models.dart';
import '../../utils/toast_util.dart';
import '../../utils/image_path_helper.dart';
/// / -
class BookFormPage extends StatefulWidget {

View File

@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../providers/app_provider.dart';
import '../models/data_models.dart';
import '../utils/toast_util.dart';
import '../../providers/app_provider.dart';
import '../../models/data_models.dart';
import '../../utils/toast_util.dart';
import 'package:uuid/uuid.dart';
/// / -

View File

@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../providers/app_provider.dart';
import '../models/data_models.dart';
import '../utils/toast_util.dart';
import '../../providers/app_provider.dart';
import '../../models/data_models.dart';
import '../../utils/toast_util.dart';
import 'book_review_form_page.dart';
///

View File

@@ -1,9 +1,9 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../providers/app_provider.dart';
import '../models/data_models.dart';
import '../widgets/book_status_bar.dart';
import '../widgets/book_list_item.dart';
import '../../providers/app_provider.dart';
import '../../models/data_models.dart';
import '../../widgets/book_status_bar.dart';
import '../../widgets/book_list_item.dart';
///
class BookTabPage extends StatelessWidget {

View File

@@ -1,9 +1,9 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../providers/app_provider.dart';
import 'movie_tab_page.dart';
import 'book_tab_page.dart';
import 'note_tab_page.dart';
import 'movies/movie_tab_page.dart';
import 'book/book_tab_page.dart';
import 'note/note_tab_page.dart';
import 'search_page.dart';
/// 主内容页 - 观影/阅读/笔记标签页

View File

@@ -6,9 +6,9 @@ import 'package:path/path.dart' as path;
import 'package:share_plus/share_plus.dart';
import 'package:cross_file/cross_file.dart';
import 'package:permission_handler/permission_handler.dart';
import '../providers/app_provider.dart';
import '../models/data_models.dart';
import '../utils/toast_util.dart';
import '../../providers/app_provider.dart';
import '../../models/data_models.dart';
import '../../utils/toast_util.dart';
import 'movie_reviews_page.dart';
import 'movie_posters_page.dart';

View File

@@ -4,10 +4,10 @@ import 'package:image_picker/image_picker.dart';
import 'package:path_provider/path_provider.dart';
import 'package:path/path.dart' as p;
import 'package:provider/provider.dart';
import '../providers/app_provider.dart';
import '../models/data_models.dart';
import '../utils/toast_util.dart';
import '../utils/image_path_helper.dart';
import '../../providers/app_provider.dart';
import '../../models/data_models.dart';
import '../../utils/toast_util.dart';
import '../../utils/image_path_helper.dart';
/// / -
class MovieFormPage extends StatefulWidget {

View File

@@ -4,9 +4,9 @@ import 'package:image_picker/image_picker.dart';
import 'package:path_provider/path_provider.dart';
import 'package:provider/provider.dart';
import 'package:uuid/uuid.dart';
import '../providers/app_provider.dart';
import '../models/data_models.dart';
import '../utils/toast_util.dart';
import '../../providers/app_provider.dart';
import '../../models/data_models.dart';
import '../../utils/toast_util.dart';
/// /Typecho
class MovieFormPage extends StatefulWidget {

View File

@@ -6,10 +6,10 @@ import 'package:path_provider/path_provider.dart';
import 'package:path/path.dart' as p;
import 'package:provider/provider.dart';
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
import '../providers/app_provider.dart';
import '../models/data_models.dart';
import '../utils/toast_util.dart';
import '../utils/image_path_helper.dart';
import '../../providers/app_provider.dart';
import '../../models/data_models.dart';
import '../../utils/toast_util.dart';
import '../../utils/image_path_helper.dart';
import 'poster_gallery_page.dart';
///

View File

@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../providers/app_provider.dart';
import '../models/data_models.dart';
import '../utils/toast_util.dart';
import '../../providers/app_provider.dart';
import '../../models/data_models.dart';
import '../../utils/toast_util.dart';
/// / -
class MovieReviewFormPage extends StatefulWidget {

View File

@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../providers/app_provider.dart';
import '../models/data_models.dart';
import '../utils/toast_util.dart';
import '../../providers/app_provider.dart';
import '../../models/data_models.dart';
import '../../utils/toast_util.dart';
import 'movie_review_form_page.dart';
///

View File

@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../providers/app_provider.dart';
import '../widgets/movie_status_bar.dart';
import '../widgets/movie_list_item.dart';
import '../../providers/app_provider.dart';
import '../../widgets/movie_status_bar.dart';
import '../../widgets/movie_list_item.dart';
/// -
class MovieTabPage extends StatelessWidget {

View File

@@ -1,6 +1,6 @@
import 'dart:io';
import 'package:flutter/material.dart';
import '../models/data_models.dart';
import '../../models/data_models.dart';
/// -
class PosterGalleryPage extends StatefulWidget {

View File

@@ -2,9 +2,9 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:provider/provider.dart';
import '../providers/app_provider.dart';
import '../models/data_models.dart';
import '../utils/toast_util.dart';
import '../../providers/app_provider.dart';
import '../../models/data_models.dart';
import '../../utils/toast_util.dart';
/// -
class NoteDetailPage extends StatefulWidget {

View File

@@ -3,10 +3,10 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:image_picker/image_picker.dart';
import 'package:path/path.dart' as p;
import '../providers/app_provider.dart';
import '../models/data_models.dart';
import '../utils/toast_util.dart';
import '../utils/image_path_helper.dart';
import '../../providers/app_provider.dart';
import '../../models/data_models.dart';
import '../../utils/toast_util.dart';
import '../../utils/image_path_helper.dart';
/// / -
class NoteFormPage extends StatefulWidget {

View File

@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../providers/app_provider.dart';
import '../models/data_models.dart';
import '../widgets/note_list_item.dart';
import '../../providers/app_provider.dart';
import '../../models/data_models.dart';
import '../../widgets/note_list_item.dart';
///
class NoteTabPage extends StatefulWidget {

View File

@@ -10,9 +10,9 @@ import '../providers/app_provider.dart';
import '../utils/user_prefs.dart';
import '../utils/toast_util.dart';
import 'recycle_bin_page.dart';
import 'backup_page.dart';
import 'sync/backup_page.dart';
import 'statistics_page.dart';
import 'cloud_sync_page.dart';
import 'sync/cloud_sync_page.dart';
/// 个人中心页面 - 极简主义设计
class ProfilePage extends StatefulWidget {

View File

@@ -4,9 +4,9 @@ import 'package:provider/provider.dart';
import '../providers/app_provider.dart';
import '../models/data_models.dart';
import '../utils/toast_util.dart';
import 'movie_detail_page.dart';
import 'book_detail_page.dart';
import 'note_detail_page.dart';
import 'movies/movie_detail_page.dart';
import 'book/book_detail_page.dart';
import 'note/note_detail_page.dart';
/// 搜索页面
class SearchPage extends StatefulWidget {

View File

@@ -1,9 +1,9 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../providers/app_provider.dart';
import '../utils/backup_service.dart';
import '../utils/auto_backup_service.dart';
import '../utils/toast_util.dart';
import '../../providers/app_provider.dart';
import '../../utils/sync/backup_service.dart';
import '../../utils/sync/auto_backup_service.dart';
import '../../utils/toast_util.dart';
///
class BackupPage extends StatefulWidget {

View File

@@ -1,8 +1,8 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../utils/toast_util.dart';
import '../utils/webdav_service.dart';
import '../providers/app_provider.dart';
import '../../utils/toast_util.dart';
import '../../utils/sync/webdav_service.dart';
import '../../providers/app_provider.dart';
/// WebDAV
class WebDAVSyncPage extends StatefulWidget {

View File

@@ -1,12 +1,12 @@
import 'package:flutter/material.dart';
import '../models/data_models.dart';
import '../utils/movie_dao.dart';
import '../utils/book_dao.dart';
import '../utils/note_dao.dart';
import '../utils/movie_review_dao.dart';
import '../utils/movie_poster_dao.dart';
import '../utils/book_review_dao.dart';
import '../utils/book_excerpt_dao.dart';
import '../utils/movie/movie_dao.dart';
import '../utils/book/book_dao.dart';
import '../utils/note/note_dao.dart';
import '../utils/movie/movie_review_dao.dart';
import '../utils/movie/movie_poster_dao.dart';
import '../utils/book/book_review_dao.dart';
import '../utils/book/book_excerpt_dao.dart';
import '../utils/image_path_helper.dart';
/// 应用全局状态管理

View File

@@ -1,11 +1,11 @@
import 'package:flutter/material.dart';
import '../models/data_models.dart';
import '../pages/movie_form_page.dart';
import '../pages/book_form_page.dart';
import '../pages/note_form_page.dart';
import '../pages/movie_detail_page.dart';
import '../pages/book_detail_page.dart';
import '../pages/note_detail_page.dart';
import '../pages/movies/movie_form_page.dart';
import '../pages/book/book_form_page.dart';
import '../pages/note/note_form_page.dart';
import '../pages/movies/movie_detail_page.dart';
import '../pages/book/book_detail_page.dart';
import '../pages/note/note_detail_page.dart';
/// 路由生成器
class AppRouter {

View File

@@ -1,6 +1,6 @@
import 'package:sqflite/sqflite.dart';
import '../models/data_models.dart';
import 'database_helper.dart';
import '../../models/data_models.dart';
import '../database_helper.dart';
/// 访
class BookDao {

View File

@@ -1,6 +1,6 @@
import 'package:sqflite/sqflite.dart';
import '../models/data_models.dart';
import 'database_helper.dart';
import '../../models/data_models.dart';
import '../database_helper.dart';
/// 访
class BookExcerptDao {

View File

@@ -1,6 +1,6 @@
import 'package:sqflite/sqflite.dart';
import '../models/data_models.dart';
import 'database_helper.dart';
import '../../models/data_models.dart';
import '../database_helper.dart';
/// 访
class BookReviewDao {

View File

@@ -1,6 +1,6 @@
import 'package:sqflite/sqflite.dart';
import '../models/data_models.dart';
import 'database_helper.dart';
import '../../models/data_models.dart';
import '../database_helper.dart';
/// 访
class MovieDao {

View File

@@ -1,6 +1,6 @@
import 'package:sqflite/sqflite.dart';
import '../models/data_models.dart';
import 'database_helper.dart';
import '../../models/data_models.dart';
import '../database_helper.dart';
/// 访
class MoviePosterDao {

View File

@@ -1,6 +1,6 @@
import 'package:sqflite/sqflite.dart';
import '../models/data_models.dart';
import 'database_helper.dart';
import '../../models/data_models.dart';
import '../database_helper.dart';
/// 访
class MovieReviewDao {

View File

@@ -1,6 +1,6 @@
import 'package:sqflite/sqflite.dart';
import '../models/data_models.dart';
import 'database_helper.dart';
import '../../models/data_models.dart';
import '../database_helper.dart';
/// 访
class NoteDao {

View File

@@ -7,7 +7,7 @@ import 'package:file_picker/file_picker.dart';
import 'package:path_provider/path_provider.dart';
import 'package:path/path.dart' as path;
import 'package:share_plus/share_plus.dart';
import 'database_helper.dart';
import '../database_helper.dart';
/// -
class BackupService {

View File

@@ -8,7 +8,7 @@ import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart' as p;
import 'package:archive/archive.dart';
import 'package:archive/archive_io.dart';
import 'database_helper.dart';
import '../database_helper.dart';
/// WebDAV
class SyncResult {