5011 Commits

Author SHA1 Message Date
Simon
e2840b6b9d 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>
(cherry picked from commit dddba7bb6f1fdea7c853d07a3c8f0ad7c99a12d5)
2023-06-24 14:03:30 -04:00
Two-Ai
a87a35ec73 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

(cherry picked from commit cf777d989339a5190966b537aa493c5984d36a93)
2023-06-24 14:02:20 -04:00
arkon
805a88df25 Add share menu item in reader
Closes #9510

(cherry picked from commit 841f80f935225bdb7ee7e400d2b2aa8176c5e4c5)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt
#	app/src/main/res/menu/reader.xml
2023-06-24 13:43:29 -04:00
arkon
c99986f4f5 Remove General settings section
(cherry picked from commit 34b9c82cd0ca07ded2cd079a9cc18229a02a9a81)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt
#	app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAppearanceScreen.kt
#	app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsGeneralScreen.kt
2023-06-24 12:25:21 -04:00
arkon
23170b6f03 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.

(cherry picked from commit 405a75438a61770a12292cc87c0fa36e16668124)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/library/LibrarySettingsDialog.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt
#	domain/src/main/java/tachiyomi/domain/category/interactor/SetDisplayModeForCategory.kt
#	domain/src/main/java/tachiyomi/domain/category/interactor/SetSortModeForCategory.kt
2023-06-24 12:10:45 -04:00
Ivan Iskandar
ff9b7a1325 ReaderProgressIndicator: Convert to Compose (#9574)
(cherry picked from commit 39e456846094abd623f84d642721a2d97bd803a4)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt
2023-06-24 11:23:55 -04:00
arkon
b42f1f2df8 Bump dependencies
(cherry picked from commit 1a1f16f44aba242a52aed628ddd38bc2793ca406)

# Conflicts:
#	gradle/kotlinx.versions.toml
2023-06-24 11:21:58 -04:00
arkon
7c9398f9d5 Address minor build warnings
(cherry picked from commit 431f8772f8ad2f30d71bb6565ec2644e4e56c691)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestorer.kt
2023-06-24 11:21:18 -04:00
arkon
8877ddb015 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.

(cherry picked from commit 8f4bc71cf7b99fe0b0d2ea68dfca0140477686cc)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsGeneralScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
2023-06-24 11:20:13 -04:00
Two-Ai
728c715bf4 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

(cherry picked from commit 0ac38297f4bdeb83b2d9c8919b89520e9722f35e)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt
2023-06-24 11:17:45 -04:00
arkon
a90eb778d8 Limit updates to 250 most recent chapters
Still limits to things within the past 3 months though.

Closes #9554

(cherry picked from commit 4c65c2311e09bf5dcb77327c415a6fddd12123c5)

# Conflicts:
#	data/src/main/java/tachiyomi/data/updates/UpdatesRepositoryImpl.kt
#	domain/src/main/java/tachiyomi/domain/updates/interactor/GetUpdates.kt
2023-06-24 11:16:54 -04:00
Ivan Iskandar
aafb685bf5 Update Glance v1.0.0-beta01 (#9551)
(cherry picked from commit a458bd9fdb1750bde246df438d13dfa1d79185be)
2023-06-24 10:43:49 -04:00
arkon
38abea0513 Set reader chapter name to marquee if too long
Closes #7159

(cherry picked from commit ed5a56be60d144c917b7b09bf183c688e6d54b06)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt
2023-06-24 10:43:42 -04:00
arkon
3167128e30 Fix bookmarked chapters being deleted after manually marked as read
Fixes #9520

(cherry picked from commit 8735f3566ff1b7945ba062d098302875fdf8eeab)
2023-06-24 10:42:34 -04:00
arkon
88d4087642 Fix some crashes
(cherry picked from commit 46efd4c13430881d8593d4fc3cb899dfd3deacdd)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/webview/WebViewScreenContent.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonPageHolder.kt
2023-06-24 10:42:27 -04:00
arkon
491cfafddb Use primitive state holders
(cherry picked from commit dfd38db7e33bd708ccb688f3fe02d4e0105083f2)
2023-06-24 10:40:44 -04:00
arkon
6d5087b638 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.

(cherry picked from commit e3b27209246c60e2de7033976573681352fee7f9)
2023-06-24 10:39:07 -04:00
Two-Ai
81b752eb76 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.

(cherry picked from commit 3ae1e37c40fcfa43798377d2d9b8af58ec4498db)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt
2023-06-24 10:38:59 -04:00
Jobobby04
c95d6e79f4 Fix blank library categories when using source categories 2023-06-24 10:37:13 -04:00
arkon
3c741c13a4 Upgrade Compose
Co-authored-by: ivaniskandar <ivaniskandar@users.noreply.github.com>
(cherry picked from commit 5a9889b562583c0112b90e1c5b2622336965963d)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/library/components/LibraryContent.kt
2023-06-24 10:34:23 -04:00
arkon
077c327595 Replace Cascade with our own somewhat janky implementation
(cherry picked from commit 5ca7c39751c29e396f59e66addcfb482bcae6e7d)
2023-06-24 09:55:29 -04:00
Jobobby04
21a4a93523 Add Exhentai source icon 2023-05-22 19:38:02 -04:00
arkon
6b1bcb1511 Enable predictive back gesture for Android 13 (behind developer option)/14+
(cherry picked from commit a4d86a2e1e525dce9fb12f323b7013394639b577)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
2023-05-20 19:24:29 -04:00
Ivan Iskandar
bdf871292b DownloadCache: Fix freezing on initial loading of cache file (#9523)
(cherry picked from commit 73118d4af7f1d5ad4e7ea60d6bf183d778e6350a)
2023-05-20 19:23:47 -04:00
Two-Ai
b14293c025 Minor Downloader cleanup (#9511)
* Inline completeDownload

* Consolidate queueState updates in removeFromQueue

* Inline post-download steps into downloadChapter

(cherry picked from commit c27bf4e86643b6540791d010a756935fd66d1804)
2023-05-20 19:23:37 -04:00
Jobobby04
fda392a4d5 Handle page quota 2023-05-14 13:42:33 -04:00
Shamicen
d28670a24c
fixed encrypted sql database gets overwritten on sql-schema change (#887)
fix from:
jobobby04
2023-05-14 13:29:26 -04:00
arkon
ac9048db46 Avoid attempts to renaming download dirs if name hasn't actually changed
Maybe fixes #9503

(cherry picked from commit fb38d307750a849e7c941c164a3c223d69f2cd14)
2023-05-14 13:27:17 -04:00
Jobobby04
190c87f7f3 Use AppBarActions 2023-05-13 14:02:24 -04:00
arkon
7eaed00cd3 Fix missing appbar when statistics are loading
(cherry picked from commit 8fae92034e1e43560f254b2563acbfa9106702cf)
2023-05-13 13:34:00 -04:00
AntsyLich
cda8514b9b Delay automatic backup when restoring (#9492)
(cherry picked from commit f70d5ea97698bc3708c035dc3e4d7a1e894cd765)
2023-05-13 13:33:32 -04:00
Shamicen
6071acd3df
Make comic book archive caching optional instead of rolling it back completely (#883)
* Make comic book archive caching optional and fix cbz archives not opening for some users

* corrected placement of // SY <--
2023-05-12 22:52:17 -04:00
Shamicen
be6bbb8e9b
use zip4j only for encrypted downloads (#882)
* use zip4j only for encrypted downloads

* only set charset on SDK >= 24
2023-05-12 22:51:56 -04:00
Shamicen
291734a406
Implemented local cover encryption (#881)
* Implemented local cover encryption and made coil capable of reading encrypted cover archives

* add check that the file is not an image before determining that it is a zip file
2023-05-12 22:51:37 -04:00
Jobobby04
e9a3463455 Allow user to read all read manga stats 2023-05-10 17:30:52 -04:00
Jobobby04
8d83384fb7 See if this fixes focus bug with auto complete tags 2023-05-09 21:53:49 -04:00
Jobobby04
45f839c5e1 Lint 2023-05-09 21:53:06 -04:00
arkon
98e94ef7ae Just extract everything in zips to a directory
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

(cherry picked from commit 6f59c6c6bb12f1ef123abd418001c7a86d43ef7a)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ZipPageLoader.kt
2023-05-08 23:14:29 -04:00
Ivan Iskandar
ce4f2e83b0 Chapter transition tweaks (#9470)
* Chapter transition tweaks

* Chapter transition cleanups

(cherry picked from commit d36cf5ce159adea6b4da8a5351c4a9f732e07590)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/reader/ChapterTransition.kt
2023-05-08 23:14:01 -04:00
arkon
67d352300b Address minor build warnings
(cherry picked from commit b051e37ab7adca209809dcd4f4be66d6c86f237d)
2023-05-08 23:13:58 -04:00
Shamicen
492fa6eaaa
fix ZipPageLoader not working for encrypted cbz archives (#877) 2023-05-06 22:23:56 -04:00
Jobobby04
9d17b47bdb Fix source feed crash on non-catalogue sources 2023-05-06 18:49:22 -04:00
Jobobby04
c8446b8d65 Improve SourcePreferences error 2023-05-06 18:42:25 -04:00
arkon
bc1dc90963 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

(cherry picked from commit 1b25290d399037fe2d9744a899f86ca128699f8e)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SourceSearchScreen.kt
2023-05-06 18:03:20 -04:00
Two-Ai
60cf10ff2e 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.

(cherry picked from commit bbe0ab1dd0b51bcb91ff0a7f78555b078d73201e)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt
2023-05-06 17:44:36 -04:00
Two-Ai
20ee365bdc Ensure final download status is always set (#9453)
(cherry picked from commit cb2d43c0d15b6d16b5a8522388f1cedf2fc29a16)
2023-05-06 17:43:27 -04:00
arkon
2d013c551d Migrate reader slider and next/prev buttons to Compose
(cherry picked from commit 9a10656bf07a7dd35400fa6e42dd0e4889ddb177)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonViewer.kt
#	app/src/main/res/layout/reader_activity.xml
2023-05-06 17:40:42 -04:00
arkon
c320daf832 Migrate PageIndicatorTextView to Compose
Probably closes #7798

(cherry picked from commit 3c79777e66d701958c2a20dfb5ccbdfef6e5c294)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
2023-05-06 14:28:35 -04:00
arkon
18f65d4ca4 Fix language in source filter list jumping to top incorrectly
Fixes #9068

(cherry picked from commit f5ad95d78a857c226d53e010e52e8563ecd38f0d)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/browse/SourcesFilterScreen.kt
2023-05-06 14:03:39 -04:00
arkon
4baa396aa6 Get current track services when composing LibrarySettingsDialog
Fixes #9431

(cherry picked from commit 14c465d36f8265cb545405de867c4581468ecdc8)
2023-05-06 14:01:42 -04:00