Fixes #13312: Delegate onConfigurationChanged to the ViewModel #13313
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Contributor checklist
Fixes #1234
syntaxIssue
Fixes: #13312
Description
In the beginning, I thought the problem had to do with the layout, but it turns out it's more about threads.
To make the layout hierarchy better, I tried taking out
LinearLayout
fromonboarding_megaphone.xml
. Unfortunately, this change didn't fix the issue.After digging deeper, I found that the
onConfigurationChanged
method insideConversationListFragment
was incorrectly callingonMegaphoneChanged
directly. It should go throughlifecycleDisposable
.I tried to emit the current
megaphone
object using the following approach, but it didn't work because of the use ofdistinctUntilChanged
():Instead, I fetched the next
megaphone
object from therepository
and updated the state.Final solution:
Moved
onConfigurationChanged
handling fromConversationListFragment
to theViewModel
, ensuring consistency in UI updates vialifecycleDisposable
and maintaining the guarantee of UI observations on the main thread.Videos
fix.mov
Tested