Releases: Townrain/FloatyAnswer
Releases · Townrain/FloatyAnswer
Release list
Release v1.7.0
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 状态徽标(✓/✗)
Release v1.6.2
AIAnswerer v1.6.2
下载
- APK: Release 版本
功能
- 并行答题模式
- 并发数可配置(1-10)
- LLM/VLM/联网搜索测试
- R8 代码混淆 + 资源压缩
Release v1.6.1
AIAnswerer v1.6.1
下载
- APK: Release 版本
功能
- 并行答题模式
- 并发数可配置(1-10)
- LLM/VLM/联网搜索测试
- R8 代码混淆 + 资源压缩
Release v1.6.0
[1.6.0] - 2026-07-18
Added
- 自定义提示词:LLM 系统提示词与 VLM 视觉提示词均可在设置页自定义,留空使用默认
- 放大镜图标缩放:设置页悬浮窗外观分区新增图标缩放滑块 (0.5x~2.0x),独立调节图标大小
- 多图模式:录制多张截图自动去重、合并发送 LLM 答题
- 主题可选项系统:多主题切换 + JSON 导入/导出接口
Fixed
- RecordingCoordinator 线程安全加固(AtomicInteger + CopyOnWriteArrayList + synchronized)
- ImageCollector 线程安全加固
- 悬浮窗收起时显示答案摘要而非完整题目
- 主页设置图标用 VectorDrawable 替代有误差的内联 ImageVector
- 主页下拉框第二下点击无法关闭
- UIConfig 硬编码主题 ID 改为常量引用
Changed
- 厂商数据源切换至 OpenCode,同步管理器适配
- 新增 provider_data.json 生成脚本
- 测试覆盖提升:新增 RecordingCoordinator 测试
Release v1.5.1
AIAnswerer v1.5.1
下载
- debug-apk: Debug 版本 APK
功能
- 并行答题模式
- 并发数可配置(1-10)
- LLM/VLM/联网搜索测试
v1.5.0
v1.5.0 (架构重构 & 体验优化)
- 架构重构
- 大文件拆分:CommonComponents(1256行)→5文件、OpenAIClient(996行)→2文件、AppConfig(1005行)→8文件(门面模式)
- 新增 38 个单元测试覆盖 JSON 解析、弹窗排队、提示词生成
- 厂商列表从 13 个扩充至 52 个,覆盖国内外主流 AI 厂商
- 性能优化
- System Prompt 精简约 80%,AI 分析速度显著提升
- maxTokens 1024→512,减少冗余输出
- 超时时间 180s→60s,避免长时间等待
- 并行模式默认开启,并发数默认 10
- Bug 修复
- 录制模式 captureCount 不递增导致结果无法显示
- 隐身模式/悬浮窗外观设置不立即生效
- 悬浮窗大小滑块不生效
- 厂商链接/关于页 GitHub 链接点击无反应
- 搜索开关重启后状态丢失
- 题型选择翻译不一致导致 AI 输出串题型
- 答案卡片过长被裁
- UI 优化
- 自定义应用图标(神经网络节点 + 对勾设计)
- Android 12+ 启动屏联动新图标
- 悬浮窗默认大小 56→40
- VLM 快捷开关默认跟随视觉模型配置自动开启
- 录制模式窗口触摸区域优化
Release v1.4.1
AIAnswerer v1.4.1
下载
- debug-apk: Debug 版本 APK
功能
- 并行答题模式
- 并发数可配置(1-10)
- LLM/VLM/联网搜索测试
Release v1.4
AIAnswerer v1.4
下载
- debug-apk: Debug 版本 APK
功能
- 并行答题模式
- 并发数可配置(1-10)
- LLM/VLM/联网搜索测试
Release v1.3.1
AIAnswerer v1.3.1
下载
- debug-apk: Debug 版本 APK
功能
- 并行答题模式
- 并发数可配置(1-10)
- LLM/VLM/联网搜索测试
Release v1.3
AIAnswerer v1.3
下载
- debug-apk: Debug 版本 APK
功能
- 并行答题模式
- 并发数可配置(1-10)
- LLM/VLM/联网搜索测试