Fixed
Status Update
Comments
du...@google.com <du...@google.com>
ap...@google.com <ap...@google.com> #2
I totally agree with you.
With paging2 and the PagedListAdapter, I was simply checking if the list was empty before sending it to the adapter so I wasn't handle it with the adapter (which is probably wrong).
I tried to migrate to paging3 but I couldn't because I don't know how to check if the list is empty, as the PagingData that we send to the new adapter doesn't expose the list or an isEmpty method.
With paging2 and the PagedListAdapter, I was simply checking if the list was empty before sending it to the adapter so I wasn't handle it with the adapter (which is probably wrong).
I tried to migrate to paging3 but I couldn't because I don't know how to check if the list is empty, as the PagingData that we send to the new adapter doesn't expose the list or an isEmpty method.
Description
Devices/Android versions reproduced on: Pixel 3 / Android 10
When defining PagingConfig with some limited maxSize and disabled placeholders the app may crash with KotlinNullPointerException due to some items being null in the underlying PagingData list (which is expected only when placeholders are enabled). In the previous version of the library (2.1.2) all item out of the maxSize limit were properly removed and itemCount always set to be no bigger than maxSize.
I've attached a sample app (paging3sandbox.zip) that demonstrates the issue. Here are the steps to reproduce the issue:
1. open the app and scroll somewhere up to item 60 (pages may be loading a bit slowly as I've emulated a network delay)
2. than scroll fast up to the first item in the list
3. the app crashed with KotlinNullPointerException
What is expected:
There are no null items in the list when placeholders are disabled. The itemCount in PagingDataAdapter is sized properly and is the same as the count of all non-null items in the list.
At least it was working this way in the version 2.1.2. If it is some expected changes in the API please let me know what am I doing wrong here.