Commit Graph

660 Commits

Author SHA1 Message Date
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
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
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
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
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
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
arkon 7a972dfdb7 Don't use platform attributes for white/black reader backgrounds
Probably fixes #8946
2023-01-18 22:49:28 -05:00
arkon 1a4dad72a9 Hide WebView menu item in reader if local
Closes #8932
2023-01-16 22:40:36 -05:00
Two-Ai 58ebf14691 Convert PageLoader.getPages to suspending function (#8917) 2023-01-14 19:45:15 -05:00
Verzaukeks 992bab4f79 Prevent scrolling outside bounds in webtoon/vertical reading mode (#8821) 2023-01-14 18:38:52 -05:00
Two-Ai 62480f090b Replace RxJava in ChapterLoader and ReaderViewModel (#8915)
* Replace RxJava in ChapterLoader

* Don't swallow CancellationException

* Simplify loadChapter behavior

* Add error handling to loadAdjacent
2023-01-14 18:22:27 -05:00
zbue 287489d7d0 Show chapter scanlator on reader transition (#8910)
Closes #7131
2023-01-14 17:00:04 -05:00
Two-Ai 8c494f314c Fix DownloadPageLoader resource leak (#8905)
The underlying ZipFile is leaking. To fix, store a reference to the
ZipPageLoader and recycle it on recycle.
2023-01-13 22:30:47 -05:00
arkon a2ee4e63ae Minor cleanup 2023-01-12 22:53:28 -05:00
MCAxiaz cf393b217b Add Reader Setting to Skip Dupe Chapters (#8831)
Add reader setting to filter dupe chapters with same scanlator priority.
2023-01-08 15:40:23 -05:00
arkon e265b929a1 Avoid crashes when fetching assist content URL in ReaderActivity 2023-01-08 15:23:06 -05:00
arkon 425e48bec6 Avoid crashes when opening WebView from reader
Also ensure WebViewActivity has an Assistant URL when it first opens with a URL.
2023-01-08 10:17:54 -05:00
stevenyomi 2a3c3d8d6a Fix reader settings sheet's mode section not updated (#8857) 2023-01-07 15:13:08 -05:00
stevenyomi 7b026cec8d Fix floating-point error in navigate pan (#8856) 2023-01-07 15:09:10 -05:00
stevenyomi 0861c5618c Fix reader settings sheet not updated (#8854)
* Revert "Recreate reader settings when opening sheet (#8054)"

This reverts commit acb8ab15b2.

* Revert "Fix stacking of Settings menu in the reader on multiple taps (#8002)"

This reverts commit 30ac94181b.

* Fix reader settings sheet not updated
2023-01-07 14:25:30 -05:00
Two-Ai 920ca405a2 Use MainScope for coroutines in ui package classes (#8845) 2023-01-07 10:07:09 -05:00
arkon 0e2bdb7863 Minor cleanup 2022-12-17 12:02:01 -05:00
Two-Ai 593172f891 Track Page progress with StateFlow (#8749)
* Update ReaderProgressIndicator documentation

ReaderProgressIndicator is not always determinate (cc554530, #5605).

* Track Page progress with StateFlow
2022-12-16 22:18:50 -05:00
arkon 90db3acefd Don't start at last read page if chapter is completely marked as read
Fixes #8737
2022-12-14 23:04:30 -05:00
arkon 2f2f59279d Fix crash if tapping title when opening reader directly 2022-12-14 22:54:51 -05:00
arkon 3749cee28f Add Assistant content URLs
This is surfaced in recents on Pixel devices for example.
Docs: https://developer.android.com/guide/app-actions/assistant-sharing

Co-authored-by: Jays2Kings <Jays2Kings@users.noreply.github.com>
2022-12-10 12:08:39 -05:00
Ivan Iskandar 82a3a98a5a Adjust screen transitions (#8707)
* Fade transition between main navigation tabs
* Shared axis X between screen stacks

Activity transition is using a "close enough" shared axis X xml animation
2022-12-09 17:23:00 -05:00
arkon f8e4153dbf Disable Jetifier 2022-12-07 23:06:25 -05:00
Ivan Iskandar f7a92cf6ac Replace reader's Presenter with ViewModel (#8698)
includes:
* Use coroutines in more places
* Use domain Manga data class and effectively changing the state system
* Replace deprecated onBackPress method

Co-authored-by: arkon <arkon@users.noreply.github.com>
2022-12-07 23:00:01 -05:00
Two-Ai 6ca32710be Cleanup Page status (#8696)
* Cleanup Page statusSubject and statusCallback

* Convert Page status from Int to enum
2022-12-07 18:28:38 -05:00
arkon 99a717f849 Hide webtoon reader scrollbars
Fixes #8676
2022-12-04 18:09:37 -05:00
arkon 696dc59ea5 More domain model migrations 2022-12-03 22:54:18 -05:00
arkon beda99bbe0 Replace RxJava in ReaderChapter and reader transitions 2022-12-02 23:36:33 -05:00
arkon bb1e7816e1 Replace some usages of RxJava in reader 2022-12-02 23:11:42 -05:00
Ivan Iskandar 3d66eaea83 Merge Voyager screens (#8656)
* Merge Voyager screens

* cleanups
2022-12-02 22:35:30 -05:00
arkon 5313a5d5d2 Remove unnecessary base Nucleus classes
The reader still uses it, but we just move stuff to there.
2022-12-02 13:23:26 -05:00
AntsyLich ba91b483a0 Delayed Tracking Update related fix (#8642)
* Delayed Tracking Update related fix

* Lint
2022-12-01 23:01:24 -05:00
arkon 3480b45098 Minor cleanup 2022-11-27 17:12:45 -05:00
arkon 4f2a794fba Remove dead code 2022-11-27 15:09:37 -05:00
arkon 7e74949d38 Explicitly add READ_APP_SPECIFIC_LOCALES permission
Some devices are throwing a SecurityException (calling getApplicationLocales) for some reason.
2022-11-25 23:03:42 -05:00
arkon 2c850d0e33 Fix invert tapping dropdown not updating checked state in reader
Fixes #8566
Should ideally just Compose-ify it all some day.
2022-11-20 15:12:51 -05:00
AntsyLich ba2a528886 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
2022-11-18 22:27:39 -05:00
arkon c6c4c1c393 Migrate to more domain model usages 2022-11-10 22:42:44 -05:00
arkon 8749be518f Adjust read next history logic
Closes #8454
2022-11-05 10:37:32 -04:00
arkon 642b392d44 Fix crash in ReaderReadingModeSettings when reverse portrait orientation is set 2022-10-30 23:10:59 -04:00
arkon fc184f1cfa 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)
2022-10-30 16:59:33 -04:00
stevenyomi 4b60138d41 Clean up strings and icons (#8326)
* Clean up strings and icons

* fix incorrect usages of label_more

* restore strings and reduce usage of android.R

* removing icon desc of FABs anyway as app's not for visual impaired users
2022-10-29 11:43:51 -04:00