Is your feature request related to a problem? Please describe.
There are a number of laws being passed in jurisdictions that affect Oppia Android which require some level of age verification for users. This is particularly noteworthy for Brazil since we do have a lot of beta testers reporting from Brazil.
Fundamentally, the app doesn't quite fit under Brazil's specific statute for requiring the additional checks (see Brazil's Digital ECA for more specifics), but Google Play will likely require us to at least ingest the Play Age Signals API during application startup even though we won't actually be making any changes to app behavior because of it.
Describe the solution you'd like
There are several changes needed here:
- We will need to update our privacy policy on the site and in the app (since they match) to include specific language about how we use the signals API strictly for local regulatory compliance, that the data is only processed locally on the device, and that it's never used for profiling or analytics.
- We need to actually integrate with the Signals API which will require some technical investigation. It's expected we can depend specifically on this artifact: https://maven.google.com/web/index.html?q=com.google.android.play#com.google.android.play:age-signals:0.0.3. https://developer.android.com/google/play/age-signals/overview has some more details on integration. Fortunately it seems that this is a standard Java library with no required Kotlin version so we shouldn't run into integration problems there.
- We will need to validate that this is working correctly (automated testing seems easy since there should be a
FakeAgeSignalsManager that can be used but manual testing steps need investigation).
- We are also going to need to make changes in the Play Console itself to attest this integration as the specific Play Console requirement.
Main challenges:
- The new API does not support Lollipop (it's SDK 23+) due to those older devices reaching end-of-life for Google Play Services. We do have a few 5.x users, though I'm not certain how many are specifically in Brazil. To keep things simple we will proceed with the implementation and version-guard the API integration with M+. We may need need to perform a manifest override, as well (but it's not clear yet if we will), e.g.:
<uses-sdk tools:overrideLibrary="com.google.android.play.agesignals" />
- We need to integrate this in a way that doesn't require the app to use Play Store (i.e. works without Google Play Services). That may just require catching a certain exception, but this needs more investigation as well.
Describe alternatives you've considered
N/A -- We must integrate with this API.
Additional context
This will need to be a GA blocker since the app is officially moving out of a testing phase, and not integrating this may make it challenging to participate in the "Designed for Families" program.
Is your feature request related to a problem? Please describe.
There are a number of laws being passed in jurisdictions that affect Oppia Android which require some level of age verification for users. This is particularly noteworthy for Brazil since we do have a lot of beta testers reporting from Brazil.
Fundamentally, the app doesn't quite fit under Brazil's specific statute for requiring the additional checks (see Brazil's Digital ECA for more specifics), but Google Play will likely require us to at least ingest the Play Age Signals API during application startup even though we won't actually be making any changes to app behavior because of it.
Describe the solution you'd like
There are several changes needed here:
FakeAgeSignalsManagerthat can be used but manual testing steps need investigation).Main challenges:
Describe alternatives you've considered
N/A -- We must integrate with this API.
Additional context
This will need to be a GA blocker since the app is officially moving out of a testing phase, and not integrating this may make it challenging to participate in the "Designed for Families" program.