Fix part of #2747, #1532: Remove support for Gradle
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 (
.gradlefiles,settings.gradle, thegradlewwrappers, and thegradle/wrapperdirectory). 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.ymlworkflow (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
.gitignoreper 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
StateFragmentTestandExplorationActivityTesthas 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 inExplorationActivityTestwithout issue). The longer-term infrastructure work is tracked in #1523. LoadLessonProtosFromAssetshas 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
OppiaTestRunneras 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
RepositoryFileand test removals inRepositoryFileTestnow that Gradle build directories no longer need to be filtered. TestEnvironmentConfigwas 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). ApiMockLoaderwas simplified now that test config artifacts are in a single location during testing time.InitializeDefaultLocaleRulecan 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).
TransformAndroidManifestwas 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.propertiesfiles, 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.xmlfrom 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.
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)
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)
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
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)
TODO: Consider removing references to 'module' as well since that's Gradle specific in most uses and may add confusion.
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!
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)
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.
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
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)
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!
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
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)
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)
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!
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
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)
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!
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
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!
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.
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!
I started working on fixing the manifest issues. As far as I can tell there are two:
- 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.
- 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?
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!
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.
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.
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
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!
At this point I expect tests to pass unless they flake due to the ongoing zlib issue.
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.