Skip to content

Releases: giaocat/Wakeup

v1.4.2

Choose a tag to compare

@github-actions github-actions released this 29 Oct 13:07

新增

  • 手表端「从手机同步」按钮:手表登录不了教务系统,点一下就让手机把最新课表推过来;
    手表上直接显示状态:正在请求… / 已从手机同步 ✓ / 没有连上的手机 / 等待超时(确认手机已同步过课表)。
  • 手机端「同步到手表」按钮(设置 → 数据与缓存):手动把当前课表推给已配对的手表,
    并显示 已推送到手表 ✓ 或失败原因。
  • 手机端新增 PhoneSyncRequestService:接收手表的同步请求 → 推送课表 → 回执 ok/empty。

v1.4.1

Choose a tag to compare

@github-actions github-actions released this 29 Oct 09:13

调整

  • 手机端 minSdk 23 → 24(Android 7.0+):新版 AndroidX 里 navigation 2.10、material3 1.5、datastore 1.3
    都要求 minSdk 24,manifest merger 会直接拒绝 23。手表端仍是 Wear OS 3(API 26)。
  • 检查更新改走加速站:不再依赖 api.github.com(加速站代理不到),改为优先读仓库里的
    docs/version.json 版本清单(raw 链接经 fastgit.giaocat.com 加速),
    清单里直接给出加速下载直链,点「去下载」即可拿到 APK;清单拿不到时再依次退回 atom / GitHub API。
  • 发版流程新增一步:更新 docs/version.json 的版本号与下载直链。

依赖

  • navigation 2.10.2、material3 1.5.0-beta02、datastore 1.3.0(Dependabot PR #4 剩余部分,
    随 minSdk 24 一并启用)。

v1.4.0

Choose a tag to compare

@github-actions github-actions released this 29 Oct 08:49

新增

  • 课表导出:设置 → 数据与缓存 → 导出课表,把当前课表保存成 wakeup-课表-YYYY-MM-DD.json
    (系统文件选择器选位置,不需要存储权限)。文件里是抓取到的原始课表数据 + 格式标识 + 导出时间 + 来源。
  • 课表导入:设置 → 数据与缓存 → 导入课表,选择之前导出的 JSON 即可恢复,
    导入后立即生效并写缓存(和联网同步同一条解析链路);换机、备份、恢复到另一台设备都可用。
  • 导入的容错:空文件、不是本 App 的文件、来自更高版本格式的文件、坏 JSON 都会给出可读提示,且不会覆盖现有课表。

测试

  • 新增 7 个导入导出单测(往返一致、非本 App 文件、坏 JSON、空文件、高版本、无数据、默认文件名)。

依赖

  • OkHttp / logging-interceptor 升级到 5.5.1(合并 Dependabot PR #8):
    屏蔽 8 个被攻破的 eMudhra 中间证书(CVE-2026-111943),并带来可选 ECH 支持。
  • 本站官网(docs/)随仓库一起发布,Cloudflare Workers 以静态资源方式托管(wrangler.jsonc)。

v1.3.3

Choose a tag to compare

@github-actions github-actions released this 29 Oct 02:20

调整

  • 默认数据源改回「分享链接(token)」:教务系统抓到的课表周次与实际有出入,所以把 token 方式放回首位并设为默认;
    教务系统登录方式保留在第二位,需要时仍可切换(设置 → 课表来源)。
  • 设置页两个数据源的说明同步更新:token 标注「默认方式」,教务系统标注「备选」。

v1.3.2

Choose a tag to compare

@github-actions github-actions released this 28 Oct 15:00

本次发布包含 v1.0.8 之后的所有改动,下面按模块汇总;更细的逐版本记录见 1.2.x / 1.1.0 段落。

新增

  • 新教务系统数据源(强智 jwxt.sut.edu.cn/jsxsd/),并设为默认:应用内 WebView 登录一次
    (账号 + 验证码或扫码),保存会话 Cookie 后续复用;读取「个人中心 · 我的课表」,
    并通过换周接口(main_index_loadkb.jsp,rq=日期)逐周抓取后合并出真实的单双周 / 分段周次。
    旧分享链接(token)保留为可选数据源,设置 → 课表来源 可切换。
  • 手表端:表盘复杂功能(下一节课)+ 信息块(Tile);手机同步成功后自动推给手表;
    手表端不能登录教务系统,新数据源下由手机推送(设置页有说明)。
  • 手机端:大屏 / 折叠屏自适应(侧边 NavigationRail、双栏详情、按铰链位置分栏)、课程详情面板、
    Material 3 官方排版。
  • 教学相关:开学第一周周一设置(周次 → 真实日期)、G/F 座 3、4 节提前 10 分钟提示。
  • 工程:MIT 许可证、贡献指南、issue 模板、Dependabot、单元测试 119 个(含真实页面解析回归)。

修复

  • 登录后"闪一下又要求登录":JSESSIONID 按路径下发,改为读取 /jsxsd 作用域的那个会话。
  • 「课表页面解析出来是空的」:个人中心外壳页没有周次信息,改为依次取 xsMain.jsp → xsMain_new.jsp,
    并以服务器片段里写的「第N周」为准编号。
  • 解析脏数据清理:整行「备注」不再被当成课程、无 title 的格子去掉被 CSS 截断留下的 ..。
  • 登录页在手机上被压成窄条:注入 viewport,并允许双指缩放。

调整

  • 不保存账号密码:登录页不再记录或自动填写账号密码,登录照常手输(验证码本来就需手输)。
  • 设置页只显示当前数据源相关的项;「同步状态」第一行写明来源(来源:教务系统(jwxt.sut.edu.cn)
    或 来源:分享链接(sutjwt.sut.edu.cn))。

注意

  • 1.3.2 与此前版本使用同一套签名,可直接覆盖升级。
  • 版本号只在 gradle/libs.versions.toml 维护,App 与手表端都从那里读。

v1.0.8

Choose a tag to compare

@github-actions github-actions released this 28 Oct 08:55

新增

  • 手表端「表盘小组件」:可以把「下一节课」添加到系统表盘(复杂功能)。
    短文本显示 10:15 高数,长文本额外带教室(10:15 高等数学 · F-105);
    没课时显示 无课,没同步过显示 未同步;点一下直接打开 Wakeup。
    手机同步、手表刷新、清缓存之后都会主动请求表盘刷新,不会停在旧数据上。
  • 手表端信息块(Tile):从表盘往左滑就能看到「今天 · 周三」、下一节课、当天前 3 门课,
    15 分钟自动刷新;没数据时直接告诉你怎么做(打开 Wakeup 或让手机同步一次)。
  • 手机端适配大屏与折叠屏:按官方窗口尺寸类排版 —— 手机竖屏用底部导航栏,
    中等/展开宽度改成侧边 NavigationRail;展开宽度下课程详情变成右侧常驻面板(列表-详情双栏),
    设置与「今日」收窄到 840dp 居中;折叠屏半开时按铰链真实位置分栏(书本姿态左右分、
    桌面姿态上下分),内容不会画到折痕上。
  • 旋转、分屏、折叠展开后,当前标签页、查看的周次、选中的课程都不再丢失。

修复

  • 监听窗口折叠状态后,平板横屏不再把课表拉成超长单栏;正文有最大宽度约束。

注意

  • 本版一并包含 1.0.6 与 1.0.7 的全部改动(Wear OS 手表版、表头月份修复、手机端官方排版、
    手机→手表自动同步、双端 minSdk 下调):从 1.0.5 直接升上来的话,这两节的内容同样生效,
    明细见仓库 CHANGELOG.md 的 1.0.6 / 1.0.7 两节。
  • 手表端 minSdk 25 → 26:表盘复杂功能依赖(watchface-complications-data-source)要求 API 26,
    这是本版本核心功能的硬性下限;手机端仍是 23。
  • 表盘小组件需要手动添加:表盘长按编辑 → 复杂功能/小组件 → 选择 Wakeup「下一节课」;
    信息块需要在信息块列表里添加 Wakeup。
  • 表盘上的数据来自本地缓存,不会为了刷新表盘而联网(避免抬腕时走网络)。
  • 1.0.8 与 1.0.7 使用同一套签名,可直接覆盖升级;不要卸载(卸载会丢 token 与缓存)。

v1.0.5

Choose a tag to compare

@github-actions github-actions released this 12 Oct 14:08

修复

  • 左侧时间轴与右侧课程对不上。1.0.3 起时间轴会根据当周的 G/F 座课程改动第 3、4 节显示的时间,
    但右侧每门课各有各的时间,轴跟着某一门课走就会和大多数课程错位。
    现在时间轴固定显示官方作息,G/F 座的提前时间只标在对应课程的格子里。

说明

  • 作息时间以教务处「作息时间」页(https://jwzx.sut.edu.cn/index/zxsj.htm)为准,
    第 1–11 节与官网逐条一致。
  • 课表数据里会出现第 12 节(官网未列出),其时间 20:30–21:15 是按每节 45 分钟推算的。

v1.0.4

Choose a tag to compare

@github-actions github-actions released this 12 Oct 13:55

新增

  • Smartspacer 集成:桌面/锁屏的「一览」里可以显示下一节课(课程名 + 时间 + 教室),
    点一下打开 App。
    • 用法:安装 Smartspacer(需要 Android 10+),
      在其中添加 Target 并选择「下一节课」;需先在本 App 里配好课表链接并同步过一次。

v1.0.3

Choose a tag to compare

@github-actions github-actions released this 12 Oct 13:18

修复

  • G 座 / F 座 3、4 节提前 10 分钟此前完全不生效。旧实现按字面量 GF 匹配教室名,
    而真实教室是 G-101、F-105,一条都匹配不上。现在识别 G / F 前缀,
    且只在沈工大域名(*.sut.edu.cn)的课表上生效。
  • 「今日」页面的「正在上课」判断同步修正。

注意

  • 本版起,发布签名密钥随仓库公开(见 SIGNING.md),
    它不再是秘密,请勿把「签名一致」当作「来自官方」的证明。

v1.0.2

Choose a tag to compare

@github-actions github-actions released this 12 Oct 07:29

修复

  • 改用固定签名密钥,修复「装不上新版本」。此前每个 CI runner 都会生成新的调试密钥,
    导致每个版本签名都不同,装过旧版就必须先卸载。
    从这一版起签名固定,之后的版本可以互相覆盖升级。

注意

  • ⚠️ v1.0.0 / v1.0.1 无法直接升级到本版:那两版用的是两个不同的临时调试密钥。
    请先卸载旧版再安装(卸载会丢失已保存的课表链接与缓存)。