Fixed
Status Update
Comments
il...@google.com <il...@google.com>
il...@google.com <il...@google.com>
il...@google.com <il...@google.com> #2
This lint check should apply to:
- onCreateView()
- onViewCreated()
- onActivityCreated()
- onViewStateRestored()
As all of those are called each time the fragment's view is created.
- onCreateView()
- onViewCreated()
- onActivityCreated()
- onViewStateRestored()
As all of those are called each time the fragment's view is created.
ap...@google.com <ap...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-master-dev
commit d26126d23175fc55c77788b95989f1ecc873eb9c
Author: Matthew Fraschilla <fraschilla@google.com>
Date: Mon Oct 07 13:05:15 2019
Add lint check for unsafe livedata observe in Fragments
A Fragment's lifecycle can last longer than its view resulting in
LiveData objects being observed longer than intended. This change
introduces a lint check to warn developers that they should use the
getViewLifecyclOwner() method as the LifecycleOwner when observing
LiveData objects.
Test: new FragmentLiveDataObserveDetectorTest
Bug: 137122478
Change-Id: If002f6be74d9b943f1b43cf2515b20337489b704
A fragment/fragment-lint/src/main/java/androidx/fragment/lint/FragmentLiveDataObserverDetector.kt
A fragment/fragment-lint/src/main/java/androidx/fragment/lint/LintUtils.kt
A fragment/fragment-lint/src/test/java/androidx/fragment/lint/FragmentLiveDataObserveDetectorTest.kt
A fragment/fragment-lint/src/test/java/androidx/fragment/lint/stubs/Stubs.kt
https://android-review.googlesource.com/1137099
https://goto.google.com/android-sha1/d26126d23175fc55c77788b95989f1ecc873eb9c
Branch: androidx-master-dev
commit d26126d23175fc55c77788b95989f1ecc873eb9c
Author: Matthew Fraschilla <fraschilla@google.com>
Date: Mon Oct 07 13:05:15 2019
Add lint check for unsafe livedata observe in Fragments
A Fragment's lifecycle can last longer than its view resulting in
LiveData objects being observed longer than intended. This change
introduces a lint check to warn developers that they should use the
getViewLifecyclOwner() method as the LifecycleOwner when observing
LiveData objects.
Test: new FragmentLiveDataObserveDetectorTest
Bug: 137122478
Change-Id: If002f6be74d9b943f1b43cf2515b20337489b704
A fragment/fragment-lint/src/main/java/androidx/fragment/lint/FragmentLiveDataObserverDetector.kt
A fragment/fragment-lint/src/main/java/androidx/fragment/lint/LintUtils.kt
A fragment/fragment-lint/src/test/java/androidx/fragment/lint/FragmentLiveDataObserveDetectorTest.kt
A fragment/fragment-lint/src/test/java/androidx/fragment/lint/stubs/Stubs.kt
il...@google.com <il...@google.com> #4
We've added this Lint check internally and it will be available in Fragment 1.2.0-rc01
an...@google.com <an...@google.com> #5
pa...@gmail.com <pa...@gmail.com> #6
It seems the FragmentLiveDataObserve lint check is missing cases for, when one uses the observe extension function and not the observe function found on the LiveData class.
I created a repohttps://github.com/patrickusiewicz/missing-lint-check-for-observe to show the issue.
I created a repo
il...@google.com <il...@google.com> #7
Re #6 - please file a separate issue.
l....@gmail.com <l....@gmail.com> #8
Comment has been deleted.
Description
Version used: 1.2.0-alpha01
Devices/Android versions reproduced on:
Observing a LiveData in OnViewCreated using this as the LifecycleOwner can lead to unexpected behaviors on fragment re-attachment.
Instead, getViewLifecycleOwner() should be used as the LifecyclerOwner.
Having a Lint check that warns when a LiveData is observed with this inside a Fragment could help the new users of Fragment and LiveData.