Skip to content

feat(glass): liquid-glass bottom bar on tablet dual-pane player - #68

Closed
Zennmn wants to merge 10 commits into
mainfrom
codex/tablet-liquid-glass
Closed

Zennmn wants to merge 10 commits into
mainfrom
codex/tablet-liquid-glass

Conversation

@Zennmn

@Zennmn Zennmn commented Sep 23, 2026

Copy link
Copy Markdown
Owner

功能

液态玻璃底栏现已支持开启「平板双栏播放器」的平板横屏(手机行为不变;平板竖屏、双栏关闭保持原生界面)。

  • 复用现有「液态玻璃底栏」开关(原「手机液态玻璃底栏」,文案去设备限定);设置键零新增、CONFIG_SCHEMA_VERSION 保持 14,底部间隙/面板模糊两个附加项沿用。
  • 平板形态:标签胶囊与迷你播放器胶囊居中悬浮、宽约屏幕 2/3(两侧留白 frameWidth/6,随帧宽逐帧同步);迷你内容(封面/曲名/播放按钮)与胶囊同边距对齐。
  • 几何仲裁:玻璃激活时接管底栏几何(peek 重写为折叠几何唯一来源),「平板底栏补偿」自动让位;玻璃关闭后补偿逐字节恢复原语义,交接时一次性释放补偿的抬升/可见性写入。

实现

  • GlassPolicy 形态化:GlassHostForm / GlassGeometry 预设(分叉点),旧 supports(..., tablet) 签名与语义保留。
  • GlassSession 接口 + PhoneGlassSession 模板方法化(8 个形态接缝,手机行为逐项等价)+ TabletDualPaneGlassSession(flat root 解析、flat peek 基线、胶囊离场 exp(-20t) 平移、TabletGlassChrome 所有权接线、行为查找优先 PlayerBottomSheetBehavior)。
  • PhoneGlassRuntime 形态路由 + Stacked/FlatBottomNavigationHolder 双 slide 钩子。
  • TabletGlassChrome 仲裁契约;双栏 installFlatPlayerBoundarySync 守卫(玻璃激活静音 + 交接释放)。
  • 平板 flat 原生 chrome 接缝幂等隐藏(nav_tabs_top_shadow / navigation_tabs_divider / 列分隔 divider)——修复真机反馈的全宽横线与固定竖线。
  • 设置文案与 README 生效范围更新;结构契约测试改造(形态契约)+ 新增 TabletLiquidGlassStructuralRegressionTest 5 用例。

验证

  • 每轮全量批次 BUILD SUCCESSFUL::app:testDebugUnitTest、:glass:testDebugUnitTest、:app:lintDebug、:app:lintVitalRelease、:glass:lintDebug、:app:assembleRelease。
  • 平板真机(Apple Music 6.5.3/1599,双栏横屏)逐轮验收:胶囊渲染与交互正常、横竖线消失、2/3 宽度与迷你内容对齐、补偿让位/交接无残留——用户确认通过。
  • 手机路径行为保持不变(既有断言与玻璃套件全绿)。

Commits: ee97a29, a7a17bc, fe9aec5, b2fc49e, 9aaa871, 5fcbf60, 1a55c94

@Zennmn

Zennmn commented Sep 23, 2026

Copy link
Copy Markdown
Owner Author

追加提交:①「液态玻璃底栏」开启时设置页隐藏「平板底栏补偿」行(该开关在玻璃接管几何期间无效,隐藏避免误导;设置值保留,关玻璃后行恢复)。②平板两胶囊宽度由约 2/3 屏宽收紧到约 1/2(frameWidth/4 两侧留白),迷你内容同边距跟随。仅平板形态,手机 16dp 不变。全量验证绿;交付 AMPP-tablet-liquid-glass-v6.apk(SHA-256 77626D10D42183E685BEB43520B2310ED82C1CC87F97FDF0A0D43F4757BC0D00)。

@Zennmn

Zennmn commented Sep 23, 2026

Copy link
Copy Markdown
Owner Author

追加提交(用户手绘稿新布局):平板底栏与迷你播放器改为同一行并排——底栏胶囊在左(行宽 65%)、迷你胶囊在右(30%)、同高 56dp、整行约 2/3 屏宽居中、左右外侧留白等长(各 W/6)。展开动画采用四边独立插值矩形形变(右下锚定向左上摊开为全屏),sheet 滑动与内容淡出交接管线零改动;迷你内容 43dp 垂直居中随右槽。手机堆叠布局与动画完全不变。全量验证绿;交付 AMPP-tablet-liquid-glass-v7.apk(SHA-256 2C8E1A004B4D7EF916B97CAC91415A480B520783F6E12E9C5DB29A62D7E81D9C)。

@Zennmn

Zennmn commented Sep 23, 2026

Copy link
Copy Markdown
Owner Author

真机缺陷修复(点迷你没反应、反而切换到底栏资料库):根因=①原生 bottom_navigation 仅 alpha=0 隐身、全宽命中条仍可点,迷你槽正压其第 4 格(资料库);②原生 mini 的 tap-to-expand 监听在并排行里未接住,点击穿透。修复=触控链接管:suppressNativeChromeSeams 纳入 hideSeam(navigation)(GONE+save/restore,两形态通用);新 armMiniTap 接缝(默认 no-op,手机原生监听不动),平板给 mini_content 装点击→behavior.setState(3) 展开。全量验证绿;交付 AMPP-tablet-liquid-glass-v8.apk(SHA-256 D711997A76B6DD2483EFDA5E64C14DB62034726401F3D58022923DE8C4DF21BD)。

@Zennmn Zennmn closed this Sep 23, 2026
@Zennmn
Zennmn deleted the codex/tablet-liquid-glass branch September 23, 2026 09:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant