Verified
Status Update
Comments
cc...@google.com <cc...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-master-dev
commit b90079595f33f58fece04026a97faa0d243acdb1
Author: Yuichi Araki <yaraki@google.com>
Date: Wed Sep 18 16:55:49 2019
Change the way to detect mismatch between POJO and query
This fixes cursor mismatch warnings with expandProjection.
Bug: 140759491
Test: QueryMethodProcessorTest
Change-Id: I7659002e5e0d1ef60fc1af2a625c0c36da0664d8
M room/compiler/src/main/kotlin/androidx/room/processor/QueryMethodProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
M room/compiler/src/main/kotlin/androidx/room/solver/query/result/PojoRowAdapter.kt
M room/compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/testing/TestProcessor.kt
https://android-review.googlesource.com/1123258
https://goto.google.com/android-sha1/b90079595f33f58fece04026a97faa0d243acdb1
Branch: androidx-master-dev
commit b90079595f33f58fece04026a97faa0d243acdb1
Author: Yuichi Araki <yaraki@google.com>
Date: Wed Sep 18 16:55:49 2019
Change the way to detect mismatch between POJO and query
This fixes cursor mismatch warnings with expandProjection.
Bug: 140759491
Test: QueryMethodProcessorTest
Change-Id: I7659002e5e0d1ef60fc1af2a625c0c36da0664d8
M room/compiler/src/main/kotlin/androidx/room/processor/QueryMethodProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
M room/compiler/src/main/kotlin/androidx/room/solver/query/result/PojoRowAdapter.kt
M room/compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/testing/TestProcessor.kt
cc...@google.com <cc...@google.com> #3
cc...@google.com <cc...@google.com> #4
Project: platform/frameworks/support
Branch: androidx-master-dev
commit bdde5a1a970ddc9007b28de4aa29d60ffa588f08
Author: Yigit Boyar <yboyar@google.com>
Date: Thu Apr 16 16:47:05 2020
Re-factor how errors are dismissed when query is re-written
This CL changes how we handle errors/warnings if query is
re-written.
There was a bug in expandProjection where we would report warnings
for things that Room already fixes automatically ( b/140759491 ).
The solution to that problem (I7659002e5e0d1ef60fc1af2a625c0c36da0664d8)
solved it by deferring validating of columns until after re-write
decision is made. Unfortunately, this required changing PojoRowAdapter
to have a dummy mapping until it is validating, make it hard to use
as it does have a non-null mapping which is not useful.
This CL partially reverts that change and instead rely on the log
deferring logic we have in Context. This way, we don't need to break
the stability of PojoRowAdapter while still having the ability to
drop warnings that room fixes. This will also play nicer when we
have different query re-writing options that can use more information
about the query results.
Bug: 153387066
Bug: 140759491
Test: existing tests pass
Change-Id: I2ec967c763d33d7a3ff02c1a13c6953b460d1e5f
M room/compiler/src/main/kotlin/androidx/room/log/RLog.kt
M room/compiler/src/main/kotlin/androidx/room/processor/QueryMethodProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
M room/compiler/src/main/kotlin/androidx/room/solver/query/result/PojoRowAdapter.kt
https://android-review.googlesource.com/1288456
Branch: androidx-master-dev
commit bdde5a1a970ddc9007b28de4aa29d60ffa588f08
Author: Yigit Boyar <yboyar@google.com>
Date: Thu Apr 16 16:47:05 2020
Re-factor how errors are dismissed when query is re-written
This CL changes how we handle errors/warnings if query is
re-written.
There was a bug in expandProjection where we would report warnings
for things that Room already fixes automatically (
The solution to that problem (I7659002e5e0d1ef60fc1af2a625c0c36da0664d8)
solved it by deferring validating of columns until after re-write
decision is made. Unfortunately, this required changing PojoRowAdapter
to have a dummy mapping until it is validating, make it hard to use
as it does have a non-null mapping which is not useful.
This CL partially reverts that change and instead rely on the log
deferring logic we have in Context. This way, we don't need to break
the stability of PojoRowAdapter while still having the ability to
drop warnings that room fixes. This will also play nicer when we
have different query re-writing options that can use more information
about the query results.
Bug: 153387066
Bug: 140759491
Test: existing tests pass
Change-Id: I2ec967c763d33d7a3ff02c1a13c6953b460d1e5f
M room/compiler/src/main/kotlin/androidx/room/log/RLog.kt
M room/compiler/src/main/kotlin/androidx/room/processor/QueryMethodProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
M room/compiler/src/main/kotlin/androidx/room/solver/query/result/PojoRowAdapter.kt
cc...@google.com <cc...@google.com> #5
Fix merged, will likely go out after 2.0: https://android-review.googlesource.com/c/platform/frameworks/support/+/760841
Again though, I'd like to reiterate that the ideal fix is, on the app side, using a large enough initial load size that this doesn't happen.
Again though, I'd like to reiterate that the ideal fix is, on the app side, using a large enough initial load size that this doesn't happen.
ap...@google.com <ap...@google.com> #6
Project: platform/frameworks/support
Branch: androidx-master-dev
commit f78707abc65b00041201a995f202ee3e95c9529b
Author: Chris Craik <ccraik@google.com>
Date: Tue Sep 18 15:06:03 2018
Trigger load after pagedlist swap
Fixes: 113122599
Test: ./gradlew paging:paging-runtime:cC
If a PagedList swap results in no content changes, but a
shorter-than-viewport initial list, the PagedList would be stuck,
since no calls from the adapter would trigger loads in this case.
To work around this in many cases, trigger a load on the new PagedList
based on the last access position. This can fail if the prefetch
distance < viewport size, but that's a fairly general problem with
small prefetch windows + no placeholders.
E.g. if the end of the initial load happens to perfectly line up with
the bottom of the viewport, and no in-viewport content changes are
made, no loads below will occur. Recommendation for now in such cases
(if they happen in practice) is to make prefetch larger. We already
default to prefetch = page size, which we recommend to be several
viewports in size.
Change-Id: I0d1e2db479d1ad05fbdb34a3854279fccad9b680
M paging/runtime/src/androidTest/java/androidx/paging/AsyncPagedListDifferTest.kt
M paging/runtime/src/main/java/androidx/paging/AsyncPagedListDiffer.java
https://android-review.googlesource.com/760841
https://goto.google.com/android-sha1/f78707abc65b00041201a995f202ee3e95c9529b
Branch: androidx-master-dev
commit f78707abc65b00041201a995f202ee3e95c9529b
Author: Chris Craik <ccraik@google.com>
Date: Tue Sep 18 15:06:03 2018
Trigger load after pagedlist swap
Fixes: 113122599
Test: ./gradlew paging:paging-runtime:cC
If a PagedList swap results in no content changes, but a
shorter-than-viewport initial list, the PagedList would be stuck,
since no calls from the adapter would trigger loads in this case.
To work around this in many cases, trigger a load on the new PagedList
based on the last access position. This can fail if the prefetch
distance < viewport size, but that's a fairly general problem with
small prefetch windows + no placeholders.
E.g. if the end of the initial load happens to perfectly line up with
the bottom of the viewport, and no in-viewport content changes are
made, no loads below will occur. Recommendation for now in such cases
(if they happen in practice) is to make prefetch larger. We already
default to prefetch = page size, which we recommend to be several
viewports in size.
Change-Id: I0d1e2db479d1ad05fbdb34a3854279fccad9b680
M paging/runtime/src/androidTest/java/androidx/paging/AsyncPagedListDifferTest.kt
M paging/runtime/src/main/java/androidx/paging/AsyncPagedListDiffer.java
cc...@google.com <cc...@google.com> #7
Released with Paging 2.1.0-alpha01
[Deleted User] <[Deleted User]> #8
delete
Description
Version used: 1.0.1
Devices/Android versions reproduced on: Any
If adapter already has items and you submit a new equals list (`submitList` in `PagedListAdapter`) and they do not feet all screen, `loadAfter` will not be invoked.
In my case, I use a refresh and create new PagedList from new DataSource but a content of items will not be changed.