Releases
v1.7.0
Compare
Sorry, something went wrong.
No results found
FloatyAnswer v1.7.0
更新内容
新增
三窗口悬浮窗架构:将原来的单窗口拆分为 A(悬浮按钮)、B(快捷按键)、C(答案卡片)、D(答案详情)四个独立窗口,各自独立管理布局和触摸事件
Constants:提取 STEALTH_ALPHA、VISIBLE_ALPHA、HIDDEN_ALPHA 命名常量,替换硬编码魔术数字
WindowAContent / WindowBContent / WindowCContent / WindowDContent 四个独立 Composable
设置页新增"长按触发时长"滑块(300ms~3000ms),用户可自定义悬浮按钮长按时间
进入答题模式按钮增加模型检测:未配置语言模型时按钮灰显"请先配置模型"
修复
隐身模式下通知内容不再暴露:仅显示应用名称,隐藏详细内容文本
隐身模式读取统一走 AppConfig.isStealthModeEnabled(),消除直接 MMKV 访问的重复路径
Window D 在答案未就绪时就出现:imageCallbacks.onResult 中 showAnswer 在数据填充前设置
Window C 高度冗余空白:初始高度从 200dp 改为 60dp,匹配紧凑卡片标题栏大小
关闭答案后窗口残留阻塞触摸:snapshotFlow 新增销毁逻辑,showAnswer=false 时自动移除 Window C/D
长按中途松手误触发扫描:Bouncy 按压逻辑与动画时长对齐,移除 200ms 硬编码承诺窗口
悬浮卡片透明度未同步到 Window D:新增 cardAlpha 参数传递
Error/Success 状态悬浮球徽标(✓/✗)移除
removeWindowC() 不再连带销毁 Window D,两者生命周期解耦
Window D 定位改为相对 Window A(而非 Window C),C 隐藏时 D 也能正确定位
悬浮窗答案卡片与主按钮 16dp 缝隙贴合:卡片定位反向补偿按钮在窗口内的居中透明边距(pillEdgeMargin),视觉缝隙降为 0
变更
FloatingWindowManager 完全重写为多窗口管理:新增 attachA/B/C/D、detachA/B/C/D、各窗口独立 updateLayoutA/B/C/D
FloatingWindowService 大幅重构以支持多窗口协调与位置同步
FloatingWindowViewModel 移除废弃的单窗口方法(updateWindowPosition、updateWindowHeight、getCurrentWindowHeightPx、setCurrentWindowHeightPx、updateFloatingWindowHeight)
RecordingResultCard 重构
FloatingComponents:新增 cardWidthDp(360.dp)作为 Window C/D 固定宽度
Window C/D 生命周期分离:C 仅用于状态消息,D 仅用于答案内容,互不干扰
Window D 高度固定为 Window C 的 400%,支持内部垂直滚动(封顶 560dp)
长按触发逻辑改为严格对齐动画完成进度,移除独立的点击承诺窗口
HomePage 模型检测改用 ProviderStorage.getEnabledProvidersFromUserConfigs() 检查是否选中了具体模型
FloatingWindowManagerTest 新增 669 行多窗口操作测试覆盖
移除
PaginatedAnswerRegressionTest(三窗口架构后废弃)
ServiceContext 中废弃的单窗口接口方法
悬浮按钮 Success/Error 状态徽标(✓/✗)
You can’t perform that action at this time.