So I've been interacting with the paging 3 library lately and i learned a lot about it, but there are a few things that are still pretty difficult to grasp. My question is divided in a couple of points, the first might be a bug, the second purely informative.
First point: I've noticed that setting initialLoadSize to the same size as page size (i didn't try other values) makes the adapter jump around when it's done loading (meaning that the offscreen loading starts moving the list position around when not interacting) if this is not a bug, the first point is "how (and with which user settable parameters) does the adapter determine when to move the list around (what item to center) after a load.
Second point: To fix the behavior in point one i have restored the initialLoadSize to default. I also have the need to implement my own paging source that interacts with room (because due to some application logic i need to load some items further in the list before they would be loaded by paging, and this stops paging from loading any more item after these) and i cannot figure out how how to handle all the edge cases in the paging source (like when to set next and previous key to null, and when to set items before and items after, based on what params). So to understand this better maybe someone could explain how the parameters interact together.
I should probably clarify that i also use a remote mediator and that I'm wrapping a room paging source in my own paging source.
The project i'm working on at the moment is this: https://gitlab.com/sedestrian/pokedex in the "develop" branch under the "Restored paging source logic" commit.
Thanks in advance.