Skip to content
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

Fix Part of #4938: Profile Configuration and Migration #5387

Open
wants to merge 361 commits into
base: develop
Choose a base branch
from

Conversation

adhiamboperes
Copy link
Collaborator

@adhiamboperes adhiamboperes commented Apr 15, 2024

Explanation

Fix Part of #4938: Configure profile new creation and migration of existing profiles.

When Onboarding V2 is Enabled:

Sole Learner Onboarding

Once the learner has created a profile, and have landed on the introduction screen, the profile is marked as started_profile_oboarding, and a corresponding event log is added.
This configuration facilitates the user resuming onboarding, if they didn't complete it the first time round.

After selecting the audio language, the profile is logged in, and routed to the home screen.
On the home screen, the profile is updated to indicate completed_profile_oboarding and 3 events are expected for the first time login flow, in order:

  1. Open home event
  2. Profile Onboarding Completed event
  3. App Onboarding Completed event

The App Onboarding Completed event is only logged for the first profile on the device, while the Profile Onboarding Completed event is logged for every profile on first login.

Supervisor Profile Onboarding

From the Profile Type screen, the supervisor flow launches the profile chooser screen, showing the Admin profile, which on click launches the homescreen.

The same 3 events as above are expected for the first time login flow.

Login Routing

Returning users should be routed to an appropriate landing page as follows:
A sole learner profile will be routed directly to their home screen

Returning admin profiles and non-solo learner profiles will always be routed to the profile selection screen

A sole learner who started, but did not finish onboarding would be routed to the Introduction Screen.

Returning sole and none-sole learners created when the feature flag was disabled, would be directed to the onboarding screen. Profile migration happens in place when profiles are fetched by the controller.

Profile Creation and Migration

For migration purposes, the getProfile() function has been updated to compute the profileType field when the feature flag is enabled. Existing Admin profiles will be migrated to have the SUPERVISOR type, existing Admin profiles with no pins set will be migrated to have the SOLE_LEARNER type while the remaining accounts will be of the ADDITIONAL_LEARNER type. New profiles created will also contain the respective enum type based on the intended categorization.
Flag off then on:
device-2024-06-21-073957.webm

Flag on then off:
device-2024-06-21-074114.webm

Misc

  • There are general Kdoc formatting fixes all over the place.
  • ProfileTestHelper Has been modified to create a sole, pinless admin profile.
  • There are other minor changes to fix tests that have been impacted by changes in this PR.
  • The changes in DeprecationController are purely visual to make the code more readable.
  • ClassroomListFragmentTest required refactor to support toggling multiple feature flags.

Profile Onboarding Events

Onborading Flow v1 Onboarding Flow v2

Essential Checklist

  • The PR title and explanation each start with "Fix #bugnum: " (If this PR fixes part of an issue, prefix the title with "Fix part of #bugnum: ...".)
  • Any changes to scripts/assets files have their rationale included in the PR explanation.
  • The PR follows the style guide.
  • The PR does not contain any unnecessary code changes from Android Studio (reference).
  • The PR is made from a branch that's not called "develop" and is up-to-date with "develop".
  • The PR is assigned to the appropriate reviewers (reference).

@adhiamboperes adhiamboperes self-assigned this Apr 15, 2024
@adhiamboperes adhiamboperes requested review from a team as code owners April 15, 2024 22:12
@adhiamboperes adhiamboperes requested review from BenHenning and removed request for a team April 15, 2024 22:12
Copy link

oppiabot bot commented Apr 22, 2024

Hi @adhiamboperes, I'm going to mark this PR as stale because it hasn't had any updates for 7 days. If no further activity occurs within 7 days, it will be automatically closed so that others can take up the issue.
If you are still working on this PR, please make a follow-up commit within 3 days (and submit it for review, if applicable). Please also let us know if you are stuck so we can help you!

@oppiabot oppiabot bot added the stale Corresponds to items that haven't seen a recent update and may be automatically closed. label Apr 22, 2024
@oppiabot oppiabot bot closed this Apr 29, 2024
…boarding-learner-intro-screen

# Conflicts:
#	app/src/main/java/org/oppia/android/app/activity/ActivityComponentImpl.kt
#	app/src/main/java/org/oppia/android/app/fragment/FragmentComponentImpl.kt
#	app/src/main/java/org/oppia/android/app/onboarding/CreateProfileFragmentPresenter.kt
#	app/src/main/java/org/oppia/android/app/onboarding/OnboardingFragment.kt
#	app/src/main/java/org/oppia/android/app/onboarding/OnboardingFragmentPresenter.kt
#	app/src/main/res/values/styles.xml
#	app/src/sharedTest/java/org/oppia/android/app/onboarding/CreateProfileFragmentTest.kt
#	scripts/assets/test_file_exemptions.textproto
…n' into onboarding-audio-language-screen

# Conflicts:
#	app/src/main/java/org/oppia/android/app/onboarding/CreateProfileActivity.kt
#	app/src/main/java/org/oppia/android/app/onboarding/CreateProfileActivityPresenter.kt
#	app/src/main/java/org/oppia/android/app/onboarding/CreateProfileFragment.kt
#	app/src/main/java/org/oppia/android/app/onboarding/CreateProfileFragmentPresenter.kt
#	app/src/main/java/org/oppia/android/app/onboarding/IntroActivity.kt
#	app/src/main/java/org/oppia/android/app/onboarding/IntroActivityPresenter.kt
#	app/src/main/java/org/oppia/android/app/onboarding/IntroFragment.kt
#	app/src/main/java/org/oppia/android/app/onboarding/OnboardingProfileTypeActivity.kt
#	app/src/main/java/org/oppia/android/app/onboarding/OnboardingProfileTypeActivityPresenter.kt
#	app/src/main/java/org/oppia/android/app/onboarding/OnboardingProfileTypeFragment.kt
#	app/src/main/java/org/oppia/android/app/onboarding/OnboardingProfileTypeFragmentPresenter.kt
#	app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt
#	scripts/assets/test_file_exemptions.textproto
Copy link

oppiabot bot commented Oct 30, 2024

Hi @adhiamboperes, I'm going to mark this PR as stale because it hasn't had any updates for 7 days. If no further activity occurs within 7 days, it will be automatically closed so that others can take up the issue.
If you are still working on this PR, please make a follow-up commit within 3 days (and submit it for review, if applicable). Please also let us know if you are stuck so we can help you!

@oppiabot oppiabot bot added the stale Corresponds to items that haven't seen a recent update and may be automatically closed. label Oct 30, 2024
Copy link

github-actions bot commented Nov 2, 2024

APK & AAB differences analysis

Note that this is a summarized snapshot. See the CI artifacts for detailed differences.

Dev

Expand to see flavor specifics

Universal APK

APK file size: 19 MiB (old), 19 MiB (new), 6929 bytes (Added)

APK download size (estimated): 17 MiB (old), 17 MiB (new), 12 KiB (Added)

Method count: 259758 (old), 260320 (new), 562 (Added)

Features: 2 (old), 2 (new), 0 (No change)

Permissions: 6 (old), 6 (new), 0 (No change)

Resources: 6816 (old), 6815 (new), 1 (Removed)

  • Anim: 43 (old), 43 (new), 0 (No change)
  • Animator: 26 (old), 26 (new), 0 (No change)
  • Array: 15 (old), 15 (new), 0 (No change)
  • Attr: 922 (old), 922 (new), 0 (No change)
  • Bool: 9 (old), 9 (new), 0 (No change)
  • Color: 967 (old), 967 (new), 0 (No change)
  • Dimen: 1048 (old), 1048 (new), 0 (No change)
  • Drawable: 380 (old), 379 (new), 1 (Removed):
    • drawable/splash_image (removed)
  • Id: 1275 (old), 1275 (new), 0 (No change)
  • Integer: 37 (old), 37 (new), 0 (No change)
  • Interpolator: 11 (old), 11 (new), 0 (No change)
  • Layout: 380 (old), 380 (new), 0 (No change)
  • Menu: 3 (old), 3 (new), 0 (No change)
  • Mipmap: 1 (old), 1 (new), 0 (No change)
  • Plurals: 10 (old), 10 (new), 0 (No change)
  • Raw: 2 (old), 2 (new), 0 (No change)
  • String: 850 (old), 850 (new), 0 (No change)
  • Style: 831 (old), 831 (new), 0 (No change)
  • Xml: 6 (old), 6 (new), 0 (No change)

Lesson assets: 111 (old), 111 (new), 0 (No change)

AAB differences

Expand to see AAB specifics

Supported configurations:

  • hdpi (same)
  • ldpi (same)
  • mdpi (same)
  • tvdpi (same)
  • xhdpi (same)
  • xxhdpi (same)
  • xxxhdpi (same)

Base APK

APK file size: 18 MiB (old), 18 MiB (new), 6957 bytes (Added)
APK download size (estimated): 17 MiB (old), 17 MiB (new), 8930 bytes (Added)
Method count: 259758 (old), 260320 (new), 562 (Added)
Resources: 6766 (old), 6765 (new), 1 (Removed)

  • Drawable: 335 (old), 334 (new), 1 (Removed)

Configuration hdpi

APK file size: 50 KiB (old), 50 KiB (new), 0 bytes (No change)
APK download size (estimated): 18 KiB (old), 18 KiB (new), 0 bytes (No change)

Configuration ldpi

APK file size: 49 KiB (old), 49 KiB (new), 0 bytes (No change)
APK download size (estimated): 14 KiB (old), 14 KiB (new), 0 bytes (No change)

Configuration mdpi

APK file size: 45 KiB (old), 45 KiB (new), 0 bytes (No change)
APK download size (estimated): 14 KiB (old), 14 KiB (new), 0 bytes (No change)

Configuration tvdpi

APK file size: 86 KiB (old), 86 KiB (new), 0 bytes (No change)
APK download size (estimated): 29 KiB (old), 29 KiB (new), 0 bytes (No change)

Configuration xhdpi

APK file size: 57 KiB (old), 57 KiB (new), 0 bytes (No change)
APK download size (estimated): 21 KiB (old), 21 KiB (new), 0 bytes (No change)

Configuration xxhdpi

APK file size: 63 KiB (old), 63 KiB (new), 0 bytes (No change)
APK download size (estimated): 29 KiB (old), 29 KiB (new), 0 bytes (No change)

Configuration xxxhdpi

APK file size: 63 KiB (old), 63 KiB (new), 0 bytes (No change)
APK download size (estimated): 28 KiB (old), 28 KiB (new), 0 bytes (No change)

Alpha

Expand to see flavor specifics

Universal APK

APK file size: 11 MiB (old), 11 MiB (new), 851 bytes (Removed)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 561 bytes (Added)

Method count: 116054 (old), 116243 (new), 189 (Added)

Features: 2 (old), 2 (new), 0 (No change)

Permissions: 6 (old), 6 (new), 0 (No change)

Resources: 5784 (old), 5783 (new), 1 (Removed)

  • Anim: 33 (old), 33 (new), 0 (No change)
  • Animator: 24 (old), 24 (new), 0 (No change)
  • Array: 14 (old), 14 (new), 0 (No change)
  • Attr: 888 (old), 888 (new), 0 (No change)
  • Bool: 8 (old), 8 (new), 0 (No change)
  • Color: 820 (old), 820 (new), 0 (No change)
  • Dimen: 780 (old), 780 (new), 0 (No change)
  • Drawable: 342 (old), 341 (new), 1 (Removed):
    • drawable/splash_image (removed)
  • Id: 1221 (old), 1221 (new), 0 (No change)
  • Integer: 32 (old), 32 (new), 0 (No change)
  • Interpolator: 11 (old), 11 (new), 0 (No change)
  • Layout: 343 (old), 343 (new), 0 (No change)
  • Menu: 1 (old), 1 (new), 0 (No change)
  • Mipmap: 1 (old), 1 (new), 0 (No change)
  • Plurals: 10 (old), 10 (new), 0 (No change)
  • String: 783 (old), 783 (new), 0 (No change)
  • Style: 472 (old), 472 (new), 0 (No change)
  • Xml: 1 (old), 1 (new), 0 (No change)

Lesson assets: 111 (old), 111 (new), 0 (No change)

AAB differences

Expand to see AAB specifics

Supported configurations:

  • hdpi (same)
  • ldpi (same)
  • mdpi (same)
  • tvdpi (same)
  • xhdpi (same)
  • xxhdpi (same)
  • xxxhdpi (same)

Base APK

APK file size: 11 MiB (old), 11 MiB (new), 807 bytes (Removed)
APK download size (estimated): 10 MiB (old), 10 MiB (new), 5228 bytes (Added)
Method count: 116054 (old), 116243 (new), 189 (Added)
Resources: 5741 (old), 5740 (new), 1 (Removed)

  • Drawable: 302 (old), 301 (new), 1 (Removed)

Configuration hdpi

APK file size: 43 KiB (old), 43 KiB (new), 0 bytes (No change)
APK download size (estimated): 17 KiB (old), 17 KiB (new), 0 bytes (No change)

Configuration ldpi

APK file size: 44 KiB (old), 44 KiB (new), 0 bytes (No change)
APK download size (estimated): 13 KiB (old), 13 KiB (new), 0 bytes (No change)

Configuration mdpi

APK file size: 38 KiB (old), 38 KiB (new), 0 bytes (No change)
APK download size (estimated): 13 KiB (old), 13 KiB (new), 0 bytes (No change)

Configuration tvdpi

APK file size: 73 KiB (old), 73 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Configuration xhdpi

APK file size: 50 KiB (old), 50 KiB (new), 0 bytes (No change)
APK download size (estimated): 20 KiB (old), 20 KiB (new), 0 bytes (No change)

Configuration xxhdpi

APK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change)
APK download size (estimated): 28 KiB (old), 28 KiB (new), 0 bytes (No change)

Configuration xxxhdpi

APK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Beta

Expand to see flavor specifics

Universal APK

APK file size: 11 MiB (old), 11 MiB (new), 1903 bytes (Removed)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 5982 bytes (Added)

Method count: 116060 (old), 116249 (new), 189 (Added)

Features: 2 (old), 2 (new), 0 (No change)

Permissions: 6 (old), 6 (new), 0 (No change)

Resources: 5784 (old), 5783 (new), 1 (Removed)

  • Anim: 33 (old), 33 (new), 0 (No change)
  • Animator: 24 (old), 24 (new), 0 (No change)
  • Array: 14 (old), 14 (new), 0 (No change)
  • Attr: 888 (old), 888 (new), 0 (No change)
  • Bool: 8 (old), 8 (new), 0 (No change)
  • Color: 820 (old), 820 (new), 0 (No change)
  • Dimen: 780 (old), 780 (new), 0 (No change)
  • Drawable: 342 (old), 341 (new), 1 (Removed):
    • drawable/splash_image (removed)
  • Id: 1221 (old), 1221 (new), 0 (No change)
  • Integer: 32 (old), 32 (new), 0 (No change)
  • Interpolator: 11 (old), 11 (new), 0 (No change)
  • Layout: 343 (old), 343 (new), 0 (No change)
  • Menu: 1 (old), 1 (new), 0 (No change)
  • Mipmap: 1 (old), 1 (new), 0 (No change)
  • Plurals: 10 (old), 10 (new), 0 (No change)
  • String: 783 (old), 783 (new), 0 (No change)
  • Style: 472 (old), 472 (new), 0 (No change)
  • Xml: 1 (old), 1 (new), 0 (No change)

Lesson assets: 111 (old), 111 (new), 0 (No change)

AAB differences

Expand to see AAB specifics

Supported configurations:

  • hdpi (same)
  • ldpi (same)
  • mdpi (same)
  • tvdpi (same)
  • xhdpi (same)
  • xxhdpi (same)
  • xxxhdpi (same)

Base APK

APK file size: 11 MiB (old), 11 MiB (new), 1867 bytes (Removed)
APK download size (estimated): 10 MiB (old), 10 MiB (new), 4381 bytes (Added)
Method count: 116060 (old), 116249 (new), 189 (Added)
Resources: 5741 (old), 5740 (new), 1 (Removed)

  • Drawable: 302 (old), 301 (new), 1 (Removed)

Configuration hdpi

APK file size: 43 KiB (old), 43 KiB (new), 0 bytes (No change)
APK download size (estimated): 17 KiB (old), 17 KiB (new), 0 bytes (No change)

Configuration ldpi

APK file size: 44 KiB (old), 44 KiB (new), 0 bytes (No change)
APK download size (estimated): 13 KiB (old), 13 KiB (new), 0 bytes (No change)

Configuration mdpi

APK file size: 38 KiB (old), 38 KiB (new), 0 bytes (No change)
APK download size (estimated): 13 KiB (old), 13 KiB (new), 0 bytes (No change)

Configuration tvdpi

APK file size: 73 KiB (old), 73 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Configuration xhdpi

APK file size: 50 KiB (old), 50 KiB (new), 0 bytes (No change)
APK download size (estimated): 20 KiB (old), 20 KiB (new), 0 bytes (No change)

Configuration xxhdpi

APK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change)
APK download size (estimated): 28 KiB (old), 28 KiB (new), 0 bytes (No change)

Configuration xxxhdpi

APK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Ga

Expand to see flavor specifics

Universal APK

APK file size: 11 MiB (old), 11 MiB (new), 1975 bytes (Removed)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 3728 bytes (Added)

Method count: 116060 (old), 116249 (new), 189 (Added)

Features: 2 (old), 2 (new), 0 (No change)

Permissions: 6 (old), 6 (new), 0 (No change)

Resources: 5784 (old), 5783 (new), 1 (Removed)

  • Anim: 33 (old), 33 (new), 0 (No change)
  • Animator: 24 (old), 24 (new), 0 (No change)
  • Array: 14 (old), 14 (new), 0 (No change)
  • Attr: 888 (old), 888 (new), 0 (No change)
  • Bool: 8 (old), 8 (new), 0 (No change)
  • Color: 820 (old), 820 (new), 0 (No change)
  • Dimen: 780 (old), 780 (new), 0 (No change)
  • Drawable: 342 (old), 341 (new), 1 (Removed):
    • drawable/splash_image (removed)
  • Id: 1221 (old), 1221 (new), 0 (No change)
  • Integer: 32 (old), 32 (new), 0 (No change)
  • Interpolator: 11 (old), 11 (new), 0 (No change)
  • Layout: 343 (old), 343 (new), 0 (No change)
  • Menu: 1 (old), 1 (new), 0 (No change)
  • Mipmap: 1 (old), 1 (new), 0 (No change)
  • Plurals: 10 (old), 10 (new), 0 (No change)
  • String: 783 (old), 783 (new), 0 (No change)
  • Style: 472 (old), 472 (new), 0 (No change)
  • Xml: 1 (old), 1 (new), 0 (No change)

Lesson assets: 111 (old), 111 (new), 0 (No change)

AAB differences

Expand to see AAB specifics

Supported configurations:

  • hdpi (same)
  • ldpi (same)
  • mdpi (same)
  • tvdpi (same)
  • xhdpi (same)
  • xxhdpi (same)
  • xxxhdpi (same)

Base APK

APK file size: 11 MiB (old), 11 MiB (new), 1935 bytes (Removed)
APK download size (estimated): 10 MiB (old), 10 MiB (new), 3891 bytes (Added)
Method count: 116060 (old), 116249 (new), 189 (Added)
Resources: 5741 (old), 5740 (new), 1 (Removed)

  • Drawable: 302 (old), 301 (new), 1 (Removed)

Configuration hdpi

APK file size: 43 KiB (old), 43 KiB (new), 0 bytes (No change)
APK download size (estimated): 17 KiB (old), 17 KiB (new), 0 bytes (No change)

Configuration ldpi

APK file size: 44 KiB (old), 44 KiB (new), 0 bytes (No change)
APK download size (estimated): 13 KiB (old), 13 KiB (new), 0 bytes (No change)

Configuration mdpi

APK file size: 38 KiB (old), 38 KiB (new), 0 bytes (No change)
APK download size (estimated): 13 KiB (old), 13 KiB (new), 0 bytes (No change)

Configuration tvdpi

APK file size: 73 KiB (old), 73 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Configuration xhdpi

APK file size: 50 KiB (old), 50 KiB (new), 0 bytes (No change)
APK download size (estimated): 20 KiB (old), 20 KiB (new), 0 bytes (No change)

Configuration xxhdpi

APK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change)
APK download size (estimated): 28 KiB (old), 28 KiB (new), 0 bytes (No change)

Configuration xxxhdpi

APK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Copy link

github-actions bot commented Nov 5, 2024

APK & AAB differences analysis

Note that this is a summarized snapshot. See the CI artifacts for detailed differences.

Dev

Expand to see flavor specifics

Universal APK

APK file size: 19 MiB (old), 19 MiB (new), 6613 bytes (Added)

APK download size (estimated): 17 MiB (old), 17 MiB (new), 12 KiB (Added)

Method count: 259758 (old), 260320 (new), 562 (Added)

Features: 2 (old), 2 (new), 0 (No change)

Permissions: 6 (old), 6 (new), 0 (No change)

Resources: 6816 (old), 6815 (new), 1 (Removed)

  • Anim: 43 (old), 43 (new), 0 (No change)
  • Animator: 26 (old), 26 (new), 0 (No change)
  • Array: 15 (old), 15 (new), 0 (No change)
  • Attr: 922 (old), 922 (new), 0 (No change)
  • Bool: 9 (old), 9 (new), 0 (No change)
  • Color: 967 (old), 967 (new), 0 (No change)
  • Dimen: 1048 (old), 1048 (new), 0 (No change)
  • Drawable: 380 (old), 379 (new), 1 (Removed):
    • drawable/splash_image (removed)
  • Id: 1275 (old), 1275 (new), 0 (No change)
  • Integer: 37 (old), 37 (new), 0 (No change)
  • Interpolator: 11 (old), 11 (new), 0 (No change)
  • Layout: 380 (old), 380 (new), 0 (No change)
  • Menu: 3 (old), 3 (new), 0 (No change)
  • Mipmap: 1 (old), 1 (new), 0 (No change)
  • Plurals: 10 (old), 10 (new), 0 (No change)
  • Raw: 2 (old), 2 (new), 0 (No change)
  • String: 850 (old), 850 (new), 0 (No change)
  • Style: 831 (old), 831 (new), 0 (No change)
  • Xml: 6 (old), 6 (new), 0 (No change)

Lesson assets: 111 (old), 111 (new), 0 (No change)

AAB differences

Expand to see AAB specifics

Supported configurations:

  • hdpi (same)
  • ldpi (same)
  • mdpi (same)
  • tvdpi (same)
  • xhdpi (same)
  • xxhdpi (same)
  • xxxhdpi (same)

Base APK

APK file size: 18 MiB (old), 18 MiB (new), 6649 bytes (Added)
APK download size (estimated): 17 MiB (old), 17 MiB (new), 8806 bytes (Added)
Method count: 259758 (old), 260320 (new), 562 (Added)
Resources: 6766 (old), 6765 (new), 1 (Removed)

  • Drawable: 335 (old), 334 (new), 1 (Removed)

Configuration hdpi

APK file size: 50 KiB (old), 50 KiB (new), 0 bytes (No change)
APK download size (estimated): 18 KiB (old), 18 KiB (new), 0 bytes (No change)

Configuration ldpi

APK file size: 49 KiB (old), 49 KiB (new), 0 bytes (No change)
APK download size (estimated): 14 KiB (old), 14 KiB (new), 0 bytes (No change)

Configuration mdpi

APK file size: 45 KiB (old), 45 KiB (new), 0 bytes (No change)
APK download size (estimated): 14 KiB (old), 14 KiB (new), 0 bytes (No change)

Configuration tvdpi

APK file size: 86 KiB (old), 86 KiB (new), 0 bytes (No change)
APK download size (estimated): 29 KiB (old), 29 KiB (new), 0 bytes (No change)

Configuration xhdpi

APK file size: 57 KiB (old), 57 KiB (new), 0 bytes (No change)
APK download size (estimated): 21 KiB (old), 21 KiB (new), 0 bytes (No change)

Configuration xxhdpi

APK file size: 63 KiB (old), 63 KiB (new), 0 bytes (No change)
APK download size (estimated): 29 KiB (old), 29 KiB (new), 0 bytes (No change)

Configuration xxxhdpi

APK file size: 63 KiB (old), 63 KiB (new), 0 bytes (No change)
APK download size (estimated): 28 KiB (old), 28 KiB (new), 0 bytes (No change)

Alpha

Expand to see flavor specifics

Universal APK

APK file size: 11 MiB (old), 11 MiB (new), 1159 bytes (Removed)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 442 bytes (Added)

Method count: 116054 (old), 116243 (new), 189 (Added)

Features: 2 (old), 2 (new), 0 (No change)

Permissions: 6 (old), 6 (new), 0 (No change)

Resources: 5784 (old), 5783 (new), 1 (Removed)

  • Anim: 33 (old), 33 (new), 0 (No change)
  • Animator: 24 (old), 24 (new), 0 (No change)
  • Array: 14 (old), 14 (new), 0 (No change)
  • Attr: 888 (old), 888 (new), 0 (No change)
  • Bool: 8 (old), 8 (new), 0 (No change)
  • Color: 820 (old), 820 (new), 0 (No change)
  • Dimen: 780 (old), 780 (new), 0 (No change)
  • Drawable: 342 (old), 341 (new), 1 (Removed):
    • drawable/splash_image (removed)
  • Id: 1221 (old), 1221 (new), 0 (No change)
  • Integer: 32 (old), 32 (new), 0 (No change)
  • Interpolator: 11 (old), 11 (new), 0 (No change)
  • Layout: 343 (old), 343 (new), 0 (No change)
  • Menu: 1 (old), 1 (new), 0 (No change)
  • Mipmap: 1 (old), 1 (new), 0 (No change)
  • Plurals: 10 (old), 10 (new), 0 (No change)
  • String: 783 (old), 783 (new), 0 (No change)
  • Style: 472 (old), 472 (new), 0 (No change)
  • Xml: 1 (old), 1 (new), 0 (No change)

Lesson assets: 111 (old), 111 (new), 0 (No change)

AAB differences

Expand to see AAB specifics

Supported configurations:

  • hdpi (same)
  • ldpi (same)
  • mdpi (same)
  • tvdpi (same)
  • xhdpi (same)
  • xxhdpi (same)
  • xxxhdpi (same)

Base APK

APK file size: 11 MiB (old), 11 MiB (new), 1119 bytes (Removed)
APK download size (estimated): 10 MiB (old), 10 MiB (new), 4915 bytes (Added)
Method count: 116054 (old), 116243 (new), 189 (Added)
Resources: 5741 (old), 5740 (new), 1 (Removed)

  • Drawable: 302 (old), 301 (new), 1 (Removed)

Configuration hdpi

APK file size: 43 KiB (old), 43 KiB (new), 0 bytes (No change)
APK download size (estimated): 17 KiB (old), 17 KiB (new), 0 bytes (No change)

Configuration ldpi

APK file size: 44 KiB (old), 44 KiB (new), 0 bytes (No change)
APK download size (estimated): 13 KiB (old), 13 KiB (new), 0 bytes (No change)

Configuration mdpi

APK file size: 38 KiB (old), 38 KiB (new), 0 bytes (No change)
APK download size (estimated): 13 KiB (old), 13 KiB (new), 0 bytes (No change)

Configuration tvdpi

APK file size: 73 KiB (old), 73 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Configuration xhdpi

APK file size: 50 KiB (old), 50 KiB (new), 0 bytes (No change)
APK download size (estimated): 20 KiB (old), 20 KiB (new), 0 bytes (No change)

Configuration xxhdpi

APK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change)
APK download size (estimated): 28 KiB (old), 28 KiB (new), 0 bytes (No change)

Configuration xxxhdpi

APK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Beta

Expand to see flavor specifics

Universal APK

APK file size: 11 MiB (old), 11 MiB (new), 2215 bytes (Removed)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 5708 bytes (Added)

Method count: 116060 (old), 116249 (new), 189 (Added)

Features: 2 (old), 2 (new), 0 (No change)

Permissions: 6 (old), 6 (new), 0 (No change)

Resources: 5784 (old), 5783 (new), 1 (Removed)

  • Anim: 33 (old), 33 (new), 0 (No change)
  • Animator: 24 (old), 24 (new), 0 (No change)
  • Array: 14 (old), 14 (new), 0 (No change)
  • Attr: 888 (old), 888 (new), 0 (No change)
  • Bool: 8 (old), 8 (new), 0 (No change)
  • Color: 820 (old), 820 (new), 0 (No change)
  • Dimen: 780 (old), 780 (new), 0 (No change)
  • Drawable: 342 (old), 341 (new), 1 (Removed):
    • drawable/splash_image (removed)
  • Id: 1221 (old), 1221 (new), 0 (No change)
  • Integer: 32 (old), 32 (new), 0 (No change)
  • Interpolator: 11 (old), 11 (new), 0 (No change)
  • Layout: 343 (old), 343 (new), 0 (No change)
  • Menu: 1 (old), 1 (new), 0 (No change)
  • Mipmap: 1 (old), 1 (new), 0 (No change)
  • Plurals: 10 (old), 10 (new), 0 (No change)
  • String: 783 (old), 783 (new), 0 (No change)
  • Style: 472 (old), 472 (new), 0 (No change)
  • Xml: 1 (old), 1 (new), 0 (No change)

Lesson assets: 111 (old), 111 (new), 0 (No change)

AAB differences

Expand to see AAB specifics

Supported configurations:

  • hdpi (same)
  • ldpi (same)
  • mdpi (same)
  • tvdpi (same)
  • xhdpi (same)
  • xxhdpi (same)
  • xxxhdpi (same)

Base APK

APK file size: 11 MiB (old), 11 MiB (new), 2179 bytes (Removed)
APK download size (estimated): 10 MiB (old), 10 MiB (new), 4238 bytes (Added)
Method count: 116060 (old), 116249 (new), 189 (Added)
Resources: 5741 (old), 5740 (new), 1 (Removed)

  • Drawable: 302 (old), 301 (new), 1 (Removed)

Configuration hdpi

APK file size: 43 KiB (old), 43 KiB (new), 0 bytes (No change)
APK download size (estimated): 17 KiB (old), 17 KiB (new), 0 bytes (No change)

Configuration ldpi

APK file size: 44 KiB (old), 44 KiB (new), 0 bytes (No change)
APK download size (estimated): 13 KiB (old), 13 KiB (new), 0 bytes (No change)

Configuration mdpi

APK file size: 38 KiB (old), 38 KiB (new), 0 bytes (No change)
APK download size (estimated): 13 KiB (old), 13 KiB (new), 0 bytes (No change)

Configuration tvdpi

APK file size: 73 KiB (old), 73 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Configuration xhdpi

APK file size: 50 KiB (old), 50 KiB (new), 0 bytes (No change)
APK download size (estimated): 20 KiB (old), 20 KiB (new), 0 bytes (No change)

Configuration xxhdpi

APK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change)
APK download size (estimated): 28 KiB (old), 28 KiB (new), 0 bytes (No change)

Configuration xxxhdpi

APK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Ga

Expand to see flavor specifics

Universal APK

APK file size: 11 MiB (old), 11 MiB (new), 2287 bytes (Removed)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 3507 bytes (Added)

Method count: 116060 (old), 116249 (new), 189 (Added)

Features: 2 (old), 2 (new), 0 (No change)

Permissions: 6 (old), 6 (new), 0 (No change)

Resources: 5784 (old), 5783 (new), 1 (Removed)

  • Anim: 33 (old), 33 (new), 0 (No change)
  • Animator: 24 (old), 24 (new), 0 (No change)
  • Array: 14 (old), 14 (new), 0 (No change)
  • Attr: 888 (old), 888 (new), 0 (No change)
  • Bool: 8 (old), 8 (new), 0 (No change)
  • Color: 820 (old), 820 (new), 0 (No change)
  • Dimen: 780 (old), 780 (new), 0 (No change)
  • Drawable: 342 (old), 341 (new), 1 (Removed):
    • drawable/splash_image (removed)
  • Id: 1221 (old), 1221 (new), 0 (No change)
  • Integer: 32 (old), 32 (new), 0 (No change)
  • Interpolator: 11 (old), 11 (new), 0 (No change)
  • Layout: 343 (old), 343 (new), 0 (No change)
  • Menu: 1 (old), 1 (new), 0 (No change)
  • Mipmap: 1 (old), 1 (new), 0 (No change)
  • Plurals: 10 (old), 10 (new), 0 (No change)
  • String: 783 (old), 783 (new), 0 (No change)
  • Style: 472 (old), 472 (new), 0 (No change)
  • Xml: 1 (old), 1 (new), 0 (No change)

Lesson assets: 111 (old), 111 (new), 0 (No change)

AAB differences

Expand to see AAB specifics

Supported configurations:

  • hdpi (same)
  • ldpi (same)
  • mdpi (same)
  • tvdpi (same)
  • xhdpi (same)
  • xxhdpi (same)
  • xxxhdpi (same)

Base APK

APK file size: 11 MiB (old), 11 MiB (new), 2247 bytes (Removed)
APK download size (estimated): 10 MiB (old), 10 MiB (new), 3765 bytes (Added)
Method count: 116060 (old), 116249 (new), 189 (Added)
Resources: 5741 (old), 5740 (new), 1 (Removed)

  • Drawable: 302 (old), 301 (new), 1 (Removed)

Configuration hdpi

APK file size: 43 KiB (old), 43 KiB (new), 0 bytes (No change)
APK download size (estimated): 17 KiB (old), 17 KiB (new), 0 bytes (No change)

Configuration ldpi

APK file size: 44 KiB (old), 44 KiB (new), 0 bytes (No change)
APK download size (estimated): 13 KiB (old), 13 KiB (new), 0 bytes (No change)

Configuration mdpi

APK file size: 38 KiB (old), 38 KiB (new), 0 bytes (No change)
APK download size (estimated): 13 KiB (old), 13 KiB (new), 0 bytes (No change)

Configuration tvdpi

APK file size: 73 KiB (old), 73 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Configuration xhdpi

APK file size: 50 KiB (old), 50 KiB (new), 0 bytes (No change)
APK download size (estimated): 20 KiB (old), 20 KiB (new), 0 bytes (No change)

Configuration xxhdpi

APK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change)
APK download size (estimated): 28 KiB (old), 28 KiB (new), 0 bytes (No change)

Configuration xxxhdpi

APK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

@oppiabot oppiabot bot removed the stale Corresponds to items that haven't seen a recent update and may be automatically closed. label Nov 6, 2024
Copy link

github-actions bot commented Nov 6, 2024

Coverage Report

Results

Number of files assessed: 37
Overall Coverage: 77.60%
Coverage Analysis: FAIL

Failing coverage

File Coverage Lines Hit Status Min Required
AnalyticsController.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/analytics/AnalyticsController.kt
65.70% 113 / 172 68% *

* represents tests with custom overridden pass/fail coverage thresholds

Passing coverage

Files with passing code coverage
File Coverage Lines Hit Status Min Required
StandardEventTypeToHumanReadableNameConverterImpl.ktutility/src/main/java/org/oppia/android/util/logging/StandardEventTypeToHumanReadableNameConverterImpl.kt
100.00% 54 / 54 70%
EventBundleCreator.ktutility/src/main/java/org/oppia/android/util/logging/EventBundleCreator.kt
74.89% 328 / 438 70%
DeprecationController.ktdomain/src/main/java/org/oppia/android/domain/onboarding/DeprecationController.kt
88.57% 62 / 70 70%
AppStartupStateController.ktdomain/src/main/java/org/oppia/android/domain/onboarding/AppStartupStateController.kt
92.77% 77 / 83 70%

Exempted coverage

Files exempted from coverage
File Exemption Reason
KenyaAlphaEventTypeToHumanReadableNameConverterImpl.ktutility/src/main/java/org/oppia/android/util/logging/KenyaAlphaEventTypeToHumanReadableNameConverterImpl.kt
This file is exempted from having a test file; skipping coverage check.
AudioLanguageFragment.ktapp/src/main/java/org/oppia/android/app/options/AudioLanguageFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OptionsFragment.ktapp/src/main/java/org/oppia/android/app/options/OptionsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExitProfileDialogFragment.ktapp/src/main/java/org/oppia/android/app/drawer/ExitProfileDialogFragment.kt
This file is exempted from having a test file; skipping coverage check.
HomeFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/home/HomeFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
HomeActivity.ktapp/src/main/java/org/oppia/android/app/home/HomeActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExitProfileListener.ktapp/src/main/java/org/oppia/android/app/home/ExitProfileListener.kt
This file is exempted from having a test file; skipping coverage check.
ClassroomListFragment.ktapp/src/main/java/org/oppia/android/app/classroom/ClassroomListFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ClassroomListFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/classroom/ClassroomListFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ClassroomListActivity.ktapp/src/main/java/org/oppia/android/app/classroom/ClassroomListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AudioLanguageFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/AudioLanguageFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
CreateProfileActivityPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/CreateProfileActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
OnboardingFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
OnboardingProfileTypeFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingProfileTypeFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
IntroFragment.ktapp/src/main/java/org/oppia/android/app/onboarding/IntroFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
IntroFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/IntroFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
OnboardingProfileTypeFragment.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingProfileTypeFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
CreateProfileFragment.ktapp/src/main/java/org/oppia/android/app/onboarding/CreateProfileFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
NavigationDrawerTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/NavigationDrawerTestActivity.kt
This file is exempted from having a test file; skipping coverage check.
HomeFragmentTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/HomeFragmentTestActivity.kt
This file is exempted from having a test file; skipping coverage check.
ProfileChooserFragment.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileChooserFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileChooserActivity.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserActivity.kt
This file is exempted from having a test file; skipping coverage check.
ProfileChooserActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
SplashActivity.ktapp/src/main/java/org/oppia/android/app/splash/SplashActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SplashActivityPresenter.ktapp/src/main/java/org/oppia/android/app/splash/SplashActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileTestHelper.kttesting/src/main/java/org/oppia/android/testing/profile/ProfileTestHelper.kt
This file is incompatible with code coverage tooling; skipping coverage check.
EventLogSubject.kttesting/src/main/java/org/oppia/android/testing/logging/EventLogSubject.kt
This file is exempted from having a test file; skipping coverage check.
ExplorationProgressController.ktdomain/src/main/java/org/oppia/android/domain/exploration/ExplorationProgressController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OppiaLogger.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/OppiaLogger.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileManagementController.ktdomain/src/main/java/org/oppia/android/domain/profile/ProfileManagementController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AudioPlayerController.ktdomain/src/main/java/org/oppia/android/domain/audio/AudioPlayerController.kt
This file is incompatible with code coverage tooling; skipping coverage check.

Refer test_file_exemptions.textproto for the comprehensive list of file exemptions and their required coverage percentages.

To learn more, visit the Oppia Android Code Coverage wiki page

@adhiamboperes
Copy link
Collaborator Author

@BenHenning, PTAL.

Copy link

github-actions bot commented Nov 7, 2024

Coverage Report

Results

Number of files assessed: 35
Overall Coverage: 78.58%
Coverage Analysis: PASS

Passing coverage

Files with passing code coverage
File Coverage Lines Hit Status Min Required
EventBundleCreator.ktutility/src/main/java/org/oppia/android/util/logging/EventBundleCreator.kt
74.89% 328 / 438 70%
EventTypeToHumanReadableNameConverter.ktutility/src/main/java/org/oppia/android/util/logging/EventTypeToHumanReadableNameConverter.kt
100.00% 54 / 54 70%
DeprecationController.ktdomain/src/main/java/org/oppia/android/domain/onboarding/DeprecationController.kt
88.57% 62 / 70 70%
AppStartupStateController.ktdomain/src/main/java/org/oppia/android/domain/onboarding/AppStartupStateController.kt
92.77% 77 / 83 70%
AnalyticsController.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/analytics/AnalyticsController.kt
70.35% 121 / 172 68% *

* represents tests with custom overridden pass/fail coverage thresholds

Exempted coverage

Files exempted from coverage
File Exemption Reason
AudioLanguageFragment.ktapp/src/main/java/org/oppia/android/app/options/AudioLanguageFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OptionsFragment.ktapp/src/main/java/org/oppia/android/app/options/OptionsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExitProfileDialogFragment.ktapp/src/main/java/org/oppia/android/app/drawer/ExitProfileDialogFragment.kt
This file is exempted from having a test file; skipping coverage check.
HomeFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/home/HomeFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
HomeActivity.ktapp/src/main/java/org/oppia/android/app/home/HomeActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExitProfileListener.ktapp/src/main/java/org/oppia/android/app/home/ExitProfileListener.kt
This file is exempted from having a test file; skipping coverage check.
ClassroomListFragment.ktapp/src/main/java/org/oppia/android/app/classroom/ClassroomListFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ClassroomListFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/classroom/ClassroomListFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ClassroomListActivity.ktapp/src/main/java/org/oppia/android/app/classroom/ClassroomListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AudioLanguageFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/AudioLanguageFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
CreateProfileActivityPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/CreateProfileActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
OnboardingFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
OnboardingProfileTypeFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingProfileTypeFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
IntroFragment.ktapp/src/main/java/org/oppia/android/app/onboarding/IntroFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
IntroFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/IntroFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
OnboardingProfileTypeFragment.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingProfileTypeFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
NavigationDrawerTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/NavigationDrawerTestActivity.kt
This file is exempted from having a test file; skipping coverage check.
HomeFragmentTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/HomeFragmentTestActivity.kt
This file is exempted from having a test file; skipping coverage check.
ProfileChooserFragment.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileChooserFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileChooserActivity.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserActivity.kt
This file is exempted from having a test file; skipping coverage check.
ProfileChooserActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
SplashActivity.ktapp/src/main/java/org/oppia/android/app/splash/SplashActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SplashActivityPresenter.ktapp/src/main/java/org/oppia/android/app/splash/SplashActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileTestHelper.kttesting/src/main/java/org/oppia/android/testing/profile/ProfileTestHelper.kt
This file is incompatible with code coverage tooling; skipping coverage check.
EventLogSubject.kttesting/src/main/java/org/oppia/android/testing/logging/EventLogSubject.kt
This file is exempted from having a test file; skipping coverage check.
ExplorationProgressController.ktdomain/src/main/java/org/oppia/android/domain/exploration/ExplorationProgressController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OppiaLogger.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/OppiaLogger.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileManagementController.ktdomain/src/main/java/org/oppia/android/domain/profile/ProfileManagementController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AudioPlayerController.ktdomain/src/main/java/org/oppia/android/domain/audio/AudioPlayerController.kt
This file is incompatible with code coverage tooling; skipping coverage check.

Refer test_file_exemptions.textproto for the comprehensive list of file exemptions and their required coverage percentages.

To learn more, visit the Oppia Android Code Coverage wiki page

Copy link

APK & AAB differences analysis

Note that this is a summarized snapshot. See the CI artifacts for detailed differences.

Dev

Expand to see flavor specifics

Universal APK

APK file size: 19 MiB (old), 19 MiB (new), 16 KiB (Added)

APK download size (estimated): 17 MiB (old), 17 MiB (new), 16 KiB (Added)

Method count: 259594 (old), 260154 (new), 560 (Added)

Features: 2 (old), 2 (new), 0 (No change)

Permissions: 6 (old), 6 (new), 0 (No change)

Resources: 6816 (old), 6816 (new), 0 (No change)

  • Anim: 43 (old), 43 (new), 0 (No change)
  • Animator: 26 (old), 26 (new), 0 (No change)
  • Array: 15 (old), 15 (new), 0 (No change)
  • Attr: 922 (old), 922 (new), 0 (No change)
  • Bool: 9 (old), 9 (new), 0 (No change)
  • Color: 967 (old), 967 (new), 0 (No change)
  • Dimen: 1048 (old), 1048 (new), 0 (No change)
  • Drawable: 380 (old), 380 (new), 0 (No change)
  • Id: 1275 (old), 1275 (new), 0 (No change)
  • Integer: 37 (old), 37 (new), 0 (No change)
  • Interpolator: 11 (old), 11 (new), 0 (No change)
  • Layout: 380 (old), 380 (new), 0 (No change)
  • Menu: 3 (old), 3 (new), 0 (No change)
  • Mipmap: 1 (old), 1 (new), 0 (No change)
  • Plurals: 10 (old), 10 (new), 0 (No change)
  • Raw: 2 (old), 2 (new), 0 (No change)
  • String: 850 (old), 850 (new), 0 (No change)
  • Style: 831 (old), 831 (new), 0 (No change)
  • Xml: 6 (old), 6 (new), 0 (No change)

Lesson assets: 111 (old), 111 (new), 0 (No change)

AAB differences

Expand to see AAB specifics

Supported configurations:

  • hdpi (same)
  • ldpi (same)
  • mdpi (same)
  • tvdpi (same)
  • xhdpi (same)
  • xxhdpi (same)
  • xxxhdpi (same)

Base APK

APK file size: 18 MiB (old), 18 MiB (new), 16 KiB (Added)
APK download size (estimated): 17 MiB (old), 17 MiB (new), 14 KiB (Added)
Method count: 259594 (old), 260154 (new), 560 (Added)

Configuration hdpi

APK file size: 50 KiB (old), 50 KiB (new), 0 bytes (No change)
APK download size (estimated): 18 KiB (old), 18 KiB (new), 0 bytes (No change)

Configuration ldpi

APK file size: 49 KiB (old), 49 KiB (new), 0 bytes (No change)
APK download size (estimated): 14 KiB (old), 14 KiB (new), 0 bytes (No change)

Configuration mdpi

APK file size: 45 KiB (old), 45 KiB (new), 0 bytes (No change)
APK download size (estimated): 14 KiB (old), 14 KiB (new), 0 bytes (No change)

Configuration tvdpi

APK file size: 86 KiB (old), 86 KiB (new), 0 bytes (No change)
APK download size (estimated): 29 KiB (old), 29 KiB (new), 0 bytes (No change)

Configuration xhdpi

APK file size: 57 KiB (old), 57 KiB (new), 0 bytes (No change)
APK download size (estimated): 21 KiB (old), 21 KiB (new), 0 bytes (No change)

Configuration xxhdpi

APK file size: 63 KiB (old), 63 KiB (new), 0 bytes (No change)
APK download size (estimated): 29 KiB (old), 29 KiB (new), 0 bytes (No change)

Configuration xxxhdpi

APK file size: 63 KiB (old), 63 KiB (new), 0 bytes (No change)
APK download size (estimated): 28 KiB (old), 28 KiB (new), 0 bytes (No change)

Alpha

Expand to see flavor specifics

Universal APK

APK file size: 11 MiB (old), 11 MiB (new), 7524 bytes (Added)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 8495 bytes (Added)

Method count: 116054 (old), 116245 (new), 191 (Added)

Features: 2 (old), 2 (new), 0 (No change)

Permissions: 6 (old), 6 (new), 0 (No change)

Resources: 5784 (old), 5784 (new), 0 (No change)

  • Anim: 33 (old), 33 (new), 0 (No change)
  • Animator: 24 (old), 24 (new), 0 (No change)
  • Array: 14 (old), 14 (new), 0 (No change)
  • Attr: 888 (old), 888 (new), 0 (No change)
  • Bool: 8 (old), 8 (new), 0 (No change)
  • Color: 820 (old), 820 (new), 0 (No change)
  • Dimen: 780 (old), 780 (new), 0 (No change)
  • Drawable: 342 (old), 342 (new), 0 (No change)
  • Id: 1221 (old), 1221 (new), 0 (No change)
  • Integer: 32 (old), 32 (new), 0 (No change)
  • Interpolator: 11 (old), 11 (new), 0 (No change)
  • Layout: 343 (old), 343 (new), 0 (No change)
  • Menu: 1 (old), 1 (new), 0 (No change)
  • Mipmap: 1 (old), 1 (new), 0 (No change)
  • Plurals: 10 (old), 10 (new), 0 (No change)
  • String: 783 (old), 783 (new), 0 (No change)
  • Style: 472 (old), 472 (new), 0 (No change)
  • Xml: 1 (old), 1 (new), 0 (No change)

Lesson assets: 111 (old), 111 (new), 0 (No change)

AAB differences

Expand to see AAB specifics

Supported configurations:

  • hdpi (same)
  • ldpi (same)
  • mdpi (same)
  • tvdpi (same)
  • xhdpi (same)
  • xxhdpi (same)
  • xxxhdpi (same)

Base APK

APK file size: 11 MiB (old), 11 MiB (new), 7528 bytes (Added)
APK download size (estimated): 10 MiB (old), 10 MiB (new), 8885 bytes (Added)
Method count: 116054 (old), 116245 (new), 191 (Added)

Configuration hdpi

APK file size: 43 KiB (old), 43 KiB (new), 0 bytes (No change)
APK download size (estimated): 17 KiB (old), 17 KiB (new), 0 bytes (No change)

Configuration ldpi

APK file size: 44 KiB (old), 44 KiB (new), 0 bytes (No change)
APK download size (estimated): 13 KiB (old), 13 KiB (new), 0 bytes (No change)

Configuration mdpi

APK file size: 38 KiB (old), 38 KiB (new), 0 bytes (No change)
APK download size (estimated): 13 KiB (old), 13 KiB (new), 0 bytes (No change)

Configuration tvdpi

APK file size: 73 KiB (old), 73 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Configuration xhdpi

APK file size: 50 KiB (old), 50 KiB (new), 0 bytes (No change)
APK download size (estimated): 20 KiB (old), 20 KiB (new), 0 bytes (No change)

Configuration xxhdpi

APK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change)
APK download size (estimated): 28 KiB (old), 28 KiB (new), 0 bytes (No change)

Configuration xxxhdpi

APK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Beta

Expand to see flavor specifics

Universal APK

APK file size: 11 MiB (old), 11 MiB (new), 7688 bytes (Added)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 6556 bytes (Added)

Method count: 116060 (old), 116251 (new), 191 (Added)

Features: 2 (old), 2 (new), 0 (No change)

Permissions: 6 (old), 6 (new), 0 (No change)

Resources: 5784 (old), 5784 (new), 0 (No change)

  • Anim: 33 (old), 33 (new), 0 (No change)
  • Animator: 24 (old), 24 (new), 0 (No change)
  • Array: 14 (old), 14 (new), 0 (No change)
  • Attr: 888 (old), 888 (new), 0 (No change)
  • Bool: 8 (old), 8 (new), 0 (No change)
  • Color: 820 (old), 820 (new), 0 (No change)
  • Dimen: 780 (old), 780 (new), 0 (No change)
  • Drawable: 342 (old), 342 (new), 0 (No change)
  • Id: 1221 (old), 1221 (new), 0 (No change)
  • Integer: 32 (old), 32 (new), 0 (No change)
  • Interpolator: 11 (old), 11 (new), 0 (No change)
  • Layout: 343 (old), 343 (new), 0 (No change)
  • Menu: 1 (old), 1 (new), 0 (No change)
  • Mipmap: 1 (old), 1 (new), 0 (No change)
  • Plurals: 10 (old), 10 (new), 0 (No change)
  • String: 783 (old), 783 (new), 0 (No change)
  • Style: 472 (old), 472 (new), 0 (No change)
  • Xml: 1 (old), 1 (new), 0 (No change)

Lesson assets: 111 (old), 111 (new), 0 (No change)

AAB differences

Expand to see AAB specifics

Supported configurations:

  • hdpi (same)
  • ldpi (same)
  • mdpi (same)
  • tvdpi (same)
  • xhdpi (same)
  • xxhdpi (same)
  • xxxhdpi (same)

Base APK

APK file size: 11 MiB (old), 11 MiB (new), 7688 bytes (Added)
APK download size (estimated): 10 MiB (old), 10 MiB (new), 7143 bytes (Added)
Method count: 116060 (old), 116251 (new), 191 (Added)

Configuration hdpi

APK file size: 43 KiB (old), 43 KiB (new), 0 bytes (No change)
APK download size (estimated): 17 KiB (old), 17 KiB (new), 0 bytes (No change)

Configuration ldpi

APK file size: 44 KiB (old), 44 KiB (new), 0 bytes (No change)
APK download size (estimated): 13 KiB (old), 13 KiB (new), 0 bytes (No change)

Configuration mdpi

APK file size: 38 KiB (old), 38 KiB (new), 0 bytes (No change)
APK download size (estimated): 13 KiB (old), 13 KiB (new), 0 bytes (No change)

Configuration tvdpi

APK file size: 73 KiB (old), 73 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Configuration xhdpi

APK file size: 50 KiB (old), 50 KiB (new), 0 bytes (No change)
APK download size (estimated): 20 KiB (old), 20 KiB (new), 0 bytes (No change)

Configuration xxhdpi

APK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change)
APK download size (estimated): 28 KiB (old), 28 KiB (new), 0 bytes (No change)

Configuration xxxhdpi

APK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Ga

Expand to see flavor specifics

Universal APK

APK file size: 11 MiB (old), 11 MiB (new), 7672 bytes (Added)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 7213 bytes (Added)

Method count: 116060 (old), 116251 (new), 191 (Added)

Features: 2 (old), 2 (new), 0 (No change)

Permissions: 6 (old), 6 (new), 0 (No change)

Resources: 5784 (old), 5784 (new), 0 (No change)

  • Anim: 33 (old), 33 (new), 0 (No change)
  • Animator: 24 (old), 24 (new), 0 (No change)
  • Array: 14 (old), 14 (new), 0 (No change)
  • Attr: 888 (old), 888 (new), 0 (No change)
  • Bool: 8 (old), 8 (new), 0 (No change)
  • Color: 820 (old), 820 (new), 0 (No change)
  • Dimen: 780 (old), 780 (new), 0 (No change)
  • Drawable: 342 (old), 342 (new), 0 (No change)
  • Id: 1221 (old), 1221 (new), 0 (No change)
  • Integer: 32 (old), 32 (new), 0 (No change)
  • Interpolator: 11 (old), 11 (new), 0 (No change)
  • Layout: 343 (old), 343 (new), 0 (No change)
  • Menu: 1 (old), 1 (new), 0 (No change)
  • Mipmap: 1 (old), 1 (new), 0 (No change)
  • Plurals: 10 (old), 10 (new), 0 (No change)
  • String: 783 (old), 783 (new), 0 (No change)
  • Style: 472 (old), 472 (new), 0 (No change)
  • Xml: 1 (old), 1 (new), 0 (No change)

Lesson assets: 111 (old), 111 (new), 0 (No change)

AAB differences

Expand to see AAB specifics

Supported configurations:

  • hdpi (same)
  • ldpi (same)
  • mdpi (same)
  • tvdpi (same)
  • xhdpi (same)
  • xxhdpi (same)
  • xxxhdpi (same)

Base APK

APK file size: 11 MiB (old), 11 MiB (new), 7672 bytes (Added)
APK download size (estimated): 10 MiB (old), 10 MiB (new), 7563 bytes (Added)
Method count: 116060 (old), 116251 (new), 191 (Added)

Configuration hdpi

APK file size: 43 KiB (old), 43 KiB (new), 0 bytes (No change)
APK download size (estimated): 17 KiB (old), 17 KiB (new), 0 bytes (No change)

Configuration ldpi

APK file size: 44 KiB (old), 44 KiB (new), 0 bytes (No change)
APK download size (estimated): 13 KiB (old), 13 KiB (new), 0 bytes (No change)

Configuration mdpi

APK file size: 38 KiB (old), 38 KiB (new), 0 bytes (No change)
APK download size (estimated): 13 KiB (old), 13 KiB (new), 0 bytes (No change)

Configuration tvdpi

APK file size: 73 KiB (old), 73 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Configuration xhdpi

APK file size: 50 KiB (old), 50 KiB (new), 0 bytes (No change)
APK download size (estimated): 20 KiB (old), 20 KiB (new), 0 bytes (No change)

Configuration xxhdpi

APK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change)
APK download size (estimated): 28 KiB (old), 28 KiB (new), 0 bytes (No change)

Configuration xxxhdpi

APK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Copy link
Member

@BenHenning BenHenning left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @adhiamboperes! Just had a few small comments left, otherwise the PR LGTM.

activity.startActivity(intent)
}

private fun loginToProfile(profileId: ProfileId) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
private fun loginToProfile(profileId: ProfileId) {
private fun logInToProfile(profileId: ProfileId) {

Nit for consistency & correct verb tense. Ditto elsewhere in the PR.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated -- other occurances previously updated in profileChooser and AudioLanguageFragment.

}

@Test
@RunOn(TestPlatform.ESPRESSO)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why can't this run on Robolectric?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There seems to be a synchronizing issue with this test. I have updated the test code itself:

 @Test
  @RunOn(TestPlatform.ESPRESSO)
  fun testSplashActivity_onboardingV2Enabled_onboardedSoleLearnerProfile_routesToHomeActivity() {
    simulateAppAlreadyOnboarded()
    initializeTestApplication(onboardingV2Enabled = true)
    profileTestHelper.addOnlyAdminProfileWithoutPin()
    testCoroutineDispatchers.runCurrent()

    val profileId = ProfileId.newBuilder().setInternalId(0).build()
   monitorFactory.ensureDataProviderExecutes(
      profileTestHelper.updateProfileType(profileId, ProfileType.SOLE_LEARNER)
    )
    monitorFactory.ensureDataProviderExecutes(
      profileTestHelper.markProfileOnboardingStarted(profileId)
    )
    monitorFactory.ensureDataProviderExecutes(
      profileTestHelper.markProfileOnboardingEnded(profileId)
    )
    testCoroutineDispatchers.advanceUntilIdle()

    launchSplashActivityPartially{
      intended(hasComponent(HomeActivity::class.java.name))
    }
  }

profileTestHelper.markProfileOnboardingEnded(profileId) never executes, causing the test to run indefinitely due to never entering an idle state.
On Espresso, this passes but ocassionally fails with:

Wanted but not invoked:
observer.onChanged(<Capturing argument>);
-> at org.oppia.android.testing.data.DataProviderTestMonitor.ensureNextResultIsPresent(DataProviderTestMonitor.kt:117)
Actually, there were zero interactions with this mock.

at org.oppia.android.testing.data.DataProviderTestMonitor.ensureNextResultIsPresent(DataProviderTestMonitor.kt:117)
at org.oppia.android.testing.data.DataProviderTestMonitor.waitForNextResult(DataProviderTestMonitor.kt:59)

For any random DataProvider in the test.

@@ -209,6 +218,11 @@ class ProfileManagementController @Inject constructor(
return profileDataStore.transformAsync(GET_PROFILE_PROVIDER_ID) {
val profile = it.profilesMap[profileId.internalId]
if (profile != null) {
if (enableOnboardingFlowV2.value) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are there tests verifying this migration pathway and do they cover all potential scenarios? It seems they do, but I wanted to double check since it's essential that we get this part right (given it will affect all existing users of the app).

@adhiamboperes adhiamboperes changed the title Fix Part of #4938: Profile Configuration and Migration [Blocked on #5457] Fix Part of #4938: Profile Configuration and Migration Nov 15, 2024
Copy link

Coverage Report

Results

Number of files assessed: 35
Overall Coverage: 78.58%
Coverage Analysis: PASS

Passing coverage

Files with passing code coverage
File Coverage Lines Hit Status Min Required
EventBundleCreator.ktutility/src/main/java/org/oppia/android/util/logging/EventBundleCreator.kt
74.89% 328 / 438 70%
EventTypeToHumanReadableNameConverter.ktutility/src/main/java/org/oppia/android/util/logging/EventTypeToHumanReadableNameConverter.kt
100.00% 54 / 54 70%
DeprecationController.ktdomain/src/main/java/org/oppia/android/domain/onboarding/DeprecationController.kt
88.57% 62 / 70 70%
AppStartupStateController.ktdomain/src/main/java/org/oppia/android/domain/onboarding/AppStartupStateController.kt
92.77% 77 / 83 70%
AnalyticsController.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/analytics/AnalyticsController.kt
70.35% 121 / 172 68% *

* represents tests with custom overridden pass/fail coverage thresholds

Exempted coverage

Files exempted from coverage
File Exemption Reason
AudioLanguageFragment.ktapp/src/main/java/org/oppia/android/app/options/AudioLanguageFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OptionsFragment.ktapp/src/main/java/org/oppia/android/app/options/OptionsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExitProfileDialogFragment.ktapp/src/main/java/org/oppia/android/app/drawer/ExitProfileDialogFragment.kt
This file is exempted from having a test file; skipping coverage check.
HomeFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/home/HomeFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
HomeActivity.ktapp/src/main/java/org/oppia/android/app/home/HomeActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExitProfileListener.ktapp/src/main/java/org/oppia/android/app/home/ExitProfileListener.kt
This file is exempted from having a test file; skipping coverage check.
ClassroomListFragment.ktapp/src/main/java/org/oppia/android/app/classroom/ClassroomListFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ClassroomListFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/classroom/ClassroomListFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ClassroomListActivity.ktapp/src/main/java/org/oppia/android/app/classroom/ClassroomListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AudioLanguageFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/AudioLanguageFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
CreateProfileActivityPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/CreateProfileActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
OnboardingFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
OnboardingProfileTypeFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingProfileTypeFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
IntroFragment.ktapp/src/main/java/org/oppia/android/app/onboarding/IntroFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
IntroFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/IntroFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
OnboardingProfileTypeFragment.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingProfileTypeFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
NavigationDrawerTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/NavigationDrawerTestActivity.kt
This file is exempted from having a test file; skipping coverage check.
HomeFragmentTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/HomeFragmentTestActivity.kt
This file is exempted from having a test file; skipping coverage check.
ProfileChooserFragment.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileChooserFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileChooserActivity.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserActivity.kt
This file is exempted from having a test file; skipping coverage check.
ProfileChooserActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
SplashActivity.ktapp/src/main/java/org/oppia/android/app/splash/SplashActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SplashActivityPresenter.ktapp/src/main/java/org/oppia/android/app/splash/SplashActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileTestHelper.kttesting/src/main/java/org/oppia/android/testing/profile/ProfileTestHelper.kt
This file is incompatible with code coverage tooling; skipping coverage check.
EventLogSubject.kttesting/src/main/java/org/oppia/android/testing/logging/EventLogSubject.kt
This file is exempted from having a test file; skipping coverage check.
ExplorationProgressController.ktdomain/src/main/java/org/oppia/android/domain/exploration/ExplorationProgressController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OppiaLogger.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/OppiaLogger.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileManagementController.ktdomain/src/main/java/org/oppia/android/domain/profile/ProfileManagementController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AudioPlayerController.ktdomain/src/main/java/org/oppia/android/domain/audio/AudioPlayerController.kt
This file is incompatible with code coverage tooling; skipping coverage check.

Refer test_file_exemptions.textproto for the comprehensive list of file exemptions and their required coverage percentages.

To learn more, visit the Oppia Android Code Coverage wiki page

Copy link

APK & AAB differences analysis

Note that this is a summarized snapshot. See the CI artifacts for detailed differences.

Dev

Expand to see flavor specifics

Universal APK

APK file size: 19 MiB (old), 19 MiB (new), 16 KiB (Added)

APK download size (estimated): 17 MiB (old), 17 MiB (new), 17 KiB (Added)

Method count: 259595 (old), 260157 (new), 562 (Added)

Features: 2 (old), 2 (new), 0 (No change)

Permissions: 6 (old), 6 (new), 0 (No change)

Resources: 6816 (old), 6816 (new), 0 (No change)

  • Anim: 43 (old), 43 (new), 0 (No change)
  • Animator: 26 (old), 26 (new), 0 (No change)
  • Array: 15 (old), 15 (new), 0 (No change)
  • Attr: 922 (old), 922 (new), 0 (No change)
  • Bool: 9 (old), 9 (new), 0 (No change)
  • Color: 967 (old), 967 (new), 0 (No change)
  • Dimen: 1048 (old), 1048 (new), 0 (No change)
  • Drawable: 380 (old), 380 (new), 0 (No change)
  • Id: 1275 (old), 1275 (new), 0 (No change)
  • Integer: 37 (old), 37 (new), 0 (No change)
  • Interpolator: 11 (old), 11 (new), 0 (No change)
  • Layout: 380 (old), 380 (new), 0 (No change)
  • Menu: 3 (old), 3 (new), 0 (No change)
  • Mipmap: 1 (old), 1 (new), 0 (No change)
  • Plurals: 10 (old), 10 (new), 0 (No change)
  • Raw: 2 (old), 2 (new), 0 (No change)
  • String: 850 (old), 850 (new), 0 (No change)
  • Style: 831 (old), 831 (new), 0 (No change)
  • Xml: 6 (old), 6 (new), 0 (No change)

Lesson assets: 111 (old), 111 (new), 0 (No change)

AAB differences

Expand to see AAB specifics

Supported configurations:

  • hdpi (same)
  • ldpi (same)
  • mdpi (same)
  • tvdpi (same)
  • xhdpi (same)
  • xxhdpi (same)
  • xxxhdpi (same)

Base APK

APK file size: 18 MiB (old), 18 MiB (new), 16 KiB (Added)
APK download size (estimated): 17 MiB (old), 17 MiB (new), 16 KiB (Added)
Method count: 259595 (old), 260157 (new), 562 (Added)

Configuration hdpi

APK file size: 50 KiB (old), 50 KiB (new), 0 bytes (No change)
APK download size (estimated): 18 KiB (old), 18 KiB (new), 0 bytes (No change)

Configuration ldpi

APK file size: 49 KiB (old), 49 KiB (new), 0 bytes (No change)
APK download size (estimated): 14 KiB (old), 14 KiB (new), 0 bytes (No change)

Configuration mdpi

APK file size: 45 KiB (old), 45 KiB (new), 0 bytes (No change)
APK download size (estimated): 14 KiB (old), 14 KiB (new), 0 bytes (No change)

Configuration tvdpi

APK file size: 86 KiB (old), 86 KiB (new), 0 bytes (No change)
APK download size (estimated): 29 KiB (old), 29 KiB (new), 0 bytes (No change)

Configuration xhdpi

APK file size: 57 KiB (old), 57 KiB (new), 0 bytes (No change)
APK download size (estimated): 21 KiB (old), 21 KiB (new), 0 bytes (No change)

Configuration xxhdpi

APK file size: 63 KiB (old), 63 KiB (new), 0 bytes (No change)
APK download size (estimated): 29 KiB (old), 29 KiB (new), 0 bytes (No change)

Configuration xxxhdpi

APK file size: 63 KiB (old), 63 KiB (new), 0 bytes (No change)
APK download size (estimated): 28 KiB (old), 28 KiB (new), 0 bytes (No change)

Alpha

Expand to see flavor specifics

Universal APK

APK file size: 11 MiB (old), 11 MiB (new), 8188 bytes (Added)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 8072 bytes (Added)

Method count: 116054 (old), 116247 (new), 193 (Added)

Features: 2 (old), 2 (new), 0 (No change)

Permissions: 6 (old), 6 (new), 0 (No change)

Resources: 5784 (old), 5784 (new), 0 (No change)

  • Anim: 33 (old), 33 (new), 0 (No change)
  • Animator: 24 (old), 24 (new), 0 (No change)
  • Array: 14 (old), 14 (new), 0 (No change)
  • Attr: 888 (old), 888 (new), 0 (No change)
  • Bool: 8 (old), 8 (new), 0 (No change)
  • Color: 820 (old), 820 (new), 0 (No change)
  • Dimen: 780 (old), 780 (new), 0 (No change)
  • Drawable: 342 (old), 342 (new), 0 (No change)
  • Id: 1221 (old), 1221 (new), 0 (No change)
  • Integer: 32 (old), 32 (new), 0 (No change)
  • Interpolator: 11 (old), 11 (new), 0 (No change)
  • Layout: 343 (old), 343 (new), 0 (No change)
  • Menu: 1 (old), 1 (new), 0 (No change)
  • Mipmap: 1 (old), 1 (new), 0 (No change)
  • Plurals: 10 (old), 10 (new), 0 (No change)
  • String: 783 (old), 783 (new), 0 (No change)
  • Style: 472 (old), 472 (new), 0 (No change)
  • Xml: 1 (old), 1 (new), 0 (No change)

Lesson assets: 111 (old), 111 (new), 0 (No change)

AAB differences

Expand to see AAB specifics

Supported configurations:

  • hdpi (same)
  • ldpi (same)
  • mdpi (same)
  • tvdpi (same)
  • xhdpi (same)
  • xxhdpi (same)
  • xxxhdpi (same)

Base APK

APK file size: 11 MiB (old), 11 MiB (new), 8188 bytes (Added)
APK download size (estimated): 10 MiB (old), 10 MiB (new), 8395 bytes (Added)
Method count: 116054 (old), 116247 (new), 193 (Added)

Configuration hdpi

APK file size: 43 KiB (old), 43 KiB (new), 0 bytes (No change)
APK download size (estimated): 17 KiB (old), 17 KiB (new), 0 bytes (No change)

Configuration ldpi

APK file size: 44 KiB (old), 44 KiB (new), 0 bytes (No change)
APK download size (estimated): 13 KiB (old), 13 KiB (new), 0 bytes (No change)

Configuration mdpi

APK file size: 38 KiB (old), 38 KiB (new), 0 bytes (No change)
APK download size (estimated): 13 KiB (old), 13 KiB (new), 0 bytes (No change)

Configuration tvdpi

APK file size: 73 KiB (old), 73 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Configuration xhdpi

APK file size: 50 KiB (old), 50 KiB (new), 0 bytes (No change)
APK download size (estimated): 20 KiB (old), 20 KiB (new), 0 bytes (No change)

Configuration xxhdpi

APK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change)
APK download size (estimated): 28 KiB (old), 28 KiB (new), 0 bytes (No change)

Configuration xxxhdpi

APK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Beta

Expand to see flavor specifics

Universal APK

APK file size: 11 MiB (old), 11 MiB (new), 8404 bytes (Added)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 6236 bytes (Added)

Method count: 116060 (old), 116253 (new), 193 (Added)

Features: 2 (old), 2 (new), 0 (No change)

Permissions: 6 (old), 6 (new), 0 (No change)

Resources: 5784 (old), 5784 (new), 0 (No change)

  • Anim: 33 (old), 33 (new), 0 (No change)
  • Animator: 24 (old), 24 (new), 0 (No change)
  • Array: 14 (old), 14 (new), 0 (No change)
  • Attr: 888 (old), 888 (new), 0 (No change)
  • Bool: 8 (old), 8 (new), 0 (No change)
  • Color: 820 (old), 820 (new), 0 (No change)
  • Dimen: 780 (old), 780 (new), 0 (No change)
  • Drawable: 342 (old), 342 (new), 0 (No change)
  • Id: 1221 (old), 1221 (new), 0 (No change)
  • Integer: 32 (old), 32 (new), 0 (No change)
  • Interpolator: 11 (old), 11 (new), 0 (No change)
  • Layout: 343 (old), 343 (new), 0 (No change)
  • Menu: 1 (old), 1 (new), 0 (No change)
  • Mipmap: 1 (old), 1 (new), 0 (No change)
  • Plurals: 10 (old), 10 (new), 0 (No change)
  • String: 783 (old), 783 (new), 0 (No change)
  • Style: 472 (old), 472 (new), 0 (No change)
  • Xml: 1 (old), 1 (new), 0 (No change)

Lesson assets: 111 (old), 111 (new), 0 (No change)

AAB differences

Expand to see AAB specifics

Supported configurations:

  • hdpi (same)
  • ldpi (same)
  • mdpi (same)
  • tvdpi (same)
  • xhdpi (same)
  • xxhdpi (same)
  • xxxhdpi (same)

Base APK

APK file size: 11 MiB (old), 11 MiB (new), 8408 bytes (Added)
APK download size (estimated): 10 MiB (old), 10 MiB (new), 10 KiB (Added)
Method count: 116060 (old), 116253 (new), 193 (Added)

Configuration hdpi

APK file size: 43 KiB (old), 43 KiB (new), 0 bytes (No change)
APK download size (estimated): 17 KiB (old), 17 KiB (new), 0 bytes (No change)

Configuration ldpi

APK file size: 44 KiB (old), 44 KiB (new), 0 bytes (No change)
APK download size (estimated): 13 KiB (old), 13 KiB (new), 0 bytes (No change)

Configuration mdpi

APK file size: 38 KiB (old), 38 KiB (new), 0 bytes (No change)
APK download size (estimated): 13 KiB (old), 13 KiB (new), 0 bytes (No change)

Configuration tvdpi

APK file size: 73 KiB (old), 73 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Configuration xhdpi

APK file size: 50 KiB (old), 50 KiB (new), 0 bytes (No change)
APK download size (estimated): 20 KiB (old), 20 KiB (new), 0 bytes (No change)

Configuration xxhdpi

APK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change)
APK download size (estimated): 28 KiB (old), 28 KiB (new), 0 bytes (No change)

Configuration xxxhdpi

APK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Ga

Expand to see flavor specifics

Universal APK

APK file size: 11 MiB (old), 11 MiB (new), 8532 bytes (Added)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 6030 bytes (Added)

Method count: 116060 (old), 116253 (new), 193 (Added)

Features: 2 (old), 2 (new), 0 (No change)

Permissions: 6 (old), 6 (new), 0 (No change)

Resources: 5784 (old), 5784 (new), 0 (No change)

  • Anim: 33 (old), 33 (new), 0 (No change)
  • Animator: 24 (old), 24 (new), 0 (No change)
  • Array: 14 (old), 14 (new), 0 (No change)
  • Attr: 888 (old), 888 (new), 0 (No change)
  • Bool: 8 (old), 8 (new), 0 (No change)
  • Color: 820 (old), 820 (new), 0 (No change)
  • Dimen: 780 (old), 780 (new), 0 (No change)
  • Drawable: 342 (old), 342 (new), 0 (No change)
  • Id: 1221 (old), 1221 (new), 0 (No change)
  • Integer: 32 (old), 32 (new), 0 (No change)
  • Interpolator: 11 (old), 11 (new), 0 (No change)
  • Layout: 343 (old), 343 (new), 0 (No change)
  • Menu: 1 (old), 1 (new), 0 (No change)
  • Mipmap: 1 (old), 1 (new), 0 (No change)
  • Plurals: 10 (old), 10 (new), 0 (No change)
  • String: 783 (old), 783 (new), 0 (No change)
  • Style: 472 (old), 472 (new), 0 (No change)
  • Xml: 1 (old), 1 (new), 0 (No change)

Lesson assets: 111 (old), 111 (new), 0 (No change)

AAB differences

Expand to see AAB specifics

Supported configurations:

  • hdpi (same)
  • ldpi (same)
  • mdpi (same)
  • tvdpi (same)
  • xhdpi (same)
  • xxhdpi (same)
  • xxxhdpi (same)

Base APK

APK file size: 11 MiB (old), 11 MiB (new), 8536 bytes (Added)
APK download size (estimated): 10 MiB (old), 10 MiB (new), 10 KiB (Added)
Method count: 116060 (old), 116253 (new), 193 (Added)

Configuration hdpi

APK file size: 43 KiB (old), 43 KiB (new), 0 bytes (No change)
APK download size (estimated): 17 KiB (old), 17 KiB (new), 0 bytes (No change)

Configuration ldpi

APK file size: 44 KiB (old), 44 KiB (new), 0 bytes (No change)
APK download size (estimated): 13 KiB (old), 13 KiB (new), 0 bytes (No change)

Configuration mdpi

APK file size: 38 KiB (old), 38 KiB (new), 0 bytes (No change)
APK download size (estimated): 13 KiB (old), 13 KiB (new), 0 bytes (No change)

Configuration tvdpi

APK file size: 73 KiB (old), 73 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Configuration xhdpi

APK file size: 50 KiB (old), 50 KiB (new), 0 bytes (No change)
APK download size (estimated): 20 KiB (old), 20 KiB (new), 0 bytes (No change)

Configuration xxhdpi

APK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change)
APK download size (estimated): 28 KiB (old), 28 KiB (new), 0 bytes (No change)

Configuration xxxhdpi

APK file size: 55 KiB (old), 55 KiB (new), 0 bytes (No change)
APK download size (estimated): 27 KiB (old), 27 KiB (new), 0 bytes (No change)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants