Repository navigation
feat: Support server collections and collection-like things - #394
Conversation
|
@RobinD42, this is awesome. Collections support is something I’d had in the back of my mind for a while, and I’d honestly forgotten to get around to it. Thanks for taking it on! Before we merge, could you address two things I noticed?
Also, the PR notes that the full instrumentation suite had 77 failures and wasn’t rerun after the focused test was fixed. Could you share whether those failures are related or rerun the suite if practical? |
One of the 77 was related to the PR changes and it was fixed and was the "focused test" that passed on the rerun. The 76 are the same as what I pointed out in an earlier PR that probably have something to do with my emulator instance or something else in my environment because the failure messages don't seem to have anything to do with the application functionality. |
Also added Komga Read Lists to be treated as Collections.
…ke the Choose a library screen. Don't refresh the collections every time the list is shown. Support pull-down-to-refresh.
…ollection-list/book state now reset when either the server URL or profile ID changes. Added regression tests.
f370dd5 to
8fb6c1c
Compare
|
Fixed two items identified above, added some regression tests, and rebased onto current main. |
van-geaux
left a comment
There was a problem hiding this comment.
@RobinD42, we’ll approve and merge this PR, then see how Kavita collection loading performs in the field. Kavita’s Want To Read collection doesn’t provide a book count, so Lagrange may need to enumerate its pages and load series details before showing the picker, which could make it slow to open. We’ve decided to merge anyway because Kavita collections are manually created, so we don’t expect them to become excessively large. We’ll keep an eye on it. It took us a while to review the logic across the providers and offline paths. Thanks for the thorough work on this!
Pull request
This PR adds support for browsing book collections and collection-like things on all three server types. Rational: from the client perspective, or conceptual level, there isn't any real difference between a Bookorbit Collection and Smart Scope, so I combined them. I tried to do the same with the other server types but I'm not familiar with them so I may have missed the mark there. I think it's at least a good start for them however.
Contributor checklist
Summary
Verification
.\gradlew.bat :app:testDebugUnitTest— passed..\gradlew.bat :app:compileDebugKotlin :app:compileDebugAndroidTestKotlin :app:connectedDebugAndroidTest '-Pandroid.injected.device.serial=emulator-5556' '-Pandroid.testInstrumentationRunnerArguments.class=com.vangeaux.lagrange.BookOrbitAppInstrumentedTest#collectionsPageShowsCollectionsAndSmartScopesAndOpensTheirBooks'— passed on the Pixel 9 API 35 emulator.git -c core.whitespace=cr-at-eol diff --check origin/main...HEAD— passed.The full instrumented suite previously reported 77 failures out of 248 tests. It was not rerun after the focused Collections test was corrected; that focused test passes.
Manual live-server validation against BookOrbit, Komga, and Kavita was performed on multiple devices and the emulator.
Screenshots