339 Commits

Author SHA1 Message Date
Ivan Iskandar
149ac4a363 Fix indexing notif not showing (#8758)
(cherry picked from commit 235bc7745734fdda4cbcfe42452d611e8fa6693c)
2022-12-17 22:56:24 -05:00
Ivan Iskandar
4243d389f8 App state banner tweaks (#8746)
* Move download indexing notification to this banner group
* Animate state changes

(cherry picked from commit e20c66b15671db75ed190c2967cdcc78c74db478)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
2022-12-17 22:33:57 -05:00
arkon
635b112452 Convert download cache/queue flows into SharedFlows
Fixes #8727

(cherry picked from commit 9dd9e741f34aeb49a15a939ec7f8495a992d8bf8)
2022-12-16 00:49:27 -05:00
Two-Ai
5eca2bdf28 Cleanup Page status (#8696)
* Cleanup Page statusSubject and statusCallback

* Convert Page status from Int to enum

(cherry picked from commit 6ca32710be5bfed851ab695a0d9438c7ab609b24)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPageSheet.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/HttpPageLoader.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt
2022-12-15 21:21:04 -05:00
arkon
afec4f43eb Minor cleanup
(cherry picked from commit c88b79fa178adb49814bc118a1657fa93665a5fd)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt
2022-12-05 17:19:02 -05:00
Two-Ai
3120a940fe Migrate Download to domain model (#8664)
(cherry picked from commit 5f6666a438a3a58088765aa3813a49f14afcb72c)
2022-12-04 15:30:01 -05:00
arkon
11ab8925b3 Don't remove queued downloads when deleting manga after chapter deletion
(cherry picked from commit 5fbecfd7b747b3961699fe63eb9264eac495794b)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt
2022-11-28 22:28:07 -05:00
arkon
9b46395fd8 Minor cleanup
(cherry picked from commit 3480b45098dba20377975d5f0368f47cc7df75ab)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt
2022-11-28 22:27:31 -05:00
AntsyLich
7a3847887c Implement simple stats screen (#8068)
* Implement simple stats screen

* Review Changes

* Some other changes

* Remove unused

* Small changes

* Review Changes 2 + Cleanup

* Review Changes 3

* Cleanup leftovers

* Optimize imports

(cherry picked from commit 3d7591fecae47c75e6e4bc78b53ac02811620d92)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/more/MoreScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/more/MoreScreen.kt
2022-11-28 16:10:04 -05:00
arkon
aaddb4bf00 Remove usage of PublishRelay in DownloadQueue
(cherry picked from commit 37118088d44d6597e7a3c01687d8570fe4bb3c4f)
2022-11-26 13:51:01 -05:00
AntsyLich
4727e61f90 Disable generating ComicInfo.xml on download (#8619)
* Disable generating ComicInfo.xml on download

* Remove unused import

(cherry picked from commit 758d223776fca7f1c938ace0521c968a10f8603f)
2022-11-26 13:45:31 -05:00
AntsyLich
0b9b6612fd Cleanup [Downloader.ensureSuccessfulDownload] (#8602)
(cherry picked from commit 0347d3970a31d072fe58186b7dd35c1aed1c9270)
2022-11-24 16:42:08 -05:00
Jobobby04
4d7b6f8167 Cherry pick fixes 2022-11-24 16:41:50 -05:00
arkon
aefdc2adbe Delete empty source folder when deleting all downloads for a manga
It previously only attempted this after deleting a list of chapters, so it wasn't applicable
when deleting from Library or after unfavoriting an entry.

Closes #8594

(cherry picked from commit 5c37347cecc99582752ee500171e8480008c836e)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt
2022-11-24 16:24:58 -05:00
arkon
f78b728f0a Add reindex downloads description
Closes #8546
Also disable sound for the notification and cancel running indexing job if invalidating.

(cherry picked from commit 2d86f69caa79b17b000ec1139a4283f8e9d1db35)
2022-11-24 15:47:54 -05:00
AntsyLich
e8ec4094f7 Fix related to cancelling queued chapters (#8528)
Tachi removes the downloaded chapter (if it exists) when you just cancelled a download from queue.

PR fixes that

Also removes redundant return

(cherry picked from commit ba2a528886c6ae29d0f46070df736497921346e3)
2022-11-24 15:21:55 -05:00
Jobobby04
c8de918e46 Cherry pick fixes 2022-11-16 14:17:26 -05:00
arkon
a1accd3ed3 Don't rely on cache when deleting empty manga folders
In case the cache hasn't actually been indexed yet. Maybe fixes #8438.

(cherry picked from commit f5873d70c640b9deb53a9a62281403b9a657e644)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadPendingDeleter.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadProvider.kt
2022-11-16 13:56:21 -05:00
arkon
584bf7dc13 Adjust download cache to ignore irrelevant files
Fixes #8530

(cherry picked from commit 9da232dcd88421a86312b2c5237107f73b20a4a1)

# Conflicts:
#	i18n/src/main/res/values/strings.xml
2022-11-16 13:25:56 -05:00
AntsyLich
cf7c498364 Fix download not working on sd card (#8527)
Also create comicinfo file inside chapter folder instead of manga folder since it also contains some chapter specific data

(cherry picked from commit 51c964de3aa370545899c7c3b38b3287cea13d1c)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt
2022-11-16 13:25:03 -05:00
arkon
cdb1a8f851 Resolve proper chapter URL for ComicInfo "Web" field
Requires extensions to be updated to lib 1.4 to have proper URLs for some of them, which will
happen soon in the future.

(cherry picked from commit 262f8449b4369fde42cbd15d2a768e54461e84af)
2022-11-16 13:23:15 -05:00
Jobobby04
5afc33becb Round the corners of page previews 2022-11-13 15:43:56 -05:00
arkon
4560dedf1c Clean up ComicInfo stuff a bit
(cherry picked from commit 6ada3c90ff4729f703fb35338f72694e88f06aca)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/LocalSource.kt
2022-11-11 19:27:41 -05:00
Shamicen
1523ff2814 Create ComicInfo Metadata files on chapter download (#8033)
* generate ComicInfo files at the chapter root and inside CBZ archives on chapter download.

* Update app/src/main/java/eu/kanade/tachiyomi/source/LocalSource.kt

Co-authored-by: Andreas <andreas.everos@gmail.com>

* Improvements suggested by @ghostbear

* now creates ComicInfo files in normal chapter folders as well
use manga directly instead of converting it to SManga
truncate old files before overwriting them

Co-authored-by: Andreas <6576096+ghostbear@users.noreply.github.com>

* remove empty line after resolving merge conflict

* fixes Serializer for class 'ComicInfo' is not found error

* some changes to comments and variable names

* Revert leftover changes to archiveChapter() function

* minor cleanup

* Changed Chapter to SChapter

Co-authored-by: Andreas <andreas.everos@gmail.com>
Co-authored-by: Andreas <6576096+ghostbear@users.noreply.github.com>
(cherry picked from commit 4e628fe6de7a691fbab7960c5f9b750e563eb8a1)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt
2022-11-11 19:26:33 -05:00
arkon
053b18c37d Remove "Download complete" notification
It wasn't really consistent with other notifications considering there's no
action to be taken in this state.

(cherry picked from commit a0f49b16c5b76d493857840c1012b9df7086f35c)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt
2022-11-11 14:47:07 -05:00
arkon
7578b4d6fc Migrate to more domain model usages
(cherry picked from commit c6c4c1c393aa8f7fe702ce7da9d7d04e0ad9005b)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchPresenter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourcePresenter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt
2022-11-11 14:36:15 -05:00
arkon
564cc5144f Minor cleanup
(cherry picked from commit 811931ccc0f21b0fd88c56b8567358982c48c31e)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/track/anilist/OAuth.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/track/kitsu/OAuth.kt
2022-11-11 14:27:32 -05:00
AntsyLich
f534c8928c Add option to invalidate download cache (#8491)
* Add option to invalidate download cache

* Review changes + lint

(cherry picked from commit 08d5633d81633ab09f09f1ecedd331f12fa8a889)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt
2022-11-11 14:20:28 -05:00
arkon
b4ede754b9 Clean up download ahead logic
- Remove redundant chapter sorting logic when fetching next chapter(s)
- Remove redundant download queue checks (it'll handle already queued or downloaded items)
- Trigger download ahead when read >= 25% of chapter rather than 20%
- Rely on download cache when checking if next chapter is downloaded to avoid jank (fixes #8328)

(cherry picked from commit fc184f1cfa929328c41b0ec374503afe204d6c15)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt
2022-11-01 12:32:13 -04:00
arkon
75e1dfee3f Show notification while download cache is renewing
Since users seem to be confused now that the library loads before download info is shown...

(cherry picked from commit fde7bfa3d17ce2e02df5625836eb739aeaab7863)
2022-10-29 18:46:08 -04:00
AntsyLich
98a56d581e Fix "Download split" not working while using SD card (#8305)
* Fix "Download split" not working while using SD card

* Update app/src/main/java/eu/kanade/tachiyomi/util/system/ImageUtil.kt

Co-authored-by: arkon <arkon@users.noreply.github.com>
(cherry picked from commit 6e4a30e59352517346eb0f622424390a52fb95c0)
2022-10-29 17:27:32 -04:00
arkon
71eefc3c9e Avoid some crashes
(cherry picked from commit ca065169002475cc92b7736d02340127a5e419bd)

# Conflicts:
#	app/src/main/java/eu/kanade/data/manga/MangaRepositoryImpl.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt
2022-10-26 23:38:49 -04:00
AntsyLich
32a2827b0e Use Channel in Download cache (#8292)
* Use `Channel` in Download cache

Co-Authored-By: Andreas <6576096+ghostbear@users.noreply.github.com>

* Use Unlimited capacity

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

Co-authored-by: Andreas <6576096+ghostbear@users.noreply.github.com>
Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>
(cherry picked from commit 3b5b9a1ae5803466e9b18846aae6fcd16bf8a637)
2022-10-26 23:37:16 -04:00
arkon
6d46283aee Use kotlin.time extensions in some more places
(cherry picked from commit 5c868d784679b55e413366c5d4bdea75253bf8f4)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
2022-10-22 21:46:13 -04:00
arkon
1bef917db7 Handle async cache in updates and manga screens
- Also fix concurrent accesses to main cache map
- Also debounce sources and updates list updates to maybe avoid crashing due to dupe LazyColumn keys

(cherry picked from commit 152eb5b95196a32ed120f4a57996c1958294bf7f)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesPresenter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
2022-10-22 20:56:53 -04:00
arkon
5a55c66532 Perform download cache renewal async
Don't block on cache renewals, but notify library on updates so that the badges show up when ready.

We skip the cache when checking if a chapter is downloaded for the reader assuming that it's a
relatively low cost to check for a single chapter.

(Probably) fixes #8254 / fixes #7847

(cherry picked from commit 7e40680af02505f82fa3655d2d693092c6bd43a1)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt
#	app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt
2022-10-22 20:28:57 -04:00
arkon
893443222d Proper DI instantiation for some more download related classes
(cherry picked from commit b04807e53a355af210e280d42f705976a478c6e5)

# Conflicts:
#	app/src/main/java/eu/kanade/domain/chapter/interactor/SyncChaptersWithSource.kt
#	app/src/main/java/eu/kanade/tachiyomi/AppModule.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/DownloadPageLoader.kt
2022-10-22 20:16:12 -04:00
arkon
5ff3c39d68 Defer library download counts if not needed
(cherry picked from commit 93827aba34e98c6f70397d0e767580f3aaf5136b)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
2022-10-22 20:11:36 -04:00
arkon
d79784f292 Avoid crashing if invalid download and backup location is set
Fixes #8252

(cherry picked from commit a8ca7b690fe56f8588d3fff9dbfef95062e6442f)
2022-10-22 19:52:59 -04:00
arkon
49d5d797b3 Fix download cache not updating on location change
(cherry picked from commit 6756bfab7592bdbc424aa4a478769728cf991a54)
2022-10-18 17:52:13 -04:00
arkon
767059e7a3 Always renew download cache if no sources have been loaded yet
Fixes #7705. Somewhat janky solution to handle when loading the sources on app start is slower than
the initial download cache priming.

(cherry picked from commit 558aad1a7170a71c454ce7c056b98f446a6eea95)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt
2022-10-17 00:09:36 -04:00
arkon
a82b86bec8 Minor cleanup
(cherry picked from commit bc1fbfac9d3bd6a13b755acb5ac0a2ed702ba1a2)

# Conflicts:
#	app/src/main/java/eu/kanade/domain/chapter/interactor/SetReadStatus.kt
#	app/src/main/java/eu/kanade/domain/manga/repository/MangaRepository.kt
#	app/src/main/java/eu/kanade/presentation/library/LibraryScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/SourceExtensions.kt
2022-10-15 12:09:35 -04:00
arkon
78d87b866a Upgrade to Kotlin 1.7.20
Also run formatter and address some deprecation warnings.

(cherry picked from commit 26a42ba9c01c670f60bedfca41bd72c99aa2a278)

# Conflicts:
#	core/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt
2022-10-15 12:09:30 -04:00
stevenyomi
1b6c970cc2 Fix download progress indicator (#8188)
(cherry picked from commit b1e104319f90678bc7ed501797d9d7d5b98902b5)
2022-10-15 12:09:30 -04:00
arkon
ae7c720d6c Fix linting error
(cherry picked from commit b95a30e424c180c654b27f8bc6e432629415731a)
2022-10-15 12:09:21 -04:00
arkon
35758adb8e Clean up download state logic in MorePresenter
(cherry picked from commit 3bfbd58402bcb24e1f24bb5c2d88389767cab2d9)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/more/MorePresenter.kt
2022-10-15 12:09:20 -04:00
AntsyLich
30e3cc46c8 Downloader: Don't trust index provided by source (#8122)
(cherry picked from commit 98c459a6b69a26338d310afe7f2629fa939d6f89)
2022-10-01 18:33:18 -04:00
Ivan Iskandar
fc8b15916a DownloadController: Fix first active download status not updating (#8069)
(cherry picked from commit f98b4f4e39514a48aab34ef4afee675bbd5bd6ac)
2022-09-24 23:26:20 -04:00
arkon
7f29d6fc74 Minor cleanup
Also add POST_NOTIFICATIONS permissions to make Android Studio stop complaining about it.

(cherry picked from commit b37b3767f3c55a74bede78d11300249ab419a4c7)
2022-09-22 12:48:23 -04:00
Andreas
416db76218 Split download preferences from PreferencesHelper (#8048)
(cherry picked from commit e82963c9ef15416f6bf818c4043cf802c3033105)

# Conflicts:
#	app/src/main/java/eu/kanade/domain/chapter/interactor/SetReadStatus.kt
#	app/src/main/java/eu/kanade/tachiyomi/AppModule.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
2022-09-22 12:47:25 -04:00