Fixed
Status Update
Comments
ap...@google.com <ap...@google.com> #2
A couple of questions:
1. Have you saw crash in real device or only in simulators?
2. Do you use dynamic feature for language ID?
1. Have you saw crash in real device or only in simulators?
2. Do you use dynamic feature for language ID?
na...@google.com <na...@google.com> #3
Tested on Android 12 Emulator with custom executor, but cannot repro this issue.
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.