Skip to content

Fix part of #6106: Add Release Playbook wiki page - #6352

Open
Sandesh282 wants to merge 11 commits into
developfrom
pr2.7
Open

Fix part of #6106: Add Release Playbook wiki page#6352
Sandesh282 wants to merge 11 commits into
developfrom
pr2.7

Conversation

@Sandesh282

@Sandesh282 Sandesh282 commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

Fixes part of #6106

Explanation

This PR adds the Release Playbook wiki page (wiki/Release-Playbook.md) — a practical, step-by-step coordinator guide for running Oppia Android releases using the automated pipeline introduced in the #6106 PR series.

The page is structured as a set of actionable checklists covering the four main coordinator workflows:

  1. Weekly alpha release — approving the automated auto_release_alpha.yml build, distributing to QA via Firebase, and deploying to the alpha Play Console track.
  2. Changelog review — reviewing and merging the AI-generated changelog PR opened by generate_changelog.yml.
  3. Production release — cutting a release branch, building and signing, QA distribution, and initial staged deployment.
  4. Staged rollout — progressive rollout from 10% → 25% → 50% → 100% using update_rollout.yml, with Crashlytics monitoring at each step.
  5. Weekly coordinator checklist — a recurring checklist covering all automated crons (alpha, lesson versions, changelog) and rollout advancement.

The page is intentionally thin on conceptual detail — it links to App and Feature Release Process for background and to In-Depth Release Reference for manual fallback procedures.

Essential Checklist

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

Disclosure of LLM Usage

AI was used for code completion, drafting wiki content, and research.

@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 6bc1293e-3c70-487a-b0e6-343035256b6b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Sandesh282 Sandesh282 self-assigned this Aug 9, 2026
@github-actions

github-actions Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Coverage Report

Results

Coverage Analysis: SKIP ⏭️

This PR did not introduce any changes to Kotlin source or test files.

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

@Sandesh282 Sandesh282 changed the title Fix part of #6106: Add Release Playbook wiki page stub Fix part of #6106: Add Release Playbook wiki page Aug 13, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Coverage Report

Results

Number of files assessed: 197
Overall Coverage: 97.05%
Coverage Analysis: PASS

Passing coverage

Files with passing code coverage
File Coverage Lines Hit Status Min Required
WorkManagerScheduler.ktdomain/src/main/java/org/oppia/android/domain/workmanager/WorkManagerScheduler.kt
100.00% 30 / 30 70%
BootstrapOppiaWorker.ktdomain/src/main/java/org/oppia/android/domain/workmanager/BootstrapOppiaWorker.kt
100.00% 51 / 51 70%
DebugWorker.ktdomain/src/main/java/org/oppia/android/domain/workmanager/debug/DebugWorker.kt
100.00% 19 / 19 70%
DebugWorkerScheduler.ktdomain/src/main/java/org/oppia/android/domain/workmanager/debug/DebugWorkerScheduler.kt
100.00% 9 / 9 70%
WorkManagerConfigurationModule.ktdomain/src/main/java/org/oppia/android/domain/workmanager/WorkManagerConfigurationModule.kt
100.00% 8 / 8 70%
PlatformParameterSyncUpWorker.ktdomain/src/main/java/org/oppia/android/domain/platformparameter/syncup/PlatformParameterSyncUpWorker.kt
75.86% 22 / 29 70%
PlatformParameterSyncUpWorkerScheduler.ktdomain/src/main/java/org/oppia/android/domain/platformparameter/syncup/PlatformParameterSyncUpWorkerScheduler.kt
100.00% 8 / 8 70%
PerformanceMetricsLogger.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/analytics/PerformanceMetricsLogger.kt
100.00% 98 / 98 70%
CpuPerformanceSnapshotter.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/analytics/CpuPerformanceSnapshotter.kt
87.61% 99 / 113 70%
FeatureFlagsLogger.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/analytics/FeatureFlagsLogger.kt
100.00% 23 / 23 70%
LogUploadWorker.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/loguploader/LogUploadWorker.kt
98.44% 63 / 64 70%
LogReportWorkerScheduler.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/loguploader/LogReportWorkerScheduler.kt
100.00% 5 / 5 70%
MetricLogSchedulingWorker.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/logscheduler/MetricLogSchedulingWorker.kt
100.00% 31 / 31 70%
MetricLogSchedulingWorkerScheduler.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/logscheduler/MetricLogSchedulingWorkerScheduler.kt
100.00% 19 / 19 70%
RegexPatternValidationCheck.ktscripts/src/java/org/oppia/android/scripts/regex/RegexPatternValidationCheck.kt
100.00% 104 / 104 70%
KdocValidityCheck.ktscripts/src/java/org/oppia/android/scripts/docs/KdocValidityCheck.kt
99.25% 132 / 133 70%
ActivityRouter.ktapp/src/main/java/org/oppia/android/app/activity/route/ActivityRouter.kt
100.00% 12 / 12 70%
ActivityLanguageLocaleHandler.ktapp/src/main/java/org/oppia/android/app/translation/ActivityLanguageLocaleHandler.kt
100.00% 11 / 11 70%
AppLanguageWatcherMixin.ktapp/src/main/java/org/oppia/android/app/translation/AppLanguageWatcherMixin.kt
71.05% 27 / 38 70%
NumberWithUnitsTokenizer.ktutility/src/main/java/org/oppia/android/util/math/NumberWithUnitsTokenizer.kt
98.10% 103 / 105 70%
NumberWithUnitsParser.ktutility/src/main/java/org/oppia/android/util/math/NumberWithUnitsParser.kt
99.15% 352 / 355 70%
CpuPerformanceSnapshotterModule.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/analytics/CpuPerformanceSnapshotterModule.kt
80.00% 4 / 5 26% *
InitializeDefaultLocaleRule.kttesting/src/main/java/org/oppia/android/testing/junit/InitializeDefaultLocaleRule.kt
100.00% 85 / 85 100% *
ActivityIntentFactories.ktapp/src/main/java/org/oppia/android/app/activity/ActivityIntentFactories.kt
0.00% 0 / 0 0% *

* represents tests with custom overridden pass/fail coverage thresholds

Exempted coverage

Files exempted from coverage
File Exemption Reason
DebugWorkerDebugModule.ktdomain/src/main/java/org/oppia/android/domain/workmanager/debug/DebugWorkerDebugModule.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OppiaWorkManagerTestDriver.ktdomain/src/main/java/org/oppia/android/domain/workmanager/testing/OppiaWorkManagerTestDriver.kt
This file is exempted from having a test file; skipping coverage check.
OppiaWorker.ktdomain/src/main/java/org/oppia/android/domain/workmanager/OppiaWorker.kt
This file is exempted from having a test file; skipping coverage check.
StartupWorkerScheduleReadinessListener.ktdomain/src/main/java/org/oppia/android/domain/workmanager/StartupWorkerScheduleReadinessListener.kt
This file is exempted from having a test file; skipping coverage check.
StartupWorkerScheduleReadinessMonitor.ktdomain/src/main/java/org/oppia/android/domain/workmanager/StartupWorkerScheduleReadinessMonitor.kt
This file is exempted from having a test file; 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.
PlatformParameterSyncUpWorkerModule.ktdomain/src/main/java/org/oppia/android/domain/platformparameter/syncup/PlatformParameterSyncUpWorkerModule.kt
This file is exempted from having a test file; skipping coverage check.
LearnerAnalyticsLogger.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/analytics/LearnerAnalyticsLogger.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ApplicationLifecycleLogger.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/analytics/ApplicationLifecycleLogger.kt
This file is exempted from having a test file; skipping coverage check.
ApplicationLifecycleListener.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/analytics/ApplicationLifecycleListener.kt
This file is exempted from having a test file; skipping coverage check.
ApplicationLifecycleObserver.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/analytics/ApplicationLifecycleObserver.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExceptionsController.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/exceptions/ExceptionsController.kt
This file is incompatible with code coverage tooling; skipping coverage check.
UncaughtExceptionLoggerStartupListener.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/exceptions/UncaughtExceptionLoggerStartupListener.kt
This file is incompatible with code coverage tooling; skipping coverage check.
LogReportWorkerModule.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/loguploader/LogReportWorkerModule.kt
This file is exempted from having a test file; skipping coverage check.
ApplicationStartupListener.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/ApplicationStartupListener.kt
This file is exempted from having a test file; skipping coverage check.
MetricLogSchedulerModule.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/logscheduler/MetricLogSchedulerModule.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FakePerformanceMetricsEventLogger.kttesting/src/main/java/org/oppia/android/testing/FakePerformanceMetricsEventLogger.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FakeAnalyticsEventLogger.kttesting/src/main/java/org/oppia/android/testing/FakeAnalyticsEventLogger.kt
This file is incompatible with code coverage tooling; skipping coverage check.
NumberWithUnitsTokenSubject.kttesting/src/main/java/org/oppia/android/testing/math/NumberWithUnitsTokenSubject.kt
This file is exempted from having a test file; skipping coverage check.
NumberWithUnitsSubject.kttesting/src/main/java/org/oppia/android/testing/math/NumberWithUnitsSubject.kt
This file is exempted from having a test file; skipping coverage check.
FakeFirestoreEventLogger.kttesting/src/main/java/org/oppia/android/testing/FakeFirestoreEventLogger.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FakeExceptionLogger.kttesting/src/main/java/org/oppia/android/testing/FakeExceptionLogger.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TestPlatformParameterModule.kttesting/src/main/java/org/oppia/android/testing/platformparameter/TestPlatformParameterModule.kt
This file is exempted from having a test file; skipping coverage check.
TestApplicationComponent.ktinstrumentation/src/java/org/oppia/android/instrumentation/application/TestApplicationComponent.kt
This file is exempted from having a test file; skipping coverage check.
DecodeUserStudyEventString.ktscripts/src/java/org/oppia/android/scripts/telemetry/DecodeUserStudyEventString.kt
This file is exempted from having a test file; skipping coverage check.
AppVersionActivity.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/appversion/AppVersionActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileAndDeviceIdFragment.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/learneranalytics/ProfileAndDeviceIdFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileAndDeviceIdActivity.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/learneranalytics/ProfileAndDeviceIdActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AdministratorControlsFragment.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/AdministratorControlsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AdministratorControlsActivity.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/AdministratorControlsActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ResumeLessonFragment.ktapp/src/main/java/org/oppia/android/app/resumelesson/ResumeLessonFragment.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.
LicenseListActivity.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/LicenseListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
LicenseTextViewerActivity.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/LicenseTextViewerActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
LicenseListFragment.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/LicenseListFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
LicenseTextViewerFragment.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/LicenseTextViewerFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ThirdPartyDependencyListFragment.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/ThirdPartyDependencyListFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ThirdPartyDependencyListActivity.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/ThirdPartyDependencyListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
HelpActivity.ktapp/src/main/java/org/oppia/android/app/help/HelpActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
HelpFragment.ktapp/src/main/java/org/oppia/android/app/help/HelpFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FAQListActivity.ktapp/src/main/java/org/oppia/android/app/help/faq/FAQListActivity.kt
This file is exempted from having a test file; skipping coverage check.
FAQListFragment.ktapp/src/main/java/org/oppia/android/app/help/faq/FAQListFragment.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.
OptionalAppDeprecationNoticeDialogFragment.ktapp/src/main/java/org/oppia/android/app/notice/OptionalAppDeprecationNoticeDialogFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
GeneralAvailabilityUpgradeNoticeDialogFragment.ktapp/src/main/java/org/oppia/android/app/notice/GeneralAvailabilityUpgradeNoticeDialogFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OsDeprecationNoticeDialogFragment.ktapp/src/main/java/org/oppia/android/app/notice/OsDeprecationNoticeDialogFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ForcedAppDeprecationNoticeDialogFragment.ktapp/src/main/java/org/oppia/android/app/notice/ForcedAppDeprecationNoticeDialogFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
BetaNoticeDialogFragment.ktapp/src/main/java/org/oppia/android/app/notice/BetaNoticeDialogFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileRenameFragment.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileRenameFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileResetPinActivity.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileResetPinActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileEditFragment.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileEditFragment.kt
This file is exempted from having a test file; skipping coverage check.
ProfileEditActivity.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileEditActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileListFragment.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileListFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileResetPinFragment.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileResetPinFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileListActivity.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileRenameActivity.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileRenameActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
DeveloperOppiaApplication.ktapp/src/main/java/org/oppia/android/app/application/dev/DeveloperOppiaApplication.kt
This file is exempted from having a test file; skipping coverage check.
DeveloperApplicationComponent.ktapp/src/main/java/org/oppia/android/app/application/dev/DeveloperApplicationComponent.kt
This file is exempted from having a test file; skipping coverage check.
GaApplicationComponent.ktapp/src/main/java/org/oppia/android/app/application/ga/GaApplicationComponent.kt
This file is exempted from having a test file; skipping coverage check.
AlphaApplicationComponent.ktapp/src/main/java/org/oppia/android/app/application/alpha/AlphaApplicationComponent.kt
This file is exempted from having a test file; skipping coverage check.
BetaApplicationComponent.ktapp/src/main/java/org/oppia/android/app/application/beta/BetaApplicationComponent.kt
This file is exempted from having a test file; skipping coverage check.
AbstractOppiaApplication.ktapp/src/main/java/org/oppia/android/app/application/AbstractOppiaApplication.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.
IntroFragment.ktapp/src/main/java/org/oppia/android/app/onboarding/IntroFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AdminIntroActivity.ktapp/src/main/java/org/oppia/android/app/onboarding/AdminIntroActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OnboardingProfileTypeFragment.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingProfileTypeFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
CreateProfileActivity.ktapp/src/main/java/org/oppia/android/app/onboarding/CreateProfileActivity.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.
CreateProfileFragment.ktapp/src/main/java/org/oppia/android/app/onboarding/CreateProfileFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
IntroActivity.ktapp/src/main/java/org/oppia/android/app/onboarding/IntroActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AdminIntroFragment.ktapp/src/main/java/org/oppia/android/app/onboarding/AdminIntroFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OnboardingProfileTypeActivity.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingProfileTypeActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OnboardingActivity.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FractionInputInteractionViewTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/FractionInputInteractionViewTestActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TestFontScaleConfigurationUtilActivity.ktapp/src/main/java/org/oppia/android/app/testing/TestFontScaleConfigurationUtilActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicTestActivityForStory.ktapp/src/main/java/org/oppia/android/app/testing/TopicTestActivityForStory.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TextInputInteractionViewTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/TextInputInteractionViewTestActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
InputInteractionViewTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/InputInteractionViewTestActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
RatioInputInteractionViewTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/RatioInputInteractionViewTestActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TestActivity.ktapp/src/main/java/org/oppia/android/app/testing/activity/TestActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
DragDropTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/DragDropTestActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SpotlightFragment.ktapp/src/main/java/org/oppia/android/app/spotlight/SpotlightFragment.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.
RecentlyPlayedFragment.ktapp/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedFragment.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.
PromotedStoryListViewModel.ktapp/src/main/java/org/oppia/android/app/home/promotedlist/PromotedStoryListViewModel.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PromotedStoryViewModel.ktapp/src/main/java/org/oppia/android/app/home/promotedlist/PromotedStoryViewModel.kt
This file is incompatible with code coverage tooling; skipping coverage check.
WelcomeViewModel.ktapp/src/main/java/org/oppia/android/app/home/WelcomeViewModel.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicSummaryViewModel.ktapp/src/main/java/org/oppia/android/app/home/topiclist/TopicSummaryViewModel.kt
This file is incompatible with code coverage tooling; skipping coverage check.
StoryFragment.ktapp/src/main/java/org/oppia/android/app/story/StoryFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
StoryActivity.ktapp/src/main/java/org/oppia/android/app/story/StoryActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MarkChaptersCompletedActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/markchapterscompleted/MarkChaptersCompletedActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MarkChaptersCompletedFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/markchapterscompleted/MarkChaptersCompletedFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FeatureFlagsActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/featureflags/FeatureFlagsActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FeatureFlagsFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/featureflags/FeatureFlagsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ForceNetworkTypeFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/forcenetworktype/ForceNetworkTypeFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ForceNetworkTypeActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/forcenetworktype/ForceNetworkTypeActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MathExpressionParserFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/mathexpressionparser/MathExpressionParserFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MathExpressionParserActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/mathexpressionparser/MathExpressionParserActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
DeveloperOptionsFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/DeveloperOptionsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MarkStoriesCompletedActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/markstoriescompleted/MarkStoriesCompletedActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MarkStoriesCompletedFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/markstoriescompleted/MarkStoriesCompletedFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ViewEventLogsFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/vieweventlogs/ViewEventLogsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ViewEventLogsActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/vieweventlogs/ViewEventLogsActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MarkTopicsCompletedActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/marktopicscompleted/MarkTopicsCompletedActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MarkTopicsCompletedFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/marktopicscompleted/MarkTopicsCompletedFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
DeveloperOptionsActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/DeveloperOptionsActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PlatformParametersActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParametersActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PlatformParametersFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParametersFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PoliciesActivity.ktapp/src/main/java/org/oppia/android/app/policies/PoliciesActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PoliciesFragment.ktapp/src/main/java/org/oppia/android/app/policies/PoliciesFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AdminAuthActivity.ktapp/src/main/java/org/oppia/android/app/profile/AdminAuthActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileLoginFragment.ktapp/src/main/java/org/oppia/android/app/profile/ProfileLoginFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileChooserActivity.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserActivity.kt
This file is exempted from having a test file; skipping coverage check.
AdminPinActivity.ktapp/src/main/java/org/oppia/android/app/profile/AdminPinActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AddProfileActivity.ktapp/src/main/java/org/oppia/android/app/profile/AddProfileActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileChooserFragment.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileLoginActivity.ktapp/src/main/java/org/oppia/android/app/profile/ProfileLoginActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PinPasswordActivity.ktapp/src/main/java/org/oppia/android/app/profile/PinPasswordActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AudioFragment.ktapp/src/main/java/org/oppia/android/app/player/audio/AudioFragment.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.
ImageRegionSelectionInteractionView.ktapp/src/main/java/org/oppia/android/app/player/state/ImageRegionSelectionInteractionView.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.
BottomSheetOptionsMenu.ktapp/src/main/java/org/oppia/android/app/player/exploration/BottomSheetOptionsMenu.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SurveyFragment.ktapp/src/main/java/org/oppia/android/app/survey/SurveyFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SurveyActivity.ktapp/src/main/java/org/oppia/android/app/survey/SurveyActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicFragment.ktapp/src/main/java/org/oppia/android/app/topic/TopicFragment.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.
TopicActivity.ktapp/src/main/java/org/oppia/android/app/topic/TopicActivity.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.
TopicLessonsFragment.ktapp/src/main/java/org/oppia/android/app/topic/lessons/TopicLessonsFragment.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.
StudyGuideActivity.ktapp/src/main/java/org/oppia/android/app/topic/studyguide/StudyGuideActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
StudyGuideFragment.ktapp/src/main/java/org/oppia/android/app/topic/studyguide/StudyGuideFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicPracticeFragment.ktapp/src/main/java/org/oppia/android/app/topic/practice/TopicPracticeFragment.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.
TopicInfoFragment.ktapp/src/main/java/org/oppia/android/app/topic/info/TopicInfoFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
StringToRatioParser.ktapp/src/main/java/org/oppia/android/app/parser/StringToRatioParser.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FractionParsingUiError.ktapp/src/main/java/org/oppia/android/app/parser/FractionParsingUiError.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ClassroomListFragment.ktapp/src/main/java/org/oppia/android/app/classroom/ClassroomListFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ClassroomListActivity.ktapp/src/main/java/org/oppia/android/app/classroom/ClassroomListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ActivityRouterModule.ktapp/src/main/java/org/oppia/android/app/activity/route/ActivityRouterModule.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AudioLanguageActivity.ktapp/src/main/java/org/oppia/android/app/options/AudioLanguageActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AppLanguageActivity.ktapp/src/main/java/org/oppia/android/app/options/AppLanguageActivity.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.
ReadingTextSizeFragment.ktapp/src/main/java/org/oppia/android/app/options/ReadingTextSizeFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ReadingTextSizeActivity.ktapp/src/main/java/org/oppia/android/app/options/ReadingTextSizeActivity.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.
AudioLanguageFragment.ktapp/src/main/java/org/oppia/android/app/options/AudioLanguageFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
DateTimeUtil.ktapp/src/main/java/org/oppia/android/app/utility/datetime/DateTimeUtil.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MathExpressionAccessibilityUtil.ktapp/src/main/java/org/oppia/android/app/utility/math/MathExpressionAccessibilityUtil.kt
This file is incompatible with code coverage tooling; skipping coverage check.
RatioExtensions.ktapp/src/main/java/org/oppia/android/app/utility/RatioExtensions.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AppLanguageResourceHandler.ktapp/src/main/java/org/oppia/android/app/translation/AppLanguageResourceHandler.kt
This file is incompatible with code coverage tooling; 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.
BindableAdapter.ktapp/src/main/java/org/oppia/android/app/recyclerview/BindableAdapter.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MyDownloadsFragment.ktapp/src/main/java/org/oppia/android/app/mydownloads/MyDownloadsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MyDownloadsActivity.ktapp/src/main/java/org/oppia/android/app/mydownloads/MyDownloadsActivity.kt
This file is exempted from having a test file; skipping coverage check.
WalkthroughWelcomeFragment.ktapp/src/main/java/org/oppia/android/app/walkthrough/welcome/WalkthroughWelcomeFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
WalkthroughActivity.ktapp/src/main/java/org/oppia/android/app/walkthrough/WalkthroughActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
WalkthroughFinalFragment.ktapp/src/main/java/org/oppia/android/app/walkthrough/end/WalkthroughFinalFragment.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.
ProfileProgressFragment.ktapp/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfilePictureActivity.ktapp/src/main/java/org/oppia/android/app/profileprogress/ProfilePictureActivity.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.
MathExpressionInteractionsView.ktapp/src/main/java/org/oppia/android/app/customview/interaction/MathExpressionInteractionsView.kt
This file is incompatible with code coverage tooling; skipping coverage check.
LessonThumbnailImageView.ktapp/src/main/java/org/oppia/android/app/customview/LessonThumbnailImageView.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.
CompletedStoryListActivity.ktapp/src/main/java/org/oppia/android/app/completedstorylist/CompletedStoryListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
NumberWithUnitsParsingError.ktutility/src/main/java/org/oppia/android/util/math/NumberWithUnitsParsingError.kt
This file is exempted from having a test file; 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.
ListItemLeadingMarginSpan.ktutility/src/main/java/org/oppia/android/util/parser/html/ListItemLeadingMarginSpan.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

@oppiabot

oppiabot Bot commented Aug 20, 2026

Copy link
Copy Markdown

Hi @Sandesh282, 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! If you're unsure how to reassign this PR to a reviewer, please make sure to review the wiki page that details the Guidance on submitting PRs.

@oppiabot oppiabot Bot added the stale Corresponds to items that haven't seen a recent update and may be automatically closed. label Aug 20, 2026
@Sandesh282
Sandesh282 marked this pull request as ready for review August 23, 2026 16:52
@Sandesh282
Sandesh282 requested review from a team as code owners August 23, 2026 16:52
@oppiabot oppiabot Bot removed the stale Corresponds to items that haven't seen a recent update and may be automatically closed. label Aug 23, 2026

@adhiamboperes adhiamboperes left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks @Sandesh282! PTAL.

Comment thread wiki/Release-Playbook.md Outdated
Comment thread wiki/Release-Playbook.md
Comment thread wiki/Release-Playbook.md Outdated
Comment thread wiki/Release-Playbook.md Outdated
Comment thread wiki/Release-Playbook.md Outdated
Comment thread wiki/Release-Playbook.md Outdated
Comment thread wiki/Release-Playbook.md Outdated
Comment thread wiki/Release-Playbook.md Outdated
Comment thread wiki/Release-Playbook.md Outdated
Comment thread wiki/Release-Playbook.md Outdated

@adhiamboperes adhiamboperes left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think the changes look good. Thanks @Sandesh282!

@github-actions

Copy link
Copy Markdown
Contributor

Coverage Report

Results

Number of files assessed: 348
Overall Coverage: 90.94%
Coverage Analysis: FAIL

Failing coverage

File Coverage Lines Hit Status Min Required
AndroidLintRunner.ktscripts/src/java/org/oppia/android/scripts/lint/AndroidLintRunner.kt
67.32% 239 / 355 70%

Passing coverage

Files with passing code coverage
File Coverage Lines Hit Status Min Required
ActivityRouter.ktapp/src/main/java/org/oppia/android/app/activity/route/ActivityRouter.kt
100.00% 12 / 12 70%
EdgeToEdgeHelper.ktapp/src/main/java/org/oppia/android/app/utility/edgetoedge/EdgeToEdgeHelper.kt
95.42% 229 / 240 70%
ActivityLanguageLocaleHandler.ktapp/src/main/java/org/oppia/android/app/translation/ActivityLanguageLocaleHandler.kt
100.00% 11 / 11 70%
AppLanguageWatcherMixin.ktapp/src/main/java/org/oppia/android/app/translation/AppLanguageWatcherMixin.kt
71.05% 27 / 38 70%
SurveyGatingController.ktdomain/src/main/java/org/oppia/android/domain/survey/SurveyGatingController.kt
96.97% 32 / 33 70%
LogUploadWorker.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/loguploader/LogUploadWorker.kt
98.44% 63 / 64 70%
LogReportWorkerScheduler.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/loguploader/LogReportWorkerScheduler.kt
100.00% 5 / 5 70%
CpuPerformanceSnapshotter.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/analytics/CpuPerformanceSnapshotter.kt
87.61% 99 / 113 70%
PerformanceMetricsLogger.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/analytics/PerformanceMetricsLogger.kt
100.00% 98 / 98 70%
FeatureFlagsLogger.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/analytics/FeatureFlagsLogger.kt
100.00% 23 / 23 70%
MetricLogSchedulingWorker.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/logscheduler/MetricLogSchedulingWorker.kt
100.00% 31 / 31 70%
MetricLogSchedulingWorkerScheduler.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/logscheduler/MetricLogSchedulingWorkerScheduler.kt
100.00% 19 / 19 70%
LocaleController.ktdomain/src/main/java/org/oppia/android/domain/locale/LocaleController.kt
92.49% 160 / 173 70%
TranslationController.ktdomain/src/main/java/org/oppia/android/domain/translation/TranslationController.kt
94.15% 161 / 171 70%
PlatformParameterSyncUpWorkerScheduler.ktdomain/src/main/java/org/oppia/android/domain/platformparameter/syncup/PlatformParameterSyncUpWorkerScheduler.kt
100.00% 8 / 8 70%
PlatformParameterSyncUpWorker.ktdomain/src/main/java/org/oppia/android/domain/platformparameter/syncup/PlatformParameterSyncUpWorker.kt
75.86% 22 / 29 70%
WorkManagerScheduler.ktdomain/src/main/java/org/oppia/android/domain/workmanager/WorkManagerScheduler.kt
100.00% 30 / 30 70%
WorkManagerConfigurationModule.ktdomain/src/main/java/org/oppia/android/domain/workmanager/WorkManagerConfigurationModule.kt
100.00% 8 / 8 70%
BootstrapOppiaWorker.ktdomain/src/main/java/org/oppia/android/domain/workmanager/BootstrapOppiaWorker.kt
100.00% 51 / 51 70%
DebugWorker.ktdomain/src/main/java/org/oppia/android/domain/workmanager/debug/DebugWorker.kt
100.00% 19 / 19 70%
DebugWorkerScheduler.ktdomain/src/main/java/org/oppia/android/domain/workmanager/debug/DebugWorkerScheduler.kt
100.00% 9 / 9 70%
LiTagHandler.ktutility/src/main/java/org/oppia/android/util/parser/html/LiTagHandler.kt
89.86% 133 / 148 70%
WorkedExampleTagHandler.ktutility/src/main/java/org/oppia/android/util/parser/html/WorkedExampleTagHandler.kt
97.37% 74 / 76 70%
CustomHtmlContentHandler.ktutility/src/main/java/org/oppia/android/util/parser/html/CustomHtmlContentHandler.kt
87.42% 132 / 151 70%
TestOppiaBidiFormatter.ktutility/src/main/java/org/oppia/android/util/locale/testing/TestOppiaBidiFormatter.kt
82.61% 19 / 23 70%
OppiaBidiFormatterImpl.ktutility/src/main/java/org/oppia/android/util/locale/OppiaBidiFormatterImpl.kt
100.00% 5 / 5 70%
MachineLocaleImpl.ktutility/src/main/java/org/oppia/android/util/locale/MachineLocaleImpl.kt
86.05% 37 / 43 70%
AndroidLocaleProfile.ktutility/src/main/java/org/oppia/android/util/locale/AndroidLocaleProfile.kt
100.00% 94 / 94 70%
NumberWithUnitsTokenizer.ktutility/src/main/java/org/oppia/android/util/math/NumberWithUnitsTokenizer.kt
98.10% 103 / 105 70%
NumberWithUnitsParser.ktutility/src/main/java/org/oppia/android/util/math/NumberWithUnitsParser.kt
99.15% 352 / 355 70%
RetrofitModule.ktdata/src/main/java/org/oppia/android/data/backends/gae/RetrofitModule.kt
100.00% 15 / 15 70%
RetryInterceptor.ktdata/src/main/java/org/oppia/android/data/backends/gae/RetryInterceptor.kt
87.50% 28 / 32 70%
VersionInversionChecker.ktscripts/src/java/org/oppia/android/scripts/release/VersionInversionChecker.kt
100.00% 48 / 48 70%
UploadChangelogToPlayConsole.ktscripts/src/java/org/oppia/android/scripts/release/UploadChangelogToPlayConsole.kt
86.67% 91 / 105 70%
FakePlayConsoleClient.ktscripts/src/java/org/oppia/android/scripts/release/FakePlayConsoleClient.kt
86.36% 114 / 132 70%
GooglePlayConsoleClient.ktscripts/src/java/org/oppia/android/scripts/release/GooglePlayConsoleClient.kt
96.63% 86 / 89 70%
UpdateRolloutFraction.ktscripts/src/java/org/oppia/android/scripts/release/UpdateRolloutFraction.kt
86.30% 63 / 73 70%
PendingReleaseChecker.ktscripts/src/java/org/oppia/android/scripts/release/PendingReleaseChecker.kt
100.00% 13 / 13 70%
UploadBinaryToPlayConsole.ktscripts/src/java/org/oppia/android/scripts/release/UploadBinaryToPlayConsole.kt
98.23% 111 / 113 70%
AndroidBuildSdkProperties.ktscripts/src/java/org/oppia/android/scripts/common/AndroidBuildSdkProperties.kt
100.00% 10 / 10 70%
RegexPatternValidationCheck.ktscripts/src/java/org/oppia/android/scripts/regex/RegexPatternValidationCheck.kt
100.00% 104 / 104 70%
KdocValidityCheck.ktscripts/src/java/org/oppia/android/scripts/docs/KdocValidityCheck.kt
99.25% 132 / 133 70%
LintModelCreator.ktscripts/src/java/org/oppia/android/scripts/lint/LintModelCreator.kt
81.82% 180 / 220 70%
ActivityIntentFactories.ktapp/src/main/java/org/oppia/android/app/activity/ActivityIntentFactories.kt
0.00% 0 / 0 0% *
CpuPerformanceSnapshotterModule.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/analytics/CpuPerformanceSnapshotterModule.kt
80.00% 4 / 5 26% *
InitializeDefaultLocaleRule.kttesting/src/main/java/org/oppia/android/testing/junit/InitializeDefaultLocaleRule.kt
100.00% 85 / 85 100% *
JsonPrefixNetworkInterceptor.ktdata/src/main/java/org/oppia/android/data/backends/gae/JsonPrefixNetworkInterceptor.kt
28.57% 4 / 14 28% *

* represents tests with custom overridden pass/fail coverage thresholds

Exempted coverage

Files exempted from coverage
File Exemption Reason
StringToRatioParser.ktapp/src/main/java/org/oppia/android/app/parser/StringToRatioParser.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FractionParsingUiError.ktapp/src/main/java/org/oppia/android/app/parser/FractionParsingUiError.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OngoingTopicListActivityPresenter.ktapp/src/main/java/org/oppia/android/app/ongoingtopiclist/OngoingTopicListActivityPresenter.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.
OngoingTopicListFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/ongoingtopiclist/OngoingTopicListFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
StoryActivity.ktapp/src/main/java/org/oppia/android/app/story/StoryActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
StoryChapterSummaryViewModel.ktapp/src/main/java/org/oppia/android/app/story/storyitemviewmodel/StoryChapterSummaryViewModel.kt
This file is exempted from having a test file; skipping coverage check.
StoryActivityPresenter.ktapp/src/main/java/org/oppia/android/app/story/StoryActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
StoryFragment.ktapp/src/main/java/org/oppia/android/app/story/StoryFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
StoryFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/story/StoryFragmentPresenter.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.
CompletedStoryListFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/completedstorylist/CompletedStoryListFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
CompletedStoryListActivityPresenter.ktapp/src/main/java/org/oppia/android/app/completedstorylist/CompletedStoryListActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AdminPinActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profile/AdminPinActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AdminAuthActivity.ktapp/src/main/java/org/oppia/android/app/profile/AdminAuthActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileChooserFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileChooserActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
PinPasswordActivity.ktapp/src/main/java/org/oppia/android/app/profile/PinPasswordActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AdminPinActivity.ktapp/src/main/java/org/oppia/android/app/profile/AdminPinActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileLoginFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/profile/ProfileLoginFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileChooserFragmentPresenterV1.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserFragmentPresenterV1.kt
This file is exempted from having a test file; skipping coverage check.
ProfileLoginFragment.ktapp/src/main/java/org/oppia/android/app/profile/ProfileLoginFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileChooserActivity.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserActivity.kt
This file is exempted from having a test file; skipping coverage check.
ProfileChooserFragment.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PinPasswordActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profile/PinPasswordActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileLoginActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profile/ProfileLoginActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AddProfileActivity.ktapp/src/main/java/org/oppia/android/app/profile/AddProfileActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileLoginActivity.ktapp/src/main/java/org/oppia/android/app/profile/ProfileLoginActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AdminAuthActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profile/AdminAuthActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AddProfileActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profile/AddProfileActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
PoliciesActivity.ktapp/src/main/java/org/oppia/android/app/policies/PoliciesActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PoliciesFragment.ktapp/src/main/java/org/oppia/android/app/policies/PoliciesFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PoliciesActivityPresenter.ktapp/src/main/java/org/oppia/android/app/policies/PoliciesActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
BindableAdapter.ktapp/src/main/java/org/oppia/android/app/recyclerview/BindableAdapter.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationFragment.ktapp/src/main/java/org/oppia/android/app/player/exploration/ExplorationFragment.kt
This file is exempted from having a test file; skipping coverage check.
ExplorationFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/player/exploration/ExplorationFragmentPresenter.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.
BottomSheetOptionsMenu.ktapp/src/main/java/org/oppia/android/app/player/exploration/BottomSheetOptionsMenu.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationActivityPresenter.ktapp/src/main/java/org/oppia/android/app/player/exploration/ExplorationActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AudioViewModel.ktapp/src/main/java/org/oppia/android/app/player/audio/AudioViewModel.kt
This file is exempted from having a test file; skipping coverage check.
AudioFragment.ktapp/src/main/java/org/oppia/android/app/player/audio/AudioFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
StateFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/player/state/StateFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
StateFragmentTestActivityPresenter.ktapp/src/main/java/org/oppia/android/app/player/state/testing/StateFragmentTestActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
StateViewModel.ktapp/src/main/java/org/oppia/android/app/player/state/StateViewModel.kt
This file is exempted from having a test file; skipping coverage check.
StatePlayerRecyclerViewAssembler.ktapp/src/main/java/org/oppia/android/app/player/state/StatePlayerRecyclerViewAssembler.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.
LessonProgressViewModel.ktapp/src/main/java/org/oppia/android/app/player/state/itemviewmodel/LessonProgressViewModel.kt
This file is exempted from having a test file; skipping coverage check.
ImageRegionSelectionInteractionView.ktapp/src/main/java/org/oppia/android/app/player/state/ImageRegionSelectionInteractionView.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ResumeLessonFragment.ktapp/src/main/java/org/oppia/android/app/resumelesson/ResumeLessonFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ResumeLessonActivityPresenter.ktapp/src/main/java/org/oppia/android/app/resumelesson/ResumeLessonActivityPresenter.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.
ResumeLessonFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/resumelesson/ResumeLessonFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
LessonThumbnailImageView.ktapp/src/main/java/org/oppia/android/app/customview/LessonThumbnailImageView.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MathExpressionInteractionsView.ktapp/src/main/java/org/oppia/android/app/customview/interaction/MathExpressionInteractionsView.kt
This file is incompatible with code coverage tooling; skipping coverage check.
LessonProgressIndicatorView.ktapp/src/main/java/org/oppia/android/app/customview/LessonProgressIndicatorView.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FractionInputInteractionViewTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/FractionInputInteractionViewTestActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TestActivity.ktapp/src/main/java/org/oppia/android/app/testing/activity/TestActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
DragDropTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/DragDropTestActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TestFontScaleConfigurationUtilActivity.ktapp/src/main/java/org/oppia/android/app/testing/TestFontScaleConfigurationUtilActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationTestActivityPresenter.ktapp/src/main/java/org/oppia/android/app/testing/ExplorationTestActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
TopicTestActivityForStory.ktapp/src/main/java/org/oppia/android/app/testing/TopicTestActivityForStory.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileChooserFragmentTestActivityPresenter.ktapp/src/main/java/org/oppia/android/app/testing/ProfileChooserFragmentTestActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
InputInteractionViewTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/InputInteractionViewTestActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
RatioInputInteractionViewTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/RatioInputInteractionViewTestActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TextInputInteractionViewTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/TextInputInteractionViewTestActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SurveyFragment.ktapp/src/main/java/org/oppia/android/app/survey/SurveyFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SurveyActivity.ktapp/src/main/java/org/oppia/android/app/survey/SurveyActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SurveyActivityPresenter.ktapp/src/main/java/org/oppia/android/app/survey/SurveyActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
SurveyFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/survey/SurveyFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ActivityRouterModule.ktapp/src/main/java/org/oppia/android/app/activity/route/ActivityRouterModule.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OptionalAppDeprecationNoticeDialogFragment.ktapp/src/main/java/org/oppia/android/app/notice/OptionalAppDeprecationNoticeDialogFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
GeneralAvailabilityUpgradeNoticeDialogFragment.ktapp/src/main/java/org/oppia/android/app/notice/GeneralAvailabilityUpgradeNoticeDialogFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ForcedAppDeprecationNoticeDialogFragment.ktapp/src/main/java/org/oppia/android/app/notice/ForcedAppDeprecationNoticeDialogFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OsDeprecationNoticeDialogFragment.ktapp/src/main/java/org/oppia/android/app/notice/OsDeprecationNoticeDialogFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
BetaNoticeDialogFragment.ktapp/src/main/java/org/oppia/android/app/notice/BetaNoticeDialogFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
HelpFragment.ktapp/src/main/java/org/oppia/android/app/help/HelpFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
HelpActivity.ktapp/src/main/java/org/oppia/android/app/help/HelpActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
LicenseTextViewerActivityPresenter.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/LicenseTextViewerActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
LicenseListFragment.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/LicenseListFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ThirdPartyDependencyListActivity.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/ThirdPartyDependencyListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
LicenseTextViewerFragment.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/LicenseTextViewerFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
LicenseListActivityPresenter.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/LicenseListActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
LicenseListActivity.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/LicenseListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
LicenseTextViewerActivity.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/LicenseTextViewerActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ThirdPartyDependencyListFragment.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/ThirdPartyDependencyListFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ThirdPartyDependencyListActivityPresenter.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/ThirdPartyDependencyListActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
FAQListActivityPresenter.ktapp/src/main/java/org/oppia/android/app/help/faq/FAQListActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
FAQListFragment.ktapp/src/main/java/org/oppia/android/app/help/faq/FAQListFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FAQListActivity.ktapp/src/main/java/org/oppia/android/app/help/faq/FAQListActivity.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.
FAQSingleActivityPresenter.ktapp/src/main/java/org/oppia/android/app/help/faq/faqsingle/FAQSingleActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
HelpActivityPresenter.ktapp/src/main/java/org/oppia/android/app/help/HelpActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileAndDeviceIdActivityPresenter.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/learneranalytics/ProfileAndDeviceIdActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileAndDeviceIdFragment.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/learneranalytics/ProfileAndDeviceIdFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileAndDeviceIdActivity.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/learneranalytics/ProfileAndDeviceIdActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AdministratorControlsActivity.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/AdministratorControlsActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AppVersionActivity.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/appversion/AppVersionActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AppVersionActivityPresenter.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/appversion/AppVersionActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AdministratorControlsFragment.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/AdministratorControlsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AdministratorControlsActivityPresenter.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/AdministratorControlsActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
GaApplicationComponent.ktapp/src/main/java/org/oppia/android/app/application/ga/GaApplicationComponent.kt
This file is exempted from having a test file; skipping coverage check.
AbstractOppiaApplication.ktapp/src/main/java/org/oppia/android/app/application/AbstractOppiaApplication.kt
This file is exempted from having a test file; skipping coverage check.
BetaApplicationComponent.ktapp/src/main/java/org/oppia/android/app/application/beta/BetaApplicationComponent.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.
AlphaApplicationComponent.ktapp/src/main/java/org/oppia/android/app/application/alpha/AlphaApplicationComponent.kt
This file is exempted from having a test file; skipping coverage check.
DeveloperOppiaApplication.ktapp/src/main/java/org/oppia/android/app/application/dev/DeveloperOppiaApplication.kt
This file is exempted from having a test file; skipping coverage check.
DeveloperApplicationComponent.ktapp/src/main/java/org/oppia/android/app/application/dev/DeveloperApplicationComponent.kt
This file is exempted from having a test file; skipping coverage check.
DeveloperOptionsActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/DeveloperOptionsActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FeatureFlagsFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/featureflags/FeatureFlagsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FeatureFlagsActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/featureflags/FeatureFlagsActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FeatureFlagsActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/featureflags/FeatureFlagsActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
FeatureFlagsFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/featureflags/FeatureFlagsFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MarkTopicsCompletedFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/marktopicscompleted/MarkTopicsCompletedFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MarkTopicsCompletedActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/marktopicscompleted/MarkTopicsCompletedActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MarkTopicsCompletedFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/marktopicscompleted/MarkTopicsCompletedFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MarkTopicsCompletedActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/marktopicscompleted/MarkTopicsCompletedActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ForceNetworkTypeActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/forcenetworktype/ForceNetworkTypeActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ForceNetworkTypeFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/forcenetworktype/ForceNetworkTypeFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ForceNetworkTypeFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/forcenetworktype/ForceNetworkTypeFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ForceNetworkTypeActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/forcenetworktype/ForceNetworkTypeActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MarkStoriesCompletedActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/markstoriescompleted/MarkStoriesCompletedActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MarkStoriesCompletedActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/markstoriescompleted/MarkStoriesCompletedActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MarkStoriesCompletedFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/markstoriescompleted/MarkStoriesCompletedFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MarkStoriesCompletedFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/markstoriescompleted/MarkStoriesCompletedFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MathExpressionParserActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/mathexpressionparser/MathExpressionParserActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MathExpressionParserFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/mathexpressionparser/MathExpressionParserFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MathExpressionParserFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/mathexpressionparser/MathExpressionParserFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MathExpressionParserActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/mathexpressionparser/MathExpressionParserActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
DeveloperOptionsFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/DeveloperOptionsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MarkChaptersCompletedActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/markchapterscompleted/MarkChaptersCompletedActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MarkChaptersCompletedActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/markchapterscompleted/MarkChaptersCompletedActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MarkChaptersCompletedFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/markchapterscompleted/MarkChaptersCompletedFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MarkChaptersCompletedFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/markchapterscompleted/MarkChaptersCompletedFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PlatformParametersActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParametersActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PlatformParametersFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParametersFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
PlatformParametersFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParametersFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PlatformParametersActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParametersActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
DeveloperOptionsActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/DeveloperOptionsActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ViewEventLogsFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/vieweventlogs/ViewEventLogsFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ViewEventLogsFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/vieweventlogs/ViewEventLogsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ViewEventLogsActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/vieweventlogs/ViewEventLogsActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ViewEventLogsActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/vieweventlogs/ViewEventLogsActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
DateTimeUtil.ktapp/src/main/java/org/oppia/android/app/utility/datetime/DateTimeUtil.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MathExpressionAccessibilityUtil.ktapp/src/main/java/org/oppia/android/app/utility/math/MathExpressionAccessibilityUtil.kt
This file is incompatible with code coverage tooling; skipping coverage check.
RatioExtensions.ktapp/src/main/java/org/oppia/android/app/utility/RatioExtensions.kt
This file is incompatible with code coverage tooling; skipping coverage check.
NavigationDrawerFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/drawer/NavigationDrawerFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MyDownloadsActivity.ktapp/src/main/java/org/oppia/android/app/mydownloads/MyDownloadsActivity.kt
This file is exempted from having a test file; skipping coverage check.
MyDownloadsFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/mydownloads/MyDownloadsFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MyDownloadsActivityPresenter.ktapp/src/main/java/org/oppia/android/app/mydownloads/MyDownloadsActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MyDownloadsFragment.ktapp/src/main/java/org/oppia/android/app/mydownloads/MyDownloadsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AppLanguageResourceHandler.ktapp/src/main/java/org/oppia/android/app/translation/AppLanguageResourceHandler.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileProgressActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressActivityPresenter.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.
ProfilePictureActivity.ktapp/src/main/java/org/oppia/android/app/profileprogress/ProfilePictureActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfilePictureActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profileprogress/ProfilePictureActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileProgressFragment.ktapp/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressFragment.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.
AudioLanguageActivity.ktapp/src/main/java/org/oppia/android/app/options/AudioLanguageActivity.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.
AudioLanguageActivityPresenter.ktapp/src/main/java/org/oppia/android/app/options/AudioLanguageActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
OptionsActivityPresenter.ktapp/src/main/java/org/oppia/android/app/options/OptionsActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AppLanguageActivityPresenter.ktapp/src/main/java/org/oppia/android/app/options/AppLanguageActivityPresenter.kt
This file is exempted from having a test file; 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.
AudioLanguageSelectionViewModel.ktapp/src/main/java/org/oppia/android/app/options/AudioLanguageSelectionViewModel.kt
This file is exempted from having a test file; skipping coverage check.
ReadingTextSizeActivity.ktapp/src/main/java/org/oppia/android/app/options/ReadingTextSizeActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AppLanguageActivity.ktapp/src/main/java/org/oppia/android/app/options/AppLanguageActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AppLanguageFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/options/AppLanguageFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AudioLanguageFragment.ktapp/src/main/java/org/oppia/android/app/options/AudioLanguageFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ReadingTextSizeActivityPresenter.ktapp/src/main/java/org/oppia/android/app/options/ReadingTextSizeActivityPresenter.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.
SplashActivity.ktapp/src/main/java/org/oppia/android/app/splash/SplashActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SplashActivityPresenter.ktapp/src/main/java/org/oppia/android/app/splash/SplashActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
WalkthroughActivityPresenter.ktapp/src/main/java/org/oppia/android/app/walkthrough/WalkthroughActivityPresenter.kt
This file is exempted from having a test file; 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.
WalkthroughFinalFragment.ktapp/src/main/java/org/oppia/android/app/walkthrough/end/WalkthroughFinalFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
WalkthroughWelcomeFragment.ktapp/src/main/java/org/oppia/android/app/walkthrough/welcome/WalkthroughWelcomeFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
WalkthroughActivity.ktapp/src/main/java/org/oppia/android/app/walkthrough/WalkthroughActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileListActivity.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileListActivityPresenter.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileListActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileRenameFragment.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileRenameFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileListFragment.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileListFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileRenameActivityPresenter.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileRenameActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileRenameActivity.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileRenameActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileListFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileListFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileResetPinActivityPresenter.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileResetPinActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileEditActivity.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileEditActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileResetPinFragment.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileResetPinFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileResetPinActivity.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileResetPinActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileEditActivityPresenter.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileEditActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileEditFragment.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileEditFragment.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.
HomeActivityPresenter.ktapp/src/main/java/org/oppia/android/app/home/HomeActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
RecentlyPlayedFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
RecentlyPlayedFragment.ktapp/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedFragment.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.
RecentlyPlayedActivityPresenter.ktapp/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
TopicSummaryViewModel.ktapp/src/main/java/org/oppia/android/app/home/topiclist/TopicSummaryViewModel.kt
This file is incompatible with code coverage tooling; skipping coverage check.
WelcomeViewModel.ktapp/src/main/java/org/oppia/android/app/home/WelcomeViewModel.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PromotedStoryViewModel.ktapp/src/main/java/org/oppia/android/app/home/promotedlist/PromotedStoryViewModel.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PromotedStoryListViewModel.ktapp/src/main/java/org/oppia/android/app/home/promotedlist/PromotedStoryListViewModel.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SpotlightFragment.ktapp/src/main/java/org/oppia/android/app/spotlight/SpotlightFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicPracticeFragment.ktapp/src/main/java/org/oppia/android/app/topic/practice/TopicPracticeFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicActivity.ktapp/src/main/java/org/oppia/android/app/topic/TopicActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/topic/TopicFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
TopicInfoFragment.ktapp/src/main/java/org/oppia/android/app/topic/info/TopicInfoFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ConceptCardFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentPresenter.kt
This file is exempted from having a test file; 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.
TopicLessonsFragment.ktapp/src/main/java/org/oppia/android/app/topic/lessons/TopicLessonsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicLessonsFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/topic/lessons/TopicLessonsFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
QuestionPlayerActivityPresenter.ktapp/src/main/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerActivityPresenter.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.
TopicFragment.ktapp/src/main/java/org/oppia/android/app/topic/TopicFragment.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.
TopicActivityPresenter.ktapp/src/main/java/org/oppia/android/app/topic/TopicActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
StudyGuideActivity.ktapp/src/main/java/org/oppia/android/app/topic/studyguide/StudyGuideActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
StudyGuideFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/topic/studyguide/StudyGuideFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
StudyGuideFragment.ktapp/src/main/java/org/oppia/android/app/topic/studyguide/StudyGuideFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
StudyGuideActivityPresenter.ktapp/src/main/java/org/oppia/android/app/topic/studyguide/StudyGuideActivityPresenter.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.
RevisionCardActivityPresenter.ktapp/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardActivityPresenter.kt
This file is exempted from having a test file; 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.
ClassroomListFragment.ktapp/src/main/java/org/oppia/android/app/classroom/ClassroomListFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ClassroomListActivity.ktapp/src/main/java/org/oppia/android/app/classroom/ClassroomListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ClassroomListActivityPresenter.ktapp/src/main/java/org/oppia/android/app/classroom/ClassroomListActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
OnboardingFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AudioLanguageFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/AudioLanguageFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
OnboardingProfileTypeFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingProfileTypeFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
IntroFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/IntroFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
OnboardingFragmentPresenterV1.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingFragmentPresenterV1.kt
This file is exempted from having a test file; skipping coverage check.
AdminIntroFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/AdminIntroFrag...[Comment body truncated]

@seanlip seanlip left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks @Sandesh282, left a few notes. PTAL.

Comment thread wiki/Release-Playbook.md
After the initial deployment, progressively increase the rollout using `update_rollout.yml`.
Monitor Firebase Crashlytics between each step; halt and investigate if crash rates spike.

| Day | `rollout_fraction` | Actual rollout | Action |

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

These look like integers rather than "fractions"?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

They are in permille (thousandths out of 1000), so 100 = 10%, 1000 = 100%. Added a note below the table to clarify the unit.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

But then shouldn't the name be something like "rollout_permille", not "rollout_fraction"? The integer here is still not a fraction.

@Sandesh282 Sandesh282 Aug 31, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

rollout_fraction is already the established parameter name in update_rollout.yml (the workflow input, job name, and Bazel target are all named accordingly). Keeping the same name in the playbook table makes it easy for release coordinators to directly map the doc to the actual workflow input when triggering a run.

PS: The note directly below the table already clarifies the permille semantics: "rollout_fraction is specified in permille (thousandths out of 1000) as required by the Play Console API — 100 means 10%, 1000 means 100%."

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Yes, I am actually suggesting that that name is misleading throughout and should be changed, not just here, but in the workflows. This should probably have been caught during earlier review.

If a variable does not actually represent a fraction, it should not be called a fraction.

Could you please look into this? Is there an external constraint that forces us to keep the incorrect naming?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@Sandesh282, it may be useful to explain why we user permille instead of percent

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

The Play Console API's userFraction field accepts a decimal from 0 to 1 with sub-1% precision (e.g. 0.005 = 0.5%). Using percent integers [0, 100] would limit steps to whole percentages and couldn't represent values like 0.5%. Permille [0, 1000] covers the same sub-1% granularity while keeping the workflow input as a plain integer; the script converts it to the API decimal via rolloutFraction / 1000.0. The name rollout_fraction mirrors the API's own userFraction field name, which is why we kept it consistent throughout.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Hi @Sandesh282, that is not an adequate reason.

The userFraction field is correctly named in the Play Console API because the value it stores is a fraction (in this case, a decimal from 0 to 1).

Our rolloutFraction, however, is named misleadingly, because it does not store a fraction, and the value that it stores is instead an integer from 0 to 1000 that is supposed to be treated as a permille. Developers reading this code will naturally assume a _fraction is a float between 0.0 and 1.0 (matching the API's behavior).

Could we update the workflow/variable name to rollout_permille or similar to reflect the actual unit being used?

Note that I am not suggesting that we use percent instead. I am talking about naming the field in a way that is not misleading.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Screenshot 2026-09-02 at 15 54 01

I understand. I had already added a sentence with an example explaining what the number represents. I think this makes values like 1000 or 100 less ambiguous, since readers can refer to the example to understand what the value means.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@Sandesh282 We are talking about two different things here. The message for the users of the feature is good, but the problem I am discussing is the name of the variable in the code, which I still think should be fixed to reflect the type of value that it stores.

Comment thread wiki/Release-Playbook.md

## 2. Changelog Review

The **Generate Changelogs** workflow

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I understand that this is supposed to trigger when version.bzl is updated, but when does that latter event happen? Can you explain?

Also, is the release coordinator ever supposed to run this manually? If so, in what circumstances? Please explain.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

version.bzl is bumped by the RC at the start of each release cycle as part of the pre-release step in §3 that push triggers Generate Changelogs automatically. The manual workflow_dispatch option exists for cases where the auto-trigger didn't fire or the changelog needs to be regenerated after corrections. Updated the §2 intro to explain both triggers.

Comment thread wiki/Release-Playbook.md Outdated

### Pre-release

- [ ] Confirm `MINOR_VERSION` is bumped in `version.bzl` and the changelog PR is merged (§2).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

What does the RC do if it hasn't been bumped or the PR hasn't been merged?

Also, generally, is this step just a confirmation step or must the RC merge the changelog PR or bump the minor version directly? If the former, it might be worth explaining briefly what process was supposed to result in that happening.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

The RC owns both steps directly. Split the original confirmation item into two explicit action items:
(1) RC bumps MINOR_VERSION in version.bzl which triggers Generate Changelogs automatically; and
(2) RC reviews and merges the changelog PR. Added a hard gate: do not cut the release branch until the changelog PR is merged

@seanlip seanlip assigned Sandesh282 and unassigned seanlip Aug 28, 2026
@oppiabot oppiabot Bot removed the PR: LGTM label Aug 28, 2026
@oppiabot

oppiabot Bot commented Aug 28, 2026

Copy link
Copy Markdown

Hi, @Sandesh282, the LGTM Label has been removed because the changes were requested on this PR. Thanks!.

@Sandesh282 Sandesh282 assigned seanlip and unassigned Sandesh282 Aug 28, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Coverage Report

Results

Number of files assessed: 354
Overall Coverage: 91.48%
Coverage Analysis: PASS

Passing coverage

Files with passing code coverage
File Coverage Lines Hit Status Min Required
ActivityRouter.ktapp/src/main/java/org/oppia/android/app/activity/route/ActivityRouter.kt
100.00% 12 / 12 70%
EdgeToEdgeHelper.ktapp/src/main/java/org/oppia/android/app/utility/edgetoedge/EdgeToEdgeHelper.kt
96.85% 246 / 254 70%
ActivityLanguageLocaleHandler.ktapp/src/main/java/org/oppia/android/app/translation/ActivityLanguageLocaleHandler.kt
100.00% 11 / 11 70%
AppLanguageWatcherMixin.ktapp/src/main/java/org/oppia/android/app/translation/AppLanguageWatcherMixin.kt
71.05% 27 / 38 70%
SurveyGatingController.ktdomain/src/main/java/org/oppia/android/domain/survey/SurveyGatingController.kt
96.97% 32 / 33 70%
LogUploadWorker.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/loguploader/LogUploadWorker.kt
98.44% 63 / 64 70%
LogReportWorkerScheduler.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/loguploader/LogReportWorkerScheduler.kt
100.00% 5 / 5 70%
CpuPerformanceSnapshotter.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/analytics/CpuPerformanceSnapshotter.kt
87.61% 99 / 113 70%
PerformanceMetricsLogger.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/analytics/PerformanceMetricsLogger.kt
100.00% 98 / 98 70%
FeatureFlagsLogger.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/analytics/FeatureFlagsLogger.kt
100.00% 23 / 23 70%
MetricLogSchedulingWorker.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/logscheduler/MetricLogSchedulingWorker.kt
100.00% 31 / 31 70%
MetricLogSchedulingWorkerScheduler.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/logscheduler/MetricLogSchedulingWorkerScheduler.kt
100.00% 19 / 19 70%
LocaleController.ktdomain/src/main/java/org/oppia/android/domain/locale/LocaleController.kt
92.49% 160 / 173 70%
TranslationController.ktdomain/src/main/java/org/oppia/android/domain/translation/TranslationController.kt
94.15% 161 / 171 70%
PlatformParameterSyncUpWorkerScheduler.ktdomain/src/main/java/org/oppia/android/domain/platformparameter/syncup/PlatformParameterSyncUpWorkerScheduler.kt
100.00% 8 / 8 70%
PlatformParameterSyncUpWorker.ktdomain/src/main/java/org/oppia/android/domain/platformparameter/syncup/PlatformParameterSyncUpWorker.kt
75.86% 22 / 29 70%
WorkManagerScheduler.ktdomain/src/main/java/org/oppia/android/domain/workmanager/WorkManagerScheduler.kt
100.00% 30 / 30 70%
WorkManagerConfigurationModule.ktdomain/src/main/java/org/oppia/android/domain/workmanager/WorkManagerConfigurationModule.kt
100.00% 8 / 8 70%
BootstrapOppiaWorker.ktdomain/src/main/java/org/oppia/android/domain/workmanager/BootstrapOppiaWorker.kt
100.00% 51 / 51 70%
DebugWorker.ktdomain/src/main/java/org/oppia/android/domain/workmanager/debug/DebugWorker.kt
100.00% 19 / 19 70%
DebugWorkerScheduler.ktdomain/src/main/java/org/oppia/android/domain/workmanager/debug/DebugWorkerScheduler.kt
100.00% 9 / 9 70%
LiTagHandler.ktutility/src/main/java/org/oppia/android/util/parser/html/LiTagHandler.kt
89.86% 133 / 148 70%
WorkedExampleTagHandler.ktutility/src/main/java/org/oppia/android/util/parser/html/WorkedExampleTagHandler.kt
97.37% 74 / 76 70%
CustomHtmlContentHandler.ktutility/src/main/java/org/oppia/android/util/parser/html/CustomHtmlContentHandler.kt
87.42% 132 / 151 70%
TestOppiaBidiFormatter.ktutility/src/main/java/org/oppia/android/util/locale/testing/TestOppiaBidiFormatter.kt
82.61% 19 / 23 70%
OppiaBidiFormatterImpl.ktutility/src/main/java/org/oppia/android/util/locale/OppiaBidiFormatterImpl.kt
100.00% 5 / 5 70%
MachineLocaleImpl.ktutility/src/main/java/org/oppia/android/util/locale/MachineLocaleImpl.kt
86.05% 37 / 43 70%
AndroidLocaleProfile.ktutility/src/main/java/org/oppia/android/util/locale/AndroidLocaleProfile.kt
100.00% 94 / 94 70%
NumberWithUnitsTokenizer.ktutility/src/main/java/org/oppia/android/util/math/NumberWithUnitsTokenizer.kt
98.10% 103 / 105 70%
NumberWithUnitsParser.ktutility/src/main/java/org/oppia/android/util/math/NumberWithUnitsParser.kt
99.15% 352 / 355 70%
RetrofitModule.ktdata/src/main/java/org/oppia/android/data/backends/gae/RetrofitModule.kt
100.00% 15 / 15 70%
RetryInterceptor.ktdata/src/main/java/org/oppia/android/data/backends/gae/RetryInterceptor.kt
87.50% 28 / 32 70%
VersionInversionChecker.ktscripts/src/java/org/oppia/android/scripts/release/VersionInversionChecker.kt
100.00% 48 / 48 70%
UploadChangelogToPlayConsole.ktscripts/src/java/org/oppia/android/scripts/release/UploadChangelogToPlayConsole.kt
86.67% 91 / 105 70%
FakePlayConsoleClient.ktscripts/src/java/org/oppia/android/scripts/release/FakePlayConsoleClient.kt
86.36% 114 / 132 70%
GooglePlayConsoleClient.ktscripts/src/java/org/oppia/android/scripts/release/GooglePlayConsoleClient.kt
96.63% 86 / 89 70%
UpdateRolloutFraction.ktscripts/src/java/org/oppia/android/scripts/release/UpdateRolloutFraction.kt
86.30% 63 / 73 70%
PendingReleaseChecker.ktscripts/src/java/org/oppia/android/scripts/release/PendingReleaseChecker.kt
100.00% 13 / 13 70%
UploadBinaryToPlayConsole.ktscripts/src/java/org/oppia/android/scripts/release/UploadBinaryToPlayConsole.kt
98.23% 111 / 113 70%
AndroidBuildSdkProperties.ktscripts/src/java/org/oppia/android/scripts/common/AndroidBuildSdkProperties.kt
100.00% 10 / 10 70%
RegexPatternValidationCheck.ktscripts/src/java/org/oppia/android/scripts/regex/RegexPatternValidationCheck.kt
100.00% 104 / 104 70%
KdocValidityCheck.ktscripts/src/java/org/oppia/android/scripts/docs/KdocValidityCheck.kt
99.25% 132 / 133 70%
AndroidLintRunner.ktscripts/src/java/org/oppia/android/scripts/lint/AndroidLintRunner.kt
71.83% 255 / 355 70%
LintModelCreator.ktscripts/src/java/org/oppia/android/scripts/lint/LintModelCreator.kt
81.82% 180 / 220 70%
ActivityIntentFactories.ktapp/src/main/java/org/oppia/android/app/activity/ActivityIntentFactories.kt
0.00% 0 / 0 0% *
CpuPerformanceSnapshotterModule.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/analytics/CpuPerformanceSnapshotterModule.kt
80.00% 4 / 5 26% *
InitializeDefaultLocaleRule.kttesting/src/main/java/org/oppia/android/testing/junit/InitializeDefaultLocaleRule.kt
100.00% 85 / 85 100% *
JsonPrefixNetworkInterceptor.ktdata/src/main/java/org/oppia/android/data/backends/gae/JsonPrefixNetworkInterceptor.kt
28.57% 4 / 14 28% *

* represents tests with custom overridden pass/fail coverage thresholds

Exempted coverage

Files exempted from coverage
File Exemption Reason
StringToRatioParser.ktapp/src/main/java/org/oppia/android/app/parser/StringToRatioParser.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FractionParsingUiError.ktapp/src/main/java/org/oppia/android/app/parser/FractionParsingUiError.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OngoingTopicListActivityPresenter.ktapp/src/main/java/org/oppia/android/app/ongoingtopiclist/OngoingTopicListActivityPresenter.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.
OngoingTopicListFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/ongoingtopiclist/OngoingTopicListFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
StoryActivity.ktapp/src/main/java/org/oppia/android/app/story/StoryActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
StoryChapterSummaryViewModel.ktapp/src/main/java/org/oppia/android/app/story/storyitemviewmodel/StoryChapterSummaryViewModel.kt
This file is exempted from having a test file; skipping coverage check.
StoryActivityPresenter.ktapp/src/main/java/org/oppia/android/app/story/StoryActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
StoryFragment.ktapp/src/main/java/org/oppia/android/app/story/StoryFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
StoryFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/story/StoryFragmentPresenter.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.
CompletedStoryListFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/completedstorylist/CompletedStoryListFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
CompletedStoryListActivityPresenter.ktapp/src/main/java/org/oppia/android/app/completedstorylist/CompletedStoryListActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AdminPinActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profile/AdminPinActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AdminAuthActivity.ktapp/src/main/java/org/oppia/android/app/profile/AdminAuthActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileChooserFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileChooserActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
PinPasswordActivity.ktapp/src/main/java/org/oppia/android/app/profile/PinPasswordActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AdminPinActivity.ktapp/src/main/java/org/oppia/android/app/profile/AdminPinActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileLoginFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/profile/ProfileLoginFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileChooserFragmentPresenterV1.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserFragmentPresenterV1.kt
This file is exempted from having a test file; skipping coverage check.
ProfileLoginFragment.ktapp/src/main/java/org/oppia/android/app/profile/ProfileLoginFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileChooserActivity.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserActivity.kt
This file is exempted from having a test file; skipping coverage check.
ProfileChooserFragment.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PinPasswordActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profile/PinPasswordActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileLoginActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profile/ProfileLoginActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AddProfileActivity.ktapp/src/main/java/org/oppia/android/app/profile/AddProfileActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileLoginActivity.ktapp/src/main/java/org/oppia/android/app/profile/ProfileLoginActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AdminAuthActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profile/AdminAuthActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AddProfileActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profile/AddProfileActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
PoliciesActivity.ktapp/src/main/java/org/oppia/android/app/policies/PoliciesActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PoliciesFragment.ktapp/src/main/java/org/oppia/android/app/policies/PoliciesFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PoliciesActivityPresenter.ktapp/src/main/java/org/oppia/android/app/policies/PoliciesActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
BindableAdapter.ktapp/src/main/java/org/oppia/android/app/recyclerview/BindableAdapter.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationFragment.ktapp/src/main/java/org/oppia/android/app/player/exploration/ExplorationFragment.kt
This file is exempted from having a test file; skipping coverage check.
ExplorationFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/player/exploration/ExplorationFragmentPresenter.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.
BottomSheetOptionsMenu.ktapp/src/main/java/org/oppia/android/app/player/exploration/BottomSheetOptionsMenu.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationActivityPresenter.ktapp/src/main/java/org/oppia/android/app/player/exploration/ExplorationActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AudioViewModel.ktapp/src/main/java/org/oppia/android/app/player/audio/AudioViewModel.kt
This file is exempted from having a test file; skipping coverage check.
AudioFragment.ktapp/src/main/java/org/oppia/android/app/player/audio/AudioFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
StateFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/player/state/StateFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
StateFragmentTestActivityPresenter.ktapp/src/main/java/org/oppia/android/app/player/state/testing/StateFragmentTestActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
StateViewModel.ktapp/src/main/java/org/oppia/android/app/player/state/StateViewModel.kt
This file is exempted from having a test file; skipping coverage check.
StatePlayerRecyclerViewAssembler.ktapp/src/main/java/org/oppia/android/app/player/state/StatePlayerRecyclerViewAssembler.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.
LessonProgressViewModel.ktapp/src/main/java/org/oppia/android/app/player/state/itemviewmodel/LessonProgressViewModel.kt
This file is exempted from having a test file; skipping coverage check.
ImageRegionSelectionInteractionView.ktapp/src/main/java/org/oppia/android/app/player/state/ImageRegionSelectionInteractionView.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ResumeLessonFragment.ktapp/src/main/java/org/oppia/android/app/resumelesson/ResumeLessonFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ResumeLessonActivityPresenter.ktapp/src/main/java/org/oppia/android/app/resumelesson/ResumeLessonActivityPresenter.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.
ResumeLessonFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/resumelesson/ResumeLessonFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
LessonThumbnailImageView.ktapp/src/main/java/org/oppia/android/app/customview/LessonThumbnailImageView.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MathExpressionInteractionsView.ktapp/src/main/java/org/oppia/android/app/customview/interaction/MathExpressionInteractionsView.kt
This file is incompatible with code coverage tooling; skipping coverage check.
LessonProgressIndicatorView.ktapp/src/main/java/org/oppia/android/app/customview/LessonProgressIndicatorView.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FractionInputInteractionViewTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/FractionInputInteractionViewTestActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TestActivity.ktapp/src/main/java/org/oppia/android/app/testing/activity/TestActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
DragDropTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/DragDropTestActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TestFontScaleConfigurationUtilActivity.ktapp/src/main/java/org/oppia/android/app/testing/TestFontScaleConfigurationUtilActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationTestActivityPresenter.ktapp/src/main/java/org/oppia/android/app/testing/ExplorationTestActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
TopicTestActivityForStory.ktapp/src/main/java/org/oppia/android/app/testing/TopicTestActivityForStory.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileChooserFragmentTestActivityPresenter.ktapp/src/main/java/org/oppia/android/app/testing/ProfileChooserFragmentTestActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
InputInteractionViewTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/InputInteractionViewTestActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
RatioInputInteractionViewTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/RatioInputInteractionViewTestActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TextInputInteractionViewTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/TextInputInteractionViewTestActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SurveyFragment.ktapp/src/main/java/org/oppia/android/app/survey/SurveyFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SurveyWelcomeDialogFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/survey/SurveyWelcomeDialogFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
SurveyActivity.ktapp/src/main/java/org/oppia/android/app/survey/SurveyActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SurveyActivityPresenter.ktapp/src/main/java/org/oppia/android/app/survey/SurveyActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
SurveyOutroDialogFragment.ktapp/src/main/java/org/oppia/android/app/survey/SurveyOutroDialogFragment.kt
This file is exempted from having a test file; skipping coverage check.
SurveyWelcomeDialogFragment.ktapp/src/main/java/org/oppia/android/app/survey/SurveyWelcomeDialogFragment.kt
This file is exempted from having a test file; skipping coverage check.
SurveyFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/survey/SurveyFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
SurveyOutroDialogFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/survey/SurveyOutroDialogFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ActivityRouterModule.ktapp/src/main/java/org/oppia/android/app/activity/route/ActivityRouterModule.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OptionalAppDeprecationNoticeDialogFragment.ktapp/src/main/java/org/oppia/android/app/notice/OptionalAppDeprecationNoticeDialogFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
GeneralAvailabilityUpgradeNoticeDialogFragment.ktapp/src/main/java/org/oppia/android/app/notice/GeneralAvailabilityUpgradeNoticeDialogFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ForcedAppDeprecationNoticeDialogFragment.ktapp/src/main/java/org/oppia/android/app/notice/ForcedAppDeprecationNoticeDialogFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OsDeprecationNoticeDialogFragment.ktapp/src/main/java/org/oppia/android/app/notice/OsDeprecationNoticeDialogFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
BetaNoticeDialogFragment.ktapp/src/main/java/org/oppia/android/app/notice/BetaNoticeDialogFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
HelpFragment.ktapp/src/main/java/org/oppia/android/app/help/HelpFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
HelpActivity.ktapp/src/main/java/org/oppia/android/app/help/HelpActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
LicenseTextViewerActivityPresenter.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/LicenseTextViewerActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
LicenseListFragment.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/LicenseListFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ThirdPartyDependencyListActivity.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/ThirdPartyDependencyListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
LicenseTextViewerFragment.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/LicenseTextViewerFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
LicenseListActivityPresenter.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/LicenseListActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
LicenseListActivity.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/LicenseListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
LicenseTextViewerActivity.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/LicenseTextViewerActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ThirdPartyDependencyListFragment.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/ThirdPartyDependencyListFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ThirdPartyDependencyListActivityPresenter.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/ThirdPartyDependencyListActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
FAQListActivityPresenter.ktapp/src/main/java/org/oppia/android/app/help/faq/FAQListActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
FAQListFragment.ktapp/src/main/java/org/oppia/android/app/help/faq/FAQListFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FAQListActivity.ktapp/src/main/java/org/oppia/android/app/help/faq/FAQListActivity.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.
FAQSingleActivityPresenter.ktapp/src/main/java/org/oppia/android/app/help/faq/faqsingle/FAQSingleActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
HelpActivityPresenter.ktapp/src/main/java/org/oppia/android/app/help/HelpActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
HintsAndSolutionDialogFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/hintsandsolution/HintsAndSolutionDialogFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
HintsAndSolutionDialogFragment.ktapp/src/main/java/org/oppia/android/app/hintsandsolution/HintsAndSolutionDialogFragment.kt
This file is exempted from having a test file; skipping coverage check.
ProfileAndDeviceIdActivityPresenter.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/learneranalytics/ProfileAndDeviceIdActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileAndDeviceIdFragment.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/learneranalytics/ProfileAndDeviceIdFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileAndDeviceIdActivity.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/learneranalytics/ProfileAndDeviceIdActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AdministratorControlsActivity.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/AdministratorControlsActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AppVersionActivity.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/appversion/AppVersionActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AppVersionActivityPresenter.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/appversion/AppVersionActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AdministratorControlsFragment.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/AdministratorControlsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AdministratorControlsActivityPresenter.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/AdministratorControlsActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
GaApplicationComponent.ktapp/src/main/java/org/oppia/android/app/application/ga/GaApplicationComponent.kt
This file is exempted from having a test file; skipping coverage check.
AbstractOppiaApplication.ktapp/src/main/java/org/oppia/android/app/application/AbstractOppiaApplication.kt
This file is exempted from having a test file; skipping coverage check.
BetaApplicationComponent.ktapp/src/main/java/org/oppia/android/app/application/beta/BetaApplicationComponent.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.
AlphaApplicationComponent.ktapp/src/main/java/org/oppia/android/app/application/alpha/AlphaApplicationComponent.kt
This file is exempted from having a test file; skipping coverage check.
DeveloperOppiaApplication.ktapp/src/main/java/org/oppia/android/app/application/dev/DeveloperOppiaApplication.kt
This file is exempted from having a test file; skipping coverage check.
DeveloperApplicationComponent.ktapp/src/main/java/org/oppia/android/app/application/dev/DeveloperApplicationComponent.kt
This file is exempted from having a test file; skipping coverage check.
DeveloperOptionsActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/DeveloperOptionsActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FeatureFlagsFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/featureflags/FeatureFlagsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FeatureFlagsActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/featureflags/FeatureFlagsActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FeatureFlagsActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/featureflags/FeatureFlagsActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
FeatureFlagsFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/featureflags/FeatureFlagsFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MarkTopicsCompletedFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/marktopicscompleted/MarkTopicsCompletedFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MarkTopicsCompletedActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/marktopicscompleted/MarkTopicsCompletedActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MarkTopicsCompletedFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/marktopicscompleted/MarkTopicsCompletedFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MarkTopicsCompletedActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/marktopicscompleted/MarkTopicsCompletedActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ForceNetworkTypeActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/forcenetworktype/ForceNetworkTypeActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ForceNetworkTypeFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/forcenetworktype/ForceNetworkTypeFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ForceNetworkTypeFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/forcenetworktype/ForceNetworkTypeFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ForceNetworkTypeActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/forcenetworktype/ForceNetworkTypeActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MarkStoriesCompletedActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/markstoriescompleted/MarkStoriesCompletedActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MarkStoriesCompletedActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/markstoriescompleted/MarkStoriesCompletedActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MarkStoriesCompletedFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/markstoriescompleted/MarkStoriesCompletedFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MarkStoriesCompletedFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/markstoriescompleted/MarkStoriesCompletedFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MathExpressionParserActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/mathexpressionparser/MathExpressionParserActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MathExpressionParserFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/mathexpressionparser/MathExpressionParserFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MathExpressionParserFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/mathexpressionparser/MathExpressionParserFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MathExpressionParserActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/mathexpressionparser/MathExpressionParserActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
DeveloperOptionsFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/DeveloperOptionsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MarkChaptersCompletedActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/markchapterscompleted/MarkChaptersCompletedActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MarkChaptersCompletedActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/markchapterscompleted/MarkChaptersCompletedActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MarkChaptersCompletedFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/markchapterscompleted/MarkChaptersCompletedFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MarkChaptersCompletedFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/markchapterscompleted/MarkChaptersCompletedFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PlatformParametersActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParametersActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PlatformParametersFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParametersFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
PlatformParametersFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParametersFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PlatformParametersActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParametersActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
DeveloperOptionsActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/DeveloperOptionsActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ViewEventLogsFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/vieweventlogs/ViewEventLogsFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ViewEventLogsFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/vieweventlogs/ViewEventLogsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ViewEventLogsActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/vieweventlogs/ViewEventLogsActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ViewEventLogsActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/vieweventlogs/ViewEventLogsActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
DateTimeUtil.ktapp/src/main/java/org/oppia/android/app/utility/datetime/DateTimeUtil.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MathExpressionAccessibilityUtil.ktapp/src/main/java/org/oppia/android/app/utility/math/MathExpressionAccessibilityUtil.kt
This file is incompatible with code coverage tooling; skipping coverage check.
RatioExtensions.ktapp/src/main/java/org/oppia/android/app/utility/RatioExtensions.kt
This file is incompatible with code coverage tooling; skipping coverage check.
NavigationDrawerFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/drawer/NavigationDrawerFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MyDownloadsActivity.ktapp/src/main/java/org/oppia/android/app/mydownloads/MyDownloadsActivity.kt
This file is exempted from having a test file; skipping coverage check.
MyDownloadsFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/mydownloads/MyDownloadsFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MyDownloadsActivityPresenter.ktapp/src/main/java/org/oppia/android/app/mydownloads/MyDownloadsActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MyDownloadsFragment.ktapp/src/main/java/org/oppia/android/app/mydownloads/MyDownloadsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AppLanguageResourceHandler.ktapp/src/main/java/org/oppia/android/app/translation/AppLanguageResourceHandler.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileProgressActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressActivityPresenter.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.
ProfilePictureActivity.ktapp/src/main/java/org/oppia/android/app/profileprogress/ProfilePictureActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfilePictureActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profileprogress/ProfilePictureActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileProgressFragment.ktapp/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressFragment.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.
AudioLanguageActivity.ktapp/src/main/java/org/oppia/android/app/options/AudioLanguageActivity.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.
AudioLanguageActivityPresenter.ktapp/src/main/java/org/oppia/android/app/options/AudioLanguageActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
OptionsActivityPresenter.ktapp/src/main/java/org/oppia/android/app/options/OptionsActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AppLanguageActivityPresenter.ktapp/src/main/java/org/oppia/android/app/options/AppLanguageActivityPresenter.kt
This file is exempted from having a test file; 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.
AudioLanguageSelectionViewModel.ktapp/src/main/java/org/oppia/android/app/options/AudioLanguageSelectionViewModel.kt
This file is exempted from having a test file; skipping coverage check.
ReadingTextSizeActivity.ktapp/src/main/java/org/oppia/android/app/options/ReadingTextSizeActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AppLanguageActivity.ktapp/src/main/java/org/oppia/android/app/options/AppLanguageActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AppLanguageFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/options/AppLanguageFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AudioLanguageFragment.ktapp/src/main/java/org/oppia/android/app/options/AudioLanguageFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ReadingTextSizeActivityPresenter.ktapp/src/main/java/org/oppia/android/app/options/ReadingTextSizeActivityPresenter.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.
SplashActivity.ktapp/src/main/java/org/oppia/android/app/splash/SplashActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SplashActivityPresenter.ktapp/src/main/java/org/oppia/android/app/splash/SplashActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
WalkthroughActivityPresenter.ktapp/src/main/java/org/oppia/android/app/walkthrough/WalkthroughActivityPresenter.kt
This file is exempted from having a test file; 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.
WalkthroughFinalFragment.ktapp/src/main/java/org/oppia/android/app/walkthrough/end/WalkthroughFinalFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
WalkthroughWelcomeFragment.ktapp/src/main/java/org/oppia/android/app/walkthrough/welcome/WalkthroughWelcomeFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
WalkthroughActivity.ktapp/src/main/java/org/oppia/android/app/walkthrough/WalkthroughActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileListActivity.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileListActivityPresenter.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileListActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileRenameFragment.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileRenameFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileListFragment.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileListFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileRenameActivityPresenter.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileRenameActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileRenameActivity.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileRenameActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileListFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileListFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileResetPinActivityPresenter.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileResetPinActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileEditActivity.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileEditActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileResetPinFragment.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileResetPinFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileResetPinActivity.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileResetPinActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileEditActivityPresenter.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileEditActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileEditFragment.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileEditFragment.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.
HomeActivityPresenter.ktapp/src/main/java/org/oppia/android/app/home/HomeActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
RecentlyPlayedFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
RecentlyPlayedFragment.ktapp/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedFragment.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.
RecentlyPlayedActivityPresenter.ktapp/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
TopicSummaryViewModel.ktapp/src/main/java/org/oppia/android/app/home/topiclist/TopicSummaryViewModel.kt
This file is incompatible with code coverage tooling; skipping coverage check.
WelcomeViewModel.ktapp/src/main/java/org/oppia/android/app/home/WelcomeViewModel.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PromotedStoryViewModel.ktapp/src/main/java/org/oppia/android/app/home/promotedlist/PromotedStoryViewModel.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PromotedStoryListViewModel.ktapp/src/main/java/org/oppia/android/app/home/promotedlist/PromotedStoryListViewModel.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SpotlightFragment.ktapp/src/main/java/org/oppia/android/app/spotlight/SpotlightFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicPracticeFragment.ktapp/src/main/java/org/oppia/android/app/topic/practice/TopicPracticeFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicActivity.ktapp/src/main/java/org/oppia/android/app/topic/TopicActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/topic/TopicFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
TopicInfoFragment.ktapp/src/main/java/org/oppia/android/app/topic/info/TopicInfoFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ConceptCardFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentPresenter.kt
This file is exempted from having a test file; 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.
TopicLessonsFragment.ktapp/src/main/java/org/oppia/android/app/topic/lessons/TopicLessonsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicLessonsFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/topic/lessons/TopicLessonsFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
QuestionPlayerActivityPresenter.ktapp/src/main/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerActivityPresenter.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.
TopicFragment.ktapp/src/main/java/org/oppia/android/app/topic/TopicFragment.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.
TopicActivityPresenter.ktapp/src/main/java/org/oppia/android/app/topic/TopicActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
StudyGuideActivity.ktapp/src/main/java/org/oppia/android/app/topic/studyguide/StudyGuideActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
StudyGuideFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/topic/studyguide/StudyGuideFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
StudyGuideFragment.ktapp/src/main/java/org/oppia/android/app/topic/studyguide/StudyGuideFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
StudyGuideActivityPresenter.ktapp/src/main/java/org/oppia/android/app/topic/studyguide/StudyGuideActivityPresenter.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.
RevisionCardActivityPresenter.ktapp/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardActivityPresenter.kt
This file is exempted from having a test file; 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.
ClassroomListFragment.ktapp/src/main/java/org/oppia/android/app/classroom/ClassroomListFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ClassroomListActivity.ktapp/src/main/java/org/oppia/android/app/classroom/ClassroomListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ClassroomListActivityPresenter.ktapp/src/main/java/org/oppia/android/app/classroom/ClassroomListActivityPresenter.kt
This file is exempted from having a test file...[Comment body truncated]

@Sandesh282

Copy link
Copy Markdown
Collaborator Author

cc/ @seanlip.

@seanlip seanlip left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks, this looks generally good. Just a couple more notes.

Comment thread wiki/Release-Playbook.md
After the initial deployment, progressively increase the rollout using `update_rollout.yml`.
Monitor Firebase Crashlytics between each step; halt and investigate if crash rates spike.

| Day | `rollout_fraction` | Actual rollout | Action |

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

But then shouldn't the name be something like "rollout_permille", not "rollout_fraction"? The integer here is still not a fraction.

Comment thread wiki/Release-Playbook.md Outdated

### Pre-release

- [ ] Bump `MINOR_VERSION` in `version.bzl`. This push triggers **Generate Changelogs**

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Link "Generate Changelogs" to the section above. Ditto below.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Done.

@seanlip seanlip assigned Sandesh282 and unassigned seanlip Aug 31, 2026
@Sandesh282

Copy link
Copy Markdown
Collaborator Author

@seanlip PTAL!

@oppiabot oppiabot Bot assigned seanlip and unassigned Sandesh282 Aug 31, 2026
@oppiabot

oppiabot Bot commented Aug 31, 2026

Copy link
Copy Markdown

Unassigning @Sandesh282 since a re-review was requested. @Sandesh282, please make sure you have addressed all review comments. Thanks!

@seanlip seanlip assigned Sandesh282 and unassigned seanlip Aug 31, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Coverage Report

Results

Number of files assessed: 346
Overall Coverage: 91.35%
Coverage Analysis: PASS

Passing coverage

Files with passing code coverage
File Coverage Lines Hit Status Min Required
ActivityRouter.ktapp/src/main/java/org/oppia/android/app/activity/route/ActivityRouter.kt
100.00% 12 / 12 70%
EdgeToEdgeHelper.ktapp/src/main/java/org/oppia/android/app/utility/edgetoedge/EdgeToEdgeHelper.kt
96.85% 246 / 254 70%
ActivityLanguageLocaleHandler.ktapp/src/main/java/org/oppia/android/app/translation/ActivityLanguageLocaleHandler.kt
100.00% 11 / 11 70%
AppLanguageWatcherMixin.ktapp/src/main/java/org/oppia/android/app/translation/AppLanguageWatcherMixin.kt
71.05% 27 / 38 70%
SurveyGatingController.ktdomain/src/main/java/org/oppia/android/domain/survey/SurveyGatingController.kt
96.97% 32 / 33 70%
LogUploadWorker.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/loguploader/LogUploadWorker.kt
98.44% 63 / 64 70%
LogReportWorkerScheduler.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/loguploader/LogReportWorkerScheduler.kt
100.00% 5 / 5 70%
CpuPerformanceSnapshotter.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/analytics/CpuPerformanceSnapshotter.kt
87.61% 99 / 113 70%
PerformanceMetricsLogger.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/analytics/PerformanceMetricsLogger.kt
100.00% 98 / 98 70%
FeatureFlagsLogger.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/analytics/FeatureFlagsLogger.kt
100.00% 23 / 23 70%
MetricLogSchedulingWorker.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/logscheduler/MetricLogSchedulingWorker.kt
100.00% 31 / 31 70%
MetricLogSchedulingWorkerScheduler.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/logscheduler/MetricLogSchedulingWorkerScheduler.kt
100.00% 19 / 19 70%
LocaleController.ktdomain/src/main/java/org/oppia/android/domain/locale/LocaleController.kt
92.49% 160 / 173 70%
TranslationController.ktdomain/src/main/java/org/oppia/android/domain/translation/TranslationController.kt
94.15% 161 / 171 70%
PlatformParameterSyncUpWorkerScheduler.ktdomain/src/main/java/org/oppia/android/domain/platformparameter/syncup/PlatformParameterSyncUpWorkerScheduler.kt
100.00% 8 / 8 70%
PlatformParameterSyncUpWorker.ktdomain/src/main/java/org/oppia/android/domain/platformparameter/syncup/PlatformParameterSyncUpWorker.kt
75.86% 22 / 29 70%
WorkManagerScheduler.ktdomain/src/main/java/org/oppia/android/domain/workmanager/WorkManagerScheduler.kt
100.00% 30 / 30 70%
WorkManagerConfigurationModule.ktdomain/src/main/java/org/oppia/android/domain/workmanager/WorkManagerConfigurationModule.kt
100.00% 8 / 8 70%
BootstrapOppiaWorker.ktdomain/src/main/java/org/oppia/android/domain/workmanager/BootstrapOppiaWorker.kt
100.00% 51 / 51 70%
DebugWorker.ktdomain/src/main/java/org/oppia/android/domain/workmanager/debug/DebugWorker.kt
100.00% 19 / 19 70%
DebugWorkerScheduler.ktdomain/src/main/java/org/oppia/android/domain/workmanager/debug/DebugWorkerScheduler.kt
100.00% 9 / 9 70%
LiTagHandler.ktutility/src/main/java/org/oppia/android/util/parser/html/LiTagHandler.kt
89.86% 133 / 148 70%
WorkedExampleTagHandler.ktutility/src/main/java/org/oppia/android/util/parser/html/WorkedExampleTagHandler.kt
97.37% 74 / 76 70%
CustomHtmlContentHandler.ktutility/src/main/java/org/oppia/android/util/parser/html/CustomHtmlContentHandler.kt
87.42% 132 / 151 70%
TestOppiaBidiFormatter.ktutility/src/main/java/org/oppia/android/util/locale/testing/TestOppiaBidiFormatter.kt
82.61% 19 / 23 70%
OppiaBidiFormatterImpl.ktutility/src/main/java/org/oppia/android/util/locale/OppiaBidiFormatterImpl.kt
100.00% 5 / 5 70%
MachineLocaleImpl.ktutility/src/main/java/org/oppia/android/util/locale/MachineLocaleImpl.kt
86.05% 37 / 43 70%
AndroidLocaleProfile.ktutility/src/main/java/org/oppia/android/util/locale/AndroidLocaleProfile.kt
100.00% 94 / 94 70%
NumberWithUnitsTokenizer.ktutility/src/main/java/org/oppia/android/util/math/NumberWithUnitsTokenizer.kt
98.10% 103 / 105 70%
NumberWithUnitsParser.ktutility/src/main/java/org/oppia/android/util/math/NumberWithUnitsParser.kt
99.15% 352 / 355 70%
RetrofitModule.ktdata/src/main/java/org/oppia/android/data/backends/gae/RetrofitModule.kt
100.00% 15 / 15 70%
RetryInterceptor.ktdata/src/main/java/org/oppia/android/data/backends/gae/RetryInterceptor.kt
87.50% 28 / 32 70%
GoogleGitHubCiClient.ktscripts/src/java/org/oppia/android/scripts/release/GoogleGitHubCiClient.kt
95.38% 62 / 65 70%
VersionInversionChecker.ktscripts/src/java/org/oppia/android/scripts/release/VersionInversionChecker.kt
100.00% 48 / 48 70%
UploadChangelogToPlayConsole.ktscripts/src/java/org/oppia/android/scripts/release/UploadChangelogToPlayConsole.kt
86.67% 91 / 105 70%
FakePlayConsoleClient.ktscripts/src/java/org/oppia/android/scripts/release/FakePlayConsoleClient.kt
86.36% 114 / 132 70%
FindAlphaCandidate.ktscripts/src/java/org/oppia/android/scripts/release/FindAlphaCandidate.kt
78.46% 51 / 65 70%
GooglePlayConsoleClient.ktscripts/src/java/org/oppia/android/scripts/release/GooglePlayConsoleClient.kt
96.63% 86 / 89 70%
UpdateRolloutFraction.ktscripts/src/java/org/oppia/android/scripts/release/UpdateRolloutFraction.kt
86.30% 63 / 73 70%
PendingReleaseChecker.ktscripts/src/java/org/oppia/android/scripts/release/PendingReleaseChecker.kt
100.00% 13 / 13 70%
UploadBinaryToPlayConsole.ktscripts/src/java/org/oppia/android/scripts/release/UploadBinaryToPlayConsole.kt
98.23% 111 / 113 70%
FakeGitHubCiClient.ktscripts/src/java/org/oppia/android/scripts/release/FakeGitHubCiClient.kt
100.00% 11 / 11 70%
AndroidBuildSdkProperties.ktscripts/src/java/org/oppia/android/scripts/common/AndroidBuildSdkProperties.kt
100.00% 10 / 10 70%
RegexPatternValidationCheck.ktscripts/src/java/org/oppia/android/scripts/regex/RegexPatternValidationCheck.kt
100.00% 104 / 104 70%
KdocValidityCheck.ktscripts/src/java/org/oppia/android/scripts/docs/KdocValidityCheck.kt
99.25% 132 / 133 70%
AndroidLintRunner.ktscripts/src/java/org/oppia/android/scripts/lint/AndroidLintRunner.kt
71.83% 255 / 355 70%
LintModelCreator.ktscripts/src/java/org/oppia/android/scripts/lint/LintModelCreator.kt
81.82% 180 / 220 70%
ActivityIntentFactories.ktapp/src/main/java/org/oppia/android/app/activity/ActivityIntentFactories.kt
0.00% 0 / 0 0% *
CpuPerformanceSnapshotterModule.ktdomain/src/main/java/org/oppia/android/domain/oppialogger/analytics/CpuPerformanceSnapshotterModule.kt
80.00% 4 / 5 26% *
InitializeDefaultLocaleRule.kttesting/src/main/java/org/oppia/android/testing/junit/InitializeDefaultLocaleRule.kt
100.00% 85 / 85 100% *
JsonPrefixNetworkInterceptor.ktdata/src/main/java/org/oppia/android/data/backends/gae/JsonPrefixNetworkInterceptor.kt
28.57% 4 / 14 28% *

* represents tests with custom overridden pass/fail coverage thresholds

Exempted coverage

Files exempted from coverage
File Exemption Reason
StringToRatioParser.ktapp/src/main/java/org/oppia/android/app/parser/StringToRatioParser.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FractionParsingUiError.ktapp/src/main/java/org/oppia/android/app/parser/FractionParsingUiError.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OngoingTopicListActivityPresenter.ktapp/src/main/java/org/oppia/android/app/ongoingtopiclist/OngoingTopicListActivityPresenter.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.
OngoingTopicListFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/ongoingtopiclist/OngoingTopicListFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
StoryActivity.ktapp/src/main/java/org/oppia/android/app/story/StoryActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
StoryChapterSummaryViewModel.ktapp/src/main/java/org/oppia/android/app/story/storyitemviewmodel/StoryChapterSummaryViewModel.kt
This file is exempted from having a test file; skipping coverage check.
StoryActivityPresenter.ktapp/src/main/java/org/oppia/android/app/story/StoryActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
StoryFragment.ktapp/src/main/java/org/oppia/android/app/story/StoryFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
StoryFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/story/StoryFragmentPresenter.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.
CompletedStoryListFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/completedstorylist/CompletedStoryListFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
CompletedStoryListActivityPresenter.ktapp/src/main/java/org/oppia/android/app/completedstorylist/CompletedStoryListActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AdminPinActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profile/AdminPinActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AdminAuthActivity.ktapp/src/main/java/org/oppia/android/app/profile/AdminAuthActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileChooserFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileChooserActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
PinPasswordActivity.ktapp/src/main/java/org/oppia/android/app/profile/PinPasswordActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AdminPinActivity.ktapp/src/main/java/org/oppia/android/app/profile/AdminPinActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileLoginFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/profile/ProfileLoginFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileChooserFragmentPresenterV1.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserFragmentPresenterV1.kt
This file is exempted from having a test file; skipping coverage check.
ProfileLoginFragment.ktapp/src/main/java/org/oppia/android/app/profile/ProfileLoginFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileChooserActivity.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserActivity.kt
This file is exempted from having a test file; skipping coverage check.
ProfileChooserFragment.ktapp/src/main/java/org/oppia/android/app/profile/ProfileChooserFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PinPasswordActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profile/PinPasswordActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileLoginActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profile/ProfileLoginActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AddProfileActivity.ktapp/src/main/java/org/oppia/android/app/profile/AddProfileActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileLoginActivity.ktapp/src/main/java/org/oppia/android/app/profile/ProfileLoginActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AdminAuthActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profile/AdminAuthActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AddProfileActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profile/AddProfileActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
PoliciesFragment.ktapp/src/main/java/org/oppia/android/app/policies/PoliciesFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PoliciesActivityPresenter.ktapp/src/main/java/org/oppia/android/app/policies/PoliciesActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
BindableAdapter.ktapp/src/main/java/org/oppia/android/app/recyclerview/BindableAdapter.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationFragment.ktapp/src/main/java/org/oppia/android/app/player/exploration/ExplorationFragment.kt
This file is exempted from having a test file; skipping coverage check.
ExplorationFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/player/exploration/ExplorationFragmentPresenter.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.
BottomSheetOptionsMenu.ktapp/src/main/java/org/oppia/android/app/player/exploration/BottomSheetOptionsMenu.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ExplorationActivityPresenter.ktapp/src/main/java/org/oppia/android/app/player/exploration/ExplorationActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AudioViewModel.ktapp/src/main/java/org/oppia/android/app/player/audio/AudioViewModel.kt
This file is exempted from having a test file; skipping coverage check.
AudioFragment.ktapp/src/main/java/org/oppia/android/app/player/audio/AudioFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
StateFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/player/state/StateFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
StateFragmentTestActivityPresenter.ktapp/src/main/java/org/oppia/android/app/player/state/testing/StateFragmentTestActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
StateViewModel.ktapp/src/main/java/org/oppia/android/app/player/state/StateViewModel.kt
This file is exempted from having a test file; skipping coverage check.
StatePlayerRecyclerViewAssembler.ktapp/src/main/java/org/oppia/android/app/player/state/StatePlayerRecyclerViewAssembler.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.
LessonProgressViewModel.ktapp/src/main/java/org/oppia/android/app/player/state/itemviewmodel/LessonProgressViewModel.kt
This file is exempted from having a test file; skipping coverage check.
ImageRegionSelectionInteractionView.ktapp/src/main/java/org/oppia/android/app/player/state/ImageRegionSelectionInteractionView.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ResumeLessonFragment.ktapp/src/main/java/org/oppia/android/app/resumelesson/ResumeLessonFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ResumeLessonActivityPresenter.ktapp/src/main/java/org/oppia/android/app/resumelesson/ResumeLessonActivityPresenter.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.
LessonThumbnailImageView.ktapp/src/main/java/org/oppia/android/app/customview/LessonThumbnailImageView.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MathExpressionInteractionsView.ktapp/src/main/java/org/oppia/android/app/customview/interaction/MathExpressionInteractionsView.kt
This file is incompatible with code coverage tooling; skipping coverage check.
LessonProgressIndicatorView.ktapp/src/main/java/org/oppia/android/app/customview/LessonProgressIndicatorView.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TestActivity.ktapp/src/main/java/org/oppia/android/app/testing/activity/TestActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
DragDropTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/DragDropTestActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicTestActivityForStory.ktapp/src/main/java/org/oppia/android/app/testing/TopicTestActivityForStory.kt
This file is incompatible with code coverage tooling; skipping coverage check.
InputInteractionViewTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/InputInteractionViewTestActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
RatioInputInteractionViewTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/RatioInputInteractionViewTestActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TextInputInteractionViewTestActivity.ktapp/src/main/java/org/oppia/android/app/testing/TextInputInteractionViewTestActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SurveyFragment.ktapp/src/main/java/org/oppia/android/app/survey/SurveyFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SurveyWelcomeDialogFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/survey/SurveyWelcomeDialogFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
SurveyActivity.ktapp/src/main/java/org/oppia/android/app/survey/SurveyActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SurveyActivityPresenter.ktapp/src/main/java/org/oppia/android/app/survey/SurveyActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
SurveyOutroDialogFragment.ktapp/src/main/java/org/oppia/android/app/survey/SurveyOutroDialogFragment.kt
This file is exempted from having a test file; skipping coverage check.
SurveyWelcomeDialogFragment.ktapp/src/main/java/org/oppia/android/app/survey/SurveyWelcomeDialogFragment.kt
This file is exempted from having a test file; skipping coverage check.
SurveyFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/survey/SurveyFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
SurveyOutroDialogFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/survey/SurveyOutroDialogFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ActivityRouterModule.ktapp/src/main/java/org/oppia/android/app/activity/route/ActivityRouterModule.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OptionalAppDeprecationNoticeDialogFragment.ktapp/src/main/java/org/oppia/android/app/notice/OptionalAppDeprecationNoticeDialogFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
GeneralAvailabilityUpgradeNoticeDialogFragment.ktapp/src/main/java/org/oppia/android/app/notice/GeneralAvailabilityUpgradeNoticeDialogFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ForcedAppDeprecationNoticeDialogFragment.ktapp/src/main/java/org/oppia/android/app/notice/ForcedAppDeprecationNoticeDialogFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OsDeprecationNoticeDialogFragment.ktapp/src/main/java/org/oppia/android/app/notice/OsDeprecationNoticeDialogFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
BetaNoticeDialogFragment.ktapp/src/main/java/org/oppia/android/app/notice/BetaNoticeDialogFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
HelpFragment.ktapp/src/main/java/org/oppia/android/app/help/HelpFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
HelpActivity.ktapp/src/main/java/org/oppia/android/app/help/HelpActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
LicenseTextViewerActivityPresenter.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/LicenseTextViewerActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
LicenseListFragment.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/LicenseListFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ThirdPartyDependencyListActivity.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/ThirdPartyDependencyListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
LicenseListActivityPresenter.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/LicenseListActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
LicenseListActivity.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/LicenseListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ThirdPartyDependencyListFragment.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/ThirdPartyDependencyListFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ThirdPartyDependencyListActivityPresenter.ktapp/src/main/java/org/oppia/android/app/help/thirdparty/ThirdPartyDependencyListActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
FAQListActivityPresenter.ktapp/src/main/java/org/oppia/android/app/help/faq/FAQListActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
FAQListFragment.ktapp/src/main/java/org/oppia/android/app/help/faq/FAQListFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FAQListActivity.ktapp/src/main/java/org/oppia/android/app/help/faq/FAQListActivity.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.
FAQSingleActivityPresenter.ktapp/src/main/java/org/oppia/android/app/help/faq/faqsingle/FAQSingleActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
HelpActivityPresenter.ktapp/src/main/java/org/oppia/android/app/help/HelpActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
HintsAndSolutionDialogFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/hintsandsolution/HintsAndSolutionDialogFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
HintsAndSolutionDialogFragment.ktapp/src/main/java/org/oppia/android/app/hintsandsolution/HintsAndSolutionDialogFragment.kt
This file is exempted from having a test file; skipping coverage check.
ProfileAndDeviceIdActivityPresenter.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/learneranalytics/ProfileAndDeviceIdActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileAndDeviceIdFragment.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/learneranalytics/ProfileAndDeviceIdFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileAndDeviceIdActivity.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/learneranalytics/ProfileAndDeviceIdActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AdministratorControlsActivity.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/AdministratorControlsActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AppVersionActivity.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/appversion/AppVersionActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AppVersionActivityPresenter.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/appversion/AppVersionActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AdministratorControlsFragment.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/AdministratorControlsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AdministratorControlsActivityPresenter.ktapp/src/main/java/org/oppia/android/app/administratorcontrols/AdministratorControlsActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
GaApplicationComponent.ktapp/src/main/java/org/oppia/android/app/application/ga/GaApplicationComponent.kt
This file is exempted from having a test file; skipping coverage check.
AbstractOppiaApplication.ktapp/src/main/java/org/oppia/android/app/application/AbstractOppiaApplication.kt
This file is exempted from having a test file; skipping coverage check.
BetaApplicationComponent.ktapp/src/main/java/org/oppia/android/app/application/beta/BetaApplicationComponent.kt
This file is exempted from having a test file; skipping coverage check.
AlphaApplicationComponent.ktapp/src/main/java/org/oppia/android/app/application/alpha/AlphaApplicationComponent.kt
This file is exempted from having a test file; skipping coverage check.
DeveloperOppiaApplication.ktapp/src/main/java/org/oppia/android/app/application/dev/DeveloperOppiaApplication.kt
This file is exempted from having a test file; skipping coverage check.
DeveloperApplicationComponent.ktapp/src/main/java/org/oppia/android/app/application/dev/DeveloperApplicationComponent.kt
This file is exempted from having a test file; skipping coverage check.
DeveloperOptionsActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/DeveloperOptionsActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FeatureFlagsFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/featureflags/FeatureFlagsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FeatureFlagsActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/featureflags/FeatureFlagsActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
FeatureFlagsActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/featureflags/FeatureFlagsActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
FeatureFlagsFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/featureflags/FeatureFlagsFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MarkTopicsCompletedFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/marktopicscompleted/MarkTopicsCompletedFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MarkTopicsCompletedActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/marktopicscompleted/MarkTopicsCompletedActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MarkTopicsCompletedFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/marktopicscompleted/MarkTopicsCompletedFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MarkTopicsCompletedActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/marktopicscompleted/MarkTopicsCompletedActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ForceNetworkTypeActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/forcenetworktype/ForceNetworkTypeActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ForceNetworkTypeFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/forcenetworktype/ForceNetworkTypeFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ForceNetworkTypeFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/forcenetworktype/ForceNetworkTypeFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ForceNetworkTypeActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/forcenetworktype/ForceNetworkTypeActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MarkStoriesCompletedActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/markstoriescompleted/MarkStoriesCompletedActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MarkStoriesCompletedActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/markstoriescompleted/MarkStoriesCompletedActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MarkStoriesCompletedFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/markstoriescompleted/MarkStoriesCompletedFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MarkStoriesCompletedFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/markstoriescompleted/MarkStoriesCompletedFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MathExpressionParserActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/mathexpressionparser/MathExpressionParserActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MathExpressionParserFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/mathexpressionparser/MathExpressionParserFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MathExpressionParserFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/mathexpressionparser/MathExpressionParserFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MathExpressionParserActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/mathexpressionparser/MathExpressionParserActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
DeveloperOptionsFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/DeveloperOptionsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MarkChaptersCompletedActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/markchapterscompleted/MarkChaptersCompletedActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MarkChaptersCompletedActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/markchapterscompleted/MarkChaptersCompletedActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MarkChaptersCompletedFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/markchapterscompleted/MarkChaptersCompletedFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MarkChaptersCompletedFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/markchapterscompleted/MarkChaptersCompletedFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PlatformParametersActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParametersActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PlatformParametersFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParametersFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
PlatformParametersFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParametersFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PlatformParametersActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParametersActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
DeveloperOptionsActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/DeveloperOptionsActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ViewEventLogsFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/vieweventlogs/ViewEventLogsFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ViewEventLogsFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/vieweventlogs/ViewEventLogsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ViewEventLogsActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/vieweventlogs/ViewEventLogsActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ViewEventLogsActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/vieweventlogs/ViewEventLogsActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
DateTimeUtil.ktapp/src/main/java/org/oppia/android/app/utility/datetime/DateTimeUtil.kt
This file is incompatible with code coverage tooling; skipping coverage check.
MathExpressionAccessibilityUtil.ktapp/src/main/java/org/oppia/android/app/utility/math/MathExpressionAccessibilityUtil.kt
This file is incompatible with code coverage tooling; skipping coverage check.
RatioExtensions.ktapp/src/main/java/org/oppia/android/app/utility/RatioExtensions.kt
This file is incompatible with code coverage tooling; skipping coverage check.
NavigationDrawerFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/drawer/NavigationDrawerFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MyDownloadsActivity.ktapp/src/main/java/org/oppia/android/app/mydownloads/MyDownloadsActivity.kt
This file is exempted from having a test file; skipping coverage check.
MyDownloadsFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/mydownloads/MyDownloadsFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MyDownloadsActivityPresenter.ktapp/src/main/java/org/oppia/android/app/mydownloads/MyDownloadsActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
MyDownloadsFragment.ktapp/src/main/java/org/oppia/android/app/mydownloads/MyDownloadsFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AppLanguageResourceHandler.ktapp/src/main/java/org/oppia/android/app/translation/AppLanguageResourceHandler.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileProgressActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressActivityPresenter.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.
ProfilePictureActivity.ktapp/src/main/java/org/oppia/android/app/profileprogress/ProfilePictureActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfilePictureActivityPresenter.ktapp/src/main/java/org/oppia/android/app/profileprogress/ProfilePictureActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileProgressFragment.ktapp/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressFragment.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.
AudioLanguageActivity.ktapp/src/main/java/org/oppia/android/app/options/AudioLanguageActivity.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.
AudioLanguageActivityPresenter.ktapp/src/main/java/org/oppia/android/app/options/AudioLanguageActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AppLanguageActivityPresenter.ktapp/src/main/java/org/oppia/android/app/options/AppLanguageActivityPresenter.kt
This file is exempted from having a test file; 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.
AudioLanguageSelectionViewModel.ktapp/src/main/java/org/oppia/android/app/options/AudioLanguageSelectionViewModel.kt
This file is exempted from having a test file; skipping coverage check.
ReadingTextSizeActivity.ktapp/src/main/java/org/oppia/android/app/options/ReadingTextSizeActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AppLanguageActivity.ktapp/src/main/java/org/oppia/android/app/options/AppLanguageActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AppLanguageFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/options/AppLanguageFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AudioLanguageFragment.ktapp/src/main/java/org/oppia/android/app/options/AudioLanguageFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ReadingTextSizeActivityPresenter.ktapp/src/main/java/org/oppia/android/app/options/ReadingTextSizeActivityPresenter.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.
SplashActivity.ktapp/src/main/java/org/oppia/android/app/splash/SplashActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SplashActivityPresenter.ktapp/src/main/java/org/oppia/android/app/splash/SplashActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
WalkthroughActivityPresenter.ktapp/src/main/java/org/oppia/android/app/walkthrough/WalkthroughActivityPresenter.kt
This file is exempted from having a test file; 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.
WalkthroughFinalFragment.ktapp/src/main/java/org/oppia/android/app/walkthrough/end/WalkthroughFinalFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
WalkthroughActivity.ktapp/src/main/java/org/oppia/android/app/walkthrough/WalkthroughActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileListActivity.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileListActivityPresenter.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileListActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileRenameFragment.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileRenameFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileRenameActivityPresenter.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileRenameActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileRenameActivity.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileRenameActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileResetPinActivityPresenter.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileResetPinActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileEditActivity.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileEditActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileResetPinFragment.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileResetPinFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileResetPinActivity.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileResetPinActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ProfileEditActivityPresenter.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileEditActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
ProfileEditFragment.ktapp/src/main/java/org/oppia/android/app/settings/profile/ProfileEditFragment.kt
This file is exempted from having a test file; skipping coverage check.
HomeActivityPresenter.ktapp/src/main/java/org/oppia/android/app/home/HomeActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
RecentlyPlayedFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
RecentlyPlayedFragment.ktapp/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedFragment.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.
RecentlyPlayedActivityPresenter.ktapp/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
TopicSummaryViewModel.ktapp/src/main/java/org/oppia/android/app/home/topiclist/TopicSummaryViewModel.kt
This file is incompatible with code coverage tooling; skipping coverage check.
WelcomeViewModel.ktapp/src/main/java/org/oppia/android/app/home/WelcomeViewModel.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PromotedStoryViewModel.ktapp/src/main/java/org/oppia/android/app/home/promotedlist/PromotedStoryViewModel.kt
This file is incompatible with code coverage tooling; skipping coverage check.
PromotedStoryListViewModel.ktapp/src/main/java/org/oppia/android/app/home/promotedlist/PromotedStoryListViewModel.kt
This file is incompatible with code coverage tooling; skipping coverage check.
SpotlightFragment.ktapp/src/main/java/org/oppia/android/app/spotlight/SpotlightFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicPracticeFragment.ktapp/src/main/java/org/oppia/android/app/topic/practice/TopicPracticeFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicActivity.ktapp/src/main/java/org/oppia/android/app/topic/TopicActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
TopicFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/topic/TopicFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
TopicInfoFragment.ktapp/src/main/java/org/oppia/android/app/topic/info/TopicInfoFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ConceptCardFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentPresenter.kt
This file is exempted from having a test file; 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.
TopicLessonsFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/topic/lessons/TopicLessonsFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
QuestionPlayerActivityPresenter.ktapp/src/main/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerActivityPresenter.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.
TopicFragment.ktapp/src/main/java/org/oppia/android/app/topic/TopicFragment.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.
TopicActivityPresenter.ktapp/src/main/java/org/oppia/android/app/topic/TopicActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
StudyGuideActivity.ktapp/src/main/java/org/oppia/android/app/topic/studyguide/StudyGuideActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
StudyGuideFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/topic/studyguide/StudyGuideFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
StudyGuideFragment.ktapp/src/main/java/org/oppia/android/app/topic/studyguide/StudyGuideFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
StudyGuideActivityPresenter.ktapp/src/main/java/org/oppia/android/app/topic/studyguide/StudyGuideActivityPresenter.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.
RevisionCardActivityPresenter.ktapp/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardActivityPresenter.kt
This file is exempted from having a test file; 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.
ClassroomListFragment.ktapp/src/main/java/org/oppia/android/app/classroom/ClassroomListFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ClassroomListActivity.ktapp/src/main/java/org/oppia/android/app/classroom/ClassroomListActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
ClassroomListActivityPresenter.ktapp/src/main/java/org/oppia/android/app/classroom/ClassroomListActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
OnboardingFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AudioLanguageFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/AudioLanguageFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
OnboardingProfileTypeFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingProfileTypeFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
IntroFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/IntroFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
OnboardingFragmentPresenterV1.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingFragmentPresenterV1.kt
This file is exempted from having a test file; skipping coverage check.
AdminIntroFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/AdminIntroFragmentPresenter.kt
This file is exempted from having a test file; skipping coverage check.
OnboardingProfileTypeActivity.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingProfileTypeActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
AdminIntroFragment.ktapp/src/main/java/org/oppia/android/app/onboarding/AdminIntroFragment.kt
This file is incompatible with code coverage tooling; skipping coverage check.
IntroActivityPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/IntroActivityPresenter.kt
This file is exempted from having a test file; skipping coverage check.
AdminIntroActivity.ktapp/src/main/java/org/oppia/android/app/onboarding/AdminIntroActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
IntroActivity.ktapp/src/main/java/org/oppia/android/app/onboarding/IntroActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
OnboardingActivity.ktapp/src/main/java/org/oppia/android/app/onboarding/OnboardingActivity.kt
This file is incompatible with code coverage tooling; skipping coverage check.
CreateProfileFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/onboarding/CreateProfileFragmentPresenter.kt
This file is exempted from ha...[Comment body truncated]

@Sandesh282

Copy link
Copy Markdown
Collaborator Author

@seanlip PTAL!

@oppiabot oppiabot Bot assigned seanlip and unassigned Sandesh282 Aug 31, 2026
@oppiabot

oppiabot Bot commented Aug 31, 2026

Copy link
Copy Markdown

Unassigning @Sandesh282 since a re-review was requested. @Sandesh282, please make sure you have addressed all review comments. Thanks!

@seanlip seanlip assigned Sandesh282 and unassigned seanlip Sep 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants