Skip to content

Google Play rejection: no prominent disclosure before runtime permission requests #67

Description

@Miggets7

Problem

Google Play rejected the Generic App under the User Data policy. Feedback from Google:

Your app is not compliant with the Prominent Disclosure and Consent Requirement of the User Data policy.

Requests for in-app user consent and runtime permission are not immediately preceded by an in-app disclosure.
https://lh3.googleusercontent.com/JRvvUVuQRLfznKT3iwzTwka9lHwvvggAdZDTd5_0TzuLB1ufmXGOmPGQ30UtUY2U6w=s1048

Their review video shows the system location dialog appearing with no in-app disclosure before it. The "Background location needed" dialog appears only after the system prompt — the reverse of what the policy requires.

Root cause

Across ORLib, explanatory dialogs are gated behind shouldShowRequestPermissionRationale, so they only appear after a first denial. First-time permission requests go straight to the system dialog. Affected sites:

  • GeofenceProvider — fine + background location (the flagged flow)
  • OrMainActivity — WebView geolocation, POST_NOTIFICATIONS, WRITE_EXTERNAL_STORAGE for downloads
  • QrScannerActivity — camera
  • BleProvider / ESPProvisionProvider — Bluetooth (and location below Android 12)

Required

Policy requires an in-app disclosure immediately before each runtime permission prompt: what data is collected and how it is used, with an affirmative user action before the system dialog. Background location wording must include the equivalent of "even when the app is closed or not in use".

Fix in #66.

Metadata

Metadata

Assignees

Labels

EnhancementNew feature or request

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions