The paging implementation could (and should) be looked at again to make it more generic, enabling all pageable endpoints to work.
Proposed implementation
FeedPager.kt becomes Pager.kt
The inputs and outputs of FeedPager change to make it more generic, through the use of suspend callbacks
FeedPager should now expose State and Event observable objects. State is non-transient, events are transient, but can be mapped into ViewState to make them non-transient.
With this, more can be moved to the ViewModel. FeedController PagingController, and the input parameters to that determine how the screen presents.
ViewModels are now emitted as opposed to models directly. This allows more genericism and self-contained logic
Turns out this is a lot more work than initially thought. Because of this I'm backlogging this and moving to some quicker wins/adding more functionality.
The paging implementation could (and should) be looked at again to make it more generic, enabling all pageable endpoints to work.
Proposed implementation
FeedPager.kt
becomesPager.kt
FeedPager
change to make it more generic, through the use ofsuspend
callbacksFeedPager
should now expose State and Event observable objects. State is non-transient, events are transient, but can be mapped into ViewState to make them non-transient.FeedController
PagingController, and the input parameters to that determine how the screen presents.