Skip to content

v0.3.1.1-diag.3 (fix candidate: Tab S11 captured-pointer)

Pre-release
Pre-release

Choose a tag to compare

@Dylanmurzello Dylanmurzello released this 22 May 03:00
· 337 commits to main since this release

Install

Download Zdroid-0.3.1.1-diag.3.apk, open it, allow "install from unknown sources". In-place upgrade over v0.3.1.1 / v0.3.1.1-diag.2. Pre-release; not promoted as Latest.

Convention

v0.3.1.1-diag.2 and v0.3.1.1-diag.3 serve different purposes:

  • diag.2 is the data-gathering build. Install it when I ask you to send a diagnostic dump. Probes-only, no behavior changes.
  • diag.3 is the fix-candidate build. Install it to test if a specific issue is fixed for you.

What this build fixes (candidate)

Tab S11 (Samsung SM-X7xx, One UI 8, Android 16, MediaTek) Bluetooth/USB mouse: cursor stays stuck after pairing, even though the system cursor correctly hides when Zdroid takes capture.

Root cause confirmed via the diag.2 probe dump: framework grants requestPointerCapture but no motion events reach Activity.onGenericMotionEvent. The Samsung legacy bubble-up path that works on Tab S9 / One UI 7 is not honored on One UI 8 + Android 16. Canonical AOSP routes captured events through View.dispatchCapturedPointerEvent on the focused View instead.

Fix: install View.OnCapturedPointerListener on the GameActivity SurfaceView. No focus-state manipulation (sidesteps the previous tint regression).

Use this if

You hit the "BT/USB mouse pairs but doesn't move the cursor" bug on Tab S11 or any non-Samsung Android 14+ device. Install diag.3, pair your mouse, the cursor should now follow motion. If it still doesn't, fall back to diag.2 and send me the dump.

Verification

  • APK SHA-256: 98b9c7c3f1285498e36d3e7697459f99f315fc4282c5a78344589c727937af91
  • Built from commit f614d8b23d (debug branch)
  • versionCode 16, versionName 0.3.1.1-diag.3
  • Cert: same as v0.2.x / v0.3.x (in-place upgrade compatible)
  • Tab S9 Ultra regression verified: 576 captured events still flow through the legacy Activity path with the new View listener installed alongside.