4938 Commits

Author SHA1 Message Date
arkon
e26360186a Change auto clear cache to occur on app launch instead
Fixes #9564

Avoids the issue of clearing the cache when the app is backgrounded despite being in the reader.
We could do a job on idle, but we'd still need to be careful around whether the reader is active,
so this is just simpler considering it's a separate activity.

(cherry picked from commit 53c6230afebe8e8cddca216f281fdec70e450a33)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
2023-07-15 17:15:53 -04:00
Semen
5a8f583c08 Add function to delete downloaded chapters when migrating manga (#9621)
add function to delete downloaded chapters when migrating manga and getFlagsFromPositions fix

(cherry picked from commit 4882896f4d65acabb82771699906b797b3de7662)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/MigrationFlags.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateDialog.kt
2023-07-15 17:14:52 -04:00
Jobobby04
eade3c372c Fix ExceptionInInitializerException 2023-07-15 17:09:04 -04:00
arkon
7911e39fef Save reader progress on every page change
Fixes #9668
Could probably refactor this a bit more, but the reader view model stuff is a mess in general anyway.

(cherry picked from commit 6fe5e6e21bfaef2f03ecca3659e03835fc354602)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
2023-07-15 16:36:12 -04:00
arkon
d8c3952790 Remove some dead code
(cherry picked from commit 3125d7870699ccca8371023c7cb1eb040a590a7e)
2023-07-15 16:33:52 -04:00
arkon
51752f497f Remove usage of savedInstanceState for storing reader menu visibility state
(cherry picked from commit bb8f3c63f1e5aade89ea3375c559c0e5dbef46ef)

# 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/pager/PagerViewer.kt
2023-07-15 16:27:56 -04:00
arkon
d09bbe1db3 Fix crash when tapping reader in long strip mode before RecyclerView is created
(cherry picked from commit 44cc6f11c7be087042878f7e8850b4f4f5e318be)
2023-07-15 15:52:27 -04:00
arkon
cdd05c0996 Replace deprecated ProgressDialog
Fixes #8223

(cherry picked from commit bae391c2c16899f5f3c04b833b1d0eb12d6b94df)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
2023-07-15 15:52:19 -04:00
arkon
f81f995127 Address some deprecation warnings
(cherry picked from commit b79ef5dc79b12a3e47ea7c06bd16d2957422a8fd)
2023-07-15 15:47:28 -04:00
LagradOst
fe768f7036 Fixed scrolling on the background using long strip (#9654)
Update WebtoonFrame.kt

(cherry picked from commit d99f4697e892db70e765da9789f3ceba25aa7d46)
2023-07-15 15:46:59 -04:00
stevenyomi
ed64e296af Browse Source: clear search query when changing listing (#9652)
(cherry picked from commit bb3fdef40bebae7fcb3defe089c65008542bddbd)
2023-07-15 15:46:47 -04:00
Alessandro Jean
a93e6c78b1 Make source preferences' titles multiline (#9644)
Make source preferences' titles multiline.

(cherry picked from commit 8a5e443ca5d4785773e8c87b5841a6509cf873c7)
2023-07-15 15:46:13 -04:00
arkon
efd90aea0f Retry LibraryUpdateJob later if Wi-Fi condition not met
(cherry picked from commit 88e9fefa59b3f7f77ab3ddcab1b039f81534c83e)
2023-07-15 15:45:54 -04:00
Denny Rodrigues do Carmo
65676730fc Fix download ahead while reading functionality (#9640)
Correct condition for downloading next chapter

(cherry picked from commit ee684cbef52a0f9ec9873d9e9d854d95bad5df66)
2023-07-15 15:45:37 -04:00
arkon
eb298df72c 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.

(cherry picked from commit fe82cdb9c85274e0c9b904ec6b37fac97d01ea37)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/more/settings/PreferenceItem.kt
#	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/setting/ReaderColorFilterSettings.kt
#	app/src/main/res/layout/reader_activity.xml
2023-06-24 15:43:30 -04:00
arkon
f3d47eaaa3 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.

(cherry picked from commit f344831d5877d1d0a7772b00f498ddfb6e86da04)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
2023-06-24 15:32:08 -04:00
arkon
273951188c Migrate ReaderPageSheet to Compose
(cherry picked from commit f2b0d74b4cd6740b708e587f18c6cc798287dbe8)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPageSheet.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
#	app/src/main/res/layout/reader_page_sheet.xml
2023-06-24 15:26:45 -04:00
arkon
43a920bbb9 Minor cleanup
(cherry picked from commit 42bc2b07ce1f0b4cfbfe3045cddc9c1fcca8f519)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/cache/ChapterCache.kt
2023-06-24 14:25:45 -04:00
Shamicen
350c9f325a 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

(cherry picked from commit fcfa62f220d1bdf1736d5230bfcc0b22117e4c2c)

# Conflicts:
#	app/src/main/java/eu/kanade/domain/manga/model/Manga.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt
#	core-metadata/src/main/java/tachiyomi/core/metadata/comicinfo/ComicInfo.kt
2023-06-24 14:21:09 -04:00
zaghdaneh
7e82f21308 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>
(cherry picked from commit b36b3bfcabd4a33826b455e1cdfc06fde110a452)
2023-06-24 14:19:23 -04:00
Ivan Iskandar
ec1e83a21b Update core-splashscreen (#9629)
(cherry picked from commit b4393ff741793ba84f92956899df0c429b907b0e)

# Conflicts:
#	.github/renovate.json
2023-06-24 14:18:37 -04:00
Ivan Iskandar
13f49234dc Bump compile SDK version 34 (#9625)
(cherry picked from commit 740e370465444beaa52af7aae9016c9cf67cd066)
2023-06-24 14:17:56 -04:00
arkon
2f360a3fd7 Avoid crash when trying to open random entry but categories are still loading
Fixes #9610

(cherry picked from commit 0871208023b46452fbf26f9baebea82cecb33f39)
2023-06-24 14:16:59 -04:00
arkon
bf0dee8d03 Blur manga info header image
Similar to J2K. This only applies on Android 12+.

(cherry picked from commit ee95c1439f8c47d912c88bd9ebb442e64a89f8ff)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateDialog.kt
2023-06-24 14:16:49 -04:00
arkon
1c090ad621 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.

(cherry picked from commit e323f3c25a22ba7b9b831f17064ee7196b5ce951)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
2023-06-24 14:16:14 -04:00
arkon
1976d9d6da Don't update trackers after reading a chapter if Incognito Mode is enabled
Closes #7228

(cherry picked from commit 9766399539c70db3f89bddeb67c69cf09e7b70ae)
2023-06-24 14:13:17 -04:00
Jobobby04
bc816d7b49 Fix downloaded merged chapters in reader 2023-06-24 14:12:32 -04:00
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