Fixed
Status Update
Comments
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
commit b697d397d051f91a6f6ed95a55af421f048f3c89
Author: Sanura Njaka <sanura@google.com>
Date: Wed Aug 02 12:16:12 2023
Folding lifecycle-livedata-core-ktx back into main
module
Now that Lifecycle tests are written in kotlin, LiveDataTest
can be moved from lifecycle-livedata-core-ktx into LiveDataTest
within the main lifecycle-livedata-core module.
Test: ./gradlew bOS
Bug: 274800183
Change-Id: I98806ad751bd674a554de665e0e16bf05d67900d
D lifecycle/lifecycle-livedata-core-ktx/src/test/java/androidx/lifecycle/LiveDataTest.kt
M lifecycle/lifecycle-livedata-core/src/test/java/androidx/lifecycle/LiveDataTest.kt
https://android-review.googlesource.com/2690010
Branch: androidx-main
commit b697d397d051f91a6f6ed95a55af421f048f3c89
Author: Sanura Njaka <sanura@google.com>
Date: Wed Aug 02 12:16:12 2023
Folding lifecycle-livedata-core-ktx back into main
module
Now that Lifecycle tests are written in kotlin, LiveDataTest
can be moved from lifecycle-livedata-core-ktx into LiveDataTest
within the main lifecycle-livedata-core module.
Test: ./gradlew bOS
Bug: 274800183
Change-Id: I98806ad751bd674a554de665e0e16bf05d67900d
D lifecycle/lifecycle-livedata-core-ktx/src/test/java/androidx/lifecycle/LiveDataTest.kt
M lifecycle/lifecycle-livedata-core/src/test/java/androidx/lifecycle/LiveDataTest.kt
na...@google.com <na...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-main
commit cd3c1d7751462b5e42ae54e2d68299f955dcb6c3
Author: Sanura Njaka <sanura@google.com>
Date: Mon Aug 07 07:34:20 2023
Folding lifecycle-livedata-ktx back into main
module
Now that Lifecycle tests are written in kotlin, all files in lifecycle-livedata-ktx can now be added into the main lifecycle-livedata module.
RelNote: "All files from the lifecycle-livedata-ktx modules have been moved into the main lifecycle-livedata module"
Test: ./gradlew bOS
Bug: 274800183
Change-Id: I10c6f70c82a64e80eec704f548911f42bdd0b56a
M lifecycle/lifecycle-livedata-ktx/api/current.ignore
M lifecycle/lifecycle-livedata-ktx/api/current.txt
M lifecycle/lifecycle-livedata-ktx/api/restricted_current.ignore
M lifecycle/lifecycle-livedata-ktx/api/restricted_current.txt
M lifecycle/lifecycle-livedata/api/current.txt
M lifecycle/lifecycle-livedata/api/restricted_current.txt
M lifecycle/lifecycle-livedata/build.gradle
M lifecycle/lifecycle-livedata/src/androidTest/java/androidx.lifecycle/FlowAsLiveDataIntegrationTest.kt
M lifecycle/lifecycle-livedata/src/main/java/androidx/lifecycle/CoroutineLiveData.kt
M lifecycle/lifecycle-livedata/src/main/java/androidx/lifecycle/FlowLiveData.kt
M lifecycle/lifecycle-livedata/src/test/java/androidx/lifecycle/BuildLiveDataTest.kt
M lifecycle/lifecycle-livedata/src/test/java/androidx/lifecycle/FlowAsLiveDataTest.kt
M lifecycle/lifecycle-livedata/src/test/java/androidx/lifecycle/LiveDataAsFlowTest.kt
M lifecycle/lifecycle-livedata/src/test/java/androidx/lifecycle/LiveDataFlowJavaTest.java
M lifecycle/lifecycle-livedata/src/test/java/androidx/lifecycle/ScopesRule.kt
https://android-review.googlesource.com/2695173
Branch: androidx-main
commit cd3c1d7751462b5e42ae54e2d68299f955dcb6c3
Author: Sanura Njaka <sanura@google.com>
Date: Mon Aug 07 07:34:20 2023
Folding lifecycle-livedata-ktx back into main
module
Now that Lifecycle tests are written in kotlin, all files in lifecycle-livedata-ktx can now be added into the main lifecycle-livedata module.
RelNote: "All files from the lifecycle-livedata-ktx modules have been moved into the main lifecycle-livedata module"
Test: ./gradlew bOS
Bug: 274800183
Change-Id: I10c6f70c82a64e80eec704f548911f42bdd0b56a
M lifecycle/lifecycle-livedata-ktx/api/current.ignore
M lifecycle/lifecycle-livedata-ktx/api/current.txt
M lifecycle/lifecycle-livedata-ktx/api/restricted_current.ignore
M lifecycle/lifecycle-livedata-ktx/api/restricted_current.txt
M lifecycle/lifecycle-livedata/api/current.txt
M lifecycle/lifecycle-livedata/api/restricted_current.txt
M lifecycle/lifecycle-livedata/build.gradle
M lifecycle/lifecycle-livedata/src/androidTest/java/androidx.lifecycle/FlowAsLiveDataIntegrationTest.kt
M lifecycle/lifecycle-livedata/src/main/java/androidx/lifecycle/CoroutineLiveData.kt
M lifecycle/lifecycle-livedata/src/main/java/androidx/lifecycle/FlowLiveData.kt
M lifecycle/lifecycle-livedata/src/test/java/androidx/lifecycle/BuildLiveDataTest.kt
M lifecycle/lifecycle-livedata/src/test/java/androidx/lifecycle/FlowAsLiveDataTest.kt
M lifecycle/lifecycle-livedata/src/test/java/androidx/lifecycle/LiveDataAsFlowTest.kt
M lifecycle/lifecycle-livedata/src/test/java/androidx/lifecycle/LiveDataFlowJavaTest.java
M lifecycle/lifecycle-livedata/src/test/java/androidx/lifecycle/ScopesRule.kt
Description
Problem
Currently, Paging flows are collected through
collectAsLazyPagingItems
. The API does not provide a way to specify which coroutine context to use, that leads to collecting the flow on the main thread.the transformation happening on the flow (e.g.
pagingData.map
can be costly and would add up), ideally host app should be able to specify where that runs.right now, the Java api allows to specify an Executor. I believe the same cannot be achieved through the kotlin overload:
pagingData.map
with a context does not propagate (pseudocode):Note that it would be the same behavior if
flowOn
was used to specify another coroutineContext.pagingData.map
would still execute on main thread.pagingData.map
works but results in someProposal
collectAsLazyPagingItems
should take an optional coroutine context and use it like:Where the default value for
coroutineContext
should be backward compatible with current behavior.