This project uses a version of the Paging Library which is below v3.0. Paging 3.0 is a complete re-write of the library. It uses Kotlin, and it has first-class support for Kotlin coroutines and flow. It also has some new features. For example, it supports headers and footers, and it has retry and refresh mechanisms. Luckily, I have a tutorial on raywenderlich.com on the same. You can have a read here: Paging Library for Android With Kotlin: Creating Infinite Lists.
The master branch has implementation of Paging With Coroutines using a version of the paging library which is below v3.0. I have added a new branch, paging-3.0 with all the additions from Paging 3.0
The detailed explanation for the implementation on the master branch can be found in the Android Paging Library with Kotlin Coroutines article