Skip to content

WaEnhancer Community 0.0.21

Choose a tag to compare

@github-actions github-actions released this 15 Oct 00:42
6fb33f8

WaEnhancer Community 0.0.21

SHA-256: cc7da7f336056d3d07334a7dddaf3ef70571d9eaa2d7aabb3544809e5e240984

Changes since v0.0.20.

What's changed

  • #93 fix(glass): tap glides between tabs in a fixed 450 ms; icon stays full size on landing

Full changelog

This section compiles the descriptions of the pull requests included in this release.

#93 — fix(glass): tap glides between tabs in a fixed 450 ms; icon stays full size on landing

Merged by contribution from @igorcv88.

Problem (seventh device recording, animator scale 0.33×)

  • A tab tap never travelled. WhatsApp's click jumps the pager to the new page in about one frame. The bubble followed that jump, then swelled and collapsed in place in about 200–270 ms ("explodes and compresses at once").
  • A page swipe took about 480 ms visible. The user judged this one right.
  • On landing, the selected icon was small and dim for about 100 ms. Two causes:
    • the morph scaled the canvas, so the content was about 60% of its size;
    • the pill copy was drawn over the icon, because the bubble's Z is above the tab row.

Change

  • BubbleMotion glide. When no finger holds the bubble, animateTo runs a deterministic timeline:

    • rise 0–120 ms;
    • travel 120–300 ms, with analytic velocity, so the squash still applies;
    • land 300–450 ms.

    The timing is fixed and does not follow the animator duration scale, except that scale 0 still snaps; this was agreed with the user. A redirect mid-glide is continuous. A press, a swipe follow or a snap cancels the glide.

  • LiquidBubble.holdPagerFollow().

    • BubbleTouch calls it on ACTION_UP over a non-selected tab, so the selection report starts the glide instead of the bubble following the pager jump.
    • The hold ends when the pager rests on a page, or after 700 ms.
    • setTabs no longer snaps a glide that is already heading to the selected tab.
  • Landing.

    • The morph sizes the shape, not its content.
    • settleScale brings the spring scale to exactly 1 before the hand-off.
    • drawIcons redraws the tab row inside the pill at the pill copy's opacity.

Validation

  • :app:testWhatsappDebugUnitTest: 461 tests, 0 failures. Four new tests cover the glide timing, redirect continuity, interruption and settleScale.
  • :app:assembleWhatsappDebug builds.
  • Not device-validated. Visual change to confirm: during the rise, the bubble's content starts at 1:1 instead of zooming up from about 60%.

Details are in handoff.md and docs/ONEMATE_MATERIAL_2026-10-12.md.

🤖 Generated with Claude Code

https://claude.ai/code/session_0157emnK4gGDtGGT282rGFw8


Generated by Claude Code