5067 Commits

Author SHA1 Message Date
arkon
c615f4d458 Release v0.14.6 2023-04-16 11:00:14 -04:00
Eshlender
7115a9b9fe Update track domain shikimori.me (#9333)
shikimori.me

(cherry picked from commit 564a0980b99183bb2b73999c17a4c6603c008f05)
2023-04-16 10:53:01 -04:00
arkon
fd8b97fc87 Better handle overflowing content in MigrateDialog actions
Fixes #9207

(cherry picked from commit b7cd7b8b4e7a2f0a544f36f40b2e352286f739b2)
2023-04-16 10:52:53 -04:00
arkon
4dd67e4348 Save current chapter progress when navigating to adjacent chapters
Fixes #9295

(cherry picked from commit 776d36caf11cf29287e4cb86a6e64574a296f89c)
2023-04-16 10:52:42 -04:00
arkon
38428c6ebe Show proper string in manga detail screen for SourceNotInstalledException
(cherry picked from commit 14d1bcacc9cba0e14cdf90a7972bf85660465c0b)
2023-04-16 10:51:05 -04:00
arkon
bf85e147e7 Set default automatic library updates to off
(cherry picked from commit abd23b68266a296c9698ba89f0cb665bbe9a799d)
2023-04-16 10:50:55 -04:00
arkon
d2dd34c2e5 Use queued last chapter read number when performing delayed tracker update
Fixes #8876

(cherry picked from commit f7f2072621bbcaf4ddbe07f746a5cf78490c95c9)
2023-04-16 10:50:24 -04:00
arkon
aa2ec5940f Avoid crashing in SourcePreferencesScreen if source can't be loaded
(cherry picked from commit 4efca047658761e54cc7574a6e33ed681de3f40a)
2023-04-16 10:49:11 -04:00
arkon
79323de326 Avoid crash in DeleteLibraryMangaDialog
No clue why it ever gets a -1 index though.

(cherry picked from commit b12c7cf9633a9fc3a728a0ef44b5d50d621a7595)
2023-04-16 10:49:05 -04:00
Two-Ai
08e6487a9a Fix download queue page count display bug (#9126)
When restarting a download, the page count would display as 0 until
the first page download completion, after all the existing pages were
rechecked.

To fix, calculate downloadedImages from pages instead of relying on
the downloader to reset and increment the count.

(cherry picked from commit 779df32e98f2a020ca6a4f79c0748dd9f5b16873)
2023-04-16 10:48:16 -04:00
arkon
6f2bb18d72 Avoid crash when loading invalid extension package
(cherry picked from commit 3d7c136320da3b5842a51d7dbb9e82cf74144f3f)
2023-04-16 10:47:58 -04:00
arkon
b690de55e5 Release v0.14.5 2023-02-19 15:25:35 -05:00
arkon
83fda20078 Avoid crashes if headers can't be built for usage in WebView
(cherry picked from commit ec49411bee9d7099e13685a02d54edabed863557)
2023-02-19 11:52:09 -05:00
arkon
f656a37045 Avoid crashing if getChapterUrl is not implemented
Fixes #9105

(cherry picked from commit ceaf579cb0b4b0ecdf2e56f245a2fad2b6ed2e85)
2023-02-19 11:51:53 -05:00
Ivan Iskandar
c58b495433 MainActivity: Avoid navigator-related crash when handling onNewIntent (#9104)
(cherry picked from commit d3dadf71e8d7d029fdb87b44217e001f95f21c1a)
2023-02-19 11:51:44 -05:00
arkon
242aeb6a68 Avoid crashing if opening browse with unavailable source
(cherry picked from commit 0ef7650c1a0ae7c4c6e17e458695191ce78944cb)
2023-02-19 11:50:33 -05:00
Two-Ai
d9969cea8a Fix ID type mismatch in MigrateSearchScreenModel (#9090)
`it.id` is the source ID of the source being sorted.
`state.value.manga!!.id` is the manga ID of the selected manga.
`state.value.manga!!.source` is the source ID of the selected manga.

(cherry picked from commit dc2eaf07882ce1e7acaea9de7eb26de331ef6c77)
2023-02-19 11:50:26 -05:00
arkon
d61db5931e Move reader preloading to IO scope
Maybe fixes #8440

(cherry picked from commit e052bdef96c133b92dfad214c2b05ab03d4c5866)
2023-02-19 11:50:05 -05:00
arkon
0ea3ac9807 Avoid preload download check if chapter is already loaded or loading
Maybe fixes #8953, #9060

(cherry picked from commit d522d6d545bfbd4e4f8f60975bddcd5f6bcc69ac)
2023-02-19 11:49:58 -05:00
Ivan Iskandar
f9e43f574f MangaCoverDialog: Disable memory cache (#9066)
(cherry picked from commit 1671a56f42c4bb1de3482c2ff264593531e5d39d)
2023-02-19 11:49:51 -05:00
arkon
5ef11e61d0 Prioritize finding selected chapter when deduping reader chapters
Fixes #9054

(cherry picked from commit 23432e44050cd8638f070745edf77be75aeffe21)
2023-02-19 11:49:44 -05:00
Ivan Iskandar
48546c3db4 Scaffold: Fix snackbar bottom inset (#9052)
(cherry picked from commit 34a586ce48d6c10ac9eadb697b955ba336044bc2)
2023-02-19 11:49:38 -05:00
Ivan Iskandar
4d87ed496c Remove FAB extra padding in DownloadQueueScreen (#9053)
(cherry picked from commit ad762f8303f2cc37bd2b78fc366b01b80bbc012b)
2023-02-19 11:49:32 -05:00
0x7673
06d12e6562 Fix crash in library when selected category is deleted (#9044)
(cherry picked from commit 13bb45b4bee6e31685d47a4157e10bcedf111bf0)
2023-02-19 11:49:24 -05:00
arkon
477e3d9b94 Release v0.14.4 2023-02-05 10:35:15 -05:00
arkon
3c16082636 Don't show SourceNotInstalledException name in error snackbar 2023-02-05 10:23:30 -05:00
arkon
29aee68ec7 Revert "Show no pinned sources message when attempting to migrate/search"
This reverts commit 6bb3070c578a330a98ca387a1f31c64bf6e31eb6.

This doesn't quite work correctly, so reverting for now.
We'll have to have more robust states or something to deal with this in the
future.
2023-02-05 10:20:19 -05:00
stevenyomi
589bdba0b1
Show exception class in snackbar message (#9006)
* Show exception class in snackbar message

* omit IOException too
2023-01-31 22:36:53 -05:00
Two-Ai
aca65f13bb
Misc Service cleanup (#9005)
* Simplify DownloadService wake lock handling

_isRunning is only modified in onCreate/onDestroy, so the listener
job is redundant.

* Drop superclass calls to Service.onCreate/onDestroy

From https://developer.android.com/guide/components/services
> Note: Unlike the activity lifecycle callback methods, you are not
> required to call the superclass implementation of these callback
> methods.
2023-01-30 17:25:54 -05:00
Andreas
b00f00730d
Set InsertPage status to Ready (#9001)
Fixes insert page just loading
2023-01-29 09:03:12 -05:00
arkon
f2c48480b6 Move some interactors to domain module 2023-01-27 22:37:17 -05:00
arkon
1730dd6af1 Move more things around 2023-01-27 22:31:12 -05:00
Andreas
2501fef9e4
Split UpdatesGridGlanceWidget into smaller bits (#8991)
- Renamed Composables
- Moved Constants to core module
2023-01-27 14:49:57 -05:00
Andreas
12e41b6e6f
Move Glance Widget to seperate module (#8989)
Move Widget to seperate module

- Create a core module for presentation. Widget and App will share some resources and hopefully composables
2023-01-26 17:53:24 -05:00
beerpsi
c892c793a8
[BackupRestorer] Handle uncompressed backups (#8988)
[Backups] Handle uncompressed backups
2023-01-26 09:14:18 -05:00
Two-Ai
3a82b4d924
Don't crash on timeout in renewCache() (#8986)
Fixes #8962.

withTimeout throws a TimeoutCancellationException if the timeout
expires. To avoid crashing renewalJob when there are no extensions,
use withTimeoutOrNull which does not throw on timeout.
2023-01-25 18:18:17 -05:00
Two-Ai
b4b3a4d286
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.
2023-01-25 18:18:12 -05:00
stevenyomi
448702e5be
OkHttp Call: split await() and awaitSuccess() (#8980) 2023-01-24 22:34:31 -05:00
Two-Ai
2ef1f07aae
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
2023-01-23 17:10:44 -05:00
stevenyomi
1a319601de
Fix extension search query cursor and debounce (#8972)
* Fix extension search query cursor

* debounce

* extract debounce constant
2023-01-22 16:19:46 -05:00
Andreas
cdf242e8c8
Move more to data and domain modules (#8973) 2023-01-22 16:19:22 -05:00
Andreas
aee785a8bb
Move more implementation to data module (#8971) 2023-01-22 11:44:39 -05:00
arkon
d45fc1e245 Move more models to domain module 2023-01-22 11:04:50 -05:00
arkon
14500ba4f8 Move more repositories to domain module 2023-01-22 10:59:52 -05:00
arkon
345e9c2a9a Move more models to domain module 2023-01-22 10:54:28 -05:00
arkon
b53e24e0db Move more models to domain module 2023-01-22 10:37:13 -05:00
Andreas
d3a73fc228
Move Category model and repository to domain and data layer (#8967)
To keep the commit from being 100+ files the interactors wasn't moved.

The domain module like the data module uses `tachiyomi` instead of `eu.kanade.tachiyomi` for package names
2023-01-22 10:12:29 -05:00
arkon
2ebc8d9ae5 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.
2023-01-21 20:18:12 -05:00
zbue
e28b015580
MangaScreenModel: Make download function follow reader preference (#8920)
* Make download function more clearer in manga screen

Maybe resolves #8879

* Minor cleanup

* Minor cleanup 2
2023-01-21 16:47:22 -05:00
Two-Ai
e4bc8990fb
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.
2023-01-21 16:46:16 -05:00