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.
Problem
Google Play rejected the Generic App under the User Data policy. Feedback from Google:
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_STORAGEfor downloadsQrScannerActivity— cameraBleProvider/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.