Skip to content

Releases

v2.0.4

Choose a tag to compare

@github-actions github-actions released this 21 Sep 14:02

这是以课表UI优化、课表网页直读导入与 Android 兼容性为主的版本。

新增

  • 两端新增课表网页直读导入:在教务课表页面选好学年学期并查询后,点按页面右下角注入的「导入当前课表到一格有光」,由应用直接解析页面上的课程块(课程名、节/周、地点、教师、学分、教学班、课程代码、选课备注与「其他课程」栏),不再依赖「输出EXCEL」。一个课程块含多个时段时拆成多条安排;课程块结构或学年学期识别不完整时整次导入失败并指出具体课程,不再接受半份课表。Android 端在导入页底部提供「导入当前课表」按钮,桌面端在导入过程中给出对应提示,两端都保留「输出EXCEL」作为回退通道。
  • 两端新增「导入展示课表」:内置一份全虚拟的 19 周示例课表(课程代码 DEMO- 开头,教师、地点均为虚拟名称),覆盖普通双节、单节单周、双周、完全重叠、部分重叠、同课程多时段、相邻时段续接、周末连排、非本周预览、停课日、无教师无学分与「待安排」等场景,便于空课表下试看各种显示效果。
  • 新增「非本周课程」显示设置(桌面端与 Android 端均在课表管理的设置项中,默认「空闲时显示」,也可选择不显示):开启后,某时段本周无课时会以半透明卡片预览该时段之后将开课的非本周课程,并标注「非本周」;同一空闲区段内有多个候选时只预览最近一次。课程详情同步标注「非本周预览」。已有课表和旧备份未携带该设置时按默认值处理,两端备份仍可互相导入。
  • 两端课表课程卡片统一换用新的 8 色默认配色并改为实色底加白色文字,卡片层级与对比度更清晰;已有课表的旧默认配色会按位次自动映射到新配色,用户自定义的颜色保持不变。
  • 课程卡片补全信息:单节与两节连排的课程除课程名外直接显示上课地点(以 @ 前缀区分),单节卡片优先展示地点;桌面端课表左侧的节次列同时显示每节课的开始与结束时间。
  • 桌面端课表周次下拉改用应用内选择组件(样式与键盘操作和其余下拉一致),展开菜单时不再撑开工具栏;课表内容区新增最大宽度限制,超宽窗口下不再过度拉伸。

修复

  • 修复旧版系统 WebView 的兼容问题:新增统一的最低版本基线(webview-compatibility.json,当前为 Chromium 80),Web 构建与内嵌脚本的语法目标由 Chrome 74 提升至该基线,构建脚本还会检查源码是否使用了超出基线的运行时 API;启动时检测到系统 WebView 低于该基线会直接提示到应用商店更新,避免以残缺界面运行。
  • 修复从教务导入时导出拦截器注入过晚的问题:拦截器改为在页面脚本运行前注入,导出表单位于子 iframe(先于父页面脚本加载)时也能被接管。桌面端同时修正一处超出当前 WebView 基线的数组方法调用。
  • 修复部分机型启动页图标比例失真:启动页背景改用品牌色加居中前景图标,不再按整屏拉伸变形,Android 12+ 的启动画面改用完整启动器图标,刘海屏相关窗口属性移入 v27 资源目录,仅在支持的系统版本上生效。
  • Android 端页面安全区改由原生统一注入 CSS 变量(--safe-area-inset-*),不再依赖 env(safe-area-inset-*) 在各版本 WebView 上的支持差异,解决旧版 WebView 上底部弹层、编辑器页与导航被系统手势条遮挡的问题。
  • 课表导入识别更稳:节次分组改用更宽松的匹配规则(支持「第9-10节」等写法),单次导出中的课程单元格全部解析成功才接受结果,失败时指出具体单元格而不是只导入其中一部分;课程名称与教师的切分补充人名格式判断,避免把无分隔符的长文本误判为教师名单;「其他课程」与「其它课程」两种写法均可识别。
  • 修复 Android 端从教务导入的说明与实际行为不一致:导入页文案改为「读取当前课表」,超时提示同步说明可用「输出EXCEL」回退。

更改

  • Android 端的课表导出拦截、学分读取、培养方案监听与成绩导出脚本统一移出 Kotlin 字符串,改为随构建生成的 WebView 资源(语法目标按同一基线降级),行为不变但更易复用与校验。
  • 移动端课表界面细节调整:课表格位放大、节次列收窄,课程名与地点按各自可容纳的行数截断(超出部分以省略号收尾,地点最多 8 行、两节连排 6 行(带重叠角标时 5 行)、单节 1 行),非本周课程卡片降低饱和度且不再叠加阴影;Android 端课表页左右留白与卡片圆角同步收紧。
  • README 补充 Windows 上「一键构建并安装到设备」的用法。
  • Android versionCode 提升至 15,versionName 提升至 2.0.4,保持应用 ID 与签名配置不变。

Full Changelog: v2.0.3...v2.0.4

v2.0.3

Choose a tag to compare

@github-actions github-actions released this 18 Sep 14:50

这是以 Android 桌面课表小组件、双端更新说明渲染和课表导入修复为主的版本。

新增

  • Android 端新增 3×2 桌面课表小组件:顶部显示当前课表名称与「日期 周次 星期」,下方左右两列分别是今天和明天的课程,每节课显示课程名、教室与上课时间并保留课程颜色标识;已上完的课自动从「今天」列隐藏(按当前时间过滤并在下一节课结束时精确刷新),无课时显示对应空状态,随系统深浅色模式切换;课表保存、切换或删除后在桌面主动刷新。数据与课表页同源(应用私有 Room 库),不新增依赖与权限。感谢 @XiaoYu070310 贡献(#14,#15)。
  • 新增共享包 @lumatile/update-notes:更新说明的 Markdown 子集解析由桌面端与 Android 端共用。Android 端更新弹窗同步按标题、列表、加粗与行内代码渲染更新说明,说明区域高度受限并可滚动,底部弹窗仍保留整屏以上空间,不会占满屏幕。

修复

  • Android 端「我的」设置页的「清除教务登录状态」补充操作反馈:清除期间按钮显示进行中状态,成功或失败后以底部软提示告知结果(#12)。
  • 修复双端课表导入时,同一单元格含多门课(如单双周交替)会被整体丢弃的问题:真实教务导出的单元格在课程名与「◇」之间带有换行,原切分规则无法识别,导致该时段课程缺失并误报「同一单元格含多个时段」;桌面端导入预览的提示文案同步由「N 个单元格未能识别」调整为「N 条导入提醒」(#13)。
  • 修复桌面端「发现新版本」弹窗直接显示 Markdown 原文的问题:更新说明现在按标题、列表、加粗、行内代码与链接渲染,链接改由系统浏览器打开;来源为 GitHub Release 的兜底文案同样适用。说明区小标题字号提升至 13px,与版本名同级,层级更清晰。

更改

  • Android 更新清单的 notes 改为携带 CHANGELOG 中对应版本的更新说明(由 Release 工作流传入 release-notes.md),不再使用固定模板句;解析逻辑与桌面端共用同一份实现。
  • Android versionCode 提升至 14,versionName 提升至 2.0.3,保持应用 ID 与签名配置不变。

What's Changed

New Contributors

Full Changelog: v2.0.2...v2.0.3

v2.0.2

Choose a tag to compare

@github-actions github-actions released this 09 Sep 08:39

这是以桌面端深色模式显示修复与移动端学分统计兼容性为主的修复版本。

修复

  • 修复桌面端深色模式启动时的闪白问题:启动时先恢复上次主题再渲染首帧,深色用户不再先闪一帧浅色;原生窗口背景色随主题同步变化,消除深色模式下启动、最大化或拖动窗口时露出的白色边缘。
  • 修复桌面端深色模式下的多处配色问题:页面标题等继承根元素颜色的文字改用主题变量,深色背景下恢复可见;Excel、学分工具图标的底色改用主题变量,不再呈现刺眼亮色块;课表页「课程管理」按钮的待处理数量徽标在深色下改用深色文字保证对比度。
  • 修复桌面端「分项成绩导出」所选学年-学期暂无成绩时的误导性报错:教务系统对无成绩学期仍返回仅含表头的成绩表格,此前被误判为学期不一致并提示“第 未知 学期”,现明确提示所选学年学期暂无成绩(#8)。
  • 修复 Android 端「学分修读情况」在真实教务环境读取失败的问题:兼容学校页面脚本对 Array 迭代方法与 String.trim 的改写,并为课程映射请求补充功能码。
  • Android「学分修读情况」读取流程调整为先在培养方案页面读取修读要求与官方课程映射,再转到成绩页面读取全部成绩,各阶段状态提示同步更新。

更改

  • Android 端「我的」设置页的「自动检查更新」与「匿名使用统计」由“已开启/已关闭”文字改为胶囊开关,点按整行即可切换,并补充 role="switch" 与深色模式配色(#10)。
  • 桌面端侧边栏品牌区 logo 调整:图形放大一倍至 62px 并去掉白色底板直接展示,容器圆角与投影对齐关于页观感,深色模式下不再出现彩色光晕。
  • 桌面端微调模态框管理标签的溢出处理,以及侧边栏问题反馈组件的字体大小与字重。
  • Android versionCode 提升至 13,versionName 提升至 2.0.2,保持应用 ID 与签名配置不变。

Full Changelog: v2.0.1...v2.0.2

v2.0.1

Choose a tag to compare

@github-actions github-actions released this 09 Sep 03:50

新增

  • 桌面端新增「学分修读情况」工具:对照培养方案统计各模块学分修读进度,给出综合素质选修课修读建议,并支持自定义修读规则。感谢 @LoMoCatAp 贡献(PR #7,原基于 v1.2.4,已适配 v2 架构)。
  • Android 端新增「学分修读情况」工具:在学校页面手动登录后读取培养方案、最近 8 个学年成绩与最新学年在修课程,在本机统计综合素质选修课各模块学分、缺口及选课建议;支持艺术类专业豁免、学分要求调整与恢复默认,统计规则通过与桌面端共用样本验证。
  • Android 学分统计会明确提示培养方案或在修名单读取失败;任一学期成绩查询失败时停止统计,避免展示不完整结果。
  • 两端课表支持同一时段多门重叠安排的显示切换:重叠的课程卡片按时段分段显示,右下角以半透明圆角三角形角标标注重叠数量;点按冲突卡片可在详情中选择该时段显示哪门安排,所选显示偏好按课表保存在本机并自动沿用(保存失败会提示重启后可能恢复默认)。时段分段与显示偏好的纯逻辑由桌面端与 Android 端共用,并补充单元测试。

更改

  • 桌面端课程编辑器的周次与时间选择对齐 Android 端交互:周数改为摘要行加锚定弹层(全选、单周、双周、清空一键预设与逐周宫格点选,保留 1-8单、3,5,7 表达式输入入口);星期、开始节次与结束节次合并为一个弹层内的三列可循环滚轮(支持拖动、滚轮、方向键与点选,结束节次自动不早于开始节次),可将时段标记为“待安排”;编辑页对应行实时显示周次与上课时间的可读摘要。
  • 新增共享包 @lumatile/schedule-ui:滚动轮换与周次摘要的纯逻辑由桌面端与 Android 端共用,两端选择行为保持一致。
  • Android 端重构课程编辑器的周次与时间选择:周数由手写表达式输入改为底部弹层宫格点选,提供全选、单周、双周、清空一键预设,仍保留 1-8单、3,5,7 等表达式输入入口;星期、开始节次与结束节次合并为一个底部弹层内的三列可循环滚轮(支持拖动、点选、滚轮键与方向键,结束节次自动不早于开始节次),并可将时段标记为“待安排”;编辑页对应行实时显示周次与上课时间的可读摘要,时段复制、删除与冲突提示行为不变;系统返回键会先关闭弹层再逐级退出编辑页。
  • Android 首页工具列表中「绩点计算器」的状态角标由“测试版”改为“已可用”。
  • Android 公告弹窗眉标由英文改为中文(“公告”/“重要公告”),确认按钮调整为居中单列样式。
  • Android 更新对话框微调眉标与标题字号,提升可读性。
  • Android 启动器自适应图标前景整体内缩 8%,避免前景图形贴边被裁切。
  • 桌面端问题反馈组件微调字体大小与样式,提升可读性。
  • Android versionCode 提升至 11,versionName 提升至 2.0.1,保持应用 ID 与签名配置不变。

What's Changed

  • test: 修复 Android 课表捕获测试的 CI 时序竞争 by @C1ouDreamW in #9

Full Changelog: v2.0.0...v2.0.1

v2.0.0

Choose a tag to compare

@github-actions github-actions released this 07 Sep 16:37

这是“一格有光 / LumaTile”品牌切换和自建更新源桥接版本。

新增

  • 桌面端新增课表工具:周视图(今日列高亮、停课日覆盖、周末显示方式)、方向键/下拉切周、课程编辑器、多课表切换管理、开学日期与作息时间设置。
  • 桌面端支持从教务系统导入课表:登录后点击学校原有的“输出EXCEL”,应用在同源环境接管导出并做大小与 SHA-256 校验;同时支持导入本地 .xls/.xlsx 课表。
  • 桌面端支持课表备份导出与恢复(<课表名>.lumatile-schedule.json),可与 Android 端互相导入。
  • 桌面端设置新增“启动页”选择(课表/首页/上次页面),与 Android 端一致。
  • 桌面端设置“数据与隐私”新增“课表数据”条目,展示存储路径并支持一键定位文件。
  • Android 端新增课表工具:周视图(今日列高亮)、滑动切周(带翻页动画,滑动时预览相邻一周)、课程编辑器、多课表切换管理、开学日期与作息时间设置(修改后自动保存)。
  • Android 端支持从教务系统导入课表:在应用内登录教务并点击学校原有的“输出EXCEL”,由应用在同源环境接管导出并校验文件(需校园网环境);同时支持从系统文件选择器导入 Excel 课表或 .lumatile-schedule.json 备份。
  • Android 端支持将课表导出为 <课表名>.lumatile-schedule.json 并通过系统分享面板发送,可与桌面端互相导入。
  • Android 端设置新增“应用启动页”选择(课表/工具箱/上次页面)。
  • Android 端适配系统返回键:导入预览、课程详情、课程编辑器等课表层级的页面逐级返回,在首页 2 秒内再次按返回键则退出应用并给出提示。
  • Android 与桌面端优先检查 https://lumatile.ishua.cloud,迁移期保留 GitHub 备用渠道。
  • 发布流程生成可直接部署的静态更新目录,包含平台清单、安装包和校验文件。
  • 新增 Docker Nginx 更新源及宿主机 Nginx 反向代理示例。
  • 新增匿名使用统计与公告通道:客户端启动时向更新源发送匿名心跳(仅随机安装编号、版本和系统类型),并拉取更新源公告弹窗展示;服务器每日汇总访问日志生成下载量、日活和版本分布统计页(/stats/,Basic Auth 保护)。
  • 桌面端与 Android 的「启动时检查更新」和「匿名使用统计」拆分为两个独立开关,可分别关闭;统计默认开启,可一键关闭。

更改

  • 桌面端、Android、安装包和快捷方式的用户可见品牌切换为“一格有光 / LumaTile”,复用原方格图标。
  • Android versionCode 提升至 10,versionName 提升至 2.0.0。

修复

  • 修复 Android 15+ 设备上顶部栏被状态栏遮挡的问题:系统栏 insets 改由 MainActivity 原生统一接管(Android 15+ 给 WebView 补安全区 padding,传给网页的 safe-area insets 恒为 0),不再依赖设备 WebView 版本对 env(safe-area-inset-*) 的支持差异。
  • 修复系统字体缩放导致 WebView 文字整体放大、课表格与顶栏布局被撑变形的问题(锁定 textZoom 为 100)。
  • 修复旧版 System WebView(Chromium 84 之前,国产 ROM 出厂 WebView 常见)上卡片图标与文字贴在一起的问题:新增 flex 容器 gap 的运行时检测与 margin 兜底样式,仅在旧 WebView 上启用;同时将 inset:0 简写展开为四边定位。
  • 修复双端课程编辑器无法识别手动输入周次表达式的问题,现已支持“1-8单”“3,5,7”等写法。
  • 修复 Android 更新清单 updates/android.json 仍指向 v1.2.3 安装包的问题,已对齐 v1.2.4 正式发布包,保证存量客户端能完成最后一次 GitHub 桥接升级。

兼容性与迁移

  • 保持 Android applicationId、正式签名证书、桌面 appId 和旧数据目录不变。
  • v2.0.0 APK 仍需上传 GitHub Release,确保 v1.2.4 客户端能够完成最后一次 GitHub 桥接升级。

Full Changelog: v1.2.4...v2.0.0

v1.2.4

Choose a tag to compare

@github-actions github-actions released this 18 Jul 21:24

更改

  • 移除安卓端 MainActivity 与 GradeExportActivity 的 FLAG_SECURE 标志,恢复系统截图与录屏能力。
  • 移除移动端首页顶部右上角的"Android Kotlin 测试版"角标。
  • 移除设置页"检查更新"按钮副标题中的"双更新渠道"字样,仅保留当前版本号。

工程改进

  • Android versionCode 提升至 9,versionName 提升至 1.2.4;后续 LumaTile 版本必须继续递增。

Full Changelog: v1.2.3...v1.2.4

v1.2.3

Choose a tag to compare

@github-actions github-actions released this 18 Jul 21:11

这是 Android 端最终的“QLU 工具箱”迁移发布版本,替代此前未能完成发布流程的标签。

修复

  • 移除在 Ubuntu runner 上反复误判的 APK 证书文本解析步骤;正式 APK 仍由 Gradle 强制使用配置的长期密钥库签名,构建成功后直接上传。

更改

  • Android versionCode 提升至 8,versionName 提升至 1.2.3;后续 LumaTile 版本必须继续递增。

Full Changelog: v1.2.2...v1.2.3

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 16 Jul 10:42
02e1914

这是自 v1.0.3 以来的跨平台大版本更新,首次提供 Apple Silicon macOS 版本,并完善无可用系统浏览器时的备用方案。

新增

  • 新增 Apple Silicon(arm64)macOS DMG,分项成绩导出和绩点计算器均可在 macOS 上使用。
  • Edge 和 Chrome 均不可用时,可在应用内按需下载与当前 Playwright 版本匹配的备用 Chromium;安装完成后原导出任务自动继续。
  • 设置页新增浏览器组件状态、版本、磁盘占用、文件位置和删除入口。
  • GitHub Actions 新增 Apple Silicon 构建、Python Worker 启动、应用打包和 DMG 挂载验证。
  • 正式发布流程同时生成 Windows 安装包、Windows 免安装 ZIP、Apple Silicon DMG 和统一的 SHA-256 校验文件。

更改

  • 备用 Chromium 仅在首次需要时下载,不随安装包分发;组件保存在系统应用数据目录,升级软件时会保留。
  • 浏览器组件下载支持进度显示、取消、失败重试和残留组件清理;取消时会终止相关下载进程。
  • macOS 窗口改用左上角原生红黄绿控制按钮,Windows 继续使用现有窗口控制方式。
  • macOS 设置、任务记录、日志、浏览器登录状态和备用浏览器统一保存在 ~/Library/Application Support/QLUToolbox。
  • README 新增 macOS 下载、升级、本地数据位置和 Apple 官方未知开发者应用打开教程。

修复

  • 修复用户电脑未安装可用 Edge 或 Chrome 时,分项成绩查询无法正常启动的问题。
  • 修复设置页打开数据位置时依赖 Windows 路径分隔符、在 macOS 上无法正确定位文件的问题。
  • 修复浏览器组件下载取消或失败后,设置页不能及时显示残留文件和磁盘占用的问题。

兼容性与已知限制

  • macOS 当前仅提供 Apple Silicon(arm64)版本,暂不支持 Intel Mac。
  • macOS DMG 尚未使用 Apple 开发者证书签名和公证,首次启动可能需要按照 README 中的 Apple 官方教程手动确认“仍要打开”。
  • 备用 Chromium 首次下载约 180 MiB,安装后约占用 350 MiB,需要能够访问 Playwright 浏览器下载服务。

What's Changed

New Contributors

Full Changelog: v1.0.3...v1.1.0

v1.0.3

Choose a tag to compare

@github-actions github-actions released this 15 Jul 20:57

Full Changelog: v1.0.2...v1.0.3

v1.0.2

Choose a tag to compare

@github-actions github-actions released this 15 Jul 19:34

Full Changelog: v1.0.1...v1.0.2