* 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.
1:1 translation from the RxJava implementation, should match the
previous behavior.
Dropped the return value from functions of the form
```
fun foo(t: T, ...): Observable<T>
```
where the Observable produced the original argument `t`.
The caller already has the result if necessary.
While this conversion is not flow-based overall, some sections use
flows to use the flatMapMerge and retryWhen operators.
Removed RetryWithDelay as it was only used here.
Inlined fetchAllImageUrlsFromPageList instead of converting it to a
suspending equivalent. fetchAllImageUrlsFromPageList is no longer
used in the app, but was not removed as it is part of source-api.
(However, it does not seem to be used exposed in extensions-lib or
used in tachiyomi-extensions.)
runBlocking is used as a temporary stop-gap.
- Remove redundant chapter sorting logic when fetching next chapter(s)
- Remove redundant download queue checks (it'll handle already queued or downloaded items)
- Trigger download ahead when read >= 25% of chapter rather than 20%
- Rely on download cache when checking if next chapter is downloaded to avoid jank (fixes#8328)
* Fix "Download split" not working while using SD card
* Update app/src/main/java/eu/kanade/tachiyomi/util/system/ImageUtil.kt
Co-authored-by: arkon <arkon@users.noreply.github.com>
* Add Crash activity
When the application crashes this sends them to a different activity with the cause message and an option to dump the crash logs
* Review changes
* Hiding the keyboard (#8157)
* Cleanup
* Adding log
* cleanup
* moving code to ViewExtensions.kt
* TrackDialog keyboard fix?
* moving code to ContextExtensions.kt
* MoreScreen: Remove title (#8158)
* MoreScreen: Remove title
Also removes the state banners as it's redundant
* Add back banners
* Allow manual selection of manga description instead of copying to clipboard
Closes#6548
Notably missing some "standard" options like "Select all" or "Share": https://issuetracker.google.com/issues/226648919
* Allow marking partially read chapters as unread
Closes#3777
* Tablet UI edge-to-edge tweaks (#8159)
* LibraryScreen: Tweak content padding application to draw under nav bar
* BrowseScreen: Tweak content padding application to draw under nav bar
Side note the tab content doesn't actually use its
scaffold (bottom) contentPadding so it's definitely will
be a headache in the future.
* Don't hardcode bottom nav padding
* removed unnecessary import
* refactoring code
* rewriting code
* cleanup?
* cleanup
Co-authored-by: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
Co-authored-by: arkon <eugcheung94@gmail.com>