-
Notifications
You must be signed in to change notification settings - Fork 137
Issue/woomob 1859 declared age range apis for app stores #15085
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: trunk
Are you sure you want to change the base?
Issue/woomob 1859 declared age range apis for app stores #15085
Conversation
Generated by 🚫 Danger |
Project dependencies changeslist+ New Dependencies
com.google.android.play:age-signals:0.0.2
! Upgraded Dependencies
androidx.exifinterface:exifinterface:1.4.1, (changed from 1.4.2)
com.google.android.gms:play-services-basement:18.9.0, (changed from 18.5.0)tree +--- com.google.firebase:firebase-messaging -> 25.0.1
| +--- com.google.firebase:firebase-common:22.0.1
| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.9.0 -> 1.10.2
| | | \--- com.google.android.gms:play-services-tasks:16.0.1 -> 18.2.0
-| | | \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.5.0
+| | | \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.9.0
-| | \--- com.google.android.gms:play-services-basement:18.3.0 -> 18.5.0 (*)
+| | \--- com.google.android.gms:play-services-basement:18.3.0 -> 18.9.0 (*)
| +--- com.google.firebase:firebase-iid-interop:17.1.0
-| | \--- com.google.android.gms:play-services-basement:17.0.0 -> 18.5.0 (*)
+| | \--- com.google.android.gms:play-services-basement:17.0.0 -> 18.9.0 (*)
| +--- com.google.firebase:firebase-measurement-connector:19.0.0
-| | \--- com.google.android.gms:play-services-basement:17.0.0 -> 18.5.0 (*)
+| | \--- com.google.android.gms:play-services-basement:17.0.0 -> 18.9.0 (*)
| +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0
-| | \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.5.0 (*)
+| | \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.9.0 (*)
-| +--- com.google.android.gms:play-services-basement:18.3.0 -> 18.5.0 (*)
+| +--- com.google.android.gms:play-services-basement:18.3.0 -> 18.9.0 (*)
| +--- com.google.android.gms:play-services-cloud-messaging:17.2.0
-| | \--- com.google.android.gms:play-services-basement:18.3.0 -> 18.5.0 (*)
+| | \--- com.google.android.gms:play-services-basement:18.3.0 -> 18.9.0 (*)
| \--- com.google.android.gms:play-services-stats:17.0.2
-| \--- com.google.android.gms:play-services-basement:18.0.0 -> 18.5.0 (*)
+| \--- com.google.android.gms:play-services-basement:18.0.0 -> 18.9.0 (*)
+--- com.google.firebase:firebase-config -> 23.0.1
| \--- com.google.firebase:firebase-abt:21.1.1
-| \--- com.google.android.gms:play-services-basement:18.1.0 -> 18.5.0 (*)
+| \--- com.google.android.gms:play-services-basement:18.1.0 -> 18.9.0 (*)
+--- com.google.firebase:firebase-analytics -> 23.0.0
| +--- com.google.android.gms:play-services-measurement:23.0.0
| | +--- com.google.android.gms:play-services-ads-identifier:18.0.0
-| | | \--- com.google.android.gms:play-services-basement:18.0.0 -> 18.5.0 (*)
+| | | \--- com.google.android.gms:play-services-basement:18.0.0 -> 18.9.0 (*)
-| | +--- com.google.android.gms:play-services-basement:18.5.0 (*)
+| | +--- com.google.android.gms:play-services-basement:18.5.0 -> 18.9.0 (*)
| | +--- com.google.android.gms:play-services-measurement-base:23.0.0
-| | | \--- com.google.android.gms:play-services-basement:18.5.0 (*)
+| | | \--- com.google.android.gms:play-services-basement:18.5.0 -> 18.9.0 (*)
| | +--- com.google.android.gms:play-services-measurement-impl:23.0.0
-| | | \--- com.google.android.gms:play-services-basement:18.5.0 (*)
+| | | \--- com.google.android.gms:play-services-basement:18.5.0 -> 18.9.0 (*)
| | \--- com.google.android.gms:play-services-measurement-sdk-api:23.0.0
-| | \--- com.google.android.gms:play-services-basement:18.5.0 (*)
+| | \--- com.google.android.gms:play-services-basement:18.5.0 -> 18.9.0 (*)
| +--- com.google.android.gms:play-services-measurement-api:23.0.0
-| | \--- com.google.android.gms:play-services-basement:18.5.0 (*)
+| | \--- com.google.android.gms:play-services-basement:18.5.0 -> 18.9.0 (*)
| \--- com.google.android.gms:play-services-measurement-sdk:23.0.0
-| \--- com.google.android.gms:play-services-basement:18.5.0 (*)
+| \--- com.google.android.gms:play-services-basement:18.5.0 -> 18.9.0 (*)
+--- com.google.android.gms:play-services-auth:21.4.0
| +--- com.google.android.gms:play-services-auth-api-phone:18.0.2
-| | \--- com.google.android.gms:play-services-basement:18.0.2 -> 18.5.0 (*)
+| | \--- com.google.android.gms:play-services-basement:18.0.2 -> 18.9.0 (*)
| +--- com.google.android.gms:play-services-auth-base:18.0.10
-| | \--- com.google.android.gms:play-services-basement:18.2.0 -> 18.5.0 (*)
+| | \--- com.google.android.gms:play-services-basement:18.2.0 -> 18.9.0 (*)
-| +--- com.google.android.gms:play-services-basement:18.5.0 (*)
+| +--- com.google.android.gms:play-services-basement:18.5.0 -> 18.9.0 (*)
| \--- com.google.android.gms:play-services-fido:20.0.1 -> 21.0.0
-| \--- com.google.android.gms:play-services-basement:18.3.0 -> 18.5.0 (*)
+| \--- com.google.android.gms:play-services-basement:18.3.0 -> 18.9.0 (*)
++--- com.google.android.play:age-signals:0.0.2
+| +--- com.google.android.gms:play-services-basement:18.9.0 (*)
+| +--- com.google.android.gms:play-services-tasks:18.2.0 (*)
+| \--- com.google.android.play:core-common:2.0.4
+--- project :libs:fluxc
-| \--- androidx.exifinterface:exifinterface:1.4.2
+| \--- androidx.exifinterface:exifinterface:1.4.1
+--- project :libs:login
| +--- com.github.bumptech.glide:glide:5.0.5
-| | \--- androidx.exifinterface:exifinterface:1.3.6 -> 1.4.2 (*)
+| | \--- androidx.exifinterface:exifinterface:1.3.6 -> 1.4.1 (*)
| \--- androidx.credentials:credentials-play-services-auth:1.5.0
| +--- com.google.android.gms:play-services-auth-blockstore:16.4.0
-| | \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.5.0 (*)
+| | \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.9.0 (*)
| \--- com.google.android.gms:play-services-identity-credentials:16.0.0-alpha02
-| \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.5.0 (*)
+| \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.9.0 (*)
+--- project :libs:cardreader
| \--- com.stripe:stripeterminal-taptopay:4.7.5
| \--- com.google.android.play:integrity:1.1.0
-| \--- com.google.android.gms:play-services-basement:18.1.0 -> 18.5.0 (*)
+| \--- com.google.android.gms:play-services-basement:18.1.0 -> 18.9.0 (*)
+--- com.google.android.play:app-update:2.1.0
-| \--- com.google.android.gms:play-services-basement:18.1.0 -> 18.5.0 (*)
+| \--- com.google.android.gms:play-services-basement:18.1.0 -> 18.9.0 (*)
+--- com.google.android.play:review:2.0.2
-| \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.5.0 (*)
+| \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.9.0 (*)
+--- com.google.android.gms:play-services-code-scanner:16.1.0
-| +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.5.0 (*)
+| +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.9.0 (*)
| \--- com.google.mlkit:barcode-scanning-common:17.0.0
-| +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.5.0 (*)
+| +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.9.0 (*)
| \--- com.google.mlkit:vision-common:17.0.0 -> 17.3.0
-| +--- androidx.exifinterface:exifinterface:1.0.0 -> 1.4.2 (*)
+| +--- androidx.exifinterface:exifinterface:1.0.0 -> 1.4.1 (*)
-| +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.5.0 (*)
+| +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.9.0 (*)
| \--- com.google.mlkit:common:18.6.0 -> 18.11.0
-| \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.5.0 (*)
+| \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.9.0 (*)
+--- com.google.mlkit:text-recognition:16.0.1
-| +--- com.google.android.gms:play-services-basement:18.4.0 -> 18.5.0 (*)
+| +--- com.google.android.gms:play-services-basement:18.4.0 -> 18.9.0 (*)
| +--- com.google.android.gms:play-services-mlkit-text-recognition:19.0.1
-| | +--- com.google.android.gms:play-services-basement:18.4.0 -> 18.5.0 (*)
+| | +--- com.google.android.gms:play-services-basement:18.4.0 -> 18.9.0 (*)
| | \--- com.google.android.gms:play-services-mlkit-text-recognition-common:19.1.0
-| | +--- com.google.android.gms:play-services-basement:18.4.0 -> 18.5.0 (*)
+| | +--- com.google.android.gms:play-services-basement:18.4.0 -> 18.9.0 (*)
| | \--- com.google.mlkit:vision-interfaces:16.3.0
-| | \--- com.google.android.gms:play-services-basement:18.1.0 -> 18.5.0 (*)
+| | \--- com.google.android.gms:play-services-basement:18.1.0 -> 18.9.0 (*)
| \--- com.google.mlkit:text-recognition-bundled-common:17.0.0
-| \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.5.0 (*)
+| \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.9.0 (*)
+--- com.google.android.gms:play-services-mlkit-text-recognition-japanese:16.0.1
-| \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.5.0 (*)
+| \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.9.0 (*)
+--- com.google.android.gms:play-services-mlkit-text-recognition-chinese:16.0.1
-| \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.5.0 (*)
+| \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.9.0 (*)
+--- com.google.android.gms:play-services-mlkit-text-recognition-korean:16.0.1
-| \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.5.0 (*)
+| \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.9.0 (*)
+--- com.google.android.gms:play-services-mlkit-subject-segmentation:16.0.0-beta1
-| \--- com.google.android.gms:play-services-basement:18.1.0 -> 18.5.0 (*)
+| \--- com.google.android.gms:play-services-basement:18.1.0 -> 18.9.0 (*)
+--- com.google.mlkit:barcode-scanning:17.3.0
-| +--- com.google.android.gms:play-services-basement:18.4.0 -> 18.5.0 (*)
+| +--- com.google.android.gms:play-services-basement:18.4.0 -> 18.9.0 (*)
| \--- com.google.android.gms:play-services-mlkit-barcode-scanning:18.3.1
-| \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.5.0 (*)
+| \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.9.0 (*)
+--- com.google.android.gms:play-services-wearable:19.0.0
-| \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.5.0 (*)
+| \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.9.0 (*)
+--- com.zendesk:support:5.5.1
| \--- com.squareup.picasso:picasso:2.8
-| \--- androidx.exifinterface:exifinterface:1.0.0 -> 1.4.2 (*)
+| \--- androidx.exifinterface:exifinterface:1.0.0 -> 1.4.1 (*)
+--- io.coil-kt:coil-compose:2.7.0
| \--- io.coil-kt:coil-compose-base:2.7.0
| \--- io.coil-kt:coil-base:2.7.0
-| \--- androidx.exifinterface:exifinterface:1.3.7 -> 1.4.2 (*)
+| \--- androidx.exifinterface:exifinterface:1.3.7 -> 1.4.1 (*)
+--- androidx.camera:camera-lifecycle:1.5.1
| \--- androidx.camera:camera-core:1.5.1
-| \--- androidx.exifinterface:exifinterface:1.3.2 -> 1.4.2 (*)
+| \--- androidx.exifinterface:exifinterface:1.3.2 -> 1.4.1 (*) |
📲 You can test the changes from this Pull Request in WooCommerce-Wear Android by scanning the QR code below to install the corresponding build.
|
Refactor the legacy viewmodel implementation that was previously added to LoginActivity
🤖 Test Failure AnalysisYour tests failed. Claude has analyzed the failures - check the annotation for details. |
|
📲 You can test the changes from this Pull Request in WooCommerce Android by scanning the QR code below to install the corresponding build.
|
Additionally display the restricted access dialog from LoginActivity.kt
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## trunk #15085 +/- ##
=========================================
Coverage 38.62% 38.63%
- Complexity 10401 10412 +11
=========================================
Files 2169 2171 +2
Lines 123459 123513 +54
Branches 17039 17047 +8
=========================================
+ Hits 47691 47723 +32
- Misses 70958 70976 +18
- Partials 4810 4814 +4 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
This is a fairly critical change I'd also would like to ask if someone from Android in Peacock could give a look to this. Would really appreciate if one of you can take a look into this 🙏🏼 @malinajirka @kidinov @samiuelson. |
Part of WOOMOB-1859
Description
This PR integrates Play Age Signals API in Woo Android.
The added logic works as follows:
When is a user ineligible to use WooCommerce app? Discussion p2y3YZ-anO-p2#comment-24048.
According to WooCommerce TOS our app usage is expected for 13+ years old users:
With the TOS in mind the logic to determine if a user is eligible will be based on the 4 different user statuses the API provides:
userStatus, we'll grant access by default.Test Steps
We currently can't test in prod, because we app needs to be downloaded from Google Play in order for the API to work. For that Google provides a
FakeAgeSignalsManager()that enables us to test the different scenarios.Apply the following patch in order to simulate the different API responses we'll get from the Play Signals API:
Use_FakeAgeSignalsManager_to_simulate_supervised_users.patch
For each of the following tests you'll need to open
AgeSignalsClient.kt.and update the mockeduserStatusTest Case 1: User 18+ (Verified)
VERIFIEDTest Case 2: Approved 13+ user (Supervised)
userStatusto SUPERVISEDageUpperto 14 (use setAgeUpper(14))Test Case 3: Supervised user under 13
userStatusto SUPERVISED_APPROVAL_PENDINGageUpperto 12Test Case 4: Supervised user approval denied
userStatusto SUPERVISED_APPROVAL_DENIEDImages/gif
User logged in eventually looses access
Screen_recording_20251211_174346.mp4
Once access is lost dialog will prevent user from accessing the app
Screen_recording_20251211_174412.mp4
RELEASE-NOTES.txtif necessary. Use the "[Internal]" label for non-user-facing changes.