Skip to content

Add branded POTA activation sharing on Android - #802

Merged
patrickrb merged 2 commits into
devfrom
codex/pota-activation-sharing
Sep 8, 2026
Merged

patrickrb merged 2 commits into
devfrom
codex/pota-activation-sharing

Conversation

@patrickrb

@patrickrb patrickrb commented Sep 7, 2026

Copy link
Copy Markdown
Owner

Adds Share activation buttons to completed entries in POTA history and their detail screens. Users preview a branded map/contact summary, publish its public data, and share a PNG through Android's share sheet. The QR opens the matching server-rendered HTML/CSS website summary, with an SVG map and the full contact log. Public pages are indexable; the preview disclosure makes this clear.

  • Use FT8AF's navy, amber, cyan, Geist fonts, and existing icon/wordmark.
  • Bundle the website renderer for an offline preview in a network-isolated WebView; external content cannot access the native bridge.
  • Publish only explicitly allowed activation fields, use historical grids, and exclude notes and account credentials.
  • Generate a 1080 × 1350 PNG with map paths, statistics, 12 contacts, remaining count, and QR. Share via FileProvider with temporary read permission.
  • Translate native share labels and errors across the existing locales.

Companion website/API: patrickrb/ft8af-site#22

Validation: Kotlin compilation and three PotaSharePayloadTest tests passed on the final branch. The shared renderer sample was inspected and its QR decoded. Full Android lint reports existing project errors; no remaining findings reference the new sharing code or strings.

Release dependency: configure Neon DATABASE_URL, run the website migration, and deploy the companion API first. Real-device share-sheet, offline retry, and cross-device QR checks remain outstanding. The new summary interface is currently English.

@codecov

codecov Bot commented Sep 7, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 11.46497% with 139 lines in your changes missing coverage. Please review.
✅ Project coverage is 42.15%. Comparing base (365d2b5) to head (e82c84a).

Files with missing lines Patch % Lines
...in/radio/ks3ckc/ft8af/ui/pota/PotaShareActivity.kt 0.00% 127 Missing ⚠️
...in/kotlin/radio/ks3ckc/ft8af/ui/pota/PotaScreen.kt 0.00% 8 Missing ⚠️
...lin/radio/ks3ckc/ft8af/ui/pota/PotaSharePayload.kt 81.81% 0 Missing and 4 partials ⚠️
Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff              @@
##                dev     #802      +/-   ##
============================================
- Coverage     42.30%   42.15%   -0.16%     
  Complexity      228      228              
============================================
  Files           268      270       +2     
  Lines         32100    32257     +157     
  Branches       3705     3734      +29     
============================================
+ Hits          13581    13599      +18     
- Misses        18247    18382     +135     
- Partials        272      276       +4     
Flag Coverage Δ
android 17.17% <11.46%> (-0.06%) ⬇️
native 9.93% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...lin/radio/ks3ckc/ft8af/ui/pota/PotaSharePayload.kt 81.81% <81.81%> (ø)
...in/kotlin/radio/ks3ckc/ft8af/ui/pota/PotaScreen.kt 6.83% <0.00%> (-0.08%) ⬇️
...in/radio/ks3ckc/ft8af/ui/pota/PotaShareActivity.kt 0.00% <0.00%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@patrickrb
patrickrb merged commit fb8318a into dev Sep 8, 2026
17 checks passed
@patrickrb
patrickrb deleted the codex/pota-activation-sharing branch September 8, 2026 01:09
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