8000 Introduce new platform parameter system infrastructure by BenHenning · Pull Request #5725 · oppia/oppia-android · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Introduce new platform parameter system infrastructure #5725

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 69 commits into from

Conversation

BenHenning
Copy link
Member

Explanation

TODO: Finish

Essential Checklist

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

For UI-specific PRs only

If your PR includes UI-related changes, then:

  • Add screenshots for portrait/landscape for both a tablet & phone of the before & after UI changes
  • For the screenshots above, include both English and pseudo-localized (RTL) screenshots (see RTL guide)
  • Add a video showing the full UX flow with a screen reader enabled (see accessibility guide)
  • For PRs introducing new UI elements or color changes, both light and dark mode screenshots must be included
  • Add a screenshot demonstrating that you ran affected Espresso tests locally & that they're passing

Rd4dev added 30 commits October 25, 2024 15:12
…ameters

Initial commit, this works with individual overrides while having multiple enable / diasable annotations mess with the overriding and cause the default value to be thrown even with a dummy feature flag name and this commit doesn't address platform parameter value overrides and doesnot check for Oppia Test Rule to be present on all tests.
…or both feature flags and parameter value overrides
…o annotations_test_rules_platform_parameter
…ParameterModule 1

on hold: TopicRevisionTabSpotlight yet to properly migrate 6 more test cases here
Gradle tests couldn't resolve dagger test components, so they need to be double checked on the CI and through bazel tests.
Todo Later: (-minus) ApplicationLifecycleObserverTest, PlatformParameterModuleTest, SurveyGatingControllerTest
PlatformParameterModuleTest, SurveyGatingControllerTest, ApplicationLifecycleObserverTest, SyncStatusManagerImplTest, LogReportingModuleTest, PerformanceMetricsAssessorImplTest
Set to false to test override of parameter value
Removed the set up for onboarding V2 flag as both disable and enable were set to enable the v2 flag while none of the activation or change of default values made any effect.
…t and FeatureFlagsLoggerTest back to TestPlatformParameterModule

Few test files use TestPlatformParameterModuleConstant values which was provided then by the TestPlatformParameterModule but those were just for testing purposes and not sure how to migrate them to production module since that
10000
 would involve mixing both, either they need to be merged to be in one or handled as a separate file for constants just for testing and injected as required (also to be placed at a more appropriate location if required). Todo: 1. Migration of the left 6 files + these 2 -- 2. To remove TestPlatformParameterModule -- 3. To check for OppiaTestRule instance at every test file
…meterModule

Todo: 1. Test Module's build file to be refactored, 2. Platform Parameter Overrides, 3. Scan for Oppia Test Rule insertions 4. Remove Test module after (1) and confirm with CI.
Testing it via CI as local run threw OutOfMemoryError - Java heap space Exception.
The Regex Validation returned around 298 test files with a missing oppia test rule and all these files were now included with the rule irrespective of the feature flag usage.
Needs //testing dependency and throws Fingerprint issues without RunWith AndroidJunit4 class.
Also, demonstrate a working nonmodularized test with the new platform
parameter testing approach (ProfileChooserFragmentTest).
…t-platform-parameter-system

Conflicts:
	app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/AdministratorControlsActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/AdministratorControlsFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/learneranalytics/ProfileAndDeviceIdFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/classroom/ClassroomListFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/databinding/TextInputLayoutBindingAdaptersTest.kt
	app/src/sharedTest/java/org/oppia/android/app/databinding/TextViewBindingAdaptersTest.kt
	app/src/sharedTest/java/org/oppia/android/app/devoptions/mathexpressionparser/MathExpressionParserFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/home/HomeActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/home/RecentlyPlayedFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/mydownloads/MyDownloadsActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/onboarding/CreateProfileFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/onboarding/IntroFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/onboarding/OnboardingFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/onboarding/OnboardingProfileTypeFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/options/OptionsFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/parser/HtmlParserTest.kt
	app/src/sharedTest/java/org/oppia/android/app/player/exploration/BUILD.bazel
	app/src/sharedTest/java/org/oppia/android/app/player/exploration/ExplorationActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/player/state/StateFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/policies/PoliciesFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/profile/AddProfileActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/profile/PinPasswordActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/profile/ProfileChooserFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileEditFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/splash/BUILD.bazel
	app/src/sharedTest/java/org/oppia/android/app/splash/SplashActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/spotlight/SpotlightFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/survey/SurveyActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/survey/SurveyFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/testing/TopicTestActivityForStoryTest.kt
	app/src/sharedTest/java/org/oppia/android/app/topic/TopicActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/topic/TopicFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/topic/info/TopicInfoFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/topic/lessons/TopicLessonsFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/topic/practice/TopicPracticeFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/topic/revision/TopicRevisionFragmentTest.kt
	app/src/test/java/org/oppia/android/app/activity/ActivityIntentFactoriesTest.kt
	app/src/test/java/org/oppia/android/app/activity/route/ActivityRouterModuleTest.kt
	app/src/test/java/org/oppia/android/app/activity/route/ActivityRouterTest.kt
	app/src/test/java/org/oppia/android/app/home/HomeActivityLocalTest.kt
	app/src/test/java/org/oppia/android/app/parser/FractionParsingUiErrorTest.kt
	app/src/test/java/org/oppia/android/app/parser/ListItemLeadingMarginSpanTest.kt
	app/src/test/java/org/oppia/android/app/parser/StringToRatioParserTest.kt
	app/src/test/java/org/oppia/android/app/player/exploration/ExplorationActivityLocalTest.kt
	app/src/test/java/org/oppia/android/app/player/state/StateFragmentLocalTest.kt
	app/src/test/java/org/oppia/android/app/testing/options/OptionsFragmentTest.kt
	app/src/test/java/org/oppia/android/app/topic/info/TopicInfoFragmentLocalTest.kt
	app/src/test/java/org/oppia/android/app/utility/datetime/DateTimeUtilTest.kt
	app/src/test/java/org/oppia/android/app/utility/math/MathExpressionAccessibilityUtilTest.kt
	data/BUILD.bazel
	data/src/test/java/org/oppia/android/data/backends/gae/NetworkModuleTest.kt
	domain/BUILD.bazel
	domain/src/main/java/org/oppia/android/domain/platformparameter/PlatformParameterModule.kt
	domain/src/test/java/org/oppia/android/domain/audio/AudioPlayerControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/audio/CellularAudioDialogControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/classify/AnswerClassificationControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/classify/rules/textinput/TextInputContainsRuleClassifierProviderTest.kt
	domain/src/test/java/org/oppia/android/domain/classify/rules/textinput/TextInputEqualsRuleClassifierProviderTest.kt
	domain/src/test/java/org/oppia/android/domain/classify/rules/textinput/TextInputFuzzyEqualsRuleClassifierProviderTest.kt
	domain/src/test/java/org/oppia/android/domain/classify/rules/textinput/TextInputStartsWithRuleClassifierProviderTest.kt
	domain/src/test/java/org/oppia/android/domain/classroom/ClassroomControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/clipboard/ClipboardControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/devoptions/ModifyLessonProgressControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/devoptions/ShowAllHintsAndSolutionControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/exploration/ExplorationActiveTimeControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/exploration/ExplorationDataControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/exploration/ExplorationProgressControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/exploration/ExplorationProgressModuleTest.kt
	domain/src/test/java/org/oppia/android/domain/exploration/ExplorationStorageModuleTest.kt
	domain/src/test/java/org/oppia/android/domain/exploration/lightweightcheckpointing/ExplorationCheckpointControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/exploration/testing/ExplorationStorageTestModuleTest.kt
	domain/src/test/java/org/oppia/android/domain/feedbackreporting/ReportSchemaVersionTest.kt
	domain/src/test/java/org/oppia/android/domain/locale/LocaleControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/onboarding/AppStartupStateControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/onboarding/DeprecationControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/LoggingIdentifierControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/AnalyticsControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/ApplicationLifecycleModuleTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/ApplicationLifecycleObserverTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/BUILD.bazel
	domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/CpuPerformanceSnapshotterModuleTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/CpuPerformanceSnapshotterTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/FeatureFlagsLoggerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/LearnerAnalyticsLoggerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/PerformanceMetricsLoggerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/SurveyEventsLoggerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/testing/FakeLogSchedulerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/logscheduler/MetricLogSchedulingWorkerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/logscheduler/PerformanceMetricsLogSchedulerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/loguploader/LogReportWorkManagerInitializerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/loguploader/LogUploadWorkerTest.kt
	domain/src/test/java/org/oppia/android/domain/platformparameter/PlatformParameterControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/platformparameter/PlatformParameterModuleTest.kt
	domain/src/test/java/org/oppia/android/domain/platformparameter/PlatformParameterSingletonTest.kt
	domain/src/test/java/org/oppia/android/domain/platformparameter/syncup/PlatformParameterSyncUpWorkManagerInitializerTest.kt
	domain/src/test/java/org/oppia/android/domain/platformparameter/syncup/PlatformParameterSyncUpWorkerTest.kt
	domain/src/test/java/org/oppia/android/domain/profile/ProfileManagementControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/spotlight/SpotlightStateControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/survey/SurveyControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/survey/SurveyGatingControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/survey/SurveyProgressControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/topic/StoryProgressControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/translation/TranslationControllerTest.kt
	testing/src/main/java/org/oppia/android/testing/platformparameter/BUILD.bazel
	testing/src/main/java/org/oppia/android/testing/platformparameter/PlatformParameterTestConstants.kt
	testing/src/test/java/org/oppia/android/testing/espresso/TextInputActionTest.kt
	testing/src/test/java/org/oppia/android/testing/network/MockPlatformParameterServiceTest.kt
	testing/src/test/java/org/oppia/android/testing/profile/ProfileTestHelperTest.kt
	utility/src/main/java/org/oppia/android/util/platformparameter/FeatureFlagConstants.kt
	utility/src/main/java/org/oppia/android/util/platformparameter/PlatformParameterConstants.kt
	utility/src/test/java/org/oppia/android/util/logging/EventBundleCreatorTest.kt
	utility/src/test/java/org/oppia/android/util/logging/SyncStatusManagerImplTest.kt
	utility/src/test/java/org/oppia/android/util/logging/firebase/LogReportingModuleTest.kt
	utility/src/test/java/org/oppia/android/util/logging/performancemetrics/PerformanceMetricsAssessorImplTest.kt
This updates the new platform parameter and feature flag test
annotations to use the new platform parameter and feature flag ID enums
rather than the string-based names that have been removed. Also, updates
tests that use them & corresponding wiki documentation.

These changes haven't yet been tested or even built.
// Corresponds to a platform parameter whose ID is not known (e.g. invalid or undefined).
PLATFORM_PARAMETER_ID_UNSPECIFIED = 0;

// TODO: Finish documentation & update the indexes based on creation date of each.
Copy link
Member Author

Choose a reason for hiding this comment

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

}
}

override fun downloadRemoteParameters(): DataProvider<Any?> {
Copy link
Collaborator

Choose a reason for hiding this comment

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

Following up on the discussion reg. "Force Download Remote Parameters' Status Indication" —requesting to include Pending and Failure results to support the status indicators planned with #5345.

// Indicates the sync status of the platform parameter.
SyncStatus sync_status = 5;
SyncStatus sync_status = 3;
Copy link
Collaborator

Choose a reason for hiding this comment

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

Following up to confirm if we should proceed with removing the sync_status field from RemotePlatformParameter, since a fetched remote value could be treated as default SYNCED_FROM_SERVER (assuming the current scope).

adhiamboperes pushed a commit that referenced this pull request May 23, 2025
## Explanation

Fixes part of #59

Updates all test module declarations to use one line per module and sort
them.

This is a large change, but it's been 100% auto-generated using the
following code (run from within a script context):

```kotlin
fun main(vararg args: String) {
  // Path of the repo to be analyzed.
  val repoPath = "${args[0]}/"
  val testFiles = RepositoryFile.collectSearchFiles(
    repoPath = repoPath,
    expectedExtension = ".kt",
    exemptionsList = emptyList()
  ).filter { it.nameWithoutExtension.endsWith("Test") }
  testFiles.forEach { testFile ->
    val sourceContents = testFile.readText()
    val modulesPrefix = "modules = ["
    if (modulesPrefix in sourceContents) {
      val moduleNames =
        sourceContents
          .replace("\n", "")
          .replace(" ", "")
          .substringAfter("@component(")
          .substringAfter("modules=[")
          .substringBefore("]")
          .split(",")
          .mapNotNull { it.takeIf(String::isNotEmpty) }
          .map { it.removeSuffix("::class") }
      val realModules = moduleNames.sorted().toSet()

      val fullyExpandedModules = realModules.joinToString(",\n      ") { "$it::class" }
      val linesToUse = if (realModules.isNotEmpty()) "  @component(\n    modules = [\n      $fullyExpandedModules\n    ]\n  )" else "  @component(modules = [])"

      val componentPrefix = "  @component("
      val startIndex = sourceContents.indexOf(componentPrefix)
      val endIndex = sourceContents.substringAfter(componentPrefix).indexOf(')') + startIndex + componentPrefix.length
      val newSourceContents =
        "${sourceContents.substring(0, startIndex)}$linesToUse${sourceContents.substring(endIndex + 1)}"
      testFile.writeText(newSourceContents)
    }
  }
}
```

I am content with relying on the above generation (which is specifically
designed to avoid dropping components) and CI to ensure that this is
correct, though a spot check review would be helpful. There were two
classes `AppStartupStateControllerTest` and `DeprecationControllerTest`
that required some manual handling due to them both including line
comments within their module declarations, but these were easy to fix.

Note that this is being done now to simplify a bunch of downstream PRs
including #5823 and #5804 which are being done in turn to simplify #5725
(via another not-yet-created PR that will significantly reduce the
number of modules references that we need to maintain). This may expand
the number of lines of test code, but it's temporary until a few PRs
from now when they can be consolidated into new bundle modules (see
#5805).

## Essential Checklist
- [x] The PR title and explanation each start with "Fix #bugnum: " (If
this PR fixes part of an issue, prefix the title with "Fix part of
#bugnum: ...".)
- [x] Any changes to
[scripts/assets](https://github.com/oppia/oppia-android/tree/develop/scripts/assets)
files have their rationale included in the PR explanation.
- [x] The PR follows the [style
guide](https://github.com/oppia/oppia-android/wiki/Coding-style-guide).
- [x] The PR does not contain any unnecessary code changes from Android
Studio
([reference](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#undo-unnecessary-changes)).
- [x] The PR is made from a branch that's **not** called "develop" and
is up-to-date with "develop".
- [x] The PR is **
B41A
assigned** to the appropriate reviewers
([reference](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#clarification-regarding-assignees-and-reviewers-section)).

## For UI-specific PRs only
N/A -- This is a purely infrastructural change.
NB: This probably includes extra formatting and module fixes.

Conflicts:
	app/BUILD.bazel
	app/src/main/java/org/oppia/android/app/application/alpha/AlphaApplicationComponent.kt
	app/src/main/java/org/oppia/android/app/application/beta/BetaApplicationComponent.kt
	app/src/main/java/org/oppia/android/app/application/dev/DeveloperApplicationComponent.kt
	app/src/main/java/org/oppia/android/app/application/ga/GaApplicationComponent.kt
	app/src/main/java/org/oppia/android/app/testing/SplashTestActivity.kt
	app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/AdministratorControlsActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/AdministratorControlsFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/appversion/AppVersionActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/learneranalytics/ProfileAndDeviceIdActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/learneranalytics/ProfileAndDeviceIdFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/classroom/ClassroomListActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/classroom/ClassroomListFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/completedstorylist/CompletedStoryListActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/customview/LessonThumbnailImageViewTest.kt
	app/src/sharedTest/java/org/oppia/android/app/customview/interaction/MathExpressionInteractionsViewTest.kt
	app/src/sharedTest/java/org/oppia/android/app/databinding/AppCompatCheckBoxBindingAdaptersTest.kt
	app/src/sharedTest/java/org/oppia/android/app/databinding/CircularProgressIndicatorAdaptersTest.kt
	app/src/sharedTest/java/org/oppia/android/app/databinding/ColorBindingAdaptersTest.kt
	app/src/sharedTest/java/org/oppia/android/app/databinding/DrawableBindingAdaptersTest.kt
	app/src/sharedTest/java/org/oppia/android/app/databinding/ImageViewBindingAdaptersTest.kt
	app/src/sharedTest/java/org/oppia/android/app/databinding/MarginBindingAdaptersTest.kt
	app/src/sharedTest/java/org/oppia/android/app/databinding/StateAssemblerMarginBindingAdaptersTest.kt
	app/src/sharedTest/java/org/oppia/android/app/databinding/StateAssemblerPaddingBindingAdaptersTest.kt
	app/src/sharedTest/java/org/oppia/android/app/databinding/TextInputLayoutBindingAdaptersTest.kt
	app/src/sharedTest/java/org/oppia/android/app/databinding/TextViewBindingAdaptersTest.kt
	app/src/sharedTest/java/org/oppia/android/app/databinding/ViewBindingAdaptersTest.kt
	app/src/sharedTest/java/org/oppia/android/app/devoptions/DeveloperOptionsActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/devoptions/DeveloperOptionsFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/devoptions/forcenetworktype/ForceNetworkTypeActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/devoptions/forcenetworktype/ForceNetworkTypeFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/devoptions/markchapterscompleted/MarkChaptersCompletedActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/devoptions/markchapterscompleted/MarkChaptersCompletedFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/devoptions/markstoriescompleted/MarkStoriesCompletedActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/devoptions/markstoriescompleted/MarkStoriesCompletedFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/devoptions/marktopicscompleted/MarkTopicsCompletedActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/devoptions/marktopicscompleted/MarkTopicsCompletedFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/devoptions/mathexpressionparser/MathExpressionParserActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/devoptions/mathexpressionparser/MathExpressionParserFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/devoptions/vieweventlogs/ViewEventLogsActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/devoptions/vieweventlogs/ViewEventLogsFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/help/HelpActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/help/HelpFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/help/faq/FAQListActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/help/faq/FAQListFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/help/faq/faqsingle/FAQSingleActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/help/thirdparty/LicenseListActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/help/thirdparty/LicenseListFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/help/thirdparty/LicenseTextViewerActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/help/thirdparty/LicenseTextViewerFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/help/thirdparty/ThirdPartyDependencyListActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/help/thirdparty/ThirdPartyDependencyListFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/home/HomeActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/home/WelcomeViewModelTest.kt
	app/src/sharedTest/java/org/oppia/android/app/home/promotedlist/PromotedStoryListViewModelTest.kt
	app/src/sharedTest/java/org/oppia/android/app/home/promotedlist/PromotedStoryViewModelTest.kt
	app/src/sharedTest/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/home/topiclist/TopicSummaryViewModelTest.kt
	app/src/sharedTest/java/org/oppia/android/app/mydownloads/MyDownloadsActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/mydownloads/MyDownloadsFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/notice/BetaNoticeDialogFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/notice/ForcedAppDeprecationNoticeDialogFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/notice/GeneralAvailabilityUpgradeNoticeDialogFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/notice/OptionalAppDeprecationNoticeDialogFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/notice/OsDeprecationNoticeDialogFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/onboarding/CreateProfileActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/onboarding/CreateProfileFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/onboarding/IntroActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/onboarding/IntroFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/onboarding/OnboardingActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/onboarding/OnboardingFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/onboarding/OnboardingProfileTypeActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/onboarding/OnboardingProfileTypeFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/ongoingtopiclist/OngoingTopicListActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/options/OptionsActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/options/OptionsFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/options/ReadingTextSizeActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/options/ReadingTextSizeFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/player/audio/AudioFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/player/exploration/BottomSheetOptionsMenuTest.kt
	app/src/sharedTest/java/org/oppia/android/app/player/exploration/ExplorationActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/player/state/ImageRegionSelectionInteractionViewTest.kt
	app/src/sharedTest/java/org/oppia/android/app/player/state/StateFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/policies/PoliciesActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/policies/PoliciesFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/profile/AddProfileActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/profile/AdminAuthActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/profile/AdminPinActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/profile/PinPasswordActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/profile/ProfileChooserActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/profile/ProfileChooserFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/profileprogress/ProfilePictureActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/profileprogress/ProfileProgressActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/profileprogress/ProfileProgressFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/recyclerview/BindableAdapterTest.kt
	app/src/sharedTest/java/org/oppia/android/app/resumelesson/ResumeLessonActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/resumelesson/ResumeLessonFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileEditActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileEditFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileListActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileListFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileRenameActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileRenameFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileResetPinActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileResetPinFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/splash/SplashActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/spotlight/SpotlightFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/story/StoryActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/story/StoryFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/survey/SurveyActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/survey/SurveyFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/testing/DragDropTestActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/testing/FractionInputInteractionViewTestActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/testing/InputInteractionViewTestActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/testing/NavigationDrawerActivityDebugTest.kt
	app/src/sharedTest/java/org/oppia/android/app/testing/NavigationDrawerActivityProdTest.kt
	app/src/sharedTest/java/org/oppia/android/app/testing/RatioInputInteractionViewTestActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/testing/TestFontScaleConfigurationUtilActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/testing/TextInputInteractionViewTestActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/testing/TopicTestActivityForStoryTest.kt
	app/src/sharedTest/java/org/oppia/android/app/topic/TopicActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/topic/TopicFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/topic/info/TopicInfoFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/topic/lessons/TopicLessonsFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/topic/practice/TopicPracticeFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/topic/revision/TopicRevisionFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/topic/revisioncard/RevisionCardActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/topic/revisioncard/RevisionCardFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/utility/RatioExtensionsTest.kt
	app/src/sharedTest/java/org/oppia/android/app/walkthrough/WalkthroughActivityTest.kt
	app/src/sharedTest/java/org/oppia/android/app/walkthrough/end/WalkthroughFinalFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/walkthrough/topiclist/WalkthroughTopicListFragmentTest.kt
	app/src/sharedTest/java/org/oppia/android/app/walkthrough/welcome/WalkthroughWelcomeFragmentTest.kt
	app/src/test/java/org/oppia/android/app/activity/ActivityIntentFactoriesTest.kt
	app/src/test/java/org/oppia/android/app/activity/route/ActivityRouterModuleTest.kt
	app/src/test/java/org/oppia/android/app/activity/route/ActivityRouterTest.kt
	app/src/test/java/org/oppia/android/app/administratorcontrols/AdministratorControlsFragmentTest.kt
	app/src/test/java/org/oppia/android/app/home/HomeActivityLocalTest.kt
	app/src/test/java/org/oppia/android/app/options/OptionsFragmentTest.kt
	app/src/test/java/org/oppia/android/app/parser/FractionParsingUiErrorTest.kt
	app/src/test/java/org/oppia/android/app/parser/StringToRatioParserTest.kt
	app/src/test/java/org/oppia/android/app/player/exploration/ExplorationActivityLocalTest.kt
	app/src/test/java/org/oppia/android/app/player/state/StateFragmentLocalTest.kt
	app/src/test/java/org/oppia/android/app/profile/ProfileChooserFragmentLocalTest.kt
	app/src/test/java/org/oppia/android/app/story/StoryActivityLocalTest.kt
	app/src/test/java/org/oppia/android/app/testing/CompletedStoryListSpanTest.kt
	app/src/test/java/org/oppia/android/app/testing/HomeSpanTest.kt
	app/src/test/java/org/oppia/android/app/testing/OngoingTopicListSpanTest.kt
	app/src/test/java/org/oppia/android/app/testing/PlatformParameterIntegrationTest.kt
	app/src/test/java/org/oppia/android/app/testing/ProfileChooserSpanTest.kt
	app/src/test/java/org/oppia/android/app/testing/ProfileProgressSpanCountTest.kt
	app/src/test/java/org/oppia/android/app/testing/RecentlyPlayedSpanTest.kt
	app/src/test/java/org/oppia/android/app/testing/TopicRevisionSpanTest.kt
	app/src/test/java/org/oppia/android/app/testing/activity/TestActivityTest.kt
	app/src/test/java/org/oppia/android/app/testing/player/split/PlayerSplitScreenTest.kt
	app/src/test/java/org/oppia/android/app/testing/player/state/StateFragmentAccessibilityTest.kt
	app/src/test/java/org/oppia/android/app/topic/info/TopicInfoFragmentLocalTest.kt
	app/src/test/java/org/oppia/android/app/topic/lessons/TopicLessonsFragmentLocalTest.kt
	app/src/test/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerActivityLocalTest.kt
	app/src/test/java/org/oppia/android/app/topic/revisioncard/RevisionCardActivityLocalTest.kt
	app/src/test/java/org/oppia/android/app/translation/ActivityLanguageLocaleHandlerTest.kt
	app/src/test/java/org/oppia/android/app/translation/AppLanguageLocaleHandlerTest.kt
	app/src/test/java/org/oppia/android/app/translation/AppLanguageResourceHandlerTest.kt
	app/src/test/java/org/oppia/android/app/translation/AppLanguageWatcherMixinTest.kt
	app/src/test/java/org/oppia/android/app/utility/datetime/DateTimeUtilTest.kt
	app/src/test/java/org/oppia/android/app/utility/math/MathExpressionAccessibilityUtilTest.kt
	data/src/test/java/org/oppia/android/data/backends/gae/JsonPrefixNetworkInterceptorTest.kt
	data/src/test/java/org/oppia/android/data/backends/gae/NetworkConfigProdModuleTest.kt
	data/src/test/java/org/oppia/android/data/backends/gae/NetworkLoggingInterceptorTest.kt
	data/src/test/java/org/oppia/android/data
F438
/backends/gae/RemoteAuthNetworkInterceptorTest.kt
	data/src/test/java/org/oppia/android/data/backends/gae/RetrofitModuleTest.kt
	data/src/test/java/org/oppia/android/data/backends/gae/api/FeedbackReportingServiceTest.kt
	data/src/test/java/org/oppia/android/data/backends/gae/api/PlatformParameterServiceTest.kt
	domain/BUILD.bazel
	domain/src/main/java/org/oppia/android/domain/platformparameter/syncup/PlatformParameterSyncUpWorker.kt
	domain/src/test/java/org/oppia/android/domain/audio/AudioPlayerControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/audio/CellularAudioDialogControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/auth/AuthenticationControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/classify/AnswerClassificationControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/classify/rules/dragAndDropSortInput/DragDropSortInputHasElementXAtPositionYClassifierProviderTest.kt
	domain/src/test/java/org/oppia/android/domain/classify/rules/dragAndDropSortInput/DragDropSortInputHasElementXBeforeElementYClassifierProviderTest.kt
	domain/src/test/java/org/oppia/android/domain/classify/rules/textinput/TextInputContainsRuleClassifierProviderTest.kt
	domain/src/test/java/org/oppia/android/domain/classify/rules/textinput/TextInputEqualsRuleClassifierProviderTest.kt
	domain/src/test/java/org/oppia/android/domain/classify/rules/textinput/TextInputFuzzyEqualsRuleClassifierProviderTest.kt
	domain/src/test/java/org/oppia/android/domain/classify/rules/textinput/TextInputStartsWithRuleClassifierProviderTest.kt
	domain/src/test/java/org/oppia/android/domain/classroom/ClassroomControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/clipboard/ClipboardControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/devoptions/ModifyLessonProgressControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/devoptions/ShowAllHintsAndSolutionControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/exploration/ExplorationActiveTimeControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/exploration/ExplorationDataControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/exploration/ExplorationProgressControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/exploration/ExplorationProgressModuleTest.kt
	domain/src/test/java/org/oppia/android/domain/exploration/ExplorationStorageModuleTest.kt
	domain/src/test/java/org/oppia/android/domain/exploration/lightweightcheckpointing/ExplorationCheckpointControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/exploration/testing/ExplorationStorageTestModuleTest.kt
	domain/src/test/java/org/oppia/android/domain/feedbackreporting/ReportSchemaVersionTest.kt
	domain/src/test/java/org/oppia/android/domain/locale/LocaleControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/onboarding/AppStartupStateControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/onboarding/DeprecationControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/LoggingIdentifierControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/OppiaLoggerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/AnalyticsControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/ApplicationLifecycleModuleTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/ApplicationLifecycleObserverTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/BUILD.bazel
	domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/CpuPerformanceSnapshotterModuleTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/CpuPerformanceSnapshotterTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/FeatureFlagsLoggerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/FirestoreDataControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/LearnerAnalyticsLoggerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/PerformanceMetricsControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/PerformanceMetricsLoggerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/testing/FakeLogSchedulerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/logscheduler/MetricLogSchedulingWorkerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/logscheduler/PerformanceMetricsLogSchedulerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/loguploader/LogReportWorkManagerInitializerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/loguploader/LogUploadWorkerTest.kt
	domain/src/test/java/org/oppia/android/domain/oppialogger/survey/SurveyEventsLoggerTest.kt
	domain/src/test/java/org/oppia/android/domain/platformparameter/PlatformParameterControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/platformparameter/PlatformParameterModuleTest.kt
	domain/src/test/java/org/oppia/android/domain/platformparameter/syncup/PlatformParameterSyncUpWorkManagerInitializerTest.kt
	domain/src/test/java/org/oppia/android/domain/platformparameter/syncup/PlatformParameterSyncUpWorkerTest.kt
	domain/src/test/java/org/oppia/android/domain/profile/ProfileManagementControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/question/QuestionAssessmentProgressControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/question/QuestionTrainingControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/spotlight/SpotlightStateControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/survey/SurveyControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/survey/SurveyGatingControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/survey/SurveyProgressControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/topic/StoryProgressControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/topic/TopicControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/topic/TopicListControllerTest.kt
	domain/src/test/java/org/oppia/android/domain/translation/TranslationControllerTest.kt
	instrumentation/src/java/org/oppia/android/instrumentation/application/TestApplicationComponent.kt
	scripts/assets/test_file_exemptions.textproto
	testing/BUILD.bazel
	testing/src/main/java/org/oppia/android/testing/network/BUILD.bazel
	testing/src/main/java/org/oppia/android/testing/network/MockPlatformParameterService.kt
	testing/src/test/java/org/oppia/android/testing/junit/InitializeDefaultLocaleRuleCustomContextTest.kt
	testing/src/test/java/org/oppia/android/testing/junit/InitializeDefaultLocaleRuleOmissionTest.kt
	testing/src/test/java/org/oppia/android/testing/junit/InitializeDefaultLocaleRuleTest.kt
	testing/src/test/java/org/oppia/android/testing/lightweightcheckpointing/ExplorationCheckpointTestHelperTest.kt
	testing/src/test/java/org/oppia/android/testing/network/MockPlatformParameterServiceTest.kt
	testing/src/test/java/org/oppia/android/testing/profile/ProfileTestHelperTest.kt
	testing/src/test/java/org/oppia/android/testing/story/StoryProgressTestHelperTest.kt
	utility/src/main/java/org/oppia/android/util/logging/BUILD.bazel
	utility/src/main/java/org/oppia/android/util/logging/EventBundleCreator.kt
	utility/src/test/java/org/oppia/android/util/accessibility/FakeAccessibilityServiceTest.kt
	utility/src/test/java/org/oppia/android/util/extensions/StringExtensionsTest.kt
	utility/src/test/java/org/oppia/android/util/logging/EventBundleCreatorTest.kt
	utility/src/test/java/org/oppia/android/util/logging/SyncStatusManagerImplTest.kt
	utility/src/test/java/org/oppia/android/util/logging/firebase/LogReportingModuleTest.kt
	utility/src/test/java/org/oppia/android/util/logging/performancemetrics/PerformanceMetricsAssessorImplTest.kt
	utility/src/test/java/org/oppia/android/util/parser/html/HtmlParserTest.kt
	utility/src/test/java/org/oppia/android/util/parser/html/ListItemLeadingMarginSpanTest.kt
	utility/src/test/java/org/oppia/android/util/platformparameter/PlatformParameterSingletonTest.kt
Also removed two utilities that are no longer needed, and updated
platform parameter and feature flag protos to have correct orders with
reserved IDs. See comment:

https://github.com/oppia/oppia-android/pull/5715/files/d685c5b806407828e4dbc31df9f7893b1fbdd43f..179784887876d4e4baa099ac70649166e6980af6#r2032090170
This actually gets one single test working completely with
OppiaTestRule: AppStartupStateControllerTest. It also introduces a clean
replacement for PlatformParameterTestInitializer.
QuestionModule was incorrectly removed and is being introduced here (but
probably in more places than is correct).

Also, update AdministratorControlsActivityTest to work with the latest
override functionality.
@BenHenning
Copy link
Member Author

NB This should fix #5676.

This fixes a bunch of tests being moved over to properly using the new
test rule, off of directly tweaking flags using the config retriever,
and moving off of using the initializer.

There are still many more tests to fix since it seems all tests now must
have a test application declared and configured via Robolectric.
@BenHenning BenHenning reopened this May 31, 2025
@BenHenning
Copy link
Member Author
BenHenning commented May 31, 2025

This PR is going to be split up in the effort of time. Specifically, my plan is:

  • Introduce the new platform parameter controller directly and hook it up to the existing injection & testing approaches for platform parameters and feature flags. This means building interop.
  • Introduce the new injection approach for feature flags and platform parameters.
    • This may be done in 2 parts: one for introducing the new generation script, and one for actually hooking it up.
  • Introduce the new testing approach for feature flags and platform parameters.
    • This may require much of the ongoing module cleanup work to continue (or, rather, significantly benefit from it).
    • This may also require some forward work around adding test application classes to all existing tests. I may opt for code generation for this as well.

BenHenning added a commit that referenced this pull request Jun 1, 2025
This comes from #5725. These configurations have been adapted for being
interoperable with the existing platform parameter system, but there's
downstream work needed yet for actually making the app build and work.
BenHenning added a commit that referenced this pull request Jun 1, 2025
This removes a bunch of stuff from #5725 but introduces some of the
initial interop pieces needed to work without substantial integration
requirements.

A lot more needs to change yet to get the components properly hooked up
and the app building, not to mention tests.
BenHenning added a commit that referenced this pull request Jun 1, 2025
The dev build actually opens and runs, though it's still relying on the
old parameter values.

This also introduces support for flavor-specific overrides, though they
are as yet untested. These may have been lost at some point in the
development of #5725 since they weren't present in the latest changes.
Copy link
oppiabot bot commented Jun 7, 2025

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

@oppiabot oppiabot bot added the stale Corresponds to items that haven't seen a recent update and may be automatically closed. label Jun 7, 2025
@BenHenning
Copy link
Member Author

#5835 is tracking the remaining work for this PR. I plan to use this PR as the final bit of addressing that issue once the preliminary pieces are done.

Closing for now since this won't be completely finished for several weeks yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stale Corresponds to items that haven't seen a recent update and may be automatically closed.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants
0