Skip to content

feat(tv): add Android TV / Fire TV wrapper and Roku channel - #1259

Open
9M2PJU wants to merge 8 commits into
accius:Stagingfrom
9M2PJU:feat/tv-apps
Open

9M2PJU wants to merge 8 commits into
accius:Stagingfrom
9M2PJU:feat/tv-apps

Conversation

@9M2PJU

@9M2PJU 9M2PJU commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

What

Puts OpenHamClock on the shack TV three ways:

  • Android TV / Google TV (android-tv/) — native Leanback WebView wrapper loading https://openhamclock.com full-screen. D-pad passthrough, Back = history then double-press exit, Menu reloads, offline retry screen, keep-screen-on, boot auto-start, official logo icon + 320x180 banner. Verified BUILD SUCCESSFUL + leanback-launchable badging.
  • Fire TV — same APK (Fire OS is Android; touchscreen/leanback marked not-required, both launcher categories declared). android-tv/install-firetv.sh installs over the network via adb; Downloader sideload also documented.
  • Roku (roku/) — Roku has no WebView, so this is a native SceneGraph channel using the hosted JSON API: map-lite world map (Natural Earth coastline, reproducible via images/render-map.py) with a runtime day/night terminator + sun marker, latest 20 DX spots, SFI/Kp/SSN strip, daytime N0NBH bands. package.sh builds a validated sideload zip (13 entries, XML-checked).

Verification

  • Android: cd android-tv && bash build.sh → BUILD SUCCESSFUL; aapt confirms leanback-launchable-activity + banner.
  • Roku: cd roku && bash package.sh → zip builds, both component XMLs parse, manifest/icons/splash present. BrightScript reviewed against SceneGraph API (Task-thread fetching, 1-based string indexing, no continue).
  • Base is freshly synced with upstream/Staging (merge 85c444a; one trivial scripts-block conflict in package.json resolved as union).

Notes for review

  • Debug package id is com.openhamclock.tv.debug; release is com.openhamclock.tv.
  • Roku channel polls the public hosted API every 60s — flag if you want longer intervals or a self-hosted default.
  • Happy to split Android vs Roku into separate PRs if preferred.

- android-tv/: native Leanback WebView wrapper loading
  https://openhamclock.com, D-pad navigation, offline retry screen,
  keep-screen-on, boot auto-start, official logo icon + banner,
  adb/network install script (install-firetv.sh covers Fire TV sticks)
- roku/: native SceneGraph channel (Roku has no WebView) rendering a
  TV dashboard from the hosted JSON API - map-lite world map with
  runtime day/night terminator, DX spots, SFI/Kp/SSN, N0NBH bands;
  package.sh produces a sideloadable zip
- .gitignore: local TV build outputs

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant