Skip to content

Add one-time Play premium unlock and extra learning pack - #13

Draft
sondreb wants to merge 2 commits into
mainfrom
cursor/play-premium-unlock-7f01
Draft

Add one-time Play premium unlock and extra learning pack#13
sondreb wants to merge 2 commits into
mainfrom
cursor/play-premium-unlock-7f01

Conversation

@sondreb

@sondreb sondreb commented Aug 25, 2026

Copy link
Copy Markdown
Owner

Adds a one-time Google Play unlock for extra learning content. This is not a subscription.

What users get

  • Free catalog stays 22 words / 17 numbers / 21 sentences
  • Premium adds the extra pack (27 words, 15 numbers, 18 sentences) in all 39 languages
  • English and Norwegian extra-pack values match the requested copy
  • Other languages follow the existing catalog style, including romanization where that language already uses it
  • Missing extra-pack audio still fails softly; no MP3 files were generated

Purchase path

  • Android TWA (me.polytalk.twa) enables Bubblewrap Play Billing and uses Chrome Digital Goods + Payment Request for SKU polytalk_premium
  • Successful purchase or restore writes localStorage key polytalk-premium=1 so the user is not asked again
  • Restore also runs on launch when Digital Goods is available
  • Web/desktop does not fake a Play charge. Settings and About show the pitch, Restore, and Buy on Google Play
  • Development-only unlock: localStorage.setItem('polytalk-premium', '1') (documented, not a real payment)

Still required in Play Console

Sondre still needs to create the one-time product polytalk_premium and set the price. See docs/play-premium.md for high-level Console, license-tester, and local unlock notes.

Version was not bumped. A new Android upload will need an appVersionCode bump when you ship this TWA change.

Verification

  • ng test --watch=false --browsers=ChromeHeadless: 71 passed
  • npx playwright test e2e/polytalk.spec.ts --project=chromium: 22 passed
  • Browser-checked locked teaser, Settings/About restore fallback, and localStorage unlock showing 49 words
Open in Web Open in Cursor 

cursoragent and others added 2 commits August 25, 2026 22:47
Gate extra words, numbers, and sentences behind a one-time
polytalk_premium purchase. Android TWA uses Digital Goods plus
Payment Request; web shows a Play listing fallback and a documented
localStorage development unlock.

Co-authored-by: SondreB <sondre@outlook.com>
The last h2 is now the premium card title, so assert Contact by heading text instead of last-of-type.

Co-authored-by: SondreB <sondre@outlook.com>
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.

2 participants