Skip to content

PAM Native 1.22.5

Choose a tag to compare

@DavidWilliamBalbino DavidWilliamBalbino released this 06 Oct 21:35
· 43 commits to main since this release

PAM Native 1.22.5

Source commit: 6a333fd4122adb9598c69ef9fe3f852ebf70ba04 ([skip ci]).

Changes

  • Android virtual lists retain mounted cells and decoded images when keyed rows
    move within the same list. Loading headers and page prepends no longer clear
    visible messages before RecyclerView applies its position changes. Cross-list
    moves keep their existing removal and materialization lifecycle.
  • Native pinch and pan take over the currently displayed transform when they
    interrupt a zoom animation. Independent opacity animation continues and the
    image remains mounted.
  • Adjacent native pan/pinch detectors share their content surface. An intervening
    View or Drag preserves separate targets. The iOS implementation follows the
    same shared-target and component-preserving transform contract.
  • Optional GestureEvent::nativeScale, nativeTranslationX and
    nativeTranslationY report the applied transform for committing interrupted
    gestures. Translations use dp on Android and view points on iOS. Existing
    relative deltas and positional constructor arguments remain compatible;
    older runtimes and gestures without native transforms leave these fields null.

Validation

  • Android instrumentation: 27/27 tests on API26 and 27/27 on API36, including
    view/bitmap continuity, pagination, delayed HTTP images, native zoom and
    off-center gesture takeover. The same-list continuity regression fails on
    published 1.22.4 and passes with this fix. Image completion alone passes both
    versions; the confirmed teardown was caused by same-list row moves.
  • 214 JVM tests, the PHP SDK suite, 545 PHP source parses, protocol parity,
    Rust formatting and 207 Rust workspace tests passed.
  • Fresh native and native-ui projects passed installation, first launch,
    edit/reload/restore, stable runtime PID and counter increment on API36/API26.
    Both produced two reload events without runtime errors; screenshots were
    inspected.
  • Renderer, PHP package, plugin API AAR and Linux CLI checksums were verified.
    Reproducibility and package budgets passed for Android and PHP artifacts.
  • Galaxy S10 chat continuity: ten matching history swipes changed fully empty
    timeline samples from 7/827 to 0/834 after the first three seconds.
  • On the same test photo, the original zoom recording contained three empty
    photo frames among nine recorded frames. The corrected recording had zero
    empty photo frames among 123 recorded frames and 95 distinct measured image
    coverage values. A further two-finger/pan/rapid-double-tap recording had zero
    empty photo frames among 199 recorded frames; returning to 1× was confirmed.
    Recordings establish visual continuity, not frame rate. A separate debug
    frame sample reported 8 janky frames of 345 and p95 19 ms; this does not
    establish sustained 60 FPS or complete application parity.

Upgrade and limits

Rebuild the Android host after updating. No numeric protocol identifiers or
third-party dependency requirements change. See
the migration guide.

Validation used direct local commands without GitHub Actions. Three UIKit
regression tests are included, but Swift/UIKit execution was unavailable on the
Linux host. The iOS handoff covers CSS/program transforms on the shared photo
surface; a TapEffect owned by an ancestor and animating a child is outside this
coverage. End-to-end APNs/FCM delivery was not tested. Initial text/background
batching and rejected drawing experiments are not included in this release.