# red-tide-library **Repository Path**: lolicer/red-tide-library ## Basic Information - **Project Name**: red-tide-library - **Description**: 红潮图书馆,用于管理pdf、word、txt等文件的APP。 - **Primary Language**: Kotlin - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-10-28 - **Last Updated**: 2025-03-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: Android, Kotlin ## README ## 项目介绍 本应用用于对本地PDF、EPUB、TXT、Words等类型的文件进行管理。 - 可对导入的书籍分类管理; - 不对导入的书籍进行复制或剪切,故不增加应用的占用空间; - 使用`Kotlin` + `Jetpack Compose`声明式UI编写,简洁且易于维护; - 使用基于`SQLite`的`Room`持久性库存储数据,轻量、速度快。 ## 系统要求 **本App适用于`Android8.0`以上的系统。** ## 项目结构 ``` └── redtidelibrary ├── components │ ├── BookList.kt // 显示书籍信息的列表 │ ├── BookNavigation.kt // 导航栏 左侧为分类,右侧为排序方式 │ └── TopBar.kt // 顶栏 包括搜索栏、添加书籍、设置 ├── config │ ├── BitmapImageConfig.kt // 生成书籍封面bitmap image的配置 │ ├── Settings.kt // 设置项,暂未使用 │ └── routeConfig.kt // 导航配置,用于页面跳转 ├── pages │ ├── MainPage.kt // 主界面 │ └── SettingsPage.kt // 设置页面,暂无内容 ├── repository │ ├── dao │ │ └── BookDao.kt // 数据访问对象,与数据库交互 │ ├── entity │ │ └── BookEntity.kt // Room数据库实体,存储书籍信息 │ └── Database.kt // 定义数据库类 ├── ui │ ├── theme // 初始化项目自带,暂未修改 │ │ ├── Color.kt │ │ ├── Theme.kt │ │ └── Type.kt │ └── AppColor.kt // 规定各种组件在暗色和亮色模式下的颜色 ├── utils │ ├── EpubUtils.kt // 操作EPUB文件 │ ├── Extensions.kt // 为方便使用而构造的扩展函数 │ ├── FileUtils.kt // 对文件进行操作的实用工具类 │ ├── PdfUtils.kt // 操作PDF文件 │ └── SettingUtils.kt // 初始化、修改和读取设置项,暂未使用 └── MainActivity.kt ``` ## 版本内容更新 ### v0.2.1 - 添加了从其它应用分享文件至本App; - 优化代码结构。 ### v0.1.6 - 添加了设置页面框架; - 修复了导入DOCX文件时默认封面为其它(OTH)的BUG; - 修复了对于透明背景的PDF,未添加背景色的BUG; - 修复了打开文件、切换排序方式或文件夹、部分删除搜索词情况下的轻微卡顿问题; - 优化了滑动列表的流畅度; - 优化代码结构与代码逻辑。 ### v0.0.2-beta - 修复了在添加界面通过“下载”和“最近”等不同的文件夹可能获取到同一文件的不同content uri,导致重复导入文件的BUG; - 修复了无封面文件使用默认封面时,出现透明背景的BUG; - 优化了暗色模式自动适配; - 使用`ConstraintLayout`布局代替了层层嵌套的行列布局。 ### v0.0.1-beta - 实现基础功能。 ## 已知待优化内容 - 更改本地文件名但未删除文件时,显示为文件状态异常; // 遇此情况可删除文件后重新导入 - 收起长按菜单后有一瞬间不能操作页面; *** - 对已导入的文件进行多选操作; - 设置页面。