317 Commits

Author SHA1 Message Date
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
Andreas
f40477cf6e Split security preferences from PrefrencesHelper (#8030)
(cherry picked from commit b668364afbfdde9e91fda6621c80c96262c6492a)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceValues.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsSecurityController.kt
2022-09-18 13:25:51 -04:00
Andreas
5d1dfb5290 Split source preferences from PreferencesHelper (#8029)
(cherry picked from commit 30b3b2d3ffd5d90aee293e9ae22b3cb2a4924c2b)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/AppModule.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/SourceExtensions.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesFilterPresenter.kt
2022-09-18 13:08:22 -04:00
Andreas
41c9c20e26 Use 1.x preference abstraction (#8020)
* Use 1.x preference abstraction

- Uses SharedPreferences compared to 1.x impl which uses DataStore but it breaks all settings screens currently
- Move PreferencesHelper to new PreferenceStore
  - PreferencesHelper should be split into smaller preference stores and be in core or domain
- Remove flow preferences as new PreferenceStore handles changes for us

Co-authored-by: inorichi <3521738+inorichi@users.noreply.github.com>

* Fix PreferenceMutableState not updating

* Fix changes not emitting on first subscription

Co-authored-by: inorichi <3521738+inorichi@users.noreply.github.com>
(cherry picked from commit 0086743a5311c22fb8c07f596ab5de384862a68a)

# Conflicts:
#	app/src/main/java/eu/kanade/domain/source/interactor/GetEnabledSources.kt
#	app/src/main/java/eu/kanade/tachiyomi/App.kt
#	app/src/main/java/eu/kanade/tachiyomi/AppModule.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateNotifier.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt
#	core/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt
2022-09-18 12:31:49 -04:00
arkon
359d855e21 Check the actual folder when deleting source folder in case of stale cache
(cherry picked from commit f9bbbce466310147927ffb7317f432e2f3fc478a)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadCache.kt
2022-09-11 19:47:23 -04:00
Jobobby04
3562816e89 SY linting 2022-09-11 19:43:45 -04:00
Ivan Iskandar
e6767b747b DownloadController: Partial Compose conversion (#7969)
Item list is not changed as currently there is no fitting Compose component to
replace the drag-drop behavior.

(cherry picked from commit fb9791f5976b9a877adeb656e2decfc4d77420ff)

# Conflicts:
#	app/build.gradle.kts
#	app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadHeaderItem.kt
2022-09-10 11:25:07 -04:00
arkon
33c04e4778 Address some OkHttp nullability changes
(cherry picked from commit 38950f7bc8b10ccf86995ebacc83f86ca1a6958e)
2022-09-03 19:45:47 -04:00
AntsyLich
3ba39f6557 Remove download source folder when empty (#7928)
(cherry picked from commit 5a320d87e80e84814e92c1f727201eaadaff294e)
2022-09-03 18:42:06 -04:00
AntsyLich
e6d0f90b95 Fix tmp cbzs are counted towards manga download count (#7909)
* Fix tmp cbzs are counted towards manga download count

* Review Changes

* Review Changes 2

(cherry picked from commit a43754e1a67beb24810ee67a10989c882cd28e56)
2022-09-03 18:29:00 -04:00
arkon
9318b0d803 Minor cleanup
(cherry picked from commit c39a1b7867976bddc85d3bfbffeeb717b8bf4501)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/BrowseController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrateSourcesTab.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesTab.kt
2022-09-03 17:53:12 -04:00
AntsyLich
6383bade26 Rename source download folder on source rename (#7898)
* Rename source download folder on source rename

* Review Changes

* Review Changes 2

(cherry picked from commit 53f5ea7fe9e0a918a0970c88521ba978c0def012)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/source/SourceManager.kt
2022-08-31 11:18:05 -04:00
stevenyomi
0d221657b2 Fix chapter download with empty scanlator (#7844)
(cherry picked from commit 4b9a6541d13de64d0a9b85e1afb4e143492cb5fe)
2022-08-27 19:48:36 -04:00
nzoba
a024d8810c Fix stucked downloads when service not started (#7846)
* Fix stucked downloads when service not started

* Fix chapter download restart even if should be deleted

(cherry picked from commit a70b8486468ce8b57ae7a7ddc3ac845337789d45)
2022-08-27 19:48:27 -04:00
nzoba
7949865484 Download ahead (#7226)
(cherry picked from commit f207e8772299b55ffc08aa62d06fae8acd23a06d)
2022-08-27 19:48:11 -04:00
stevenyomi
90db474512 DownloadProvider: Remove duplicate in valid chapter dir name list (#7826)
(cherry picked from commit 40749dc76709a1792fb01f90fa9a03da03e7e0b7)
2022-08-22 12:38:29 -04:00
stevenyomi
66ee19daaf Fix download chapter dir when scanlator is empty or changed (#7780)
(cherry picked from commit 1f9f9662bc5abe75f24dae30d48e843005d86394)

# Conflicts:
#	app/src/main/java/eu/kanade/domain/chapter/interactor/SyncChaptersWithSource.kt
2022-08-17 15:35:26 -04:00
arkon
2999190fad Address misc. build warnings
(cherry picked from commit d6f1534ee8c95c7dc450f1cb86d378007e3bf53b)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchController.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SourceSearchController.kt
2022-08-13 14:50:03 -04:00
Andreas
b592709630 Fix category exclude not working in DownloadManager (#7641)
(cherry picked from commit 56028aff5546222da2f03af2f84d8660917b828e)
2022-07-29 09:02:15 -04:00
stevenyomi
d734993349 Fix image MIME issues that cause download errors (#7562)
* Downloader: ignore non-image MIME to prevent .bin extensions

* ProgressResponseBody: allow null content type

Co-authored-by: anenasa <84259093+anenasa@users.noreply.github.com>

Co-authored-by: anenasa <84259093+anenasa@users.noreply.github.com>
(cherry picked from commit 3547d0142f96c44da7fe1ee5bd6424fea679efa6)
2022-07-20 11:33:27 -04:00
f1998f1998
c69f53a8f4 fix concurrent download (#7552)
* Fix concurrent download

* lower Concurrency

* artist Update app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt

Co-authored-by: Vetle Ledaal <vetle.ledaal@gmail.com>

Co-authored-by: Vetle Ledaal <vetle.ledaal@gmail.com>
(cherry picked from commit b635f02d93502f1021f0fe87533dfd96d052ed2f)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt
2022-07-19 12:39:08 -04:00
arkon
bc208bac30 Replace some usages of RxJava
(cherry picked from commit 788583e66f6ad355f65f5bd2db303faa85163c5c)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourcePresenter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/Pager.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
2022-07-11 11:45:19 -04:00
arkon
bbdab4a703 Add MIME type mapping for image/jxl (fixes #7117)
(cherry picked from commit 591df8abccba95031a670b1ef761fb522b0c0517)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/util/system/ImageUtil.kt
2022-07-08 21:52:57 -04:00