Recreate collections pagers when collections amount changes in DB #1888
+23
−7
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Purpose
Sometimes not all collections are shown in the UI, even though they have been detected and are availble in the database. Exiting and reentering the collections screen then shows them all.
Short description
Removing pagination solves the problem and so does implementing our own PagingSource. The important aspect is apparently the invalidation of pagers (in Paging 3 invalidation is handled by recreation of the pagers).
So we need to recreate the pager automatically when the amount of collections changes during collection detection. We can do so by adding a collection count flow
Flow<Int>to the combine method which emits the amount of collections on change.CollectionDao: added@Query("SELECT COUNT(*) FROM collection") fun getCountFlow(): Flow<Int>GetServiceCollectionPagerUseCase: added collection count flow to the flow combine method.Checklist