From 6ac4f9c8ccc60287a0d43c8dc822ff23823ebaa5 Mon Sep 17 00:00:00 2001
From: Sergei Shchurov <71126152+sichchurov@users.noreply.github.com>
Date: Sun, 29 Oct 2023 22:57:49 +0300
Subject: [PATCH] Fix part of #5195: using viewLifecycleOwner (#5207)
## Explanation
#### Fix part of #5195: using viewLifecycleOwner.
It is not a good idea to use a fragment as a lifecycle owner when
subscribing to liveData objects. It would be correct to use
viewLifecycleOwner.
Lint report before:
Lint report after
## 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 **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
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](https://github.com/oppia/oppia-android/wiki/RTL-Guidelines))
- Add a video showing the full UX flow with a screen reader enabled (see
[accessibility
guide](https://github.com/oppia/oppia-android/wiki/Accessibility-A11y-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
---
.../oppia/android/app/survey/SurveyFragmentPresenter.kt | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/app/src/main/java/org/oppia/android/app/survey/SurveyFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/survey/SurveyFragmentPresenter.kt
index 2d2b1ccca0f..88789ee130d 100644
--- a/app/src/main/java/org/oppia/android/app/survey/SurveyFragmentPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/survey/SurveyFragmentPresenter.kt
@@ -175,11 +175,10 @@ class SurveyFragmentPresenter @Inject constructor(
private fun subscribeToCurrentQuestion() {
ephemeralQuestionLiveData.observe(
- fragment,
- {
- processEphemeralQuestionResult(it)
- }
- )
+ fragment.viewLifecycleOwner
+ ) {
+ processEphemeralQuestionResult(it)
+ }
}
private fun processEphemeralQuestionResult(result: AsyncResult) {