Problem
Google Play rejected our latest release for missing Prominent Disclosure on BACKGROUND_LOCATION. Our custom disclosure modal used to render before the OS permission prompt, but it now no longer fires in the canAskAgain === false branch of the GPS distance flow.
In BackgroundLocationPermissionsFlow/index.android.tsx and index.ios.tsx, once foreground or background location has been denied with "don't ask again", checkPermissions() calls onDeny() immediately without rendering any modal. Returning users — and Google reviewers retrying — therefore see nothing before being routed away.
Parent issue: https://github.com/Expensify/Expensify/issues/639340
Solution
Render the disclosure modal before onDeny() in the bypass branches on both Android and iOS, so the user always sees a custom disclosure (with appropriate "open device settings" CTA when canAskAgain is false) before the flow proceeds.
Problem
Google Play rejected our latest release for missing Prominent Disclosure on
BACKGROUND_LOCATION. Our custom disclosure modal used to render before the OS permission prompt, but it now no longer fires in thecanAskAgain === falsebranch of the GPS distance flow.In
BackgroundLocationPermissionsFlow/index.android.tsxandindex.ios.tsx, once foreground or background location has been denied with "don't ask again",checkPermissions()callsonDeny()immediately without rendering any modal. Returning users — and Google reviewers retrying — therefore see nothing before being routed away.Parent issue: https://github.com/Expensify/Expensify/issues/639340
Solution
Render the disclosure modal before
onDeny()in the bypass branches on both Android and iOS, so the user always sees a custom disclosure (with appropriate "open device settings" CTA whencanAskAgainis false) before the flow proceeds.