oppia-android icon indicating copy to clipboard operation
oppia-android copied to clipboard

Fix part of #2747, #1532: Remove support for Gradle

Open BenHenning opened this issue 11 months ago • 33 comments

Explanation

Fixes part of #2747 Fixes #1532

This PR is doing a lot to address the vast majority of #2747--removing support for Gradle. It doesn't address everything, however--some items will need to be addressed in future PRs (largely new cleanup opportunities that are unlocked with the removal of Gradle). However, it does remove the entirety of Gradle definition infrastructure.

This PR specifically:

  • Removes all Gradle build definitions (.gradle files, settings.gradle, the gradlew wrappers, and the gradle/wrapper directory). As a side benefit, this removes some of the last binary files from the codebase. :)
  • Removes a bunch of Gradle-specific files not actually used by the Bazel builds, including proguard-rules.pro files (Bazel has separate definitions under config/proguard/), some manifest files, and some Robolectric-specific definitions.
  • Deletes the main.yml workflow (which was disabled in #5629). This is entirely a Gradle-specific workflow, so there's nothing that needs to be moved over as all of what's being tested is covered more efficiently and thoroughly in other specific workflow files.
  • Updates to .gitignore per the Gradle file removals (fewer files/directories need to be ignored).
  • Removed all TODOs on #1532 and marking it as fixed as part of this PR rather than performing the file rename. See https://github.com/oppia/oppia-android/issues/1532#issuecomment-2610933772 for an explanation on why.
  • Some comments have been updated rather than addressed where it made sense that addressing the problem was not exactly specific to Gradle support (there's a desire to remove all references to 'Gradle' as a clear way to ensure everything Gradle-specific has been successfully removed from the codebase--this has largely been done).
  • The infrastructure and definitions for segmenting tests between Bazel and Gradle has been completely removed (resulting in broad changes in the codebase) since Gradle-specific behaviors can't be tested anymore, and Bazel-specific behaviors are now the default.
  • Some of the waiting logic in StateFragmentTest and ExplorationActivityTest has been kept but had its removal TODO removed. This is because the code seems to have changed (or the original problem misunderstood). These waits seem actually necessary due to relying on real image loading, so the fix is more complex than simply "migrate to Bazel & move off of Gradle." There's real test infrastructure work needed to fix these tests properly, and it doesn't seem sufficiently important to prioritize (though note it did seem possible to remove the waits outright in ExplorationActivityTest without issue). The longer-term infrastructure work is tracked in #1523.
  • LoadLessonProtosFromAssets has been made default true (since it can't ever be false with Gradle removed). See the note below on removing JSON assets for the work to fully clean this up.
  • The removal of OppiaTestRunner as it was only used for Gradle builds to help it set up state correctly for orchestrated tests (i.e. Espresso). We may need to reintroduce something like this in the future, but for now there's no value in keeping an unused class.
  • Some simplifications in RepositoryFile and test removals in RepositoryFileTest now that Gradle build directories no longer need to be filtered.
  • TestEnvironmentConfig was removed since there's no longer a need to test which environment tests are currently running in.
  • Some Espresso documentation was removed since it's clearly no longer needed, but more documentation work is still needing to be completed (this was noticed due to the removal of OppiaTestRunner).
  • ApiMockLoader was simplified now that test config artifacts are in a single location during testing time.
  • InitializeDefaultLocaleRule can now have nearly all of its reflection removed since it can be directly built to reference the classes that it's interacting with (which wasn't possible in the Gradle world, see the TODO in that class). Some new tests were added, as well, which brings its test coverage to 100%.
  • Updates CODEOWNERS to reflect all of the many file changes from the above.
  • Broad removal of the word 'module' in many locations and documentation. This term is generally replaced with the more architectural term 'layer' as to not overload 'module' from a Gradle, Bazel, and Dagger perspective (plus others). This required a lot of changes specifically in the Android Lint tool implementation and tests to try and keep the term 'module' specific to cases where it still makes sense (other than Dagger which is the bulk of the existing reference).
  • TransformAndroidManifest was updated to support adding top-level comments in manifest files (which are TODOs for #6010 to move or remove manifest files--see below). Tests were also added to test the new functionality.
  • A bunch of files were changed simply because my local editor removed trailing spaces and they were included in those various files that I happened to change (largely for 'module' reference renames and/or 'Gradle' reference removals/rewordings).

Note also that this work opens up more things that still need to be, or can now be, addressed, including:

  • Removal of JSON lesson loading per #5663. We're no longer testing this behavior correctly as domain level tests would previously verify JSON loading logic in Gradle builds and proto logic in Bazel builds. This means there's a strong likelihood of breakages occurring if JSON loading isn't removed.
  • Ensuring Espresso tests can actually run with Bazel (see #4991). We no longer can verify Espresso behaviors now that Gradle is removed, which also subsequently means all test gating on Robolectric is redundant and all tests gated on Espresso never run.
  • It's possible #4748 is now made redundant with the removal of Gradle-specific robolectric.properties files, though I'm not entirely certain at this point which SDK version is used in Bazel tests for Robolectric (other than it being tied to Robolectric version and that we pull in all supported SDKs so that tests can selectively opt into specific SDKs for testing).
  • Possibly some of the language configuration bits can be simplified now that we don't need to gracefully fail if the configuration is missing (since it never should be), but there's no plan to audit or track work for this.
  • Reorganization of the codebase now that Gradle no longer imposes arbitrary modules (see https://github.com/oppia/oppia-android/issues/59#issuecomment-528217795) as well as fixing testing artifact isolation (multiple issues tracking parts of this, and ideas possibly not yet captured in issues).
  • genrules can now be removed to improve symbol analysis in Android Studio (and general build system complexity). See #1617.
  • Some documentation can potentially be improved, but with the replacement of the terms 'Gradle' and 'module' (plus past documentation changes that happened as a result of moving the team over to Bazel exclusively) much of the existing documentation seems solid.
  • It may now be possible to update to newer versions of Kotlin and Robolectric without worrying about AGP incompatibilities.
  • Moving the app AndroidManifest.xml from the app directory to the top-level directory to address #1640. Unfortunately this can't be done as part of this PR (as previously attempted) due to #6010 and required changes to the Android Lint script. Note that the addressing of #6010 also allows other manifests to potentially be removed and, hopefully, a reduction of manifests to the bare minimum (the top-level plus any asset-holding libraries--at least for now).

Essential Checklist

  • [x] 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: ...".)
  • [x] Any changes to scripts/assets files have their rationale included in the PR explanation.
  • [x] The PR follows the style guide.
  • [x] The PR does not contain any unnecessary code changes from Android Studio (reference).
  • [x] The PR is made from a branch that's not called "develop" and is up-to-date with "develop".
  • [x] The PR is assigned to the appropriate reviewers (reference).

For UI-specific PRs only

There are no known UI effects from removing Gradle support, but build infrastructure is complex and this is not a no-op change. It's expected that the Bazel builds are relatively the same as before, however (see the APK & AAB differences analysis), so there shouldn't be an UI or UX changes as a result of this work.

BenHenning avatar Jan 16 '25 03:01 BenHenning

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), 20 bytes (Removed)

APK download size (estimated): 17 MiB (old), 17 MiB (new), 33 bytes (Removed)

Method count: 260219 (old), 260219 (new), 0 (No change)

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

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

Resources: 6818 (old), 6818 (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: 852 (old), 852 (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 bytes (Removed) APK download size (estimated): 17 MiB (old), 17 MiB (new), 20 bytes (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), 16 bytes (Removed)

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

Method count: 116287 (old), 116287 (new), 0 (No change)

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

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

Resources: 5786 (old), 5786 (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: 785 (old), 785 (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), 16 bytes (Removed) APK download size (estimated): 10 MiB (old), 10 MiB (new), 29 bytes (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), 20 bytes (Removed)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 32 bytes (Removed)

Method count: 116293 (old), 116293 (new), 0 (No change)

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

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

Resources: 5786 (old), 5786 (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: 785 (old), 785 (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), 16 bytes (Removed) APK download size (estimated): 10 MiB (old), 10 MiB (new), 13 bytes (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), 20 bytes (Removed)

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

Method count: 116293 (old), 116293 (new), 0 (No change)

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

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

Resources: 5786 (old), 5786 (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: 785 (old), 785 (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), 20 bytes (Removed) APK download size (estimated): 10 MiB (old), 10 MiB (new), 8 bytes (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)

github-actions[bot] avatar Jan 16 '25 08:01 github-actions[bot]

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), 124 bytes (Added)

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

Method count: 260219 (old), 260219 (new), 0 (No change)

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

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

Resources: 6818 (old), 6818 (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: 852 (old), 852 (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), 124 bytes (Added) APK download size (estimated): 17 MiB (old), 17 MiB (new), 592 bytes (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), 20 bytes (Removed)

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

Method count: 116287 (old), 116287 (new), 0 (No change)

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

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

Resources: 5786 (old), 5786 (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: 785 (old), 785 (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), 16 bytes (Removed) APK download size (estimated): 10 MiB (old), 10 MiB (new), 246 bytes (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), 20 bytes (Removed)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 149 bytes (Removed)

Method count: 116293 (old), 116293 (new), 0 (No change)

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

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

Resources: 5786 (old), 5786 (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: 785 (old), 785 (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), 16 bytes (Removed) APK download size (estimated): 10 MiB (old), 10 MiB (new), 5 bytes (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), 24 bytes (Removed)

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

Method count: 116293 (old), 116293 (new), 0 (No change)

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

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

Resources: 5786 (old), 5786 (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: 785 (old), 785 (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), 20 bytes (Removed) APK download size (estimated): 10 MiB (old), 10 MiB (new), 11 bytes (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)

github-actions[bot] avatar Jan 17 '25 04:01 github-actions[bot]

Coverage Report

Results

Number of files assessed: 58 Overall Coverage: 83.06% Coverage Analysis: FAIL :x:

Failing coverage

File Coverage Lines Hit Status Min Required
InitializeDefaultLocaleRule.kttesting/src/main/java/org/oppia/android/testing/junit/InitializeDefaultLocaleRule.kt
27.06% 23 / 85 :x: 38% *

* represents tests with custom overridden pass/fail coverage thresholds

Passing coverage

Files with passing code coverage
File Coverage Lines Hit Status Min Required
ExplorationStorageTestModule.ktdomain/src/main/java/org/oppia/android/domain/exploration/testing/ExplorationStorageTestModule.kt
100.00% 4 / 4 :white_check_mark: 70%
FakeExplorationRetriever.ktdomain/src/main/java/org/oppia/android/domain/exploration/testing/FakeExplorationRetriever.kt
100.00% 10 / 10 :white_check_mark: 70%
LanguageConfigRetriever.ktdomain/src/main/java/org/oppia/android/domain/locale/LanguageConfigRetriever.kt
100.00% 5 / 5 :white_check_mark: 70%
AccessibilityLabelCheck.ktscripts/src/java/org/oppia/android/scripts/label/AccessibilityLabelCheck.kt
100.00% 68 / 68 :white_check_mark: 70%
RepositoryFile.ktscripts/src/java/org/oppia/android/scripts/common/RepositoryFile.kt
96.15% 25 / 26 :white_check_mark: 70%
RegexPatternValidationCheck.ktscripts/src/java/org/oppia/android/scripts/regex/RegexPatternValidationCheck.kt
100.00% 104 / 104 :white_check_mark: 70%
TransformAndroidManifest.ktscripts/src/java/org/oppia/android/scripts/build/TransformAndroidManifest.kt
100.00% 70 / 70 :white_check_mark: 70%

Exempted coverage

Files exempted from coverage
File Exemption Reason
ModifyLessonProgressController.ktdomain/src/main/java/org/oppia/android/domain/devoptions/ModifyLessonProgressController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ClassroomController.ktdomain/src/main/java/org/oppia/android/domain/classroom/ClassroomController.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.
SpotlightStateController.ktdomain/src/main/java/org/oppia/android/domain/spotlight/SpotlightStateController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
QuestionAssessmentProgressController.ktdomain/src/main/java/org/oppia/android/domain/question/QuestionAssessmentProgressController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationCheckpointController.ktdomain/src/main/java/org/oppia/android/domain/exploration/lightweightcheckpointing/ExplorationCheckpointController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationStorageModule.ktdomain/src/main/java/org/oppia/android/domain/exploration/ExplorationStorageModule.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationActiveTimeController.ktdomain/src/main/java/org/oppia/android/domain/exploration/ExplorationActiveTimeController.kt
This file is incompatible with code coverage tooling; 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.
ExplorationDataController.ktdomain/src/main/java/org/oppia/android/domain/exploration/ExplorationDataController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
HintHandlerProdImpl.ktdomain/src/main/java/org/oppia/android/domain/hintsandsolution/HintHandlerProdImpl.kt
This file is incompatible with code coverage tooling; skipping coverage check.
HintHandlerDebugImpl.ktdomain/src/main/java/org/oppia/android/domain/hintsandsolution/HintHandlerDebugImpl.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicListController.ktdomain/src/main/java/org/oppia/android/domain/topic/TopicListController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicController.ktdomain/src/main/java/org/oppia/android/domain/topic/TopicController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OppiaTestAnnotations.kttesting/src/main/java/org/oppia/android/testing/OppiaTestAnnotations.kt
This file is exempted from having a test file; skipping coverage check.
ExplorationCheckpointTestHelper.kttesting/src/main/java/org/oppia/android/testing/lightweightcheckpointing/ExplorationCheckpointTestHelper.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OppiaTestRule.kttesting/src/main/java/org/oppia/android/testing/OppiaTestRule.kt
This file is exempted from having a test file; skipping coverage check.
StoryProgressTestHelper.kttesting/src/main/java/org/oppia/android/testing/story/StoryProgressTestHelper.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ApiMockLoader.kttesting/src/main/java/org/oppia/android/testing/network/ApiMockLoader.kt
This file is exempted from having a test file; skipping coverage check.
StateFragment.ktapp/src/main/java/org/oppia/android/app/player/state/StateFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationActivity.ktapp/src/main/java/org/oppia/android/app/player/exploration/ExplorationActivity.kt
This file is incompatible with code coverage tooling; 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.
AppLanguageFragment.ktapp/src/main/java/org/oppia/android/app/options/AppLanguageFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ReadingTextSizeFragment.ktapp/src/main/java/org/oppia/android/app/options/ReadingTextSizeFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OptionsActivity.ktapp/src/main/java/org/oppia/android/app/options/OptionsActivity.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.
RecentlyPlayedActivity.ktapp/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedActivity.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.
ProfileEditDeletionDialogFragment.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileEditDeletionDialogFragment.kt
This file is exempted from having a test file; skipping coverage check.
ProfileChooserFragmentTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/ProfileChooserFragmentTestActivity.kt
This file is exempted from having a test file; skipping coverage check.
ViewBindingShim.ktapp/src/main/java/org/oppia/android/app/shim/ViewBindingShim.kt
This file is exempted from having a test file; skipping coverage check.
ViewBindingShimImpl.ktapp/src/main/java/org/oppia/android/app/shim/ViewBindingShimImpl.kt
This file is exempted from having a test file; skipping coverage check.
IntentFactoryShim.ktapp/src/main/java/org/oppia/android/app/shim/IntentFactoryShim.kt
This file is exempted from having a test file; skipping coverage check.
IntentFactoryShimImpl.ktapp/src/main/java/org/oppia/android/app/shim/IntentFactoryShimImpl.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.
FAQSingleActivity.ktapp/src/main/java/org/oppia/android/app/help/faq/faqsingle/FAQSingleActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OngoingTopicListFragment.ktapp/src/main/java/org/oppia/android/app/ongoingtopiclist/OngoingTopicListFragment.kt
This file is exempted from having a test file; skipping coverage check.
OngoingTopicListActivity.ktapp/src/main/java/org/oppia/android/app/ongoingtopiclist/OngoingTopicListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
CompletedStoryListActivity.ktapp/src/main/java/org/oppia/android/app/completedstorylist/CompletedStoryListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
CompletedStoryListFragment.ktapp/src/main/java/org/oppia/android/app/completedstorylist/CompletedStoryListFragment.kt
This file is exempted from having a test file; 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.
ResumeLessonActivity.ktapp/src/main/java/org/oppia/android/app/resumelesson/ResumeLessonActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileProgressActivity.ktapp/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OnboardingFragment.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicRevisionFragment.ktapp/src/main/java/org/oppia/android/app/topic/revision/TopicRevisionFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ConceptCardFragment.ktapp/src/main/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
RevisionCardActivity.ktapp/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
RevisionCardFragment.ktapp/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
QuestionPlayerActivity.ktapp/src/main/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
NetworkConnectionDebugUtilModule.ktutility/src/main/java/org/oppia/android/util/networking/NetworkConnectionDebugUtilModule.kt
This file is exempted from having a test file; 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

github-actions[bot] avatar Jan 23 '25 22:01 github-actions[bot]

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), 100 bytes (Removed)

APK download size (estimated): 17 MiB (old), 17 MiB (new), 266 bytes (Removed)

Method count: 260263 (old), 260263 (new), 0 (No change)

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

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

Resources: 6820 (old), 6820 (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: 1276 (old), 1276 (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: 853 (old), 853 (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), 100 bytes (Removed) APK download size (estimated): 17 MiB (old), 17 MiB (new), 575 bytes (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), 20 bytes (Removed)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 74 bytes (Removed)

Method count: 115793 (old), 115793 (new), 0 (No change)

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

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

Resources: 5788 (old), 5788 (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: 1222 (old), 1222 (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: 786 (old), 786 (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), 16 bytes (Removed) APK download size (estimated): 10 MiB (old), 10 MiB (new), 23 bytes (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), 20 bytes (Removed)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 102 bytes (Removed)

Method count: 115799 (old), 115799 (new), 0 (No change)

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

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

Resources: 5788 (old), 5788 (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: 1222 (old), 1222 (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: 786 (old), 786 (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: 10 MiB (old), 10 MiB (new), 20 bytes (Removed) APK download size (estimated): 9 MiB (old), 9 MiB (new), 602 bytes (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), 8 bytes (Removed)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 178 bytes (Removed)

Method count: 115799 (old), 115799 (new), 0 (No change)

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

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

Resources: 5788 (old), 5788 (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: 1222 (old), 1222 (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: 786 (old), 786 (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: 10 MiB (old), 10 MiB (new), 12 bytes (Removed) APK download size (estimated): 9 MiB (old), 9 MiB (new), 112 bytes (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)

github-actions[bot] avatar Jan 26 '25 04:01 github-actions[bot]

TODO: Consider removing references to 'module' as well since that's Gradle specific in most uses and may add confusion.

BenHenning avatar Jan 27 '25 19:01 BenHenning

Hi @BenHenning, 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[bot] avatar Feb 03 '25 19:02 oppiabot[bot]

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), 28 bytes (Added)

APK download size (estimated): 17 MiB (old), 17 MiB (new), 1291 bytes (Removed)

Method count: 260308 (old), 260308 (new), 0 (No change)

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

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

Resources: 6832 (old), 6832 (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: 1285 (old), 1285 (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: 855 (old), 855 (new), 0 (No change)
  • Style: 832 (old), 832 (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), 32 bytes (Added) APK download size (estimated): 17 MiB (old), 17 MiB (new), 1444 bytes (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), 24 bytes (Removed)

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

Method count: 115790 (old), 115790 (new), 0 (No change)

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

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

Resources: 5800 (old), 5800 (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: 1231 (old), 1231 (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: 788 (old), 788 (new), 0 (No change)
  • Style: 473 (old), 473 (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), 28 bytes (Removed) APK download size (estimated): 10 MiB (old), 10 MiB (new), 26 bytes (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), 16 bytes (Removed)

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

Method count: 115796 (old), 115796 (new), 0 (No change)

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

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

Resources: 5800 (old), 5800 (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: 1231 (old), 1231 (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: 788 (old), 788 (new), 0 (No change)
  • Style: 473 (old), 473 (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: 10 MiB (old), 10 MiB (new), 16 bytes (Removed) APK download size (estimated): 9 MiB (old), 9 MiB (new), 539 bytes (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), 28 bytes (Removed)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 16 bytes (Removed)

Method count: 115796 (old), 115796 (new), 0 (No change)

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

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

Resources: 5800 (old), 5800 (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: 1231 (old), 1231 (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: 788 (old), 788 (new), 0 (No change)
  • Style: 473 (old), 473 (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: 10 MiB (old), 10 MiB (new), 28 bytes (Removed) APK download size (estimated): 9 MiB (old), 9 MiB (new), 195 bytes (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)

github-actions[bot] avatar Feb 20 '25 04:02 github-actions[bot]

TODO: Consider removing references to 'module' as well since that's Gradle specific in most uses and may add confusion.

Done. Also fixed the code coverage issue and brought this up-to-date with develop.

Still need to update the PR description with the latest changes, and finish cleaning up the wiki page changes. After those & any lingering CI problems are addressed, this PR should be ready for review.

BenHenning avatar Feb 26 '25 02:02 BenHenning

Coverage Report

Results

Number of files assessed: 63 Overall Coverage: 98.04% Coverage Analysis: PASS :white_check_mark:

Passing coverage

Files with passing code coverage
File Coverage Lines Hit Status Min Required
ExplorationStorageTestModule.ktdomain/src/main/java/org/oppia/android/domain/exploration/testing/ExplorationStorageTestModule.kt
100.00% 4 / 4 :white_check_mark: 70%
FakeExplorationRetriever.ktdomain/src/main/java/org/oppia/android/domain/exploration/testing/FakeExplorationRetriever.kt
100.00% 10 / 10 :white_check_mark: 70%
LanguageConfigRetriever.ktdomain/src/main/java/org/oppia/android/domain/locale/LanguageConfigRetriever.kt
100.00% 5 / 5 :white_check_mark: 70%
AccessibilityLabelCheck.ktscripts/src/java/org/oppia/android/scripts/label/AccessibilityLabelCheck.kt
100.00% 68 / 68 :white_check_mark: 70%
RepositoryFile.ktscripts/src/java/org/oppia/android/scripts/common/RepositoryFile.kt
96.15% 25 / 26 :white_check_mark: 70%
RegexPatternValidationCheck.ktscripts/src/java/org/oppia/android/scripts/regex/RegexPatternValidationCheck.kt
100.00% 104 / 104 :white_check_mark: 70%
TransformAndroidManifest.ktscripts/src/java/org/oppia/android/scripts/build/TransformAndroidManifest.kt
100.00% 70 / 70 :white_check_mark: 70%
ComputeChangedFiles.ktscripts/src/java/org/oppia/android/scripts/ci/ComputeChangedFiles.kt
96.53% 167 / 173 :white_check_mark: 70%
ComputeAffectedTests.ktscripts/src/java/org/oppia/android/scripts/ci/ComputeAffectedTests.kt
95.88% 163 / 170 :white_check_mark: 70%
InitializeDefaultLocaleRule.kttesting/src/main/java/org/oppia/android/testing/junit/InitializeDefaultLocaleRule.kt
100.00% 85 / 85 :white_check_mark: 100% *

* represents tests with custom overridden pass/fail coverage thresholds

Exempted coverage

Files exempted from coverage
File Exemption Reason
ModifyLessonProgressController.ktdomain/src/main/java/org/oppia/android/domain/devoptions/ModifyLessonProgressController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ClassroomController.ktdomain/src/main/java/org/oppia/android/domain/classroom/ClassroomController.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.
SpotlightStateController.ktdomain/src/main/java/org/oppia/android/domain/spotlight/SpotlightStateController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
QuestionAssessmentProgressController.ktdomain/src/main/java/org/oppia/android/domain/question/QuestionAssessmentProgressController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationCheckpointController.ktdomain/src/main/java/org/oppia/android/domain/exploration/lightweightcheckpointing/ExplorationCheckpointController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationStorageModule.ktdomain/src/main/java/org/oppia/android/domain/exploration/ExplorationStorageModule.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationActiveTimeController.ktdomain/src/main/java/org/oppia/android/domain/exploration/ExplorationActiveTimeController.kt
This file is incompatible with code coverage tooling; 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.
ExplorationDataController.ktdomain/src/main/java/org/oppia/android/domain/exploration/ExplorationDataController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
HintHandlerProdImpl.ktdomain/src/main/java/org/oppia/android/domain/hintsandsolution/HintHandlerProdImpl.kt
This file is incompatible with code coverage tooling; skipping coverage check.
HintHandlerDebugImpl.ktdomain/src/main/java/org/oppia/android/domain/hintsandsolution/HintHandlerDebugImpl.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicListController.ktdomain/src/main/java/org/oppia/android/domain/topic/TopicListController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicController.ktdomain/src/main/java/org/oppia/android/domain/topic/TopicController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OppiaTestAnnotations.kttesting/src/main/java/org/oppia/android/testing/OppiaTestAnnotations.kt
This file is exempted from having a test file; skipping coverage check.
ExplorationCheckpointTestHelper.kttesting/src/main/java/org/oppia/android/testing/lightweightcheckpointing/ExplorationCheckpointTestHelper.kt
This file is incompatible with code coverage tooling; skipping coverage check.
GenericViewMatchers.kttesting/src/main/java/org/oppia/android/testing/espresso/GenericViewMatchers.kt
This file is exempted from having a test file; skipping coverage check.
OppiaTestRule.kttesting/src/main/java/org/oppia/android/testing/OppiaTestRule.kt
This file is exempted from having a test file; skipping coverage check.
StoryProgressTestHelper.kttesting/src/main/java/org/oppia/android/testing/story/StoryProgressTestHelper.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ApiMockLoader.kttesting/src/main/java/org/oppia/android/testing/network/ApiMockLoader.kt
This file is exempted from having a test file; skipping coverage check.
StateFragment.ktapp/src/main/java/org/oppia/android/app/player/state/StateFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationActivity.ktapp/src/main/java/org/oppia/android/app/player/exploration/ExplorationActivity.kt
This file is incompatible with code coverage tooling; 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.
AppLanguageFragment.ktapp/src/main/java/org/oppia/android/app/options/AppLanguageFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ReadingTextSizeFragment.ktapp/src/main/java/org/oppia/android/app/options/ReadingTextSizeFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OptionsActivity.ktapp/src/main/java/org/oppia/android/app/options/OptionsActivity.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.
RecentlyPlayedActivity.ktapp/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedActivity.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.
ProfileEditDeletionDialogFragment.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileEditDeletionDialogFragment.kt
This file is exempted from having a test file; skipping coverage check.
ProfileChooserFragmentTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/ProfileChooserFragmentTestActivity.kt
This file is exempted from having a test file; skipping coverage check.
ViewBindingShim.ktapp/src/main/java/org/oppia/android/app/shim/ViewBindingShim.kt
This file is exempted from having a test file; skipping coverage check.
ViewBindingShimImpl.ktapp/src/main/java/org/oppia/android/app/shim/ViewBindingShimImpl.kt
This file is exempted from having a test file; skipping coverage check.
IntentFactoryShim.ktapp/src/main/java/org/oppia/android/app/shim/IntentFactoryShim.kt
This file is exempted from having a test file; skipping coverage check.
IntentFactoryShimImpl.ktapp/src/main/java/org/oppia/android/app/shim/IntentFactoryShimImpl.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.
FAQSingleActivity.ktapp/src/main/java/org/oppia/android/app/help/faq/faqsingle/FAQSingleActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OngoingTopicListFragment.ktapp/src/main/java/org/oppia/android/app/ongoingtopiclist/OngoingTopicListFragment.kt
This file is exempted from having a test file; skipping coverage check.
OngoingTopicListActivity.ktapp/src/main/java/org/oppia/android/app/ongoingtopiclist/OngoingTopicListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
CompletedStoryListActivity.ktapp/src/main/java/org/oppia/android/app/completedstorylist/CompletedStoryListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
CompletedStoryListFragment.ktapp/src/main/java/org/oppia/android/app/completedstorylist/CompletedStoryListFragment.kt
This file is exempted from having a test file; 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.
ResumeLessonActivity.ktapp/src/main/java/org/oppia/android/app/resumelesson/ResumeLessonActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileProgressActivity.ktapp/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OnboardingFragment.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
LifecycleSafeTimerFactory.ktapp/src/main/java/org/oppia/android/app/utility/lifecycle/LifecycleSafeTimerFactory.kt
This file is exempted from having a test file; skipping coverage check.
TopicRevisionFragment.ktapp/src/main/java/org/oppia/android/app/topic/revision/TopicRevisionFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ConceptCardFragment.ktapp/src/main/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
RevisionCardActivity.ktapp/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
RevisionCardFragment.ktapp/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
QuestionPlayerActivity.ktapp/src/main/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
Constants.ktdata/src/main/java/org/oppia/android/data/backends/gae/Constants.kt
This file is exempted from having a test file; skipping coverage check.
NetworkConnectionDebugUtilModule.ktutility/src/main/java/org/oppia/android/util/networking/NetworkConnectionDebugUtilModule.kt
This file is exempted from having a test file; 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

github-actions[bot] avatar Feb 26 '25 04:02 github-actions[bot]

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), 128 bytes (Removed)

APK download size (estimated): 17 MiB (old), 17 MiB (new), 583 bytes (Removed)

Method count: 260308 (old), 260308 (new), 0 (No change)

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

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

Resources: 6832 (old), 6832 (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: 1285 (old), 1285 (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: 855 (old), 855 (new), 0 (No change)
  • Style: 832 (old), 832 (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), 128 bytes (Removed) APK download size (estimated): 17 MiB (old), 17 MiB (new), 843 bytes (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), 28 bytes (Removed)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 1021 bytes (Removed)

Method count: 115790 (old), 115790 (new), 0 (No change)

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

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

Resources: 5800 (old), 5800 (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: 1231 (old), 1231 (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: 788 (old), 788 (new), 0 (No change)
  • Style: 473 (old), 473 (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), 28 bytes (Removed) APK download size (estimated): 10 MiB (old), 10 MiB (new), 107 bytes (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), 20 bytes (Removed)

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

Method count: 115796 (old), 115796 (new), 0 (No change)

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

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

Resources: 5800 (old), 5800 (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: 1231 (old), 1231 (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: 788 (old), 788 (new), 0 (No change)
  • Style: 473 (old), 473 (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: 10 MiB (old), 10 MiB (new), 20 bytes (Removed) APK download size (estimated): 9 MiB (old), 9 MiB (new), 856 bytes (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), 28 bytes (Removed)

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

Method count: 115796 (old), 115796 (new), 0 (No change)

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

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

Resources: 5800 (old), 5800 (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: 1231 (old), 1231 (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: 788 (old), 788 (new), 0 (No change)
  • Style: 473 (old), 473 (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: 10 MiB (old), 10 MiB (new), 24 bytes (Removed) APK download size (estimated): 9 MiB (old), 9 MiB (new), 691 bytes (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)

github-actions[bot] avatar Feb 26 '25 04:02 github-actions[bot]

Hi @BenHenning, 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[bot] avatar Mar 05 '25 05:03 oppiabot[bot]

Coverage Report

Results

Number of files assessed: 63 Overall Coverage: 98.04% Coverage Analysis: PASS :white_check_mark:

Passing coverage

Files with passing code coverage
File Coverage Lines Hit Status Min Required
TransformAndroidManifest.ktscripts/src/java/org/oppia/android/scripts/build/TransformAndroidManifest.kt
100.00% 70 / 70 :white_check_mark: 70%
ComputeChangedFiles.ktscripts/src/java/org/oppia/android/scripts/ci/ComputeChangedFiles.kt
96.53% 167 / 173 :white_check_mark: 70%
ComputeAffectedTests.ktscripts/src/java/org/oppia/android/scripts/ci/ComputeAffectedTests.kt
95.88% 163 / 170 :white_check_mark: 70%
RegexPatternValidationCheck.ktscripts/src/java/org/oppia/android/scripts/regex/RegexPatternValidationCheck.kt
100.00% 104 / 104 :white_check_mark: 70%
AccessibilityLabelCheck.ktscripts/src/java/org/oppia/android/scripts/label/AccessibilityLabelCheck.kt
100.00% 68 / 68 :white_check_mark: 70%
RepositoryFile.ktscripts/src/java/org/oppia/android/scripts/common/RepositoryFile.kt
96.15% 25 / 26 :white_check_mark: 70%
LanguageConfigRetriever.ktdomain/src/main/java/org/oppia/android/domain/locale/LanguageConfigRetriever.kt
100.00% 5 / 5 :white_check_mark: 70%
ExplorationStorageTestModule.ktdomain/src/main/java/org/oppia/android/domain/exploration/testing/ExplorationStorageTestModule.kt
100.00% 4 / 4 :white_check_mark: 70%
FakeExplorationRetriever.ktdomain/src/main/java/org/oppia/android/domain/exploration/testing/FakeExplorationRetriever.kt
100.00% 10 / 10 :white_check_mark: 70%
InitializeDefaultLocaleRule.kttesting/src/main/java/org/oppia/android/testing/junit/InitializeDefaultLocaleRule.kt
100.00% 85 / 85 :white_check_mark: 100% *

* represents tests with custom overridden pass/fail coverage thresholds

Exempted coverage

Files exempted from coverage
File Exemption Reason
Constants.ktdata/src/main/java/org/oppia/android/data/backends/gae/Constants.kt
This file is exempted from having a test file; skipping coverage check.
StateFragment.ktapp/src/main/java/org/oppia/android/app/player/state/StateFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationActivity.ktapp/src/main/java/org/oppia/android/app/player/exploration/ExplorationActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FAQSingleActivity.ktapp/src/main/java/org/oppia/android/app/help/faq/faqsingle/FAQSingleActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ResumeLessonActivity.ktapp/src/main/java/org/oppia/android/app/resumelesson/ResumeLessonActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ReadingTextSizeFragment.ktapp/src/main/java/org/oppia/android/app/options/ReadingTextSizeFragment.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.
OptionsActivity.ktapp/src/main/java/org/oppia/android/app/options/OptionsActivity.kt
This file is incompatible with code coverage tooling; 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.
AppLanguageFragment.ktapp/src/main/java/org/oppia/android/app/options/AppLanguageFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OnboardingFragment.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
RecentlyPlayedActivity.ktapp/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedActivity.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.
ViewBindingShimImpl.ktapp/src/main/java/org/oppia/android/app/shim/ViewBindingShimImpl.kt
This file is exempted from having a test file; skipping coverage check.
ViewBindingShim.ktapp/src/main/java/org/oppia/android/app/shim/ViewBindingShim.kt
This file is exempted from having a test file; skipping coverage check.
IntentFactoryShim.ktapp/src/main/java/org/oppia/android/app/shim/IntentFactoryShim.kt
This file is exempted from having a test file; skipping coverage check.
IntentFactoryShimImpl.ktapp/src/main/java/org/oppia/android/app/shim/IntentFactoryShimImpl.kt
This file is exempted from having a test file; skipping coverage check.
LifecycleSafeTimerFactory.ktapp/src/main/java/org/oppia/android/app/utility/lifecycle/LifecycleSafeTimerFactory.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.
CompletedStoryListFragment.ktapp/src/main/java/org/oppia/android/app/completedstorylist/CompletedStoryListFragment.kt
This file is exempted from having a test file; skipping coverage check.
CompletedStoryListActivity.ktapp/src/main/java/org/oppia/android/app/completedstorylist/CompletedStoryListActivity.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.
ProfileEditDeletionDialogFragment.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileEditDeletionDialogFragment.kt
This file is exempted from having a test file; skipping coverage check.
ProfileChooserFragmentTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/ProfileChooserFragmentTestActivity.kt
This file is exempted from having a test file; skipping coverage check.
OngoingTopicListFragment.ktapp/src/main/java/org/oppia/android/app/ongoingtopiclist/OngoingTopicListFragment.kt
This file is exempted from having a test file; skipping coverage check.
OngoingTopicListActivity.ktapp/src/main/java/org/oppia/android/app/ongoingtopiclist/OngoingTopicListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
RevisionCardActivity.ktapp/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
RevisionCardFragment.ktapp/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
QuestionPlayerActivity.ktapp/src/main/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicRevisionFragment.ktapp/src/main/java/org/oppia/android/app/topic/revision/TopicRevisionFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ConceptCardFragment.ktapp/src/main/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileProgressActivity.ktapp/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
NetworkConnectionDebugUtilModule.ktutility/src/main/java/org/oppia/android/util/networking/NetworkConnectionDebugUtilModule.kt
This file is exempted from having a test file; skipping coverage check.
ExplorationCheckpointTestHelper.kttesting/src/main/java/org/oppia/android/testing/lightweightcheckpointing/ExplorationCheckpointTestHelper.kt
This file is incompatible with code coverage tooling; skipping coverage check.
StoryProgressTestHelper.kttesting/src/main/java/org/oppia/android/testing/story/StoryProgressTestHelper.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OppiaTestAnnotations.kttesting/src/main/java/org/oppia/android/testing/OppiaTestAnnotations.kt
This file is exempted from having a test file; skipping coverage check.
ApiMockLoader.kttesting/src/main/java/org/oppia/android/testing/network/ApiMockLoader.kt
This file is exempted from having a test file; skipping coverage check.
GenericViewMatchers.kttesting/src/main/java/org/oppia/android/testing/espresso/GenericViewMatchers.kt
This file is exempted from having a test file; skipping coverage check.
OppiaTestRule.kttesting/src/main/java/org/oppia/android/testing/OppiaTestRule.kt
This file is exempted from having a test file; skipping coverage check.
ModifyLessonProgressController.ktdomain/src/main/java/org/oppia/android/domain/devoptions/ModifyLessonProgressController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SpotlightStateController.ktdomain/src/main/java/org/oppia/android/domain/spotlight/SpotlightStateController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
QuestionAssessmentProgressController.ktdomain/src/main/java/org/oppia/android/domain/question/QuestionAssessmentProgressController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
HintHandlerProdImpl.ktdomain/src/main/java/org/oppia/android/domain/hintsandsolution/HintHandlerProdImpl.kt
This file is incompatible with code coverage tooling; skipping coverage check.
HintHandlerDebugImpl.ktdomain/src/main/java/org/oppia/android/domain/hintsandsolution/HintHandlerDebugImpl.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.
ClassroomController.ktdomain/src/main/java/org/oppia/android/domain/classroom/ClassroomController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicController.ktdomain/src/main/java/org/oppia/android/domain/topic/TopicController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicListController.ktdomain/src/main/java/org/oppia/android/domain/topic/TopicListController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationCheckpointController.ktdomain/src/main/java/org/oppia/android/domain/exploration/lightweightcheckpointing/ExplorationCheckpointController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationActiveTimeController.ktdomain/src/main/java/org/oppia/android/domain/exploration/ExplorationActiveTimeController.kt
This file is incompatible with code coverage tooling; 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.
ExplorationStorageModule.ktdomain/src/main/java/org/oppia/android/domain/exploration/ExplorationStorageModule.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationDataController.ktdomain/src/main/java/org/oppia/android/domain/exploration/ExplorationDataController.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

github-actions[bot] avatar Mar 12 '25 22:03 github-actions[bot]

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), 4 bytes (Removed)

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

Method count: 260423 (old), 260423 (new), 0 (No change)

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

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

Resources: 6832 (old), 6832 (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: 1285 (old), 1285 (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: 855 (old), 855 (new), 0 (No change)
  • Style: 832 (old), 832 (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), 4 bytes (Removed) APK download size (estimated): 17 MiB (old), 17 MiB (new), 763 bytes (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), 24 bytes (Removed)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 278 bytes (Removed)

Method count: 115867 (old), 115867 (new), 0 (No change)

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

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

Resources: 5800 (old), 5800 (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: 1231 (old), 1231 (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: 788 (old), 788 (new), 0 (No change)
  • Style: 473 (old), 473 (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), 24 bytes (Removed) APK download size (estimated): 10 MiB (old), 10 MiB (new), 102 bytes (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), 24 bytes (Removed)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 17 bytes (Removed)

Method count: 115873 (old), 115873 (new), 0 (No change)

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

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

Resources: 5800 (old), 5800 (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: 1231 (old), 1231 (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: 788 (old), 788 (new), 0 (No change)
  • Style: 473 (old), 473 (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: 10 MiB (old), 10 MiB (new), 24 bytes (Removed) APK download size (estimated): 9 MiB (old), 9 MiB (new), 74 bytes (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), 24 bytes (Removed)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 25 bytes (Removed)

Method count: 115873 (old), 115873 (new), 0 (No change)

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

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

Resources: 5800 (old), 5800 (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: 1231 (old), 1231 (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: 788 (old), 788 (new), 0 (No change)
  • Style: 473 (old), 473 (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: 10 MiB (old), 10 MiB (new), 24 bytes (Removed) APK download size (estimated): 9 MiB (old), 9 MiB (new), 7 bytes (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)

github-actions[bot] avatar Mar 13 '25 03:03 github-actions[bot]

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), 8 bytes (Removed)

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

Method count: 260423 (old), 260423 (new), 0 (No change)

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

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

Resources: 6832 (old), 6832 (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: 1285 (old), 1285 (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: 855 (old), 855 (new), 0 (No change)
  • Style: 832 (old), 832 (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), 4 bytes (Removed) APK download size (estimated): 17 MiB (old), 17 MiB (new), 751 bytes (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), 24 bytes (Removed)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 300 bytes (Removed)

Method count: 115867 (old), 115867 (new), 0 (No change)

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

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

Resources: 5800 (old), 5800 (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: 1231 (old), 1231 (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: 788 (old), 788 (new), 0 (No change)
  • Style: 473 (old), 473 (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), 24 bytes (Removed) APK download size (estimated): 10 MiB (old), 10 MiB (new), 83 bytes (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), 24 bytes (Removed)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 34 bytes (Removed)

Method count: 115873 (old), 115873 (new), 0 (No change)

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

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

Resources: 5800 (old), 5800 (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: 1231 (old), 1231 (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: 788 (old), 788 (new), 0 (No change)
  • Style: 473 (old), 473 (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: 10 MiB (old), 10 MiB (new), 24 bytes (Removed) APK download size (estimated): 9 MiB (old), 9 MiB (new), 58 bytes (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), 28 bytes (Removed)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 61 bytes (Removed)

Method count: 115873 (old), 115873 (new), 0 (No change)

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

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

Resources: 5800 (old), 5800 (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: 1231 (old), 1231 (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: 788 (old), 788 (new), 0 (No change)
  • Style: 473 (old), 473 (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: 10 MiB (old), 10 MiB (new), 28 bytes (Removed) APK download size (estimated): 9 MiB (old), 9 MiB (new), 61 bytes (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)

github-actions[bot] avatar Mar 15 '25 04:03 github-actions[bot]

Hi @BenHenning, 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[bot] avatar Mar 22 '25 05:03 oppiabot[bot]

Coverage Report

Results

Number of files assessed: 63 Overall Coverage: 98.04% Coverage Analysis: FAIL :x:

Failure Cases

File Failure Reason Status
RecentlyPlayedActivity.ktapp/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedActivity.kt
No appropriate test file found for app/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedActivity.kt. :x:

Passing coverage

Files with passing code coverage
File Coverage Lines Hit Status Min Required
FakeExplorationRetriever.ktdomain/src/main/java/org/oppia/android/domain/exploration/testing/FakeExplorationRetriever.kt
100.00% 10 / 10 :white_check_mark: 70%
ExplorationStorageTestModule.ktdomain/src/main/java/org/oppia/android/domain/exploration/testing/ExplorationStorageTestModule.kt
100.00% 4 / 4 :white_check_mark: 70%
LanguageConfigRetriever.ktdomain/src/main/java/org/oppia/android/domain/locale/LanguageConfigRetriever.kt
100.00% 5 / 5 :white_check_mark: 70%
RepositoryFile.ktscripts/src/java/org/oppia/android/scripts/common/RepositoryFile.kt
96.15% 25 / 26 :white_check_mark: 70%
TransformAndroidManifest.ktscripts/src/java/org/oppia/android/scripts/build/TransformAndroidManifest.kt
100.00% 70 / 70 :white_check_mark: 70%
RegexPatternValidationCheck.ktscripts/src/java/org/oppia/android/scripts/regex/RegexPatternValidationCheck.kt
100.00% 104 / 104 :white_check_mark: 70%
ComputeAffectedTests.ktscripts/src/java/org/oppia/android/scripts/ci/ComputeAffectedTests.kt
95.88% 163 / 170 :white_check_mark: 70%
ComputeChangedFiles.ktscripts/src/java/org/oppia/android/scripts/ci/ComputeChangedFiles.kt
96.53% 167 / 173 :white_check_mark: 70%
AccessibilityLabelCheck.ktscripts/src/java/org/oppia/android/scripts/label/AccessibilityLabelCheck.kt
100.00% 68 / 68 :white_check_mark: 70%
InitializeDefaultLocaleRule.kttesting/src/main/java/org/oppia/android/testing/junit/InitializeDefaultLocaleRule.kt
100.00% 85 / 85 :white_check_mark: 100% *

* represents tests with custom overridden pass/fail coverage thresholds

Exempted coverage

Files exempted from coverage
File Exemption Reason
TopicListController.ktdomain/src/main/java/org/oppia/android/domain/topic/TopicListController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicController.ktdomain/src/main/java/org/oppia/android/domain/topic/TopicController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ModifyLessonProgressController.ktdomain/src/main/java/org/oppia/android/domain/devoptions/ModifyLessonProgressController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationStorageModule.ktdomain/src/main/java/org/oppia/android/domain/exploration/ExplorationStorageModule.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationCheckpointController.ktdomain/src/main/java/org/oppia/android/domain/exploration/lightweightcheckpointing/ExplorationCheckpointController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationActiveTimeController.ktdomain/src/main/java/org/oppia/android/domain/exploration/ExplorationActiveTimeController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationDataController.ktdomain/src/main/java/org/oppia/android/domain/exploration/ExplorationDataController.kt
This file is incompatible with code coverage tooling; 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.
HintHandlerProdImpl.ktdomain/src/main/java/org/oppia/android/domain/hintsandsolution/HintHandlerProdImpl.kt
This file is incompatible with code coverage tooling; skipping coverage check.
HintHandlerDebugImpl.ktdomain/src/main/java/org/oppia/android/domain/hintsandsolution/HintHandlerDebugImpl.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ClassroomController.ktdomain/src/main/java/org/oppia/android/domain/classroom/ClassroomController.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.
QuestionAssessmentProgressController.ktdomain/src/main/java/org/oppia/android/domain/question/QuestionAssessmentProgressController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SpotlightStateController.ktdomain/src/main/java/org/oppia/android/domain/spotlight/SpotlightStateController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
NetworkConnectionDebugUtilModule.ktutility/src/main/java/org/oppia/android/util/networking/NetworkConnectionDebugUtilModule.kt
This file is exempted from having a test file; 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.
AudioLanguageFragment.ktapp/src/main/java/org/oppia/android/app/options/AudioLanguageFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AppLanguageFragment.ktapp/src/main/java/org/oppia/android/app/options/AppLanguageFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ReadingTextSizeFragment.ktapp/src/main/java/org/oppia/android/app/options/ReadingTextSizeFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OptionsActivity.ktapp/src/main/java/org/oppia/android/app/options/OptionsActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
IntentFactoryShimImpl.ktapp/src/main/java/org/oppia/android/app/shim/IntentFactoryShimImpl.kt
This file is exempted from having a test file; skipping coverage check.
IntentFactoryShim.ktapp/src/main/java/org/oppia/android/app/shim/IntentFactoryShim.kt
This file is exempted from having a test file; skipping coverage check.
ViewBindingShimImpl.ktapp/src/main/java/org/oppia/android/app/shim/ViewBindingShimImpl.kt
This file is exempted from having a test file; skipping coverage check.
ViewBindingShim.ktapp/src/main/java/org/oppia/android/app/shim/ViewBindingShim.kt
This file is exempted from having a test file; skipping coverage check.
RevisionCardActivity.ktapp/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
RevisionCardFragment.ktapp/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ConceptCardFragment.ktapp/src/main/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
QuestionPlayerActivity.ktapp/src/main/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicRevisionFragment.ktapp/src/main/java/org/oppia/android/app/topic/revision/TopicRevisionFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
CompletedStoryListFragment.ktapp/src/main/java/org/oppia/android/app/completedstorylist/CompletedStoryListFragment.kt
This file is exempted from having a test file; skipping coverage check.
CompletedStoryListActivity.ktapp/src/main/java/org/oppia/android/app/completedstorylist/CompletedStoryListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FAQSingleActivity.ktapp/src/main/java/org/oppia/android/app/help/faq/faqsingle/FAQSingleActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
LifecycleSafeTimerFactory.ktapp/src/main/java/org/oppia/android/app/utility/lifecycle/LifecycleSafeTimerFactory.kt
This file is exempted from having a test file; 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.
ProfileEditDeletionDialogFragment.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileEditDeletionDialogFragment.kt
This file is exempted from having a test file; skipping coverage check.
ProfileProgressActivity.ktapp/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressActivity.kt
This file is incompatible with code coverage tooling; 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.
StateFragment.ktapp/src/main/java/org/oppia/android/app/player/state/StateFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationActivity.ktapp/src/main/java/org/oppia/android/app/player/exploration/ExplorationActivity.kt
This file is incompatible with code coverage tooling; 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.
ResumeLessonActivity.ktapp/src/main/java/org/oppia/android/app/resumelesson/ResumeLessonActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OnboardingFragment.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileChooserFragmentTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/ProfileChooserFragmentTestActivity.kt
This file is exempted from having a test file; skipping coverage check.
OngoingTopicListActivity.ktapp/src/main/java/org/oppia/android/app/ongoingtopiclist/OngoingTopicListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OngoingTopicListFragment.ktapp/src/main/java/org/oppia/android/app/ongoingtopiclist/OngoingTopicListFragment.kt
This file is exempted from having a test file; skipping coverage check.
Constants.ktdata/src/main/java/org/oppia/android/data/backends/gae/Constants.kt
This file is exempted from having a test file; skipping coverage check.
ApiMockLoader.kttesting/src/main/java/org/oppia/android/testing/network/ApiMockLoader.kt
This file is exempted from having a test file; skipping coverage check.
GenericViewMatchers.kttesting/src/main/java/org/oppia/android/testing/espresso/GenericViewMatchers.kt
This file is exempted from having a test file; skipping coverage check.
ExplorationCheckpointTestHelper.kttesting/src/main/java/org/oppia/android/testing/lightweightcheckpointing/ExplorationCheckpointTestHelper.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OppiaTestAnnotations.kttesting/src/main/java/org/oppia/android/testing/OppiaTestAnnotations.kt
This file is exempted from having a test file; skipping coverage check.
OppiaTestRule.kttesting/src/main/java/org/oppia/android/testing/OppiaTestRule.kt
This file is exempted from having a test file; skipping coverage check.
StoryProgressTestHelper.kttesting/src/main/java/org/oppia/android/testing/story/StoryProgressTestHelper.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

github-actions[bot] avatar Mar 26 '25 21:03 github-actions[bot]

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), 12 bytes (Added)

APK download size (estimated): 17 MiB (old), 17 MiB (new), 1396 bytes (Removed)

Method count: 260454 (old), 260454 (new), 0 (No change)

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

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

Resources: 6832 (old), 6832 (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: 1285 (old), 1285 (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: 855 (old), 855 (new), 0 (No change)
  • Style: 832 (old), 832 (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), 12 bytes (Added) APK download size (estimated): 17 MiB (old), 17 MiB (new), 1585 bytes (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), 20 bytes (Removed)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 61 bytes (Removed)

Method count: 115881 (old), 115881 (new), 0 (No change)

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

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

Resources: 5800 (old), 5800 (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: 1231 (old), 1231 (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: 788 (old), 788 (new), 0 (No change)
  • Style: 473 (old), 473 (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), 24 bytes (Removed) APK download size (estimated): 10 MiB (old), 10 MiB (new), 25 bytes (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), 20 bytes (Removed)

APK download size (estimated): 10 MiB (old), 10 MiB (new), 367 bytes (Removed)

Method count: 115887 (old), 115887 (new), 0 (No change)

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

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

Resources: 5800 (old), 5800 (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: 1231 (old), 1231 (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: 788 (old), 788 (new), 0 (No change)
  • Style: 473 (old), 473 (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: 10 MiB (old), 10 MiB (new), 20 bytes (Removed) APK download size (estimated): 9 MiB (old), 9 MiB (new), 57 bytes (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), 20 bytes (Removed)

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

Method count: 115887 (old), 115887 (new), 0 (No change)

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

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

Resources: 5800 (old), 5800 (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: 1231 (old), 1231 (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: 788 (old), 788 (new), 0 (No change)
  • Style: 473 (old), 473 (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: 10 MiB (old), 10 MiB (new), 20 bytes (Removed) APK download size (estimated): 9 MiB (old), 9 MiB (new), 51 bytes (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)

github-actions[bot] avatar Mar 27 '25 03:03 github-actions[bot]

Hi @BenHenning, 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[bot] avatar Apr 03 '25 04:04 oppiabot[bot]

Coverage Report

Results

Number of files assessed: 63 Overall Coverage: 98.04% Coverage Analysis: FAIL :x:

Failure Cases

File Failure Reason Status
RecentlyPlayedActivity.ktapp/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedActivity.kt
No appropriate test file found for app/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedActivity.kt. :x:

Passing coverage

Files with passing code coverage
File Coverage Lines Hit Status Min Required
ExplorationStorageTestModule.ktdomain/src/main/java/org/oppia/android/domain/exploration/testing/ExplorationStorageTestModule.kt
100.00% 4 / 4 :white_check_mark: 70%
FakeExplorationRetriever.ktdomain/src/main/java/org/oppia/android/domain/exploration/testing/FakeExplorationRetriever.kt
100.00% 10 / 10 :white_check_mark: 70%
LanguageConfigRetriever.ktdomain/src/main/java/org/oppia/android/domain/locale/LanguageConfigRetriever.kt
100.00% 5 / 5 :white_check_mark: 70%
RegexPatternValidationCheck.ktscripts/src/java/org/oppia/android/scripts/regex/RegexPatternValidationCheck.kt
100.00% 104 / 104 :white_check_mark: 70%
AccessibilityLabelCheck.ktscripts/src/java/org/oppia/android/scripts/label/AccessibilityLabelCheck.kt
100.00% 68 / 68 :white_check_mark: 70%
RepositoryFile.ktscripts/src/java/org/oppia/android/scripts/common/RepositoryFile.kt
96.15% 25 / 26 :white_check_mark: 70%
ComputeChangedFiles.ktscripts/src/java/org/oppia/android/scripts/ci/ComputeChangedFiles.kt
96.53% 167 / 173 :white_check_mark: 70%
ComputeAffectedTests.ktscripts/src/java/org/oppia/android/scripts/ci/ComputeAffectedTests.kt
95.88% 163 / 170 :white_check_mark: 70%
TransformAndroidManifest.ktscripts/src/java/org/oppia/android/scripts/build/TransformAndroidManifest.kt
100.00% 70 / 70 :white_check_mark: 70%
InitializeDefaultLocaleRule.kttesting/src/main/java/org/oppia/android/testing/junit/InitializeDefaultLocaleRule.kt
100.00% 85 / 85 :white_check_mark: 100% *

* represents tests with custom overridden pass/fail coverage thresholds

Exempted coverage

Files exempted from coverage
File Exemption Reason
ProfileEditDeletionDialogFragment.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileEditDeletionDialogFragment.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.
SplashActivity.ktapp/src/main/java/org/oppia/android/app/splash/SplashActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FAQSingleActivity.ktapp/src/main/java/org/oppia/android/app/help/faq/faqsingle/FAQSingleActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationActivity.ktapp/src/main/java/org/oppia/android/app/player/exploration/ExplorationActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
StateFragment.ktapp/src/main/java/org/oppia/android/app/player/state/StateFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
CompletedStoryListActivity.ktapp/src/main/java/org/oppia/android/app/completedstorylist/CompletedStoryListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
CompletedStoryListFragment.ktapp/src/main/java/org/oppia/android/app/completedstorylist/CompletedStoryListFragment.kt
This file is exempted from having a test file; skipping coverage check.
ResumeLessonActivity.ktapp/src/main/java/org/oppia/android/app/resumelesson/ResumeLessonActivity.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.
OptionsFragment.ktapp/src/main/java/org/oppia/android/app/options/OptionsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AppLanguageFragment.ktapp/src/main/java/org/oppia/android/app/options/AppLanguageFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ReadingTextSizeFragment.ktapp/src/main/java/org/oppia/android/app/options/ReadingTextSizeFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OptionsActivity.ktapp/src/main/java/org/oppia/android/app/options/OptionsActivity.kt
This file is incompatible with code coverage tooling; 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.
ProfileChooserFragmentTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/ProfileChooserFragmentTestActivity.kt
This file is exempted from having a test file; skipping coverage check.
OnboardingFragment.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileProgressActivity.ktapp/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
QuestionPlayerActivity.ktapp/src/main/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ConceptCardFragment.ktapp/src/main/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicRevisionFragment.ktapp/src/main/java/org/oppia/android/app/topic/revision/TopicRevisionFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
RevisionCardFragment.ktapp/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
RevisionCardActivity.ktapp/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
LifecycleSafeTimerFactory.ktapp/src/main/java/org/oppia/android/app/utility/lifecycle/LifecycleSafeTimerFactory.kt
This file is exempted from having a test file; skipping coverage check.
ViewBindingShimImpl.ktapp/src/main/java/org/oppia/android/app/shim/ViewBindingShimImpl.kt
This file is exempted from having a test file; skipping coverage check.
IntentFactoryShimImpl.ktapp/src/main/java/org/oppia/android/app/shim/IntentFactoryShimImpl.kt
This file is exempted from having a test file; skipping coverage check.
ViewBindingShim.ktapp/src/main/java/org/oppia/android/app/shim/ViewBindingShim.kt
This file is exempted from having a test file; skipping coverage check.
IntentFactoryShim.ktapp/src/main/java/org/oppia/android/app/shim/IntentFactoryShim.kt
This file is exempted from having a test file; skipping coverage check.
OngoingTopicListActivity.ktapp/src/main/java/org/oppia/android/app/ongoingtopiclist/OngoingTopicListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OngoingTopicListFragment.ktapp/src/main/java/org/oppia/android/app/ongoingtopiclist/OngoingTopicListFragment.kt
This file is exempted from having a test file; skipping coverage check.
OppiaTestAnnotations.kttesting/src/main/java/org/oppia/android/testing/OppiaTestAnnotations.kt
This file is exempted from having a test file; skipping coverage check.
ExplorationCheckpointTestHelper.kttesting/src/main/java/org/oppia/android/testing/lightweightcheckpointing/ExplorationCheckpointTestHelper.kt
This file is incompatible with code coverage tooling; skipping coverage check.
GenericViewMatchers.kttesting/src/main/java/org/oppia/android/testing/espresso/GenericViewMatchers.kt
This file is exempted from having a test file; skipping coverage check.
OppiaTestRule.kttesting/src/main/java/org/oppia/android/testing/OppiaTestRule.kt
This file is exempted from having a test file; skipping coverage check.
StoryProgressTestHelper.kttesting/src/main/java/org/oppia/android/testing/story/StoryProgressTestHelper.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ApiMockLoader.kttesting/src/main/java/org/oppia/android/testing/network/ApiMockLoader.kt
This file is exempted from having a test file; skipping coverage check.
QuestionAssessmentProgressController.ktdomain/src/main/java/org/oppia/android/domain/question/QuestionAssessmentProgressController.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.
ModifyLessonProgressController.ktdomain/src/main/java/org/oppia/android/domain/devoptions/ModifyLessonProgressController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationDataController.ktdomain/src/main/java/org/oppia/android/domain/exploration/ExplorationDataController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationCheckpointController.ktdomain/src/main/java/org/oppia/android/domain/exploration/lightweightcheckpointing/ExplorationCheckpointController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationActiveTimeController.ktdomain/src/main/java/org/oppia/android/domain/exploration/ExplorationActiveTimeController.kt
This file is incompatible with code coverage tooling; 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.
ExplorationStorageModule.ktdomain/src/main/java/org/oppia/android/domain/exploration/ExplorationStorageModule.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ClassroomController.ktdomain/src/main/java/org/oppia/android/domain/classroom/ClassroomController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
HintHandlerProdImpl.ktdomain/src/main/java/org/oppia/android/domain/hintsandsolution/HintHandlerProdImpl.kt
This file is incompatible with code coverage tooling; skipping coverage check.
HintHandlerDebugImpl.ktdomain/src/main/java/org/oppia/android/domain/hintsandsolution/HintHandlerDebugImpl.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SpotlightStateController.ktdomain/src/main/java/org/oppia/android/domain/spotlight/SpotlightStateController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicController.ktdomain/src/main/java/org/oppia/android/domain/topic/TopicController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicListController.ktdomain/src/main/java/org/oppia/android/domain/topic/TopicListController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
Constants.ktdata/src/main/java/org/oppia/android/data/backends/gae/Constants.kt
This file is exempted from having a test file; skipping coverage check.
NetworkConnectionDebugUtilModule.ktutility/src/main/java/org/oppia/android/util/networking/NetworkConnectionDebugUtilModule.kt
This file is exempted from having a test file; 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

github-actions[bot] avatar Apr 07 '25 22:04 github-actions[bot]

Hi @BenHenning, 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[bot] avatar Apr 14 '25 22:04 oppiabot[bot]

TODO: Consider removing references to 'module' as well since that's Gradle specific in most uses and may add confusion.

Done. Also fixed the code coverage issue and brought this up-to-date with develop.

Still need to update the PR description with the latest changes, and finish cleaning up the wiki page changes. After those & any lingering CI problems are addressed, this PR should be ready for review.

I need to recheck this now that I'm trying to bring this PR into review again.

Edit: Looks like the Android Lint tool will need to be updated, too, given that the manifest has moved locations.

BenHenning avatar Oct 29 '25 21:10 BenHenning

Hi @BenHenning, 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[bot] avatar Nov 06 '25 01:11 oppiabot[bot]

I started working on fixing the manifest issues. As far as I can tell there are two:

  1. The app module manifest has moved to be top-level. This is an easy fix as it's just updating some path and test setup references and I was able to get beyond that failure in local changes.
  2. In the case of the data 'module' its manifest is being removed since it isn't needed. As far as I can tell this is incompatible with the lint tool as it expects all Gradle 'modules' to have manifest files.

This begs a bigger question of actually continuing with this approach of simulating Gradle modules for linting when we're very explicitly moving away from that concept.

@manas-yu I'm curious if you have any suggestions how we should proceed here. Is there a way we can adapt the Android lint tool's design to work in a less "Gradle-module"-esque way?

BenHenning avatar Nov 09 '25 22:11 BenHenning

Hi @BenHenning, 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[bot] avatar Nov 16 '25 22:11 oppiabot[bot]

As discussed the best way forward considering the priority of current tasks would be to delay the refactoring of the Android lint script, and to unblock this PR and unmoving the Android Manifest files for now(This would be handled in the PR related to the refactoring of the Android Lint Script).

The Lint script is currently:

  • Structured in a Gradle project structure(this was done to maintain/improve the accuracy of the lint reports as lint liked a Gradle line environment)
  • Analyses the codebase based on modules app, data, domain, util, and testing and finds there manifest files at /src/main/manifest.xml
  • Utilises bazel cquery command in the BazelClient based on the target module tags

To migrate the android lint script to execute on a project level instead of depending on modules:

  • Remove the dependency of the script on Modules
  • Treat the entire project as one large module passing in the src, resource, test files
  • For AAR/JAR files use a bazel command like bazel cquery "deps(//:project)" --output=files
  • Check for any hardcoded module based paths like /src/main/manifest.xml and migrate them to a project level context
  • Remove Module Deps as they wont be needed.
  • Make changes in the testing setup for the script for relevant testing.

Note: The refactoring can't guarantee similar accuracy to the current version as changes to the project description affects the reports majorly so the scripts accuracy would need to be tested again thoroughly.

manas-yu avatar Nov 18 '25 17:11 manas-yu

Thanks for that write-up @manas-yu! I've filed #6010 to track the tool-specific work here and will revert the changes that are breaking it.

BenHenning avatar Nov 19 '25 23:11 BenHenning

Coverage Report

Results

Number of files assessed: 71 Overall Coverage: 98.05% Coverage Analysis: PASS :white_check_mark:

Passing coverage

Files with passing code coverage
File Coverage Lines Hit Status Min Required
RepositoryFile.ktscripts/src/java/org/oppia/android/scripts/common/RepositoryFile.kt
96.15% 25 / 26 :white_check_mark: 70%
TransformAndroidManifest.ktscripts/src/java/org/oppia/android/scripts/build/TransformAndroidManifest.kt
100.00% 72 / 72 :white_check_mark: 70%
ComputeChangedFiles.ktscripts/src/java/org/oppia/android/scripts/ci/ComputeChangedFiles.kt
96.53% 167 / 173 :white_check_mark: 70%
ComputeAffectedTests.ktscripts/src/java/org/oppia/android/scripts/ci/ComputeAffectedTests.kt
95.88% 163 / 170 :white_check_mark: 70%
RegexPatternValidationCheck.ktscripts/src/java/org/oppia/android/scripts/regex/RegexPatternValidationCheck.kt
100.00% 104 / 104 :white_check_mark: 70%
AccessibilityLabelCheck.ktscripts/src/java/org/oppia/android/scripts/label/AccessibilityLabelCheck.kt
100.00% 68 / 68 :white_check_mark: 70%
ExplorationStorageTestModule.ktdomain/src/main/java/org/oppia/android/domain/exploration/testing/ExplorationStorageTestModule.kt
100.00% 4 / 4 :white_check_mark: 70%
FakeExplorationRetriever.ktdomain/src/main/java/org/oppia/android/domain/exploration/testing/FakeExplorationRetriever.kt
100.00% 10 / 10 :white_check_mark: 70%
LanguageConfigRetriever.ktdomain/src/main/java/org/oppia/android/domain/locale/LanguageConfigRetriever.kt
100.00% 5 / 5 :white_check_mark: 70%
InitializeDefaultLocaleRule.kttesting/src/main/java/org/oppia/android/testing/junit/InitializeDefaultLocaleRule.kt
100.00% 85 / 85 :white_check_mark: 100% *

* represents tests with custom overridden pass/fail coverage thresholds

Exempted coverage

Files exempted from coverage
File Exemption Reason
TestPlatformParameterModule.kttesting/src/main/java/org/oppia/android/testing/platformparameter/TestPlatformParameterModule.kt
This file is exempted from having a test file; skipping coverage check.
ExplorationCheckpointTestHelper.kttesting/src/main/java/org/oppia/android/testing/lightweightcheckpointing/ExplorationCheckpointTestHelper.kt
This file is incompatible with code coverage tooling; skipping coverage check.
GenericViewMatchers.kttesting/src/main/java/org/oppia/android/testing/espresso/GenericViewMatchers.kt
This file is exempted from having a test file; skipping coverage check.
OppiaTestRule.kttesting/src/main/java/org/oppia/android/testing/OppiaTestRule.kt
This file is exempted from having a test file; skipping coverage check.
OppiaTestAnnotations.kttesting/src/main/java/org/oppia/android/testing/OppiaTestAnnotations.kt
This file is exempted from having a test file; skipping coverage check.
StoryProgressTestHelper.kttesting/src/main/java/org/oppia/android/testing/story/StoryProgressTestHelper.kt
This file is incompatible with code coverage tooling; skipping coverage check.
NetworkConnectionDebugUtilModule.ktutility/src/main/java/org/oppia/android/util/networking/NetworkConnectionDebugUtilModule.kt
This file is exempted from having a test file; skipping coverage check.
ListItemLeadingMarginSpan.ktutility/src/main/java/org/oppia/android/util/parser/html/ListItemLeadingMarginSpan.kt
This file is incompatible with code coverage tooling; skipping coverage check.
HtmlParser.ktutility/src/main/java/org/oppia/android/util/parser/html/HtmlParser.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ViewBindingShimImpl.ktapp/src/main/java/org/oppia/android/app/shim/ViewBindingShimImpl.kt
This file is exempted from having a test file; skipping coverage check.
IntentFactoryShimImpl.ktapp/src/main/java/org/oppia/android/app/shim/IntentFactoryShimImpl.kt
This file is exempted from having a test file; skipping coverage check.
ViewBindingShim.ktapp/src/main/java/org/oppia/android/app/shim/ViewBindingShim.kt
This file is exempted from having a test file; skipping coverage check.
IntentFactoryShim.ktapp/src/main/java/org/oppia/android/app/shim/IntentFactoryShim.kt
This file is exempted from having a test file; skipping coverage check.
ProfileProgressActivity.ktapp/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
CompletedStoryListActivity.ktapp/src/main/java/org/oppia/android/app/completedstorylist/CompletedStoryListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
CompletedStoryListFragment.ktapp/src/main/java/org/oppia/android/app/completedstorylist/CompletedStoryListFragment.kt
This file is exempted from having a test file; skipping coverage check.
OptionsActivity.ktapp/src/main/java/org/oppia/android/app/options/OptionsActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ReadingTextSizeFragment.ktapp/src/main/java/org/oppia/android/app/options/ReadingTextSizeFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AppLanguageFragment.ktapp/src/main/java/org/oppia/android/app/options/AppLanguageFragment.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.
WalkthroughTopicListFragment.ktapp/src/main/java/org/oppia/android/app/walkthrough/topiclist/WalkthroughTopicListFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ApplicationInjector.ktapp/src/main/java/org/oppia/android/app/application/ApplicationInjector.kt
This file is exempted from having a test file; skipping coverage check.
ApplicationComponent.ktapp/src/main/java/org/oppia/android/app/application/ApplicationComponent.kt
This file is exempted from having a test file; skipping coverage check.
ApplicationInjectorProvider.ktapp/src/main/java/org/oppia/android/app/application/ApplicationInjectorProvider.kt
This file is exempted from having a test file; skipping coverage check.
ProfileChooserFragmentTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/ProfileChooserFragmentTestActivity.kt
This file is exempted from having a test file; skipping coverage check.
ExplorationActivity.ktapp/src/main/java/org/oppia/android/app/player/exploration/ExplorationActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
StateFragment.ktapp/src/main/java/org/oppia/android/app/player/state/StateFragment.kt
This file is incompatible with code coverage tooling; 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.
LifecycleSafeTimerFactory.ktapp/src/main/java/org/oppia/android/app/utility/lifecycle/LifecycleSafeTimerFactory.kt
This file is exempted from having a test file; skipping coverage check.
OngoingTopicListActivity.ktapp/src/main/java/org/oppia/android/app/ongoingtopiclist/OngoingTopicListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OngoingTopicListFragment.ktapp/src/main/java/org/oppia/android/app/ongoingtopiclist/OngoingTopicListFragment.kt
This file is exempted from having a test file; skipping coverage check.
QuestionPlayerActivity.ktapp/src/main/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
RevisionCardFragment.ktapp/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
RevisionCardActivity.ktapp/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicRevisionFragment.ktapp/src/main/java/org/oppia/android/app/topic/revision/TopicRevisionFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ConceptCardFragment.ktapp/src/main/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragment.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.
ResumeLessonActivity.ktapp/src/main/java/org/oppia/android/app/resumelesson/ResumeLessonActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileEditDeletionDialogFragment.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileEditDeletionDialogFragment.kt
This file is exempted from having a test file; skipping coverage check.
OnboardingFragment.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
RecentlyPlayedActivity.ktapp/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedActivity.kt
This file is incompatible with code coverage tooling; 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.
InjectableAppCompatActivity.ktapp/src/main/java/org/oppia/android/app/activity/InjectableAppCompatActivity.kt
This file is exempted from having a test file; skipping coverage check.
FAQSingleActivity.ktapp/src/main/java/org/oppia/android/app/help/faq/faqsingle/FAQSingleActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
Constants.ktdata/src/main/java/org/oppia/android/data/backends/gae/Constants.kt
This file is exempted from having a test file; skipping coverage check.
PlatformParameterControllerInjectorProvider.ktdomain/src/main/java/org/oppia/android/domain/platformparameter/PlatformParameterControllerInjectorProvider.kt
This file is exempted from having a test file; skipping coverage check.
PlatformParameterControllerInjector.ktdomain/src/main/java/org/oppia/android/domain/platformparameter/PlatformParameterControllerInjector.kt
This file is exempted from having a test file; skipping coverage check.
ExplorationCheckpointController.ktdomain/src/main/java/org/oppia/android/domain/exploration/lightweightcheckpointing/ExplorationCheckpointController.kt
This file is incompatible with code coverage tooling; 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.
ExplorationStorageModule.ktdomain/src/main/java/org/oppia/android/domain/exploration/ExplorationStorageModule.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationActiveTimeController.ktdomain/src/main/java/org/oppia/android/domain/exploration/ExplorationActiveTimeController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationDataController.ktdomain/src/main/java/org/oppia/android/domain/exploration/ExplorationDataController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SpotlightStateController.ktdomain/src/main/java/org/oppia/android/domain/spotlight/SpotlightStateController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ClassroomController.ktdomain/src/main/java/org/oppia/android/domain/classroom/ClassroomController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
HintHandlerDebugImpl.ktdomain/src/main/java/org/oppia/android/domain/hintsandsolution/HintHandlerDebugImpl.kt
This file is incompatible with code coverage tooling; skipping coverage check.
HintHandlerProdImpl.ktdomain/src/main/java/org/oppia/android/domain/hintsandsolution/HintHandlerProdImpl.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicListController.ktdomain/src/main/java/org/oppia/android/domain/topic/TopicListController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicController.ktdomain/src/main/java/org/oppia/android/domain/topic/TopicController.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.
QuestionAssessmentProgressController.ktdomain/src/main/java/org/oppia/android/domain/question/QuestionAssessmentProgressController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ModifyLessonProgressController.ktdomain/src/main/java/org/oppia/android/domain/devoptions/ModifyLessonProgressController.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

github-actions[bot] avatar Nov 20 '25 02:11 github-actions[bot]

Hi @BenHenning, 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[bot] avatar Nov 27 '25 02:11 oppiabot[bot]

At this point I expect tests to pass unless they flake due to the ongoing zlib issue.

BenHenning avatar Nov 27 '25 03:11 BenHenning

PTAL for codeowners @seanlip and @adhiamboperes.

PTAL specifically for infrastructure, documentation, and lint changes @manas-yu.

@adhiamboperes and @manas-yu you are probably both broadly interested in all of the changes here since they are so far-reaching.

/cc @subhajitxyz as well for FYI.

BenHenning avatar Nov 27 '25 03:11 BenHenning