Skip to content

[Internal] Add recoverable age verification gate - #16375

Draft
JorgeMucientes wants to merge 1 commit into
issue/woomob-3765-age-signals-decisionsfrom
issue/woomob-3766-age-verification-gate
Draft

[Internal] Add recoverable age verification gate#16375
JorgeMucientes wants to merge 1 commit into
issue/woomob-3765-age-signals-decisionsfrom
issue/woomob-3766-age-verification-gate

Conversation

@JorgeMucientes

Copy link
Copy Markdown
Contributor

Fixes WOOMOB-3766

Description

Adds the shared, recoverable UI for the VerificationRequired decision introduced in the first stack layer.

  • Hosts one non-cancelable Compose dialog in both Main and Login activities.
  • Opens WooCommerce in Google Play with a market:// URI and HTTPS fallback.
  • Retries once on the next Activity resume only after Play was opened, with a separate manual Retry action.
  • Keeps verification failures in the recoverable gate and never routes this state through logout or selected-site reset.
  • Retains the existing terminal restriction dialog and logout path for authoritative restrictions.
  • Includes light/dark and large-font previews.

Stack: #16374 ← this PR. The verification state remains dormant on SDK 0.0.3 and is activated by PR 3.

Test Steps

  1. Open the AgeVerificationRequiredScreenPreview previews and inspect light mode, dark mode, and 1.5× font scale.
  2. On this branch, launch logged-in and logged-out flows and confirm existing SDK 0.0.3 behavior is unchanged and no verification dialog appears.
  3. When reviewing with PR 3 stacked, return VERIFICATION_REQUIRED and confirm the dialog blocks back/outside dismissal without logging out.
  4. Tap Open Google Play, return to WooCommerce, and confirm exactly one automatic retry runs.
  5. Return VERIFICATION_REQUIRED or an error again and confirm the dialog remains; use Retry to initiate another manual attempt.

Images/gif

Compose previews are included in AgeVerificationRequiredDialogFragment.kt.

  • I have considered if this change warrants release notes and deferred them to the activation/validation PR because this UI is dormant in this layer.

@JorgeMucientes JorgeMucientes added this to the 25.4 milestone Aug 6, 2026
@JorgeMucientes JorgeMucientes added type: task An internally driven task. status: do not merge Dependent on another PR, ready for review but not ready for merge. priority: high Affects lots of customers substantially, but not critically. status: feature-flagged Behind a feature flag. Milestone is not strongly held. compose Uses Jetpack Compose framework org-team: Kiwi Kiwi team issues labels Aug 6, 2026
@dangermattic

Copy link
Copy Markdown
Collaborator
1 Error
🚫 Please ensure the PR has the category: tracks label.
2 Messages
📖

This PR contains changes to Tracks-related logic. Please ensure (author and reviewer) the following are completed:

  • The tracks events must be validated in the Tracks system.
  • Verify the internal Tracks spreadsheet has also been updated.
  • Please consider registering any new events.
  • The PR must be assigned the category: tracks label.
📖 This PR is still a Draft: some checks will be skipped.

Generated by 🚫 Danger

@wpmobilebot

Copy link
Copy Markdown
Collaborator

App Icon📲 You can test the changes from this Pull Request in WooCommerce Android by scanning the QR code below to install the corresponding build.

App NameWooCommerce Android
Platform📱 Mobile
FlavorJalapeno
Build TypeDebug
Build Number776
Version25.3-rc-1
Application IDcom.woocommerce.android.prealpha
Commit02f91f2
Installation URL4kj5bevjpq4j8
Automatticians: You can use our internal self-serve MC tool to give yourself access to those builds if needed.

import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.MaterialTheme
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Surface
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Surface
import androidx.compose.material.Text
}
}

private fun playStoreIntent(url: String) = Intent(Intent.ACTION_VIEW, Uri.parse(url))
@wpmobilebot

Copy link
Copy Markdown
Collaborator

Version 25.4 has now entered code-freeze, so the milestone of this PR has been updated to 25.5.

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

Labels

compose Uses Jetpack Compose framework org-team: Kiwi Kiwi team issues priority: high Affects lots of customers substantially, but not critically. status: do not merge Dependent on another PR, ready for review but not ready for merge. status: feature-flagged Behind a feature flag. Milestone is not strongly held. type: task An internally driven task.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants