Skip to content

v1.0.16 智慧节次

Choose a tag to compare

@lingion lingion released this 25 Jun 08:29
· 41 commits to main since this release

v1.0.16 智慧节次(自动模式)+ 课表空态修复

修复重大 bug:去掉自动创建的占位默认表

  • 用户无表时 app 偷偷建了"默认课表 1"做占位
  • 用户手动建"默认课表 2"设了节次后,app 仍把"默认课表 1"
    当作默认表,导致节次看不到、加课不显示
  • "空课表也是课表",应该有自己的节次和视图

改动

  • ScheduleViewModel.loadTables(): 空表时不再自动建占位,selectedTableId = null
  • ScheduleViewModel.createEmptyTable(): 第一张表自动 isDefault=true(避免出现无默认表)
  • ScheduleViewModel.addEmptyCourse(): 没表时自动建表再加课
  • AddCourseScreen 保存: 没表自动建,drafts 的 tableId 用真实 id 修正
  • ScheduleScreen 区分两种空态:
    • 没表 → "还没有课表" + 两个 CTA(去管理 / 手动创建)
    • 有表无课 → "「表名」还是空的" + 加课/导入 CTA

新功能:智慧节次(自动模式)

  • 节次编辑器顶部 [手动模式]/[自动模式] Tab 切换
  • 三个字段驱动整日节次:每节时长 + 总节数 + 小课间/大课间模板
  • Break 分组卡片:每个 break 模板下显示 1.5, 2.5, ..., (N-1).5 位置卡片
  • 跨组互斥:同一 transition 只能属于一个 break
  • 默认 0 分钟:未选中的 transition = 0 分钟(连续上课)
  • 实时预览

历史修复

  • v1.0.16-1:点击自动模式 Tab 直接闪退
  • v1.0.16-2:包名 com.lingion.sleepy.debug,APK 20.4MB (debug variant)

数据模型

  • SmartPeriodConfig: startTime/periodMinutes/totalPeriods/breaks/transitionAssignments
  • BreakOption: minutes + isLong + label

测试

  • 30 + 7 = 37 用例全部通过

APK

  • sleepy-v1.0.16-2-arm64-v8a.apk (md5: e99bab9e15f6bae2501527b42a79b0a8)
  • 20.4MB, versionCode 16, versionName 1.0.16-debug
  • applicationId com.lingion.sleepy.debug