No clue why it ever gets a -1 index though.
(cherry picked from commit b12c7cf9633a9fc3a728a0ef44b5d50d621a7595)
(cherry picked from commit e9083fc5711e65a8716d4f50e9f2fd8c35793f7d)
When restarting a download, the page count would display as 0 until
the first page download completion, after all the existing pages were
rechecked.
To fix, calculate downloadedImages from pages instead of relying on
the downloader to reset and increment the count.
(cherry picked from commit 779df32e98f2a020ca6a4f79c0748dd9f5b16873)
(cherry picked from commit acef44f55cd276ede9e5435ab9ed96062c526a79)
No need to translate anything for debug info. Dunno what else will end up in that menu in the future.
(cherry picked from commit 4bcd6238293e0583cdcc082711128358c5ae2069)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt
* fix: skip duplicate chapters on download ahead if option is enabled
* fix: Use a function to filter duplicates
(cherry picked from commit 4816b4b53afa6db5dfaa2b023a4896e31425f97c)
Apparently they die if you rename a worker class.
(cherry picked from commit d25ba23079e72d1cff05bfcd00b5f9830a086821)
# Conflicts:
# app/build.gradle.kts
Update ReaderPageImageView.kt
"true center" Zoom start position #8747.
Changed zoom position to get true center value.
(cherry picked from commit 274218cf228f5dfade2a11f053bb4fe1a7d11ed8)
* Show soft keyboard when the text field is composed (a redo)
* Clear focus on text field when soft keyboard is hidden
* Request focus on text field and show soft keyboard
when clear button is clicked
(cherry picked from commit 7a1b599462498f6be8faf08cbd2814a04863f3ef)
Because of Compose issue, the style of the sheet surface is adjusted as
a workaround
Ref https://issuetracker.google.com/issues/246909281
(cherry picked from commit 6f1099b7103ab7838e999e787f4e81344978a091)
Not sure if this is an ideal approach. If it is, we could migrate more usages to this.
(cherry picked from commit 18f9e5ba6b080a74805db553e22f15412ddeab12)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt
This was effectively DDoSing sources as it does a request for every entry to get the details (primarily a cover image).
The expectation now is that users have to open individual entries to load the details/cover if needed.
This isn't necessary for most sources, which are able to provide covers as part of the listing normally.
(cherry picked from commit 1a61130f0b46addef036687b6c98f930e13147f8)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt
Although we don't even target it yet and don't prompt for it but whatever, less work in the future.
(cherry picked from commit 1de4bc95865a5eb6491db79c413d98e05e8545e3)
* Drop duplicate initial call in Preference.asHotFlow
Preference.changes() always starts by returning the current value of
the preference, so asHotFlow calls block twice on the initial value.
Possible breaking change: As implemented, asHotFlow ran block(get())
before returning the flow. After this change, the first call to block
will run within the flow collection. This might cause concurrency
issues if the flow collection is late to execute.
* Inline Preference.asHotFlow
The Preference.changes().onEach().launchIn() pattern is used widely,
so the asHotFlow extension method is redundant.
(cherry picked from commit 35d381144d010be47566ee480c311c3d13952822)