Fixed
Status Update
Comments
du...@google.com <du...@google.com> #2
Project: r8
Branch: main
commit 77b38bac8b835605eb4858334278b12933c007a4
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Fri Jun 17 11:41:49 2022
Consult api database during type strengthening
Bug: b/236294139
Change-Id: I9e070782a2da544eba90b15c41d5b7281142cc3b
M src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorProgramOptimizer.java
M src/main/java/com/android/tools/r8/androidapi/ComputedApiLevel.java
A src/test/java/com/android/tools/r8/apimodel/ApiModelTypeStrengtheningTest.java
A src/test/java/com/android/tools/r8/apimodel/ApiModelTypeStrengtheningAboveMinApiTest.java
M src/main/java/com/android/tools/r8/utils/AndroidApiLevelUtils.java
https://r8-review.googlesource.com/69142
Branch: main
commit 77b38bac8b835605eb4858334278b12933c007a4
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Fri Jun 17 11:41:49 2022
Consult api database during type strengthening
Bug:
Change-Id: I9e070782a2da544eba90b15c41d5b7281142cc3b
M src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorProgramOptimizer.java
M src/main/java/com/android/tools/r8/androidapi/ComputedApiLevel.java
A src/test/java/com/android/tools/r8/apimodel/ApiModelTypeStrengtheningTest.java
A src/test/java/com/android/tools/r8/apimodel/ApiModelTypeStrengtheningAboveMinApiTest.java
M src/main/java/com/android/tools/r8/utils/AndroidApiLevelUtils.java
du...@google.com <du...@google.com> #3
Project: r8
Branch: 3.2
commit b6be4ce67ec9f9389dab9e8f4cac1b7bd97f38ca
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Fri Jun 17 12:46:55 2022
Version 3.2.69
Bug: b/236294139
Change-Id: I6aa6dabc3902e9fa1cd5b8289ed3cbf0ba2a0548
M src/main/java/com/android/tools/r8/Version.java
https://r8-review.googlesource.com/69146
Branch: 3.2
commit b6be4ce67ec9f9389dab9e8f4cac1b7bd97f38ca
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Fri Jun 17 12:46:55 2022
Version 3.2.69
Bug:
Change-Id: I6aa6dabc3902e9fa1cd5b8289ed3cbf0ba2a0548
M src/main/java/com/android/tools/r8/Version.java
ti...@chainels.com <ti...@chainels.com> #4
Project: r8
Branch: 3.2
commit 3cc0c8b3d67cc20bf6c1a8401871b6847bf792c6
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Fri Jun 17 12:46:41 2022
Consult api database during type strengthening
Bug: b/236294139
Change-Id: I9e070782a2da544eba90b15c41d5b7281142cc3b
M src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorProgramOptimizer.java
M src/main/java/com/android/tools/r8/androidapi/ComputedApiLevel.java
A src/test/java/com/android/tools/r8/apimodel/ApiModelTypeStrengtheningTest.java
A src/test/java/com/android/tools/r8/apimodel/ApiModelTypeStrengtheningAboveMinApiTest.java
M src/main/java/com/android/tools/r8/utils/AndroidApiLevelUtils.java
https://r8-review.googlesource.com/69145
Branch: 3.2
commit 3cc0c8b3d67cc20bf6c1a8401871b6847bf792c6
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Fri Jun 17 12:46:41 2022
Consult api database during type strengthening
Bug:
Change-Id: I9e070782a2da544eba90b15c41d5b7281142cc3b
M src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorProgramOptimizer.java
M src/main/java/com/android/tools/r8/androidapi/ComputedApiLevel.java
A src/test/java/com/android/tools/r8/apimodel/ApiModelTypeStrengtheningTest.java
A src/test/java/com/android/tools/r8/apimodel/ApiModelTypeStrengtheningAboveMinApiTest.java
M src/main/java/com/android/tools/r8/utils/AndroidApiLevelUtils.java
du...@google.com <du...@google.com> #5
Project: r8
Branch: 3.3
commit d1de9e74d3e4a847b89bf0b822bfd227e51be2e9
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Fri Jun 17 12:35:35 2022
Version 3.3.61
Bug: b/236294139
Change-Id: Ic9c7674b0240eaac8ea94698f8806a5faf349cf3
M src/main/java/com/android/tools/r8/Version.java
https://r8-review.googlesource.com/69144
Branch: 3.3
commit d1de9e74d3e4a847b89bf0b822bfd227e51be2e9
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Fri Jun 17 12:35:35 2022
Version 3.3.61
Bug:
Change-Id: Ic9c7674b0240eaac8ea94698f8806a5faf349cf3
M src/main/java/com/android/tools/r8/Version.java
du...@google.com <du...@google.com> #6
Project: r8
Branch: 3.3
commit 6b77d23ac1cbe5a201b4ec8f9c29ed59d438d1d1
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Fri Jun 17 12:33:24 2022
Consult api database during type strengthening
Bug: b/236294139
Change-Id: I9e070782a2da544eba90b15c41d5b7281142cc3b
M src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorProgramOptimizer.java
M src/main/java/com/android/tools/r8/androidapi/ComputedApiLevel.java
A src/test/java/com/android/tools/r8/apimodel/ApiModelTypeStrengtheningTest.java
A src/test/java/com/android/tools/r8/apimodel/ApiModelTypeStrengtheningAboveMinApiTest.java
M src/main/java/com/android/tools/r8/utils/AndroidApiLevelUtils.java
https://r8-review.googlesource.com/69143
Branch: 3.3
commit 6b77d23ac1cbe5a201b4ec8f9c29ed59d438d1d1
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Fri Jun 17 12:33:24 2022
Consult api database during type strengthening
Bug:
Change-Id: I9e070782a2da544eba90b15c41d5b7281142cc3b
M src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorProgramOptimizer.java
M src/main/java/com/android/tools/r8/androidapi/ComputedApiLevel.java
A src/test/java/com/android/tools/r8/apimodel/ApiModelTypeStrengtheningTest.java
A src/test/java/com/android/tools/r8/apimodel/ApiModelTypeStrengtheningAboveMinApiTest.java
M src/main/java/com/android/tools/r8/utils/AndroidApiLevelUtils.java
ap...@google.com <ap...@google.com> #7
Project: r8
Branch: 3.2
commit 3cc0c8b3d67cc20bf6c1a8401871b6847bf792c6
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Fri Jun 17 12:46:41 2022
Consult api database during type strengthening
Bug: b/236294139
Change-Id: I9e070782a2da544eba90b15c41d5b7281142cc3b
M src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorProgramOptimizer.java
M src/main/java/com/android/tools/r8/androidapi/ComputedApiLevel.java
A src/test/java/com/android/tools/r8/apimodel/ApiModelTypeStrengtheningTest.java
A src/test/java/com/android/tools/r8/apimodel/ApiModelTypeStrengtheningAboveMinApiTest.java
M src/main/java/com/android/tools/r8/utils/AndroidApiLevelUtils.java
https://r8-review.googlesource.com/69145
Branch: 3.2
commit 3cc0c8b3d67cc20bf6c1a8401871b6847bf792c6
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Fri Jun 17 12:46:41 2022
Consult api database during type strengthening
Bug:
Change-Id: I9e070782a2da544eba90b15c41d5b7281142cc3b
M src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorProgramOptimizer.java
M src/main/java/com/android/tools/r8/androidapi/ComputedApiLevel.java
A src/test/java/com/android/tools/r8/apimodel/ApiModelTypeStrengtheningTest.java
A src/test/java/com/android/tools/r8/apimodel/ApiModelTypeStrengtheningAboveMinApiTest.java
M src/main/java/com/android/tools/r8/utils/AndroidApiLevelUtils.java
Description
Component used: Paging
Version used: 3.0 alpha-04
Devices/Android versions reproduced on: n/a
Today (after many hours of debugging) I seem to have found a bug in latest alpha version of the Paging library. In my app I still have various lists that are not yet migrated to the new v3 API's, but since the documentation states it's backward compatible I figured that was okay.
Those lists use the database + remote pattern. One such list displayed strange behavior, it seemed to call all the boundary callbacks correctly, do the API call, and insert the new items in the database, however the items in the RecyclerView did not change.
The only difference that I could find between that list and other lists that were functioning correctly, is that it used a
map
function on theDatasource.Factory
returned by RoomI think I found the underlying issue. The data source does not seem to be invalidated when using a map function.
DataSource
has two variants ofaddOnValidationCallback
. An open functionThe Kotlin version is actually called in
LegacyPagingSource
However when using a map/mapByPage function on the factory returned by room, the source is wrapped and in that class ( , but also
WrappedDataSource
WrapperPositionalDataSource
for example) only the non Kotlin version ofaddOnValidationCallback
is overridden, and thus if called with the Kotlin version,addOnValidationCallback
is never called on the source of the wrapper.I could see when debugging that indeed
onInvalidatedCallbacks
is empty.Hopefully this is actually the cause of the behavior I'm seeing. The Paging code is quite complex so I could be missing something else.