feat(island): 对齐 ClassIsland 课表提醒并恢复开合动画

This commit is contained in:
LoveChengke committed 2026-10-17 16:43:36 +08:00
1 parent e84e43544a
commit 3379eb975c
15 files changed
+853 -65

No files matched your search

+9 -5
View File
@@ -1583,19 +1583,23 @@ makensis 临时目录、ClassIsland 路径与日志编码等)。这里只列
天气组件本轮不做:没有可离线使用的数据源,验收不依赖外网。
自定义组件栏位于灵动岛内部,提醒内容也在同一个岛体内展开,不再嵌套另一张带底色的岛卡片。
可在「设置 → 灵动岛」选择常驻岛:收起内容与无通知展开内容分别编辑,并随方案一起导入导出。
常驻模式的新消息(含紧急消息)先亮铃铛和数量,点击岛体或铃铛查看通知列表;上课时也可主动查看。
没有待处理消息时点击岛体,展示自定义的空闲展开页;处理完消息后回到常驻内容。关闭常驻后使用原提醒规则。
可在「设置 → 灵动岛」选择经典或自定义灵动岛,常驻内容已并入自定义模式,不再有独立开关。
常态内容与无通知展开内容分别编辑,并随方案一起导入导出。紧急通知立即展开,课中普通通知暂存,下课后展开;点击铃铛可主动查看。
没有待处理消息时点击岛体,展示自定义的空闲展开页;处理完消息后回到常态内容。通知正文、排序与已读操作共用经典岛组件。
铃铛在右侧预留固定空间,收到消息时内容不横移;默认组件按垂直中心对齐,时间使用等宽数字。
常驻外观重新按 ClassIsland 源码对齐:单行基准高 40 px、左右留白 12 px、四档字号 14/16/18/20、时钟使用强调字号 18 px;默认缩放 1×、圆角 8 px、背景不透明度 0.5、行间距 5 px。
窗口设置沿用「指针移入淡化」与「反转指针移入淡化」;普通背景淡化至 5% 并穿透点击,移出恢复。铃铛/展开按钮、编辑模式、已经展开的内容及触摸操作短暂宽限期保持可交互。
界面缩放范围 0.75–2.5×,圆角 0–20 px,背景不透明度 0–1;整体外观可一键恢复 ClassIsland 默认值。
常驻岛独立使用 ClassIsland 经典主题的 550ms 背景尺寸曲线与 200ms 内容淡入;旧胶囊弹簧在常驻模式停止运行。
自定义岛使用 ClassIsland 半透明横条外观,内容与外壳同步过渡;应用内动画开关直接决定是否播放,系统减少动态效果不再额外关闭已开启的动画。
开合只改变岛壳,原生窗口保持固定画布,避免窗口重排、闪烁和两端尺寸防抖互相追赶。隐藏窗口直接落到目标尺寸。
布局按内容自然尺寸、屏幕可用空间和缩放设置自动适配;长文本限制宽度并省略,同一行的时间、分隔线与文字保持成组对齐,左右及底部停靠保持对应锚点。
通知列表和空闲展开页均不出现滚动条;较多消息按可用高度展示,完整长正文及剩余消息可通过「查看完整内容」进入应用查看,底部操作始终保留。
编辑器左侧按用途添加组件、中央预览岛内排列、右侧只显示当前对象的设置;方案操作收在顶部菜单。
主设置页选择经典或自定义灵动岛,自定义模式的组件尺寸、配色在编辑器中调整,主设置页保留位置与提醒选项。
课程时间位于课程名称右侧并居中对齐,显示完整的起止时间;可在组件设置中关闭「显示课程时间」。
经典与自定义两种布局均在上课前 60 秒弹出准备提醒:先播放 ClassIsland 五段斜切强调遮罩,再显示秒级倒计时、课程及右侧时间范围。
上课时提示 5 秒;下课时先提示,再预告下一节课程。最后一节课结束后只提示课间状态,不展示不存在的下一节课程。
课表提醒独立于通知队列,刷新同一课表不重复开始,移除课程自动取消;已经打开的通知详情与紧急消息优先。提醒只在本机展示,不自动启用音效和语音。
主设置页保留字号、位置、透明度、动画与提醒选项,自定义布局和组件内容在编辑器中调整。
迁移保留旧 Schedule 作为审计来源;新门面只写新模型。重复占用同一时间点的旧行无法同时成为一节课,
迁移选择同一时段 ID 最小的行,全部原行仍保留;旧数据未记录的群组、临时层和时间点名称无法恢复。