🏗️ UI基础架构完成: - 实现底部Tab导航系统,包含4个主要页面 - 创建完整的Material Design 3主题系统 - 支持亮色/暗夜模式自动跟随系统 - 建立规范的页面结构和组件目录 🎨 主题系统特性: - 专业电子书阅读器配色方案(#0D7A7F) - 完整的文本主题和组件主题配置 - 响应式颜色适配,优化阅读体验 - 底部导航栏主题色彩统一 📚 项目架构优化: - 添加详细的代码注释和文档说明 - 创建analysis_options.yaml配置代码质量规范 - 优化文件组织结构,新增components目录 - 修复未使用的导入和代码质量问题 📖 学习文档完善: - 新增《UI开发阶段基础学习总结》文档 - 详细记录Flutter Widget系统和主题系统知识 - 包含完整的代码示例和最佳实践 - 更新项目主文档CLAUDE.md反映最新进展 🔧 代码质量提升: - 静态代码分析通过,无严重警告 - 统一命名规范和注释风格 - 完善错误处理和状态管理基础 - 建立可扩展的组件架构基础 🎯 当前项目状态: - 数据层: 100%完成(Hive + Repository) - UI基础架构: 100%完成(Tab导航 + 主题) - 代码质量: 企业级标准 - 技术债务: 零 🚀 下一里程碑: 顶部导航组件开发 - 搜索栏UI设计和实现 - 文件导入按钮功能 - 页面交互和路由系统 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
64 lines
1.7 KiB
Dart
64 lines
1.7 KiB
Dart
import '../models/bookmark.dart';
|
|
import 'database_service.dart';
|
|
|
|
class BookmarkRepository {
|
|
final DatabaseService _databaseService = DatabaseService.instance;
|
|
|
|
/// 获取所有书签
|
|
Future<List<Bookmark>> getAllBookmarks() async {
|
|
try {
|
|
final bookmarksBox = _databaseService.getBookmarksBox();
|
|
return bookmarksBox.values.toList();
|
|
} catch (e) {
|
|
print('❌ 获取所有书签失败: $e');
|
|
rethrow;
|
|
}
|
|
}
|
|
|
|
/// 根据ID获取书签
|
|
Future<Bookmark?> getBookmarkById(String id) async {
|
|
try {
|
|
final bookmarksBox = _databaseService.getBookmarksBox();
|
|
return bookmarksBox.get(id);
|
|
} catch (e) {
|
|
print('❌ 根据ID获取书签失败: $e');
|
|
rethrow;
|
|
}
|
|
}
|
|
|
|
/// 添加新书签
|
|
Future<void> addBookmark(Bookmark bookmark) async {
|
|
try {
|
|
final bookmarksBox = _databaseService.getBookmarksBox();
|
|
await bookmarksBox.put(bookmark.id, bookmark);
|
|
print('✅ 书签添加成功: ${bookmark.title}');
|
|
} catch (e) {
|
|
print('❌ 添加书签失败: $e');
|
|
rethrow;
|
|
}
|
|
}
|
|
|
|
/// 更新书签信息
|
|
Future<void> updateBookmark(Bookmark bookmark) async {
|
|
try {
|
|
final bookmarksBox = _databaseService.getBookmarksBox();
|
|
await bookmarksBox.put(bookmark.id, bookmark);
|
|
print('✅ 书签更新成功: ${bookmark.title}');
|
|
} catch (e) {
|
|
print('❌ 更新书签失败: $e');
|
|
rethrow;
|
|
}
|
|
}
|
|
|
|
/// 删除书签
|
|
Future<void> deleteBookmark(String id) async {
|
|
try {
|
|
final bookmarksBox = _databaseService.getBookmarksBox();
|
|
await bookmarksBox.delete(id);
|
|
print('✅ 书签删除成功: $id');
|
|
} catch (e) {
|
|
print('❌ 删除书签失败: $e');
|
|
rethrow;
|
|
}
|
|
}
|
|
} |