Platform parameter screen
Explanation
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
Coverage Report
Results
Number of files assessed: 14 Overall Coverage: 77.17% Coverage Analysis: FAIL :x:
Failure Cases
| File | Failure Reason | Status |
|---|---|---|
PlatformParameterFragment.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParameterFragment.kt |
No appropriate test file found for app/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParameterFragment.kt. | :x: |
PlatformParameterActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParameterActivity.kt |
No appropriate test file found for app/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParameterActivity.kt. | :x: |
PlatformParameterActivityPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParameterActivityPresenter.kt |
No appropriate test file found for app/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParameterActivityPresenter.kt. | :x: |
PlatformParameterItemViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParameterItemViewModel.kt |
No appropriate test file found for app/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParameterItemViewModel.kt. | :x: |
PlatformParameterTestActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/testing/PlatformParameterTestActivity.kt |
No appropriate test file found for app/src/main/java/org/oppia/android/app/devoptions/platformparameters/testing/PlatformParameterTestActivity.kt. | :x: |
PlatformParameterViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParameterViewModel.kt |
No appropriate test file found for app/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParameterViewModel.kt. | :x: |
PlatformParameterFragmentPresenter.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParameterFragmentPresenter.kt |
No appropriate test file found for app/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParameterFragmentPresenter.kt. | :x: |
RouteToPlatformParametersListener.ktapp/src/main/java/org/oppia/android/app/devoptions/RouteToPlatformParametersListener.kt |
No appropriate test file found for app/src/main/java/org/oppia/android/app/devoptions/RouteToPlatformParametersListener.kt. | :x: |
Passing coverage
Files with passing code coverage
| File | Coverage | Lines Hit | Status | Min Required |
|---|---|---|---|---|
EventBundleCreator.ktutility/src/main/java/org/oppia/android/util/logging/EventBundleCreator.kt |
77.17% | 338 / 438 | :white_check_mark: | 70% |
Exempted coverage
Files exempted from coverage
| File | Exemption Reason |
|---|---|
DeveloperOptionsViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/DeveloperOptionsViewModel.kt |
This file is exempted from having a test file; skipping coverage check. |
DeveloperOptionsOverrideAppBehaviorsViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/devoptionsitemviewmodel/DeveloperOptionsOverrideAppBehaviorsViewModel.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. |
FragmentComponentImpl.ktapp/src/main/java/org/oppia/android/app/fragment/FragmentComponentImpl.kt |
This file is exempted from having a test file; skipping coverage check. |
ActivityComponentImpl.ktapp/src/main/java/org/oppia/android/app/activity/ActivityComponentImpl.kt |
This file is exempted from having a test file; skipping coverage check. |
Refer test_file_exemptions.textproto for the comprehensive list of file exemptions and their required coverage percentages.
To learn more, visit the Oppia Android Code Coverage wiki page
Coverage Report
Results
Number of files assessed: 15 Overall Coverage: 77.17% Coverage Analysis: PASS :white_check_mark:
Passing coverage
Files with passing code coverage
| File | Coverage | Lines Hit | Status | Min Required |
|---|---|---|---|---|
EventBundleCreator.ktutility/src/main/java/org/oppia/android/util/logging/EventBundleCreator.kt |
77.17% | 338 / 438 | :white_check_mark: | 70% |
Exempted coverage
Files exempted from coverage
| File | Exemption Reason |
|---|---|
DeveloperOptionsActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/DeveloperOptionsActivity.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. |
PlatformParametersTestActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/testing/PlatformParametersTestActivity.kt |
This file is exempted from having a test file; 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. |
PlatformParametersActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParametersActivity.kt |
This file is incompatible with code coverage tooling; skipping coverage check. |
PlatformParametersViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParametersViewModel.kt |
This file is exempted from having a test file; skipping coverage check. |
PlatformParameterItemViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParameterItemViewModel.kt |
This file is exempted from having a test file; 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. |
RouteToPlatformParametersListener.ktapp/src/main/java/org/oppia/android/app/devoptions/RouteToPlatformParametersListener.kt |
This file is exempted from having a test file; skipping coverage check. |
DeveloperOptionsOverrideAppBehaviorsViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/devoptionsitemviewmodel/DeveloperOptionsOverrideAppBehaviorsViewModel.kt |
This file is exempted from having a test file; skipping coverage check. |
DeveloperOptionsViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/DeveloperOptionsViewModel.kt |
This file is exempted from having a test file; skipping coverage check. |
FragmentComponentImpl.ktapp/src/main/java/org/oppia/android/app/fragment/FragmentComponentImpl.kt |
This file is exempted from having a test file; skipping coverage check. |
ActivityComponentImpl.ktapp/src/main/java/org/oppia/android/app/activity/ActivityComponentImpl.kt |
This file is exempted from having a test file; skipping coverage check. |
PlatformParameterControllerDebugImpl.ktdomain/src/main/java/org/oppia/android/domain/platformparameter/PlatformParameterControllerDebugImpl.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
PTAL @Rd4dev and please look at the error displaying logic and binding adapter here as well.
PTAL @Rd4dev and please look at the error displaying logic and binding adapter here as well.
@theayushyadav11 -- seeking clarification on the assignment — is it ready for review, or is there a specific area (issue resolution or verification) you'd like me to look into?
@theayushyadav11 -- seeking clarification on the assignment — is it ready for review, or is there a specific area (issue resolution or verification) you'd like me to look into?
???
@theayushyadav11
Flagging three main concerns I noticed while reviewing this:
- Data loss when the RecyclerView is scrolled.
- Incorrect error messages appear during scrolling.
- Text input fields are getting clipped, resulting in chopped-off content.
https://github.com/user-attachments/assets/b41c90ce-fb78-4912-bf03-06d62b4faf19
Separately, as previously requested, there are several comments from #5861 that mirror feedback from the Feature Flag screen PR as they still apply to this PR. These should have been considered and addressed by now — leaving them unaddressed leads to redundant reviews. Please refer to each and every comment from #5861 to be applied here ASAP.
This PR is not yet synced with its base branch, and this PR needs to be in a review-ready state by today, otherwise it will be difficult to move it to develop before internal evaluation — especially since there’s still another PR pending review (#5871).
Please look closely into the state management and layout handling to identify the root causes. Assign this back once the issues are fully addressed.
Re-emphasizing: please ensure both PR 1.2 and PR 1.3 are completed by today.
Coverage Report
Results
Number of files assessed: 14 Overall Coverage: 77.17% Coverage Analysis: PASS :white_check_mark:
Passing coverage
Files with passing code coverage
| File | Coverage | Lines Hit | Status | Min Required |
|---|---|---|---|---|
EventBundleCreator.ktutility/src/main/java/org/oppia/android/util/logging/EventBundleCreator.kt |
77.17% | 338 / 438 | :white_check_mark: | 70% |
Exempted coverage
Files exempted from coverage
| File | Exemption Reason |
|---|---|
DeveloperOptionsActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/DeveloperOptionsActivity.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. |
PlatformParametersTestActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/testing/PlatformParametersTestActivity.kt |
This file is exempted from having a test file; 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. |
PlatformParametersActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParametersActivity.kt |
This file is incompatible with code coverage tooling; skipping coverage check. |
PlatformParametersViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParametersViewModel.kt |
This file is exempted from having a test file; skipping coverage check. |
PlatformParameterItemViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParameterItemViewModel.kt |
This file is exempted from having a test file; 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. |
RouteToPlatformParametersListener.ktapp/src/main/java/org/oppia/android/app/devoptions/RouteToPlatformParametersListener.kt |
This file is exempted from having a test file; skipping coverage check. |
DeveloperOptionsOverrideAppBehaviorsViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/devoptionsitemviewmodel/DeveloperOptionsOverrideAppBehaviorsViewModel.kt |
This file is exempted from having a test file; skipping coverage check. |
DeveloperOptionsViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/DeveloperOptionsViewModel.kt |
This file is exempted from having a test file; skipping coverage check. |
FragmentComponentImpl.ktapp/src/main/java/org/oppia/android/app/fragment/FragmentComponentImpl.kt |
This file is exempted from having a test file; skipping coverage check. |
ActivityComponentImpl.ktapp/src/main/java/org/oppia/android/app/activity/ActivityComponentImpl.kt |
This file is exempted from having a test file; skipping coverage check. |
Refer test_file_exemptions.textproto for the comprehensive list of file exemptions and their required coverage percentages.
To learn more, visit the Oppia Android Code Coverage wiki page
Hi @Rd4dev there are two concerns left :
-
State management - As we were having the issue in the feature flag screen regarding the unintended behaviour ie some flags are assigned wrong values so you suggested to make use of map instead of a list. Here also some similar issue is being noticed where error text and values are being changed, to encounter this I made another custom databinding for
onTextChangedListenerwhich will be used in xml and have a callback function which returns the id and text so the id could be correctly bound to the parameter. But this also seems to break some times. Could you please take a look on this?. -
Layout of TextField - Currently
TextInputlayoutis being used for the textfield and since the layout is small so it is not possible to accomodate the layout into such a small space, currently the size is hardcoded but is not being correctly setup in every device screen. So should I make a custom layout for it using cardviews and other things or there is any other way we can deal with.
These are the things mainly concerned.
Unassigning @theayushyadav11 since a re-review was requested. @theayushyadav11, please make sure you have addressed all review comments. Thanks!
- State management - As we were having the issue in the feature flag screen regarding the unintended behaviour ie some flags are assigned wrong values so you suggested to make use of map instead of a list. Here also some similar issue is being noticed where error text and values are being changed, to encounter this I made another custom databinding for
onTextChangedListenerwhich will be used in xml and have a callback function which returns the id and text so the id could be correctly bound to the parameter. But this also seems to break some times. Could you please take a look on this?.- Layout of TextField - Currently
TextInputlayoutis being used for the textfield and since the layout is small so it is not possible to accomodate the layout into such a small space, currently the size is hardcoded but is not being correctly setup in every device screen. So should I make a custom layout for it using cardviews and other things or there is any other way we can deal with.
@theayushyadav11
1. State Management Context
In the Feature Flag screen, the incorrect state entry issue wasn’t due to using a List vs a Map but was due to the use of setOnCheckedChangeListener, which was being triggered during each RecyclerView rebind, leading to unintended value updates. What resolved this was switching to onClick, so only genuine user inputs are stored. The Map helps with efficiently + accurately to hold the states.
For the Platform Parameter screen, the issue occurs with triggering of TextWatcher on each rebind. So, introducing a custom binding with same logic would possibly cause the same issue scroll or rebind.
Instead, we should ensure that text changes are only handled when actually entered by the user. Can you instead try to remove the existing watcher before binding new text, and attaching a fresh one afterward:
existingWatcher?.let { editText.removeTextChangedListener(it) }
// Set the value manually
...
// Define a new watcher
val newWatcher = object : TextWatcher {
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
model.onTextChangedCallback?.invoke(id, s.toString())
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
override fun afterTextChanged(s: Editable?) {}
}
// Add the watcher
editText.addTextChangedListener(newWatcher)
The aim is to ensure that only user input updates the state by removing stale TextWatchers before setting text and reattaching fresh ones, preventing unwanted triggers during RecyclerView rebinding.
2. Layout of TextField
I’m not entirely sure what the issue refers to exactly. If possible, could you share a screenshot or screen recording to help clarify? From a general layout perspective, this sounds like a misalignment issue. Consider avoiding hardcoded values for "height" and "width", as they can lead to cropping issues in EditText, Prefer using wrap_content, match_parent, or 0dp (with proper constraints) where appropriate, and reserve fixed dimensions only when absolutely necessary for the design — these could help fix both alignment and input cropping problems as noted in the above comment.
<TextView
android:id="@+id/platform_parameter_label_text_view"
app:layout_constraintEnd_toStartOf="@+id/barrier_input"
... />
<androidx.constraintlayout.widget.Barrier
android:id="@+id/barrier_id_placeholder"
app:constraint_referenced_ids="platform_parameter_switch,platform_parameter_input_layout"
... />
Also, it was previously mentioned in the meeting that a separate TextView was being used for error messages—I personally prefer relying on the built-in error support in TextInputLayout. I can see that the current version skips the separate view, so +1 for that.
Try out the suggestions above, and see if those resolve the issue and feel free to reach out if anything else comes up or if further clarification is needed.
@theayushyadav11
1. State Management Context
In the Feature Flag screen, the incorrect state entry issue wasn’t due to using a
Listvs aMapbut was due to the use ofsetOnCheckedChangeListener, which was being triggered during each RecyclerView rebind, leading to unintended value updates. What resolved this was switching toonClick, so only genuine user inputs are stored. The Map helps with efficiently + accurately to hold the states.For the Platform Parameter screen, the issue occurs with triggering of
TextWatcheron each rebind. So, introducing a custom binding with same logic would possibly cause the same issue scroll or rebind.Instead, we should ensure that text changes are only handled when actually entered by the user. Can you instead try to remove the existing watcher before binding new text, and attaching a fresh one afterward:
existingWatcher?.let { editText.removeTextChangedListener(it) } // Set the value manually ... // Define a new watcher val newWatcher = object : TextWatcher { override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) { model.onTextChangedCallback?.invoke(id, s.toString()) } override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {} override fun afterTextChanged(s: Editable?) {} } // Add the watcher editText.addTextChangedListener(newWatcher)The aim is to ensure that only user input updates the state by removing stale
TextWatchersbefore setting text and reattaching fresh ones, preventing unwanted triggers during RecyclerView rebinding.2. Layout of TextField
I’m not entirely sure what the issue refers to exactly. If possible, could you share a screenshot or screen recording to help clarify? From a general layout perspective, this sounds like a misalignment issue. Consider avoiding hardcoded values for "height" and "width", as they can lead to cropping issues in
EditText, Prefer usingwrap_content,match_parent, or0dp(with proper constraints) where appropriate, and reserve fixed dimensions only when absolutely necessary for the design — these could help fix both alignment and input cropping problems as noted in the above comment.<TextView android:id="@+id/platform_parameter_label_text_view" app:layout_constraintEnd_toStartOf="@+id/barrier_input" ... /> <androidx.constraintlayout.widget.Barrier android:id="@+id/barrier_id_placeholder" app:constraint_referenced_ids="platform_parameter_switch,platform_parameter_input_layout" ... />Also, it was previously mentioned in the meeting that a separate
TextViewwas being used for error messages—I personally prefer relying on the built-in error support inTextInputLayout. I can see that the current version skips the separate view, so +1 for that.Try out the suggestions above, and see if those resolve the issue and feel free to reach out if anything else comes up or if further clarification is needed.
Hi @Rd4dev , thank you for your suggestions, I have tried incorporating your suggestions and things seems to work for now PTAL.
Unassigning @theayushyadav11 since a re-review was requested. @theayushyadav11, please make sure you have addressed all review comments. Thanks!
Coverage Report
Results
Number of files assessed: 16 Overall Coverage: 77.17% Coverage Analysis: FAIL :x:
Failure Cases
| File | Failure Reason | Status |
|---|---|---|
| //app:src/sharedTest/java/org/oppia/android/app/devoptions/featureflags/FeatureFlagsFragmentTest | Source File: FeatureFlagsFragment.kt not found in the coverage data | :x: |
Passing coverage
Files with passing code coverage
| File | Coverage | Lines Hit | Status | Min Required |
|---|---|---|---|---|
EventBundleCreator.ktutility/src/main/java/org/oppia/android/util/logging/EventBundleCreator.kt |
77.17% | 338 / 438 | :white_check_mark: | 70% |
Exempted coverage
Files exempted from coverage
| File | Exemption Reason |
|---|---|
DeveloperOptionsActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/DeveloperOptionsActivity.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. |
PlatformParametersTestActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/testing/PlatformParametersTestActivity.kt |
This file is exempted from having a test file; 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. |
PlatformParametersActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParametersActivity.kt |
This file is incompatible with code coverage tooling; skipping coverage check. |
PlatformParametersViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParametersViewModel.kt |
This file is exempted from having a test file; skipping coverage check. |
PlatformParameterItemViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParameterItemViewModel.kt |
This file is exempted from having a test file; 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. |
RouteToPlatformParametersListener.ktapp/src/main/java/org/oppia/android/app/devoptions/RouteToPlatformParametersListener.kt |
This file is exempted from having a test file; skipping coverage check. |
FeatureFlagItemViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/featureflags/FeatureFlagItemViewModel.kt |
This file is exempted from having a test file; skipping coverage check. |
DeveloperOptionsOverrideAppBehaviorsViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/devoptionsitemviewmodel/DeveloperOptionsOverrideAppBehaviorsViewModel.kt |
This file is exempted from having a test file; skipping coverage check. |
DeveloperOptionsViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/DeveloperOptionsViewModel.kt |
This file is exempted from having a test file; skipping coverage check. |
FragmentComponentImpl.ktapp/src/main/java/org/oppia/android/app/fragment/FragmentComponentImpl.kt |
This file is exempted from having a test file; skipping coverage check. |
ActivityComponentImpl.ktapp/src/main/java/org/oppia/android/app/activity/ActivityComponentImpl.kt |
This file is exempted from having a test file; skipping coverage check. |
Refer test_file_exemptions.textproto for the comprehensive list of file exemptions and their required coverage percentages.
To learn more, visit the Oppia Android Code Coverage wiki page
Coverage Report
Results
Number of files assessed: 14 Overall Coverage: 77.17% Coverage Analysis: PASS :white_check_mark:
Passing coverage
Files with passing code coverage
| File | Coverage | Lines Hit | Status | Min Required |
|---|---|---|---|---|
EventBundleCreator.ktutility/src/main/java/org/oppia/android/util/logging/EventBundleCreator.kt |
77.17% | 338 / 438 | :white_check_mark: | 70% |
Exempted coverage
Files exempted from coverage
| File | Exemption Reason |
|---|---|
DeveloperOptionsActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/DeveloperOptionsActivity.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. |
PlatformParametersTestActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/testing/PlatformParametersTestActivity.kt |
This file is exempted from having a test file; 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. |
PlatformParametersActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParametersActivity.kt |
This file is incompatible with code coverage tooling; skipping coverage check. |
PlatformParametersViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParametersViewModel.kt |
This file is exempted from having a test file; skipping coverage check. |
PlatformParameterItemViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParameterItemViewModel.kt |
This file is exempted from having a test file; 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. |
RouteToPlatformParametersListener.ktapp/src/main/java/org/oppia/android/app/devoptions/RouteToPlatformParametersListener.kt |
This file is exempted from having a test file; skipping coverage check. |
DeveloperOptionsOverrideAppBehaviorsViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/devoptionsitemviewmodel/DeveloperOptionsOverrideAppBehaviorsViewModel.kt |
This file is exempted from having a test file; skipping coverage check. |
DeveloperOptionsViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/DeveloperOptionsViewModel.kt |
This file is exempted from having a test file; skipping coverage check. |
FragmentComponentImpl.ktapp/src/main/java/org/oppia/android/app/fragment/FragmentComponentImpl.kt |
This file is exempted from having a test file; skipping coverage check. |
ActivityComponentImpl.ktapp/src/main/java/org/oppia/android/app/activity/ActivityComponentImpl.kt |
This file is exempted from having a test file; skipping coverage check. |
Refer test_file_exemptions.textproto for the comprehensive list of file exemptions and their required coverage percentages.
To learn more, visit the Oppia Android Code Coverage wiki page
Unassigning @Rd4dev since the review is done.
Hi @theayushyadav11, it looks like some changes were requested on this pull request by @Rd4dev. PTAL. Thanks!
Coverage Report
Results
Number of files assessed: 19 Overall Coverage: 83.11% Coverage Analysis: PASS :white_check_mark:
Passing coverage
Files with passing code coverage
| File | Coverage | Lines Hit | Status | Min Required |
|---|---|---|---|---|
LintProjectDescription.ktscripts/src/java/org/oppia/android/scripts/lint/LintProjectDescription.kt |
80.37% | 303 / 377 | :white_check_mark: | 70% |
AndroidLintRunner.ktscripts/src/java/org/oppia/android/scripts/lint/AndroidLintRunner.kt |
73.88% | 99 / 134 | :white_check_mark: | 70% |
TestBazelWorkspace.ktscripts/src/java/org/oppia/android/scripts/testing/TestBazelWorkspace.kt |
98.94% | 186 / 188 | :white_check_mark: | 70% |
AndroidBuildSdkProperties.ktscripts/src/java/org/oppia/android/scripts/common/AndroidBuildSdkProperties.kt |
100.00% | 10 / 10 | :white_check_mark: | 70% |
BazelClient.ktscripts/src/java/org/oppia/android/scripts/common/BazelClient.kt |
98.25% | 112 / 114 | :white_check_mark: | 70% |
EventBundleCreator.ktutility/src/main/java/org/oppia/android/util/logging/EventBundleCreator.kt |
77.17% | 338 / 438 | :white_check_mark: | 70% |
Exempted coverage
Files exempted from coverage
| File | Exemption Reason |
|---|---|
DeveloperOptionsActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/DeveloperOptionsActivity.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. |
PlatformParametersTestActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/testing/PlatformParametersTestActivity.kt |
This file is exempted from having a test file; 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. |
PlatformParametersActivity.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParametersActivity.kt |
This file is incompatible with code coverage tooling; skipping coverage check. |
PlatformParametersViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParametersViewModel.kt |
This file is exempted from having a test file; skipping coverage check. |
PlatformParameterItemViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/platformparameters/PlatformParameterItemViewModel.kt |
This file is exempted from having a test file; 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. |
RouteToPlatformParametersListener.ktapp/src/main/java/org/oppia/android/app/devoptions/RouteToPlatformParametersListener.kt |
This file is exempted from having a test file; skipping coverage check. |
DeveloperOptionsOverrideAppBehaviorsViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/devoptionsitemviewmodel/DeveloperOptionsOverrideAppBehaviorsViewModel.kt |
This file is exempted from having a test file; skipping coverage check. |
DeveloperOptionsViewModel.ktapp/src/main/java/org/oppia/android/app/devoptions/DeveloperOptionsViewModel.kt |
This file is exempted from having a test file; skipping coverage check. |
FragmentComponentImpl.ktapp/src/main/java/org/oppia/android/app/fragment/FragmentComponentImpl.kt |
This file is exempted from having a test file; skipping coverage check. |
ActivityComponentImpl.ktapp/src/main/java/org/oppia/android/app/activity/ActivityComponentImpl.kt |
This file is exempted from having a test file; skipping coverage check. |
Refer test_file_exemptions.textproto for the comprehensive list of file exemptions and their required coverage percentages.
To learn more, visit the Oppia Android Code Coverage wiki page
Thanks @Rd4dev for the review, I have updated as requested except one comment PTAL.
Here is the video and everything seems to work fine.
Video
https://github.com/user-attachments/assets/d50eefc9-c270-419a-a0ba-05e26aa5fddb
Unassigning @theayushyadav11 since a re-review was requested. @theayushyadav11, please make sure you have addressed all review comments. Thanks!
Unassigning @Rd4dev since the review is done.
Hi @theayushyadav11, it looks like some changes were requested on this pull request by @Rd4dev. PTAL. Thanks!
Hi @Rd4dev, I have updated the changes as ewquested.
Here is the log recording of the parameter states
oppiaLogger.d("PlatformParametersFragmentPresenter", "Text changed for $id: $text") is added inside the textChange callback.
PTAL.
Unassigning @theayushyadav11 since a re-review was requested. @theayushyadav11, please make sure you have addressed all review comments. Thanks!
Unassigning @Rd4dev since the review is done.
Hi @theayushyadav11, it looks like some changes were requested on this pull request by @Rd4dev. PTAL. Thanks!
Hi @Rd4dev , I have updated as requested PTAL.
Unassigning @theayushyadav11 since a re-review was requested. @theayushyadav11, please make sure you have addressed all review comments. Thanks!
Unassigning @Rd4dev since they have already approved the PR.
Assigning @BenHenning for code owner reviews. Thanks!
PTAL @Rd4dev .
Unassigning @theayushyadav11 since a re-review was requested. @theayushyadav11, please make sure you have addressed all review comments. Thanks!