Commit Graph

5319 Commits

Author SHA1 Message Date
79662a5866 Misc Downloader state cleanup (#9145)
* Replace Downloader CompositeSubscription with nullable Subscription

* Derive Downloader.isRunning from subscription

Also simplify usages of isRunning

* Move DownloadNotifier.paused to Downloader.isPaused

* Remove unused DownloadNotifier.errorThrown
2023-02-25 14:43:00 -05:00
ed6809fa28 Simplify filter logic (#9141)
* Remove unnecessary else branch

* Add TriStateFilter applyFilter

* Simplify filterFnTracking filter logic
2023-02-25 11:46:40 -05:00
86b9262a7e Make DownloadManager the sole entry point for DownloadService (#9140)
* Rename functions for DownloadService internal use

* Call DownloadService.start via DownloadManager

* Inline DownloadService.stop into pauseDownloads

* Inline DownloadService.stop into clearQueue

NotificationReceiver will now also stop the DownloadService when
receiving ACTION_CLEAR_DOWNLOADS.

* Provide DownloadService.isRunning via DownloadManager
2023-02-24 22:07:30 -05:00
7ec87e76db Migrate TriState usages to TriStateFilter enum 2023-02-24 16:09:47 -05:00
ec3ce74af8 TrackDateSelectorScreen: Use M3 date picker (#9138) 2023-02-24 15:22:23 -05:00
83a4e34095 Remove redundant Downloader isNotification argument (#9139)
DownloadQueue.clear() already sets QUEUE downloads to NOT_DOWNLOADED.
2023-02-24 15:11:51 -05:00
84a0044d51 Remove some unused resources 2023-02-23 22:42:02 -05:00
92132c59f5 Migrate source filter sheet to Compose (#9135) 2023-02-23 22:32:40 -05:00
36ae388332 Bump compose-bom version 2023.02.00-beta02 (#9137) 2023-02-23 22:29:38 -05:00
bd47eafeec Fix per-category sort/display affecting the wrong category 2023-02-23 13:54:08 -05:00
9432d2d06a Bump dependencies 2023-02-22 23:09:16 -05:00
fa61c8fe6f Convert downloadChapter to suspend function (#9127)
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.
2023-02-21 23:02:10 -05:00
92bd98e45f Consolidate all theme colors to presentation-core module 2023-02-21 22:52:36 -05:00
fd7c993b0b Move CheckboxState to core module 2023-02-21 22:52:36 -05:00
779df32e98 Fix download queue page count display bug (#9126)
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.
2023-02-21 18:21:00 -05:00
0bd56ab77c Fix height shift when scrolling through themes 2023-02-21 12:04:17 -05:00
6b03dca5f4 Use Compose Foundation's flow layout (#9123) 2023-02-21 12:04:11 -05:00
bd7b21337c Add minLines to comfortable grid item title (#9122) 2023-02-21 11:44:56 -05:00
60a3ba5a5c Use non-stable Compose BOM (#9120) 2023-02-21 10:41:56 -05:00
93523ef50b Remove dependency injection from core module and data module from presentation-widget module
Includes side effects:
- No longer need to restart app for user agent string change to take effect
- parseAs extension function requires a Json instance in the calling context, which doesn't necessarily need to be the default one provided by Injekt
2023-02-20 19:02:38 -05:00
10d7349506 Move more components to presentation-core module 2023-02-20 10:12:41 -05:00
3d7c136320 Avoid crash when loading invalid extension package 2023-02-19 16:44:58 -05:00
ec49411bee Avoid crashes if headers can't be built for usage in WebView 2023-02-19 11:48:26 -05:00
3f7911235c Use unique keys for all screens to avoid crashes
Fixes #9008
Fixes #9110
2023-02-19 11:09:41 -05:00
727399611d Migrate library settings sheet to Compose 2023-02-18 20:55:55 -05:00
07fdb74fbc Minor settings sheet cleanup 2023-02-18 19:00:19 -05:00
d400ac2a49 Remove unnecessary usages of NotificationManagerCompat to actually create notifications 2023-02-18 17:10:45 -05:00
dd71c76a8f Move more components 2023-02-18 17:04:32 -05:00
58a0add4f6 Move more components to presentation-core module 2023-02-18 16:33:03 -05:00
bfe143015a Move more components to presentation-core module 2023-02-18 16:03:01 -05:00
e3cf863230 Start moving some Compose components to presentation-core module 2023-02-18 15:52:52 -05:00
ee818bc7c5 Move chapter utils to domain module 2023-02-18 15:24:04 -05:00
f816196df2 Move more things to domain module 2023-02-18 15:14:04 -05:00
ceaf579cb0 Avoid crashing if getChapterUrl is not implemented
Fixes #9105
2023-02-18 10:16:17 -05:00
b49280e347 Remove unused Rx/Coroutines converters 2023-02-18 10:16:05 -05:00
d3dadf71e8 MainActivity: Avoid navigator-related crash when handling onNewIntent (#9104) 2023-02-18 10:08:37 -05:00
ffa8c8fd07 Remove RxJava in PageHolder (#9103)
Inline readImageHeaderSubscription in PageHolder

Inline readImageHeaderSubscription in PagerPageHolder and
WebtoonPageHolder by converting setImage() into a suspend function.
The image processing runs in the loadPageAndProcessStatus
continuation.

Use suspendCancellableCoroutine as a substitute for doOnUnsubscribe
in WebtoonPageHolder.
Closing openStream after the frame.setImage but before the PageHolder
is recycled causes the page display to fail for reasons that are not
currently understood.

Remove subscription handling from WebtoonViewer/WebtoonBaseHolder as
it is no longer used.
2023-02-18 10:07:27 -05:00
0ef7650c1a Avoid crashing if opening browse with unavailable source 2023-02-15 22:47:47 -05:00
4635e58405 Simplify PageHolder load Job (#9086)
Inline statusJob into loadJob, using supervisorScope to load the page
and track status changes in parallel.
- supervisorScope does not complete until both the child loadPage
  coroutine and statusFlow.collectLatest have completed.
- Cancelling supervisorScope cancels the child loadPage coroutine and
  statusFlow.collectLatest.
- Use supervisorScope instead of coroutineScope to let status
  collection continue if loadPage fails.

Inline progressJob into loadJob, using collectLatest's cancellation
to avoid cancelling the progressFlow collection explicitly.
- collectLatest cancels the previous action block when the flow
  emits a new value. This means the DOWNLOAD_IMAGE
  progressFlow.collectLatest gets automatically cancelled when
  statusFlow emits a new state.

Convert launchLoadJob to suspend function, move job launch to caller,
and rename as loadPageAndProcessStatus.
2023-02-15 22:24:55 -05:00
dc2eaf0788 Fix ID type mismatch in MigrateSearchScreenModel (#9090)
`it.id` is the source ID of the source being sorted.
`state.value.manga!!.id` is the manga ID of the selected manga.
`state.value.manga!!.source` is the source ID of the selected manga.
2023-02-14 11:46:31 -05:00
d02b0ca2db Add copy tags to clipboard feature (#9063) 2023-02-13 22:52:10 -05:00
4d607c4aed Don't apply Wi-Fi network restriction for manual library update jobs
Fixes #9074
2023-02-12 23:15:16 -05:00
be4072c86b Rework on the wheel picker (#8559)
* Rework the wheel picker

doesn't need for the animation to stop to change the value

* fix

---------

Co-authored-by: arkon <arkon@users.noreply.github.com>
2023-02-12 23:10:47 -05:00
2970eca9e4 Remove background extensions updates check
Same reasoning as removing app update check. It gets kicked off in the foreground now too.
2023-02-12 23:07:11 -05:00
42954609b9 Remove background app update check
We already check in the foreground. If the app isn't being foregrounded at all, then there isn't much
point in checking for an update.
2023-02-12 22:44:39 -05:00
6348cbaeb7 Add option to hide entries already in library when browsing sources
Closes #2941
2023-02-12 22:28:12 -05:00
a7cb33d8c9 Open global search when Browse is tapped twice
Closes #3925
2023-02-12 18:17:46 -05:00
3a2dc46ff0 Replace Local and In Library badge text with icons
Fixes #5725
2023-02-12 17:22:34 -05:00
e052bdef96 Move reader preloading to IO scope
Maybe fixes #8440
2023-02-12 16:14:12 -05:00
d522d6d545 Avoid preload download check if chapter is already loaded or loading
Maybe fixes #8953, #9060
2023-02-12 16:03:24 -05:00