Skip to content

PAM Native 1.22.4

Choose a tag to compare

@DavidWilliamBalbino DavidWilliamBalbino released this 06 Oct 20:27

PAM Native 1.22.4

Android keyboard-aware Scroll follows keyboard animations and focus changes while preserving the authored viewport height, including Android 26–29 with adjustNothing.

Changes

  • The existing keyboardVerticalOffset property adds focused-field clearance when keyboardInset is enabled. Default focused-field clearance remains 24 dp.
  • Native focus changes reveal the current editor without PHP callbacks. Repeated unchanged insets and keyboard dismissal preserve manual scrolling.
  • Android 26–29 Scroll and keyboard-avoiding overlays share one zero-width, non-focusable measurement window per root. Disabling, detaching or closing consumers releases their subscriptions; losing window focus suspends measurement, and returning restores it. Dialogs retain their compatible window-inset path.
  • Deferred reveal callbacks ignore stale insets and prior focus targets. Removing a Scroll or its keyboard-aware property releases its inset/layout/animation observers.

No PHP API, protocol identifier or dependency requirement changes. Rebuild the Android host after updating the SDK. See docs/migration-1.22.4.md for guidance on using one keyboard-aware form container and retaining enough content extent.

Verification

Both community hosts passed on the final source commit after rebuild and installation.

  • PHP SDK suite and syntax (545 files), Rust formatting/workspace (207 tests), and both Android engines passed for the unchanged PHP/Rust sources. Protocol parity was rechecked after the final Android patch.
  • Android JVM 214/214 and instrumented-source compilation passed on the final commit. Existing keyboard/Scroll classes passed on API 26 and API 36.
  • Final keyboard-aware instrumentation passed on both APIs: API 26 ran real keyboard focus/resize and shared Scroll/overlay lifecycle cases; API 36 ran animated-inset and real keyboard cases. Each platform executed two cases and skipped the other platform's case. The legacy test obtains its keyboard geometry independently from the system accessibility window and checks focus switching, 180 dp clearance, full viewport, late overlay mount, disable/re-enable, dialog focus/return, detach/reattach and hide.
  • Physical Scroll-only Galaxy S10 acceptance: Login 180 dp, Signup default 24 dp and Recover 180 dp clearances, with the focused field visible and authored viewport preserved. Signup password step was not exercised.
  • Android renderer and PHP archives reproduced byte-for-byte; the unchanged plugin API retains its clean rebuild match. Package-size budgets and independent report verification passed.
  • Fresh community native (API 36) and native-ui (API 26) projects installed their declared Composer dependencies, including development dependencies, after manifest/metadata/dry-run checks. Both passed first launch, edited-source reload, restored-source reload and counter interaction in the same process on the final Android host. Installed PHP SDK files are byte-identical to the final candidate.

Source commit: f2f41c108382604e07707dc6db4c6b5be35aaeaa. The temporary Composer gate export contains 1,173 tracked source files and omits generated build output. Published packages contain no candidate path repository or rejected graphics experiment.

Validation runs directly through local commands, without GitHub Actions. Swift/iOS execution and end-to-end APNs/FCM delivery were not performed on this Linux host. This patch changes Android behavior only.