Verified
Status Update
Comments
ad...@google.com <ad...@google.com> #2
This has been fixed internally by https://android-review.googlesource.com/864732 and developers can now use by navArgs() in both activities and Fragments to retrieve an instance of their generated Args class.
As a side effect of this change, the Args.fromBundle(Bundle) methods have been replaced with constructors that take a Bundle.
As a side effect of this change, the Args.fromBundle(Bundle) methods have been replaced with constructors that take a Bundle.
cc...@google.com <cc...@google.com> #3
This will be part of the Navigation 1.0.0-alpha10 release.
rh...@abc.net.au <rh...@abc.net.au> #4
FWIW, the second part of #2, where we switched to a constructor that takes a Bundle, has been reverted in https://android-review.googlesource.com/870691 and we'll continue to use an Args.fromBundle(Bundle) static method in Navigation 1.0.0-alpha10.
cc...@google.com <cc...@google.com> #5
Yes, this was included in RecyclerView 1.0.0 (and pre-androidx 28.0.0), confirmed by checking source jar.
Description
Version used: 27.1.1
Theme used: N/A
Devices/Android versions reproduced on: Any
Regarding the check at the top of `submitList` here:
```
if (newList == mList) {
// nothing to do
return;
}
```
There's a race condition -- suppose we have lists A and B, and the differ's `mList` before starting is list A.
1. Submit list B - async diff generation N kicks off
2. Submit list A - `newList` matches `mList` since diff gen N hasn't completed yet, but `mMaxScheduledGeneration` is not incremented and this returns early
3. Async diff gen N is accepted, despite list A being submitted after list B.
Seems this could be fixed by incrementing `mMaxScheduledGeneration`. As a workaround, I am wrapping my lists in a new identity before submitting them to the differ.