Commit Graph

4957 Commits

Author SHA1 Message Date
arkon
e3b2720924 Remove redundant inset handling in AdaptiveSheet
The Dialog is handling it anyway, so this doesn't really do anything useful.
We might need to add this back if Dialog actually handles edge-to-edge properly.
2023-05-24 18:10:17 -04:00
Two-Ai
3ae1e37c40
Replace RxJava in Downloader (#9256)
* Rename removeFromQueueByPredicate to removeFromQueueIf

Follow-up to PR comment in #9511

* Make Download hashCode stable

Mutating pages would previously change the Download hashCode, which
breaks HashMap lookups.

* Convert Donwloader subscription to coroutine

Replace downloadsRelay with activeDownloadsFlow. Instead of managing
a PublishRelay independent from the queue, derive a Flow of active
downloads directly from the queue StateFlow. (This will allow
updating the queue without pausing the downloader, to be done in a
follow-up PR.)

When a download completes successfully, the downloads is removed from
queueState. This updates activeDownloadsFlow and causes the
downloaderJob start the download job for the next active download.

When a download fails, the download is left in the queue, so
queueState is not modified. To make activeDownloadsFlow update
without a change to queueState, use transformLatest and use the
Download statusFlows to suspend until a download reaches the ERROR
state.

To avoid stopping and starting downloads every time
activeDownloadsFlow emits a new value, maintain a map of current
download Jobs and only start/stop jobs in the difference between
downloadJobs and activeDownloads. To make sure all child download
jobs are cancelled when the top-level downloader job is cancelled,
use supervisorScope.

* Remove obsolete main thread references in Downloader

Thread safety of the queue state used to be guaranteed by running all
queue mutation on the main thread, but this has not been true for
some time. Since the queue state is now backed by a StateFlow,
queueState can be safely updated by any thread.
2023-05-24 18:02:27 -04:00
arkon
5a9889b562 Upgrade Compose
Co-authored-by: ivaniskandar <ivaniskandar@users.noreply.github.com>
2023-05-21 11:21:32 -04:00
arkon
5ca7c39751 Replace Cascade with our own somewhat janky implementation 2023-05-21 11:02:56 -04:00
arkon
44609c494c Use AppBarActions in more places 2023-05-20 22:47:16 -04:00
arkon
a4d86a2e1e Enable predictive back gesture for Android 13 (behind developer option)/14+ 2023-05-20 16:16:19 -04:00
Shamicen
b8716ff6fe
Populate the ComicInfo Number field with chapter numbers (#9514)
* Populate the ComicInfo Number field

* added negative number check
2023-05-20 10:24:10 -04:00
Ivan Iskandar
73118d4af7
DownloadCache: Fix freezing on initial loading of cache file (#9523) 2023-05-19 22:06:06 -04:00
Two-Ai
c27bf4e866
Minor Downloader cleanup (#9511)
* Inline completeDownload

* Consolidate queueState updates in removeFromQueue

* Inline post-download steps into downloadChapter
2023-05-19 17:16:32 -04:00
arkon
fb38d30775 Avoid attempts to renaming download dirs if name hasn't actually changed
Maybe fixes #9503
2023-05-14 12:24:40 -04:00
arkon
b4bb855675 Revert "Bump to somewhat newer version of Compose BOM"
This reverts commit ce81b76150.
Fixes crashes when opening menus. Cascade doesn't have an update
to fix this yet.
2023-05-13 22:45:36 -04:00
Ivan Iskandar
6263a52777
Fix navigation backstack (#9497)
Partial revert of dbbf6c5de0
2023-05-13 14:22:02 -04:00
Ivan Iskandar
96defd6b05
Replace our custom Pager (#9494)
Turns out that changing the pagerSnapDistance
is enough to achieve the same result.
2023-05-13 12:06:00 -04:00
arkon
bcd90be525 Use AppBarActions in more places
Related to #8270
2023-05-13 10:04:22 -04:00
arkon
22afae4449 Add tooltips for AppBarActions
Partially addresses #8270. A bunch of Scaffolds aren't using this helper.
2023-05-12 22:56:13 -04:00
arkon
8fae92034e Fix missing appbar when statistics are loading 2023-05-12 18:13:07 -04:00
arkon
ce81b76150 Bump to somewhat newer version of Compose BOM 2023-05-12 18:10:07 -04:00
AntsyLich
f70d5ea976
Delay automatic backup when restoring (#9492) 2023-05-12 18:02:11 -04:00
arkon
dbbf6c5de0 Switch back to upstream version of Voyager 2023-05-12 18:01:48 -04:00
Ivan Iskandar
84acae27b7
ChapterNavigator: Fix rounding error when changing page with slider (#9477)
ChapterNavigator: Fix rounding error when changing page from slider
2023-05-08 09:00:05 -04:00
arkon
71f6e07e71 Don't compute key for browse list based on manga ID, which may be repeated
Fixes #9473
2023-05-07 19:39:09 -04:00
arkon
6f59c6c6bb Revert attempts to read archives to cache first
Issues:
- Apache implementation relies on methods unavailable on lower Android API levels
- Using input stream implementation doesn't seem to read some files properly, but using
  ZipFile implementation still requires reading the entire thing into memory
2023-05-07 12:03:58 -04:00
Ivan Iskandar
d36cf5ce15
Chapter transition tweaks (#9470)
* Chapter transition tweaks

* Chapter transition cleanups
2023-05-07 10:08:33 -04:00
arkon
b051e37ab7 Address minor build warnings 2023-05-06 23:11:14 -04:00
arkon
1b25290d39 Fix filter FAB not working in migrate screen
I feel like this needs to be aligned with the browse screen/deduped somehow, but that can happen separately.

Fixes #9444
2023-05-06 12:27:44 -04:00
arkon
2f5eb73d29 Allow scrolling in restore confirmation dialog
Fixes #9460
2023-05-06 12:22:14 -04:00
Ivan Iskandar
f0dd33ee4c
ChapterNavigator: Always show buttons and fix steps visual (#9461) 2023-05-06 11:15:39 -04:00
Two-Ai
bbe0ab1dd0
Fix delay between URL fetch and image download (#9452)
Fetch each source image URL immediately before downloading each image
instead of fetching all URLs and then downloading all images.

Source image URLs may change, so the downloader may fail if there is
too long a delay between fetching the image URL and downloading the
image.
2023-05-05 22:17:51 -04:00
Two-Ai
cb2d43c0d1
Ensure final download status is always set (#9453) 2023-05-05 22:17:05 -04:00
Ivan Iskandar
fce9cb820c
ChapterNavigator: Fix haptic feedback (#9458) 2023-05-05 22:15:56 -04:00
Ivan Iskandar
08e4863d94
ChapterNavigator: Fix background color (#9450) 2023-05-04 13:55:53 -04:00
arkon
9a10656bf0 Migrate reader slider and next/prev buttons to Compose 2023-05-03 17:14:11 -04:00
arkon
3c79777e66 Migrate PageIndicatorTextView to Compose
Probably closes #7798
2023-05-03 16:18:25 -04:00
arkon
f5ad95d78a Fix language in source filter list jumping to top incorrectly
Fixes #9068
2023-05-03 15:07:41 -04:00
arkon
14c465d36f Get current track services when composing LibrarySettingsDialog
Fixes #9431
2023-05-03 14:41:08 -04:00
arkon
99378ddf20 Bump dependencies 2023-05-03 14:09:52 -04:00
arkon
c623258e8c Try Apache implementation of ZipFile instead
Docs: https://commons.apache.org/proper/commons-compress/
Related StackOverflow post: https://stackoverflow.com/a/54236244/4421500

Related to #9438
2023-05-03 14:00:33 -04:00
Houssein Zaghdane
6ce42dc167
fix to multiple "add to library" toasts bug when adding a new series (#9433)
fix to multiple "add to library" toasts bug (#9177)

Co-authored-by: Houssein Zaghdane <zaghdane@fireflow.de>
2023-05-03 10:40:11 -04:00
Andreas
f63573f25f
Remove SourceData and use StubSource directly for database (#9429) 2023-05-03 10:33:05 -04:00
Andreas
02864ebd60
Move GitHub Release/App Update logic to data (#9422)
* Move GitHub Release/App Update logic to data

* Add tests for GetApplicationRelease

* Review changes
2023-04-29 22:14:49 -04:00
arkon
9339ea4196 Process chapter duplicates after sorting
Closes #9255, sort of. The example is a bad edge case though, where chapter numbers are repeated across versions,
so realistically only the first 113 will appear but the later 113(s) won't despite being "different". Those realistically
should be in different manga entries, not all mixed together, so this is just a crappy source.
2023-04-28 16:01:14 -04:00
AntsyLich
6bdc1b676e
Avoid potential crash when opening library settings sheet 2.0 (#9419)
Avoid potential crash when opening library settings sheet  2.0

Previous one had issues
2023-04-28 15:15:54 -04:00
Andreas
7451c13edd
Add slider for changing columns (#9421)
- It changes the columns based on the current orientation
2023-04-28 15:13:41 -04:00
arkon
ccd4143d9d extension-lib 1.5: Add AppInfo#getSupportedImageMimeTypes() 2023-04-28 11:36:17 -04:00
arkon
c590f55030 Revert "Avoid potential crash when opening library settings sheet (#9415)"
This reverts commit 2cb08e6bb1.
2023-04-28 10:11:13 -04:00
AntsyLich
c21813a8b5
Add an icon to "Item Per Row" on library sheet (#9414)
Also cleanup `SettingsItems.kt`
2023-04-28 10:08:35 -04:00
AntsyLich
2cb08e6bb1
Avoid potential crash when opening library settings sheet (#9415) 2023-04-28 09:08:17 -04:00
stevenyomi
058ee4c86b
Fix exception formatter's format (#9413) 2023-04-28 09:06:32 -04:00
arkon
ea6e5eebac Remove "when tapping" from "Pan wide images" setting
Closes #9343
2023-04-27 22:54:07 -04:00
arkon
9cc25ff345 Fix disable source option not appearing 2023-04-27 22:47:58 -04:00