Skip to content

sync: promote develop to staging - #5

Merged
mnelson3 merged 2 commits into
stagingfrom
develop
Oct 2, 2026
Merged

mnelson3 merged 2 commits into
stagingfrom
develop

Conversation

@mnelson3

@mnelson3 mnelson3 commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Promote restore-message fix, committed store screenshots, and release lane fixes.

🤖 Generated with Claude Code

mnelson3 and others added 2 commits October 2, 2026 15:54
The Restore Purchases button always showed 'Purchases restored.' even
when nothing was restored. Wait for the entitlement to arrive on the
store's purchase stream and say so either way.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@mnelson3
mnelson3 merged commit 08e8678 into staging Oct 2, 2026
3 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review


P2 Badge Correct the advertised transmission count

This store screenshot advertises “Twelve transmissions,” while the embedded app screen says “TRANSMISSION 1 OF 50” and the campaign in lib/intercept/transmission.dart contains the 50-transmission set. Because this committed asset is uploaded directly by the Fastlane metadata lane, the public App Store listing would contain contradictory and materially inaccurate content; regenerate it with the actual count.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +236 to +238
message = await _restoreAndConfirm()
? 'Purchase restored. Ads are removed.'
: 'No previous purchase found for this Apple Account.';

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Distinguish an unavailable store from no prior purchase

When the App Store is unavailable, IapEntitlementService.restore() sees isAvailable() == false and returns normally without emitting an entitlement event, so this branch waits six seconds and tells the user that no previous purchase exists. The new connectivity message is only reached for thrown exceptions and therefore misses this normal offline/unavailable path; propagate the store-availability result or throw from the entitlement service before selecting the “no previous purchase” message.

Useful? React with 👍 / 👎.

Comment on lines 233 to +236
Future<void> _restore(BuildContext context) async {
await entitlement.restore();
String message;
try {
message = await _restoreAndConfirm()

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Block overlapping restore attempts

When there is no purchase to restore, this call now remains pending for six seconds while the Restore Purchases button stays enabled. A second tap starts another native restore, timer, and stream listener; one entitlement event then makes every invocation enqueue its own success snackbar, while the no-purchase case similarly queues duplicate messages. Coalesce an in-flight restore or disable the button until the first attempt completes.

Useful? React with 👍 / 👎.

try {
message = await _restoreAndConfirm()
? 'Purchase restored. Ads are removed.'
: 'No previous purchase found for this Apple Account.';

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Use platform-neutral account wording

The repository explicitly keeps packages/mobile as an iOS and Android client, and Android reaches this same Settings screen through the Google Play-backed in_app_purchase service. On that platform the no-purchase result incorrectly refers to an “Apple Account”; use a platform-specific label or neutral wording such as “store account.”

Useful? React with 👍 / 👎.

This branch was successfully deployed

1 active deployment
ios-testflight — 83ee52c8 Deployed Oct 2, 2026 by mnelson3 via Build iOS App #9
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