Commit Graph

3834 Commits

Author SHA1 Message Date
arkon fe82cdb9c8 Migrate ReaderColorFilterSettings to Compose
It'll eventually be a tab with the other settings again once the other tabs are also
migrated over so it's just a single Compose sheet.
2023-06-24 12:51:10 -04:00
arkon f344831d58 Use our own translation for "OK"
I missed this in the PR that it came with, but I guess it'll be useful if we go multiplatform.
2023-06-24 10:38:34 -04:00
arkon f2b0d74b4c Migrate ReaderPageSheet to Compose 2023-06-23 23:17:47 -04:00
arkon 42bc2b07ce Minor cleanup 2023-06-23 22:39:59 -04:00
Shamicen fcfa62f220 Better handle decimal chapter numbers and add categories in ComicInfo.xml files (#9604)
* Serialize whole chapter numbers without decimal point and add library categories to genre

* added Tachiyomi specific ComicInfo Category field

* lint

* implemented requested changes
2023-06-23 17:56:01 -04:00
zaghdaneh b36b3bfcab Remove manga from trackers (#9535)
* Dialog for service tracker removal added, anilist query prepared

* added API delete requests for Mal and Kitsu

* implement and fix tracker delete for anilist, shikimori, mangaupdates

* implement and test mal delete request

* Update to dialog text to reflect current tracker

* finish kitsu api request and block bangumi tracker removal

* Change delete flag into interface, localise strings, clean up logs

* Add shikimori delete compatibility for already existing entries

* update track delete dialog prompt to include checkbox, update strings

* Update i18n/src/main/res/values/strings.xml

Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>

* Update i18n/src/main/res/values/strings.xml

---------

Co-authored-by: unknown <zaghdane@fireflow.de>
Co-authored-by: arkon <arkon@users.noreply.github.com>
Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>
2023-06-22 22:06:43 -04:00
Ivan Iskandar b4393ff741 Update core-splashscreen (#9629) 2023-06-22 21:59:17 -04:00
Ivan Iskandar 740e370465 Bump compile SDK version 34 (#9625) 2023-06-22 14:20:12 -04:00
arkon 0871208023 Avoid crash when trying to open random entry but categories are still loading
Fixes #9610
2023-06-15 22:16:31 -04:00
arkon ee95c1439f Blur manga info header image
Similar to J2K. This only applies on Android 12+.
2023-06-13 20:36:33 -04:00
arkon e323f3c25a Don't update last page read/read state of chapter if Incognito Mode is enabled
Actually closes #7228, which I forgot was about history more than trackers.
2023-06-13 19:30:02 -04:00
arkon 9766399539 Don't update trackers after reading a chapter if Incognito Mode is enabled
Closes #7228
2023-06-13 18:51:07 -04:00
Simon dddba7bb6f Filter out non-downloaded chapters in reader when Downloaded Only is enabled (#9568)
* FIxed Issue #5463 - DownloadedOnly Bug

* Changes according to Feedback

* Changes according to Feedback

---------

Co-authored-by: AlphiGhost <71730726+AlphiGhost@users.noreply.github.com>
2023-06-10 12:48:15 -04:00
Two-Ai cf777d9893 Cleanup MangaScreenModel successState usage (#9582)
* Refactor updateSuccessState

- Convert to inline function
- Use when for type safety if we add other MangaScreenState types

* Replace equivalent expressions with updateSuccessState

* Replace safe cast in MangaScreen
2023-06-09 23:11:02 -04:00
arkon 841f80f935 Add share menu item in reader
Closes #9510
2023-06-09 22:52:49 -04:00
arkon 34b9c82cd0 Remove General settings section 2023-06-04 17:07:29 -04:00
arkon 405a75438a Remove per-category display mode
There seems to be little value in this feature, and juggling flag masks is annoying.
Per-category sorting is still a thing, but could be refactored away from the flag in the feature.
2023-06-04 16:59:21 -04:00
Ivan Iskandar 39e4568460 ReaderProgressIndicator: Convert to Compose (#9574) 2023-06-03 13:11:41 -04:00
arkon 1a1f16f44a Bump dependencies 2023-05-31 22:48:13 -04:00
arkon 431f8772f8 Address minor build warnings 2023-05-31 22:47:31 -04:00
arkon 8f4bc71cf7 Remove confirm exit option
Redundant with predictive back, but also just sort of pointless since it doesn't help
with any sort of app state retention.
2023-05-31 18:51:01 -04:00
Two-Ai 0ac38297f4 Replace RxJava in extension installer (#9556)
* Replace RxJava in extension installer

Replace common downloadsRelay with Map of individual StateFlows

* Drop RxRelay dependency

* Simplify updateAllExtensions

* Simplify addDownloadState/removeDownloadState

Use immutable Map functions instead of converting to MutableMap
2023-05-30 10:25:20 -04:00
Ivan Iskandar a458bd9fdb Update Glance v1.0.0-beta01 (#9551) 2023-05-27 22:59:21 -04:00
arkon ed5a56be60 Set reader chapter name to marquee if too long
Closes #7159
2023-05-27 19:15:11 -04:00
arkon 8735f3566f Fix bookmarked chapters being deleted after manually marked as read
Fixes #9520
2023-05-27 18:30:59 -04:00
arkon 46efd4c134 Fix some crashes 2023-05-27 09:53:01 -04:00
arkon dfd38db7e3 Use primitive state holders 2023-05-27 09:22:31 -04:00
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 a4d86a2e1e Enable predictive back gesture for Android 13 (behind developer option)/14+ 2023-05-20 16:16:19 -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
Ivan Iskandar 6263a52777 Fix navigation backstack (#9497)
Partial revert of dbbf6c5de0
2023-05-13 14:22:02 -04:00
arkon 8fae92034e Fix missing appbar when statistics are loading 2023-05-12 18:13: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
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
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
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 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