Skip to content

Shield AirPlay 2.0.0 — Session stability and TV redesign

Choose a tag to compare

@ebreen ebreen released this 01 Oct 21:47

Shield AirPlay 2.0.0

A TV-first redesign and a fix for paused video sessions being lost when an idle AirPlay control connection closes.

Changes

  • Preserve the paused video session across idle transport closure and activity transitions. Explicit stop remains authoritative, with the existing narrow local-pause compatibility grace.
  • Reject stale native/player callbacks and playback snapshots. Cancel delayed retries when a player is released.
  • Remove a synchronous wait in /play that could block the HTTP server needed for HLS loading.
  • Redesign the receiver, navigation, settings, logs, and playback controls for TV: larger text, restrained light/dark themes, clear remote focus, and safe screen margins.

Verification

  • 36 JVM tests and 8 executable native callback tests passed.
  • Release lint: 0 errors (80 warnings and 1 hint remain).
  • Signed release built for ARM64 and ARMv7; signature and 16 KB ZIP alignment verified.
  • Installed as an in-place upgrade on NVIDIA Shield. Device package version and APK SHA-256 match this release.
  • On-device synthetic AirPlay regression: the previous release lost the paused session after the original control socket closed. This release retained the session and resumed after a 30-second protocol-command pause and a 60-second TV media-key pause. Explicit stop passed after both tests.
  • D-pad settings navigation, live theme switching, and persisted theme selection checked on the Shield.

The device regression uses a local, silent H.264 fixture and protocol commands, not a real iPhone sender. Real iPhone interoperability, LAN discovery, encrypted screen mirroring, audio-only playback, and reboot recovery were not retested for this release. GitHub Actions status is separate from the completed local validation above.

Install and source

  • APK: Shield-AirPlay-2.0.0-shield.apk
  • Package: no.gior.shieldairplay
  • Version: 2.0.0-shield (code 200)
  • Signed with the same certificate as the previous Shield release; supports in-place upgrade.
  • Source commit: 4e14bcbe315d23a75553f01f53aec6fd043c7cba
  • Source archive includes the pinned native dependency trees and SOURCE_REVISIONS.json. For the documented Git-based build, clone the repository at this release tag with --recurse-submodules and follow SHIELD_BUILD.md.
  • GPLv3; upstream attribution and license notices retained. No subscriptions, ads, analytics, or paid feature gates.

Verify downloaded assets against SHA256SUMS.