With 8b8da30335 the library now calls `useGetMigratableSources` which uses the same `mangas` query as `GET_LIBRARY_MANGA_COUNT`.
However, they select different fields, which causes the cache to get overwritte, because it apollo-client wasn't merging the results.
Colors need to be normalized per border so that the multiplier is applied to the sum of the normalized colors.
Normalize the returned color with adjusted thresholds compared to the normalization for the color extraction.
During the extraction the normalization shouldn't be too aggressive to prevent messing up the detection for the color with the highest proportion. Once we have detected the color, we want to be more aggressive about normalizing white and black colors to ensure the background color matches true white and black instead of being slightly off
In case the double page reading mode was used and the current page was a double page, the transition got messed up due to the page text wrapping and growing in height
GET_CATEGORIES_LIBRARY, GET_CATEGORIES_SETTINGS share the same query key in the cache. However, both select different fields.
When cleaning up the database in the library settings, the SETTINGS query is active and refetches due to the cache eviction.
This then wrote the query back into the cache pointing to the existing CategoryType fragments in the cache.
The problem was that the SETTINGS query selects fewer fields than the LIBRARY query.
Due to the query now existing again in the cache, the LIBRARY query was not refetched.
Instead, it used the cached category fragments, which still included the outdated LIBRARY fields from before the eviction
In case clearing the download queue caused the subscription to omit items, the received items did not get removed from the cache.
This resulted in the DownloadStateIndicator to show outdated download info.
The potential partial response wasn't handled properly which resulted in apollo not updating the cache for the successful part.
E.g., chapter reload failed, and manga refresh succeeded. The manga data of the response should have updated the manga in the cache.
The native language code returned by the browser could be a code that is not included in the defined ISOLanguages object. E.g. "en-GB" while the object only has "en".
This caused the "English" browse language to not be able to get selected as an allowed language.
With 4f4ca98290 the chapter queries are getting evicted to trigger a refetch. This caused the reader to enter the loading state, which messed up the current reading position.
When resuming a migration search, it was possible that an entry search was partially done.
In this case, when retrying, the sources with search results were not retried.
If all retried source searches failed, it was incorrectly treated as if all source searches failed, since it only considers the actually executed search sources, which only included failed/pending sources.
Observers got disconnected and started again.
Since the images have already been rendered at this point of time, the mutation observer on the scroll element does not detect them anymore.
Thus, exiting image resizes were not observed anymore and did not trigger the preservation logic
This was only was noticeable in case the transition page was disabled.
Due to potential layout shifts and scrolling the initial page into view, the infinite chapter logic got triggered and loaded the previous chapter.
This is not a 100% guarantee that it won't happen, slow devices might still run into this issue
After the long press action, the set onClick action was triggered as well.
This caused issues like opening the manga page in the source browse page when adding the manga via a long press to the library
The previous/next chapter only ever preloaded the first page, ignoring available preload contingent.
I.e., if all leading/trailing pages of the current chapter were loaded, the reader did not keep preloading the previous/next chapters pages