852 Commits

Author SHA1 Message Date
Jobobby04
d8c2baa135 Fixes to center margin option 2023-04-16 13:10:43 -04:00
Trace
f5abcbb8bb fix: skip duplicate chapters on download ahead if option to skip duplicates is enabled (#9334)
* fix: skip duplicate chapters on download ahead if option is enabled

* fix: Use a function to filter duplicates

(cherry picked from commit 4816b4b53afa6db5dfaa2b023a4896e31425f97c)
2023-04-15 23:04:45 -04:00
arkon
4f984cef5f Save current chapter progress when navigating to adjacent chapters
Fixes #9295

(cherry picked from commit 776d36caf11cf29287e4cb86a6e64574a296f89c)
2023-04-09 18:51:57 -04:00
RS156
527a7b40e5 Make center zoom start vertically centered too (#8849)
Update ReaderPageImageView.kt

"true center" Zoom start position #8747.
Changed zoom position to get true center value.

(cherry picked from commit 274218cf228f5dfade2a11f053bb4fe1a7d11ed8)
2023-04-09 18:50:03 -04:00
arkon
9ddd17496b Refactor away some unnecessary lambda expressions
(cherry picked from commit be54b8862e53af94f08549cbfae0afb2cc4c2f3e)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreen.kt
2023-04-09 18:46:06 -04:00
arkon
86651ccf5e Skip POST_NOTIFICATIONS permission check for now
Fixes #9265

(cherry picked from commit 198604227788444f374b8702076b95fb593c8657)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/App.kt
2023-04-09 18:38:04 -04:00
Two-Ai
2815068a00 Cleanup Preference.asHotFlow() (#9257)
* Drop duplicate initial call in Preference.asHotFlow

Preference.changes() always starts by returning the current value of
the preference, so asHotFlow calls block twice on the initial value.

Possible breaking change: As implemented, asHotFlow ran block(get())
before returning the flow. After this change, the first call to block
will run within the flow collection. This might cause concurrency
issues if the flow collection is late to execute.

* Inline Preference.asHotFlow

The Preference.changes().onEach().launchIn() pattern is used widely,
so the asHotFlow extension method is redundant.

(cherry picked from commit 35d381144d010be47566ee480c311c3d13952822)
2023-04-09 18:33:32 -04:00
arkon
0b37ce8baf Add TODO to default to 32-bit color at some point
Originally proposed in #8959

(cherry picked from commit 8d7a7919a9bc4b3e2242486c16d0c8b947e8ab64)
2023-04-09 18:14:55 -04:00
arkon
880b06dd3b Add "Rotate wide pages to fit" setting for paged reader
Originally authored in #7983

Co-authored-by: timothyng-164 <timothyng-164@users.noreply.github.com>
(cherry picked from commit 953720472fe64ef488ecae7ae7fea453b8c7c68b)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderReadingModeSettings.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt
#	app/src/main/res/layout/reader_pager_settings.xml
2023-04-09 18:14:48 -04:00
arkon
cad8fe1fa0 Bump dependencies
(cherry picked from commit cb4699a5bb1e940292db57c738ae26ceb612f5bb)
2023-04-09 18:10:55 -04:00
arkon
42146b6d1e Misc cleanup
(cherry picked from commit 3cca4602829fd706c5b850bcf45d472ee95b2a38)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/source/SourceExtensions.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt
2023-03-20 18:57:43 -04:00
Jobobby04
a92392231c Move some things to the domain module 2023-03-16 20:18:41 -04:00
Daniel
82f0e5bc01
Smooth Automatic Scrolling for Webtoon (#777) 2023-03-15 17:42:25 -04:00
Jays2Kings
520846c75e
Fix double page progress when changing orientation (#799)
* Fix double page when changing orientation

* Fix requested page, when device config changes when app is in BG

* Cleanup on save reader logic
2023-03-15 17:40:52 -04:00
arkon
6fbf250796 Move more things to domain/data modules
(cherry picked from commit bebd4be43d73617de2cfbc1ff4289e81f535a8e6)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt
#	app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsGeneralScreen.kt
#	app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/AppModule.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/home/HomeScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
#	data/src/main/java/tachiyomi/data/source/EHentaiPagingSource.kt
#	data/src/main/java/tachiyomi/data/source/SourcePagingSource.kt
#	domain/build.gradle.kts
#	domain/src/main/java/tachiyomi/domain/category/interactor/SetDisplayModeForCategory.kt
#	domain/src/main/java/tachiyomi/domain/category/interactor/SetSortModeForCategory.kt
#	domain/src/main/java/tachiyomi/domain/history/interactor/GetHistoryByMangaId.kt
#	domain/src/main/java/tachiyomi/domain/library/service/LibraryPreferences.kt
2023-03-15 00:23:28 -04:00
arkon
e4ad723606 Refactor SourceManager/StubSource to domain module
(cherry picked from commit ad4912803bda73e0f1d5e2e0246561a508e72fd7)

# Conflicts:
#	app/src/main/java/eu/kanade/data/source/SourceRepositoryImpl.kt
#	app/src/main/java/eu/kanade/presentation/browse/BrowseSourceScreen.kt
#	app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/AppModule.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/AndroidSourceManager.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/SourcePreferencesScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateDialog.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesScreenModel.kt
2023-03-14 23:35:34 -04:00
arkon
0c037cb89d Move some preferences into domain module
(cherry picked from commit f96f0c58890c0cdc7c2f8142c42db2dbc8fdcbb2)

# 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/backup/BackupManager.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt
2023-03-14 23:14:51 -04:00
Andreas
b5b5dd0e81 Move Local Source to separate module (#9152)
* Move Local Source to separate module

* Review changes

(cherry picked from commit f27dc19b378f2f38ed2885f40d93f6d8817ef584)

# Conflicts:
#	app/src/main/java/eu/kanade/domain/source/interactor/GetEnabledSources.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/source/SourceManager.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SourceSearchScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt
#	core/src/main/java/tachiyomi/core/util/system/ImageUtil.kt
#	source-local/src/main/java/tachiyomi/source/local/LocalSource.kt
2023-03-14 22:10:00 -04:00
arkon
efca899165 Move chapter utils to domain module
(cherry picked from commit ee818bc7c543e8f4b799f18b989817906ac195ab)

# Conflicts:
#	app/src/main/java/eu/kanade/domain/chapter/interactor/SyncChaptersWithSource.kt
#	app/src/main/java/eu/kanade/domain/chapter/model/ChapterFilter.kt
#	app/src/main/java/eu/kanade/domain/history/interactor/GetNextChapters.kt
2023-03-05 15:12:20 -05:00
arkon
259b8f383f Move more things to domain module
(cherry picked from commit f816196df29ee9744e93470df48b2f7f24ae18f7)

# Conflicts:
#	app/src/main/java/eu/kanade/domain/history/interactor/GetNextChapters.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt
#	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
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
2023-03-05 15:05:35 -05:00
arkon
366219d7f5 Avoid crashing if getChapterUrl is not implemented
Fixes #9105

(cherry picked from commit ceaf579cb0b4b0ecdf2e56f245a2fad2b6ed2e85)
2023-03-05 14:33:25 -05:00
Two-Ai
725a66f078 Remove RxJava in PageHolder (#9103)
Inline readImageHeaderSubscription in PageHolder

Inline readImageHeaderSubscription in PagerPageHolder and
WebtoonPageHolder by converting setImage() into a suspend function.
The image processing runs in the loadPageAndProcessStatus
continuation.

Use suspendCancellableCoroutine as a substitute for doOnUnsubscribe
in WebtoonPageHolder.
Closing openStream after the frame.setImage but before the PageHolder
is recycled causes the page display to fail for reasons that are not
currently understood.

Remove subscription handling from WebtoonViewer/WebtoonBaseHolder as
it is no longer used.

(cherry picked from commit ffa8c8fd0746863e08b839f9d91102fe6d5d7887)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonPageHolder.kt
2023-03-05 14:29:06 -05:00
Two-Ai
288fe0d888 Simplify PageHolder load Job (#9086)
Inline statusJob into loadJob, using supervisorScope to load the page
and track status changes in parallel.
- supervisorScope does not complete until both the child loadPage
  coroutine and statusFlow.collectLatest have completed.
- Cancelling supervisorScope cancels the child loadPage coroutine and
  statusFlow.collectLatest.
- Use supervisorScope instead of coroutineScope to let status
  collection continue if loadPage fails.

Inline progressJob into loadJob, using collectLatest's cancellation
to avoid cancelling the progressFlow collection explicitly.
- collectLatest cancels the previous action block when the flow
  emits a new value. This means the DOWNLOAD_IMAGE
  progressFlow.collectLatest gets automatically cancelled when
  statusFlow emits a new state.

Convert launchLoadJob to suspend function, move job launch to caller,
and rename as loadPageAndProcessStatus.

(cherry picked from commit 4635e58405eedce0b49fc69f7ccb190a7c600da9)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt
2023-02-26 21:37:26 -05:00
arkon
ab8c8db6ac Move reader preloading to IO scope
Maybe fixes #8440

(cherry picked from commit e052bdef96c133b92dfad214c2b05ab03d4c5866)
2023-02-26 20:58:45 -05:00
arkon
b42c5b58ea Avoid preload download check if chapter is already loaded or loading
Maybe fixes #8953, #9060

(cherry picked from commit d522d6d545bfbd4e4f8f60975bddcd5f6bcc69ac)
2023-02-26 20:58:36 -05:00
arkon
255eda6d8e Prioritize finding selected chapter when deduping reader chapters
Fixes #9054

(cherry picked from commit 23432e44050cd8638f070745edf77be75aeffe21)
2023-02-26 20:53:13 -05:00
Andreas
c5095b0995 Set InsertPage status to Ready (#9001)
Fixes insert page just loading

(cherry picked from commit b00f00730d93ae36cdbb690f3c33698b086d4407)
2023-02-09 18:15:29 -05:00
arkon
8146e1181a Move some interactors to domain module
(cherry picked from commit f2c48480b687d4e01350e580a5648ae52bd5d107)

# Conflicts:
#	app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateDialog.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
2023-02-09 18:15:16 -05:00
arkon
bd0eda0c65 Move more things around
(cherry picked from commit 1730dd6af1f5a9e6f8752a2350b1bd153262a751)

# Conflicts:
#	app/src/main/java/eu/kanade/data/source/SourcePagingSource.kt
#	app/src/main/java/eu/kanade/domain/chapter/interactor/SetReadStatus.kt
#	app/src/main/java/eu/kanade/domain/library/service/LibraryPreferences.kt
#	app/src/main/java/eu/kanade/domain/manga/interactor/GetManga.kt
#	app/src/main/java/eu/kanade/presentation/more/settings/PreferenceItem.kt
#	app/src/main/java/eu/kanade/presentation/more/settings/screen/AboutScreen.kt
#	app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/App.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.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/data/updater/AppUpdateChecker.kt
#	app/src/main/java/eu/kanade/tachiyomi/extension/api/ExtensionGithubApi.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateDialog.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/more/MoreTab.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/HttpPageLoader.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewerAdapter.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/util/CrashLogUtil.kt
#	data/src/main/java/tachiyomi/data/manga/MangaRepositoryImpl.kt
2023-02-09 18:08:07 -05:00
Andreas
83e23dedae Split UpdatesGridGlanceWidget into smaller bits (#8991)
- Renamed Composables
- Moved Constants to core module

(cherry picked from commit 2501fef9e4800e6a616b418d1cbec0ea2b9e282e)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SourceSearchScreen.kt
2023-02-09 17:43:44 -05:00
Two-Ai
acc3e16230 Fixup HttpPageLoader _loadPage (#8984)
Fixup for e4bc8990 (#8955)

HttpSource.fetchImage() uses Call.asObservableSuccess(), which
cancels the call on unsubscribe. This causes the call to be cancelled
before it is used, leading to a "java.net.SocketException: Socket is
closed" when trying to use the response in putImageToCache().

To fix this, use Call.awaitSuccess() via a new HttpSource.getImage()
suspending function. This addition to source-api is only intended for
app use, so it will not be added to the extensions-api stubs.

(cherry picked from commit b4b3a4d2869fae7839b4b3111e289056e33cfea8)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/HttpPageLoader.kt
2023-02-09 17:27:31 -05:00
Two-Ai
1948545983 Replace PageLoader.getPage() with PageLoader.loadPage() (#8976)
* Follow page status via StateFlow

Keep getPage subscription since it's needed to load the pages

* Replace PageLoader.getPage with PageLoader.loadPage

(cherry picked from commit 2ef1f07aaea0852c13a4eb4096ac96c8aa507c39)

# Conflicts:
#	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
2023-02-09 17:13:29 -05:00
Jobobby04
dd62337ad6 Move more repositories to domain module 2023-02-09 15:10:37 -05:00
arkon
ce67eb9de3 Move more models to domain module
(cherry picked from commit 345e9c2a9a61f1f3b814db52eddbb42681499854)

# Conflicts:
#	app/src/main/java/eu/kanade/data/manga/MangaMapper.kt
#	app/src/main/java/eu/kanade/domain/chapter/interactor/SyncChaptersWithSource.kt
#	app/src/main/java/eu/kanade/domain/chapter/model/ChapterFilter.kt
#	app/src/main/java/eu/kanade/domain/history/interactor/GetNextChapters.kt
#	app/src/main/java/eu/kanade/domain/library/service/LibraryPreferences.kt
#	app/src/main/java/eu/kanade/domain/manga/model/Manga.kt
#	app/src/main/java/eu/kanade/presentation/browse/MigrateSearchScreen.kt
#	app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceDialogs.kt
#	app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt
#	app/src/main/java/eu/kanade/tachiyomi/data/database/models/Manga.kt
#	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
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SourceSearchScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/history/HistoryTab.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt
#	app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterGetNextUnread.kt
2023-02-09 13:44:38 -05:00
arkon
eb3e928e67 Move more models to domain module
(cherry picked from commit b53e24e0dbd4affd6066a03ce543c3ecc88bdb99)

# Conflicts:
#	app/src/main/java/eu/kanade/data/history/HistoryRepositoryImpl.kt
#	app/src/main/java/eu/kanade/data/updates/UpdatesMapper.kt
#	app/src/main/java/eu/kanade/domain/category/interactor/SetDisplayModeForCategory.kt
#	app/src/main/java/eu/kanade/domain/category/interactor/SetSortModeForCategory.kt
#	app/src/main/java/eu/kanade/domain/history/repository/HistoryRepository.kt
#	app/src/main/java/eu/kanade/domain/library/service/LibraryPreferences.kt
#	app/src/main/java/eu/kanade/presentation/browse/components/BrowseSourceToolbar.kt
#	app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt
#	app/src/main/java/eu/kanade/tachiyomi/source/SourceManager.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateDialog.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
#	domain/src/main/java/tachiyomi/domain/history/model/HistoryWithRelations.kt
#	domain/src/main/java/tachiyomi/domain/updates/model/UpdatesWithRelations.kt
2023-02-09 13:00:07 -05:00
arkon
4ee66f6185 Save current page state on configuration change
Fixes #8881

The actual issue is that the ViewModel migration actually differs between what the current `init` block
and previous `onSave` methods did; where the `init` block does not get triggered on saving the
instance on config changes.

Not entirely sure why onSaveInstanceState was explicitly avoided for config changes before, but we
just do it all the time now and end up updating the requestedPage with the current page.

(cherry picked from commit 2ebc8d9ae51f84b0f69dee603a5448a72013f734)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt
2023-02-07 17:06:10 -05:00
Two-Ai
4965da340b Replace RxJava in HttpPageLoader downloader (#8955)
* Convert downloader Observable to flow

Uses `runInterruptible` to turn the blocking call to `queue.take()`
into a cancellable call.

Flow collection is ended by cancelling the scope in `recycle`. This
means the `HttpPageLoader` can't be reused after calling `recycle`,
but this was true with the `Observable` as well.)

* Convert load Observables to suspending function

Inlining the Observables allows for some simplification of the error
handling. Behavior should be otherwise identical.

* Convert cleanup Completable to coroutine

Uses global `launchIO`, not ideal but similar to previous behavior.
Can't be scheduled on the local `scope` as this runs after `scope` is
cancelled.

(cherry picked from commit e4bc8990fbe2aa4bc31977f1061bac0c70d7a58f)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/HttpPageLoader.kt
2023-02-07 16:55:26 -05:00
arkon
354bb2fd83 Don't use platform attributes for white/black reader backgrounds
Probably fixes #8946

(cherry picked from commit 7a972dfdb7cfb7578b3f9dd63ba0fdcb77b16b24)
2023-02-07 16:11:37 -05:00
arkon
1fd8021e98 Hide WebView menu item in reader if local
Closes #8932

(cherry picked from commit 1a4dad72a9e7e5eb5326f5846c50698fe2bb6673)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt
2023-02-07 15:58:13 -05:00
Two-Ai
e4ab74d2e4 Convert PageLoader.getPages to suspending function (#8917)
(cherry picked from commit 58ebf146919694170af0d0044a9dde56668fa543)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/HttpPageLoader.kt
2023-02-07 15:54:25 -05:00
Verzaukeks
eff93b8e7c Prevent scrolling outside bounds in webtoon/vertical reading mode (#8821)
(cherry picked from commit 992bab4f7956740bafd8227b29958acebfaae64d)
2023-02-07 15:42:14 -05:00
Two-Ai
843c0a4588 Replace RxJava in ChapterLoader and ReaderViewModel (#8915)
* Replace RxJava in ChapterLoader

* Don't swallow CancellationException

* Simplify loadChapter behavior

* Add error handling to loadAdjacent

(cherry picked from commit 62480f090b3007487b7125c6a2cd63a6103486cc)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ChapterLoader.kt
2023-02-07 14:29:07 -05:00
zbue
a7fefb4c9c Show chapter scanlator on reader transition (#8910)
Closes #7131

(cherry picked from commit 287489d7d07881cdfcb0494c4c9d6163d63d2fce)
2023-02-07 14:04:28 -05:00
Two-Ai
68609b38b0 Fix DownloadPageLoader resource leak (#8905)
The underlying ZipFile is leaking. To fix, store a reference to the
ZipPageLoader and recycle it on recycle.

(cherry picked from commit 8c494f314cf77e54675f8d9742d50ed0ef94df59)
2023-02-07 14:04:00 -05:00
arkon
864707d75b Minor cleanup
(cherry picked from commit a2ee4e63ae3bb2949c57d11a23bc56315579f891)
2023-02-07 13:57:15 -05:00
MCAxiaz
97f3148e4c Add Reader Setting to Skip Dupe Chapters (#8831)
Add reader setting to filter dupe chapters with same scanlator priority.

(cherry picked from commit cf393b217b7a03f4c543c1dac118ddedf5552823)
2023-02-07 13:05:29 -05:00
arkon
1a09fde22c Avoid crashes when fetching assist content URL in ReaderActivity
(cherry picked from commit e265b929a19d3258cbe305d5b4a2d2bdcf1eb9ec)
2023-02-07 13:05:22 -05:00
arkon
f5b03a3a4b Avoid crashes when opening WebView from reader
Also ensure WebViewActivity has an Assistant URL when it first opens with a URL.

(cherry picked from commit 425e48bec6edf6ea30d13dc8d46b79899122c61b)
2023-02-07 12:39:27 -05:00
stevenyomi
9f9cbecb49 Fix reader settings sheet's mode section not updated (#8857)
(cherry picked from commit 2a3c3d8d6afa12f6e022acba8692167e5fe1593a)

# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
2023-02-07 12:38:56 -05:00
stevenyomi
16093a6d6d Fix floating-point error in navigate pan (#8856)
(cherry picked from commit 7b026cec8d1e113f03c15642cba3d3c9601cd65e)
2023-02-07 12:38:26 -05:00