Commit graph

6020 commits

Author SHA1 Message Date
Ivan Iskandar
2c6e025063
Add more info to debug screen (#9357)
* App version
* WebView version
* ART profile status
* Device model
* Android version
2023-04-18 22:59:27 -04:00
arkon
97e6f1ea9a
Upgrade to AGP 8.0.0 (#9351) 2023-04-16 18:02:24 -04:00
arkon
5c1a81d8ca Merge branch 'patch' 2023-04-16 11:09:22 -04:00
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 564a0980b9)
2023-04-16 10:53:01 -04:00
arkon
fd8b97fc87 Better handle overflowing content in MigrateDialog actions
Fixes #9207

(cherry picked from commit b7cd7b8b4e)
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 776d36caf1)
2023-04-16 10:52:42 -04:00
arkon
38428c6ebe Show proper string in manga detail screen for SourceNotInstalledException
(cherry picked from commit 14d1bcacc9)
2023-04-16 10:51:05 -04:00
arkon
bf85e147e7 Set default automatic library updates to off
(cherry picked from commit abd23b6826)
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 f7f2072621)
2023-04-16 10:50:24 -04:00
arkon
aa2ec5940f Avoid crashing in SourcePreferencesScreen if source can't be loaded
(cherry picked from commit 4efca04765)
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 b12c7cf963)
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 779df32e98)
2023-04-16 10:48:16 -04:00
arkon
6f2bb18d72 Avoid crash when loading invalid extension package
(cherry picked from commit 3d7c136320)
2023-04-16 10:47:58 -04:00
arkon
c6ac992798 Move library columns settings to library sheet
Closes #3969. Dialog-ception.
2023-04-15 19:36:49 -04:00
arkon
8ab7e63293 Add tests for MissingChapters function 2023-04-15 09:51:52 -04:00
arkon
4bcd623829 Move worker info screen into debug info menu
No need to translate anything for debug info. Dunno what else will end up in that menu in the future.
2023-04-15 09:35:22 -04:00
Trace
4816b4b53a
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
2023-04-15 09:34:02 -04:00
Ivan Iskandar
60d8650860
WheelPicker: Add manual input (#9338) 2023-04-15 09:26:33 -04:00
Eshlender
564a0980b9
Update track domain shikimori.me (#9333)
shikimori.me
2023-04-14 21:57:05 -04:00
Quickdesh
33e5f1f1a2 move player files 2023-04-10 05:03:06 -04:00
Quickdesh
c7efb5ce8e add settings option to track sheet 2023-04-10 04:48:13 -04:00
Ivan Iskandar
c1e23ec18e
GlobalSearchScreen: Skip result screen when using search intent (#9299) 2023-04-07 22:18:48 -04:00
jmir1
2c1dbdc008 remove reference to beta 2023-04-07 21:30:27 +02:00
jmir1
2daac8b976 fix restoring "full" backups with preferences 2023-04-07 21:09:29 +02:00
arkon
b7cd7b8b4e Better handle overflowing content in MigrateDialog actions
Fixes #9207
2023-04-05 22:36:57 -04:00
arkon
776d36caf1 Save current chapter progress when navigating to adjacent chapters
Fixes #9295
2023-04-05 22:29:56 -04:00
Ivan Iskandar
182e642cfc
SearchToolbar: Check initial search query to open keyboard by default (#9297) 2023-04-05 22:15:56 -04:00
arkon
d25ba23079 Fix automatic backups not working
Apparently they die if you rename a worker class.
2023-04-05 22:13:54 -04:00
Quickdesh
183107c482
Aniyomi quick fixes p2 (#961) 2023-04-05 12:18:57 +02:00
arkon
75460e01c8 Remove crash log notification in favor of sharing directly 2023-04-02 15:30:22 -04:00
RS156
274218cf22
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.
2023-04-01 14:52:15 -04:00
Ivan Iskandar
7a1b599462
Adjust SearchToolbar soft keyboard behavior (#9282)
* Show soft keyboard when the text field is composed (a redo)
* Clear focus on text field when soft keyboard is hidden
* Request focus on text field and show soft keyboard
when clear button is clicked
2023-03-31 09:24:44 -04:00
arkon
1dd62af188 Ensure EmptyScreen is scrollable
Also fix padding for loading/empty states in BrowseSourceScreen
2023-03-29 22:53:58 -04:00
Ivan Iskandar
6f1099b710
AdaptiveSheet: Wrap inside Dialog (#9279)
Because of Compose issue, the style of the sheet surface is adjusted as
a workaround

Ref https://issuetracker.google.com/issues/246909281
2023-03-29 22:34:32 -04:00
arkon
be8e2f119f Make pin source icon lighter
Closes #9274
2023-03-28 23:01:22 -04:00
arkon
18f9e5ba6b Use IO dispatcher for some screen model work
Not sure if this is an ideal approach. If it is, we could migrate more usages to this.
2023-03-28 22:52:30 -04:00
arkon
d1bf857079 Remove unnecessary withIOContext 2023-03-28 18:16:43 -04:00
arkon
be54b8862e Refactor away some unnecessary lambda expressions 2023-03-26 13:27:31 -04:00
arkon
1a61130f0b Don't attempt to initialize manga details from BrowseSource or Search screens
This was effectively DDoSing sources as it does a request for every entry to get the details (primarily a cover image).
The expectation now is that users have to open individual entries to load the details/cover if needed.
This isn't necessary for most sources, which are able to provide covers as part of the listing normally.
2023-03-26 13:12:32 -04:00
arkon
1de4bc9586 Restore POST_NOTIFICATIONS permission check for SDK 33+
Although we don't even target it yet and don't prompt for it but whatever, less work in the future.
2023-03-26 12:56:34 -04:00
arkon
1986042277 Skip POST_NOTIFICATIONS permission check for now
Fixes #9265
2023-03-26 12:34:32 -04:00
arkon
e932983494 Subscribe to changes to manga in BrowseSourceScreen
Fixes #9235
2023-03-26 12:06:12 -04:00
Two-Ai
35d381144d
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.
2023-03-26 11:52:54 -04:00
stevenyomi
0bcc22822d
Simplify code in missing chapters warning (#9263) 2023-03-26 11:50:29 -04:00
arkon
1ff78173f7 Adjust missing chapters UI 2023-03-26 10:26:58 -04:00
arkon
8d7a7919a9 Add TODO to default to 32-bit color at some point
Originally proposed in #8959
2023-03-24 22:52:18 -04:00
arkon
953720472f 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>
2023-03-24 22:49:35 -04:00
Felix Kaiser
f94d902bb6
Added missing chapters count in MangaInfoHeader (#9184)
* Added missing chapters count in MangaInfoHeader

* Added "Might be missing chapters"

* Added missing chapters to MangaAndSourceTitlesLarge function

* Removed comments

* Reworked getMissingChapters to countMissingChapters, moved -1 check

* Attempting detecting sub-chapters

* Moved MissingChapters to ChapterHeader; Adapted design to fit in

* Fixed block comment in one-line-element

* Fixed critical missing-chapter counting bug

* Undid unintentional & unnecessary changes

* Moved & refactored countMissingChapters

* Fixed import order; Mapping chapter object to chapterNumber

* Optimized "No (valid) chapters" detection

---------

Co-authored-by: arkon <arkon@users.noreply.github.com>
2023-03-24 22:44:58 -04:00
arkon
da25322572 Bump Compose dependencies 2023-03-23 22:19:43 -04:00
arkon
cb4699a5bb Bump dependencies 2023-03-22 22:58:42 -04:00
arkon
2e5efadf42 Rename Complications -> Overlay 2023-03-22 09:26:07 -04:00
arkon
ac0596a53d Revert "Always attempt to split tall images when downloading"
This partially reverts commit 2769525b2c.

Keeps the change to silently ignore spliting errors since it falls back to
the original images in those cases.
2023-03-20 08:45:36 -04:00
arkon
7ec5a51eb8 Move isLocal extension functions to LocalSource 2023-03-20 08:41:44 -04:00
arkon
3cca460282 Misc cleanup 2023-03-19 22:38:14 -04:00
arkon
d703fb7946 Split up ContextExtensions into smaller files 2023-03-19 18:27:30 -04:00
arkon
859601a46e Clean up WorkManager usages a bit 2023-03-19 18:19:40 -04:00
arkon
cdc160afc2 Convert BackupRestoreService to a WorkManager job
Co-authored-by: Jays2Kings <Jays2Kings@users.noreply.github.com>
2023-03-19 17:28:59 -04:00
arkon
14d1bcacc9 Show proper string in manga detail screen for SourceNotInstalledException 2023-03-19 17:23:51 -04:00
arkon
7d8a865cac Simplify some of the notification builders 2023-03-19 16:24:37 -04:00
Andreas
dfdb688b43
Migrate things to use newer data models (#9239)
* Remove old database models from Coil

* Remove old database models from TrackInfoDialogHome

* Remove old database models from Backup Manager
2023-03-19 13:11:58 -04:00
arkon
f3ca4e76a8 Re-enable ComicInfo.xml generation on download
Closes #8537
2023-03-19 13:02:38 -04:00
arkon
2769525b2c Always attempt to split tall images when downloading 2023-03-19 12:57:16 -04:00
arkon
843e748de3 Clean up library display settings tab a bit 2023-03-19 12:41:29 -04:00
Quickdesh
b1cd759ae0
Fixes, a bunch of em (#947)
* undo renaming of integral source api files

* fix bottom action menu

* Fix genre searching in library

* add option to default to Manga start screen

* fix categoryTab switching causing crash

* fix cancelling episode download

* fix autoOpeningTracking

* fix default download directory

* fix tracking dialog title

* fix change intro length dialog

* fix categoryTab switching causing crash pt.2
2023-03-19 00:42:04 +01:00
Alexandr Kozlinskiy
81af97df77
BrowseSource: do networkToLocal and initializeManga inside flow (#9217)
* do networkToLocal and initializeManga inside flow

* remove BrowseSourceScreenModel.GetManga
2023-03-18 09:42:44 -04:00
jmir1
40948f0948 undo deleting icons 2023-03-17 21:58:28 +01:00
jmir1
6b33c2b66d remove duplicate headers in mpv config 2023-03-17 21:29:17 +01:00
jmir1
dcae1be9f7 cleanup string resources 2023-03-17 21:26:45 +01:00
Quickdesh
d3851b0393
Move files and rename classes (#923) 2023-03-17 09:22:16 +01:00
Ivan Iskandar
18e55aa25f
Adjust tab indicator visual (#9219)
Now behaves like the non-compose indicator by showing the swipe progress too
2023-03-16 22:20:25 -04:00
Ivan Iskandar
4d3e13b0d1
Initialize download index disk cache (#9179) 2023-03-16 22:18:11 -04:00
arkon
47a2d06682 Refactor tracker status string mappings
Should fix #9195
2023-03-10 23:01:10 -05:00
jmir1
2f85b907a6 fix weird icon background, remove unnecessary files 2023-03-10 23:08:24 +01:00
Samfun75
af3a0e6937
Aniskip timestamp patch (#934) 2023-03-10 10:51:15 +01:00
Ivan Iskandar
c0f94ae8af
Revert "Fix banners-related issues" (#9186)
Revert "Fix banners-related issues (#9143)"

This reverts commit 63048d2f0b.
2023-03-09 22:10:49 -05:00
arkon
ed32a511e7 Bump dependencies 2023-03-08 22:52:19 -05:00
arkon
09acc53483 Remove download all chapters menu item
Users can still select all the chapters (long press + select all) to download them.
2023-03-07 22:38:27 -05:00
arkon
bebd4be43d Move more things to domain/data modules 2023-03-07 22:38:02 -05:00
Samfun75
fb8149d1f6
Add timestamps on seekbar for aniskip (#930) 2023-03-07 10:40:14 +01:00
arkon
9b77759f24 Use stricter visibility for composables where possible 2023-03-05 18:41:08 -05:00
arkon
e458de5e9c Add dot beside unread chapter names
Closes #4261
Also includes changes that might help with #9043
2023-03-05 17:47:27 -05:00
arkon
e917349bb7 Use Compose icons instead of drawables
Using:
- https://github.com/DevSrSouza/compose-icons
- https://github.com/DevSrSouza/compose-icons/blob/master/simple-icons/DOCUMENTATION.md
2023-03-05 15:37:41 -05:00
arkon
ad4912803b Refactor SourceManager/StubSource to domain module 2023-03-05 12:38:31 -05:00
arkon
f96f0c5889 Move some preferences into domain module 2023-03-05 12:11:47 -05:00
arkon
2b9acadc5b Move sourceMapper to data module 2023-03-05 12:05:48 -05:00
arkon
9caa0d147b Show proper message when doing global update
Fixes #9170
2023-03-05 11:07:33 -05:00
Andreas
1abf01c4a0
Convert source modules to Kotlin Multiplatform (#9172)
Use KMP in source modules 


Use KMP in source-api


Expect LocalSource
2023-03-05 10:16:19 -05:00
Two-Ai
b41565f879
Inline DownloadQueue into Downloader (#9159)
* Move statusFlow and progressFlow to DownloadManager

* Inline DownloadQueue into Downloader

* Move reorderQueue implementation to Downloader
2023-02-28 22:13:13 -05:00
Quickdesh
4014afd6fb
Player Fixes (#925)
* Player Fixes

* Player Fixes (indentation fixes)
2023-02-27 13:23:56 +01:00
Quickdesh
2ab5b64796
Pip and aniskip fixes (#921)
* fix pip

* fix aniskip when offline
2023-02-27 07:19:58 +01:00
arkon
f03a834136 Add explicit overflow menu options to refresh library category and manga chapters list
Jetpack Compose treats mouse input differently than just mimicking a touch input, so dragging doesn't actually
invoke the pull to refresh. If that changes in the future, we could consider removing these.

Doesn't seem too necessary for the extensions list, so I skipped that.

Closes #8455
2023-02-26 16:58:36 -05:00
arkon
f7f2072621 Use queued last chapter read number when performing delayed tracker update
Fixes #8876
2023-02-26 16:48:04 -05:00
arkon
5b2e937d5f Minor refactoring 2023-02-26 16:47:29 -05:00
Andreas
f27dc19b37
Move Local Source to separate module (#9152)
* Move Local Source to separate module

* Review changes
2023-02-26 16:16:49 -05:00
arkon
2368c50ebb Add menu shortcut to source settings in BrowseSourceScreen
Adapted from TachiyomiSY.

Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>
2023-02-26 10:23:07 -05:00
jmir1
82ab9ff973 fix aniskip button not working on first tap 2023-02-26 02:16:49 +01:00
jmir1
ef632544d6 fix crash when reordering manga downloads 2023-02-26 01:31:42 +01:00
Two-Ai
0505906e7a
Move all DownloadService.stop calls to Downloader (#9146)
Downloader.stop is now the sole responsible for stopping the
DownloadService. This will help cleanly removing
DownloadService.stop when migrating to coroutines.
2023-02-25 15:40:22 -05:00
arkon
4efca04765 Avoid crashing in SourcePreferencesScreen if source can't be loaded 2023-02-25 15:32:46 -05:00
arkon
b12c7cf963 Avoid crash in DeleteLibraryMangaDialog
No clue why it ever gets a -1 index though.
2023-02-25 15:29:00 -05:00
arkon
487622c592 Close source filter dialog when filtering 2023-02-25 15:16:48 -05:00
Ivan Iskandar
63048d2f0b
Fix banners-related issues (#9143)
This is most likely Compose issue so these changes will
be reevaluated when new Compose ver is out.
2023-02-25 14:44:35 -05:00
Two-Ai
79662a5866
Misc Downloader state cleanup (#9145)
* Replace Downloader CompositeSubscription with nullable Subscription

* Derive Downloader.isRunning from subscription

Also simplify usages of isRunning

* Move DownloadNotifier.paused to Downloader.isPaused

* Remove unused DownloadNotifier.errorThrown
2023-02-25 14:43:00 -05:00
Two-Ai
ed6809fa28
Simplify filter logic (#9141)
* Remove unnecessary else branch

* Add TriStateFilter applyFilter

* Simplify filterFnTracking filter logic
2023-02-25 11:46:40 -05:00
Two-Ai
86b9262a7e
Make DownloadManager the sole entry point for DownloadService (#9140)
* Rename functions for DownloadService internal use

* Call DownloadService.start via DownloadManager

* Inline DownloadService.stop into pauseDownloads

* Inline DownloadService.stop into clearQueue

NotificationReceiver will now also stop the DownloadService when
receiving ACTION_CLEAR_DOWNLOADS.

* Provide DownloadService.isRunning via DownloadManager
2023-02-24 22:07:30 -05:00
arkon
7ec87e76db Migrate TriState usages to TriStateFilter enum 2023-02-24 16:09:47 -05:00
Ivan Iskandar
ec3ce74af8
TrackDateSelectorScreen: Use M3 date picker (#9138) 2023-02-24 15:22:23 -05:00
Two-Ai
83a4e34095
Remove redundant Downloader isNotification argument (#9139)
DownloadQueue.clear() already sets QUEUE downloads to NOT_DOWNLOADED.
2023-02-24 15:11:51 -05:00
arkon
84a0044d51 Remove some unused resources 2023-02-23 22:42:02 -05:00
arkon
92132c59f5
Migrate source filter sheet to Compose (#9135) 2023-02-23 22:32:40 -05:00
Ivan Iskandar
36ae388332
Bump compose-bom version 2023.02.00-beta02 (#9137) 2023-02-23 22:29:38 -05:00
arkon
bd47eafeec Fix per-category sort/display affecting the wrong category 2023-02-23 13:54:08 -05:00
arkon
9432d2d06a Bump dependencies 2023-02-22 23:09:16 -05:00
Two-Ai
fa61c8fe6f
Convert downloadChapter to suspend function (#9127)
1:1 translation from the RxJava implementation, should match the
previous behavior.

Dropped the return value from functions of the form
```
fun foo(t: T, ...): Observable<T>
```
where the Observable produced the original argument `t`.
The caller already has the result if necessary.

While this conversion is not flow-based overall, some sections use
flows to use the flatMapMerge and retryWhen operators.

Removed RetryWithDelay as it was only used here.

Inlined fetchAllImageUrlsFromPageList instead of converting it to a
suspending equivalent. fetchAllImageUrlsFromPageList is no longer
used in the app, but was not removed as it is part of source-api.
(However, it does not seem to be used exposed in extensions-lib or
used in tachiyomi-extensions.)

runBlocking is used as a temporary stop-gap.
2023-02-21 23:02:10 -05:00
arkon
92bd98e45f Consolidate all theme colors to presentation-core module 2023-02-21 22:52:36 -05:00
arkon
fd7c993b0b Move CheckboxState to core module 2023-02-21 22:52:36 -05:00
Two-Ai
779df32e98
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.
2023-02-21 18:21:00 -05:00
jmir1
43da9dae77 new stable version 2023-02-21 23:12:58 +01:00
jmir1
7973efd531 fix crash in skip intro dialog 2023-02-21 23:11:14 +01:00
jmir1
53a23e1b49 fix intro length dialog 2023-02-21 19:38:10 +01:00
jmir1
c88a39324a minor cleanup 2023-02-21 18:20:12 +01:00
arkon
0bd56ab77c Fix height shift when scrolling through themes 2023-02-21 12:04:17 -05:00
Ivan Iskandar
6b03dca5f4
Use Compose Foundation's flow layout (#9123) 2023-02-21 12:04:11 -05:00
Ivan Iskandar
bd7b21337c
Add minLines to comfortable grid item title (#9122) 2023-02-21 11:44:56 -05:00
jmir1
5b17b405ac fix http headers for video player 2023-02-21 17:23:39 +01:00
Quickdesh
74f25ffb6d
Option to remember Volume and Brightness (#904) 2023-02-21 17:21:06 +01:00
Ivan Iskandar
60a3ba5a5c
Use non-stable Compose BOM (#9120) 2023-02-21 10:41:56 -05:00
Quickdesh
f0b2dccbfb
Fix browse settings (#906)
Changes
---
- Remove the extra group
- Fix string used for anime toggle
- Swap their positions
2023-02-21 13:35:13 +01:00
Quickdesh
a24d6e99cf
A couple of library changes (#905)
* some library fixes

* some library fixes
2023-02-21 13:35:00 +01:00
Quickdesh
6ced5d04df
fix Migrating Anime (#903) 2023-02-21 13:34:37 +01:00
arkon
93523ef50b Remove dependency injection from core module and data module from presentation-widget module
Includes side effects:
- No longer need to restart app for user agent string change to take effect
- parseAs extension function requires a Json instance in the calling context, which doesn't necessarily need to be the default one provided by Injekt
2023-02-20 19:02:38 -05:00
arkon
10d7349506 Move more components to presentation-core module 2023-02-20 10:12:41 -05:00
arkon
3d7c136320 Avoid crash when loading invalid extension package 2023-02-19 16:44:58 -05:00
arkon
a6d6a5ed87 Merge branch 'patch'
# Conflicts:
#	app/build.gradle.kts
#	app/src/main/java/eu/kanade/presentation/browse/BrowseSourceScreen.kt
#	app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
2023-02-19 15:31:35 -05: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 ec49411bee)
2023-02-19 11:52:09 -05:00
arkon
f656a37045 Avoid crashing if getChapterUrl is not implemented
Fixes #9105

(cherry picked from commit ceaf579cb0)
2023-02-19 11:51:53 -05:00
Ivan Iskandar
c58b495433 MainActivity: Avoid navigator-related crash when handling onNewIntent (#9104)
(cherry picked from commit d3dadf71e8)
2023-02-19 11:51:44 -05:00
arkon
242aeb6a68 Avoid crashing if opening browse with unavailable source
(cherry picked from commit 0ef7650c1a)
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 dc2eaf0788)
2023-02-19 11:50:26 -05:00
arkon
d61db5931e Move reader preloading to IO scope
Maybe fixes #8440

(cherry picked from commit e052bdef96)
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 d522d6d545)
2023-02-19 11:49:58 -05:00
Ivan Iskandar
f9e43f574f MangaCoverDialog: Disable memory cache (#9066)
(cherry picked from commit 1671a56f42)
2023-02-19 11:49:51 -05:00
arkon
5ef11e61d0 Prioritize finding selected chapter when deduping reader chapters
Fixes #9054

(cherry picked from commit 23432e4405)
2023-02-19 11:49:44 -05:00
Ivan Iskandar
48546c3db4 Scaffold: Fix snackbar bottom inset (#9052)
(cherry picked from commit 34a586ce48)
2023-02-19 11:49:38 -05:00
Ivan Iskandar
4d87ed496c Remove FAB extra padding in DownloadQueueScreen (#9053)
(cherry picked from commit ad762f8303)
2023-02-19 11:49:32 -05:00
0x7673
06d12e6562 Fix crash in library when selected category is deleted (#9044)
(cherry picked from commit 13bb45b4be)
2023-02-19 11:49:24 -05:00
arkon
ec49411bee Avoid crashes if headers can't be built for usage in WebView 2023-02-19 11:48:26 -05:00
arkon
3f7911235c Use unique keys for all screens to avoid crashes
Fixes #9008
Fixes #9110
2023-02-19 11:09:41 -05:00
arkon
727399611d Migrate library settings sheet to Compose 2023-02-18 20:55:55 -05:00
arkon
07fdb74fbc Minor settings sheet cleanup 2023-02-18 19:00:19 -05:00
arkon
d400ac2a49 Remove unnecessary usages of NotificationManagerCompat to actually create notifications 2023-02-18 17:10:45 -05:00
arkon
dd71c76a8f Move more components 2023-02-18 17:04:32 -05:00
arkon
58a0add4f6 Move more components to presentation-core module 2023-02-18 16:33:03 -05:00
arkon
bfe143015a Move more components to presentation-core module 2023-02-18 16:03:01 -05:00
arkon
e3cf863230 Start moving some Compose components to presentation-core module 2023-02-18 15:52:52 -05:00
arkon
ee818bc7c5 Move chapter utils to domain module 2023-02-18 15:24:04 -05:00
arkon
f816196df2 Move more things to domain module 2023-02-18 15:14:04 -05:00
arkon
ceaf579cb0 Avoid crashing if getChapterUrl is not implemented
Fixes #9105
2023-02-18 10:16:17 -05:00
arkon
b49280e347 Remove unused Rx/Coroutines converters 2023-02-18 10:16:05 -05:00
Ivan Iskandar
d3dadf71e8
MainActivity: Avoid navigator-related crash when handling onNewIntent (#9104) 2023-02-18 10:08:37 -05:00
Two-Ai
ffa8c8fd07
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.
2023-02-18 10:07:27 -05:00
jmir1
3bc51ba30f fix presenter reference 2023-02-18 15:58:56 +01:00
Secozzi
f4c350400f
Aniskip: Show other types even if intro is not detected (#886) 2023-02-18 15:31:04 +01:00
jmir1
ff9e962836 fix bottom nav setting 2023-02-18 15:28:42 +01:00
Quickdesh
37f7e4d3dd re-add backup flags setting 2023-02-17 06:18:06 -05:00
Quickdesh
6f8a05f1d0 minor final fixes 2023-02-17 06:10:52 -05:00
Quickdesh
1c6b748fec Fix conflicts 2023-02-17 05:20:30 -05:00
Quickdesh
5e8c406f7a FIX IT ALL AAAAAAAAAAAAAAA 2023-02-17 04:48:34 -05:00
arkon
0ef7650c1a Avoid crashing if opening browse with unavailable source 2023-02-15 22:47:47 -05:00
Two-Ai
4635e58405
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.
2023-02-15 22:24:55 -05:00
Two-Ai
dc2eaf0788
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.
2023-02-14 11:46:31 -05:00
0x7673
d02b0ca2db
Add copy tags to clipboard feature (#9063) 2023-02-13 22:52:10 -05:00
arkon
4d607c4aed Don't apply Wi-Fi network restriction for manual library update jobs
Fixes #9074
2023-02-12 23:15:16 -05:00
Ivan Iskandar
be4072c86b
Rework on the wheel picker (#8559)
* Rework the wheel picker

doesn't need for the animation to stop to change the value

* fix

---------

Co-authored-by: arkon <arkon@users.noreply.github.com>
2023-02-12 23:10:47 -05:00
arkon
2970eca9e4 Remove background extensions updates check
Same reasoning as removing app update check. It gets kicked off in the foreground now too.
2023-02-12 23:07:11 -05:00
arkon
42954609b9 Remove background app update check
We already check in the foreground. If the app isn't being foregrounded at all, then there isn't much
point in checking for an update.
2023-02-12 22:44:39 -05:00
arkon
6348cbaeb7 Add option to hide entries already in library when browsing sources
Closes #2941
2023-02-12 22:28:12 -05:00
arkon
a7cb33d8c9 Open global search when Browse is tapped twice
Closes #3925
2023-02-12 18:17:46 -05:00
arkon
3a2dc46ff0 Replace Local and In Library badge text with icons
Fixes #5725
2023-02-12 17:22:34 -05:00
arkon
e052bdef96 Move reader preloading to IO scope
Maybe fixes #8440
2023-02-12 16:14:12 -05:00
arkon
d522d6d545 Avoid preload download check if chapter is already loaded or loading
Maybe fixes #8953, #9060
2023-02-12 16:03:24 -05:00
Two-Ai
7b118eba22
Clean up LibraryItem (#9072)
* Move LibraryItem vars to constructor vals

* Convert LibraryItem to data class

Remove redundant equals and hashCode

* Remove unused LibraryItem.displayMode

* Simplify LibraryItem.matches()

* Align types in LibraryItem and LibraryBadges

* fixup! Simplify LibraryItem.matches()
2023-02-12 15:25:27 -05:00
arkon
f6e6a7ddf1 Replace custom download amount with next 25
Simplifies things and maybe discourages whacky downloading behavior?
Users can still range select in the chapters list to download custom amounts.
2023-02-12 15:25:09 -05:00
Ivan Iskandar
1671a56f42
MangaCoverDialog: Disable memory cache (#9066) 2023-02-10 22:38:59 -05:00
Quickdesh
d76e5b2a81 Commit current fixes 2023-02-09 06:11:58 -05:00
arkon
ab6dfe9e25 Bump dependencies
Fixes #8168, I think.
2023-02-08 22:53:42 -05:00
arkon
bff98ca768 Clean up chapter item composables a bit
Might help with #9043?
2023-02-08 22:17:40 -05:00
arkon
23432e4405 Prioritize finding selected chapter when deduping reader chapters
Fixes #9054
2023-02-08 21:47:57 -05:00
Ivan Iskandar
34a586ce48
Scaffold: Fix snackbar bottom inset (#9052) 2023-02-08 09:37:12 -05:00
Ivan Iskandar
ad762f8303
Remove FAB extra padding in DownloadQueueScreen (#9053) 2023-02-08 09:37:04 -05:00
arkon
389b039679 Update version check for library update job migration
Forgot to bump as part of fixing merge conflict for last commit.
2023-02-07 23:22:56 -05:00
Ivan Iskandar
ef9dacde79
Fully utilize WorkManager for library updates (#9007)
No more trampolining, and stuff.

It's pretty much straight copy-paste from the service, with
some changes related to cancellation handling. Manual updates
will also runs with workman job so auto update work
scheduling need some adjustments too.

Bumped version code to re-enqueue auto update job with the
new spec.

Co-authored-by: arkon <arkon@users.noreply.github.com>
2023-02-07 22:37:20 -05:00
0x7673
13bb45b4be
Fix crash in library when selected category is deleted (#9044) 2023-02-07 22:19:46 -05:00
Two-Ai
bd2cb97179
Replace RxJava in DownloadQueue (#9016)
* Misc cleanup

- Replace !List.isEmpty with List.isNotEmpty
- Remove redundant case in MoreScreenModel
- Drop no-op StateFlow.catch
  - From lint warning:
> SharedFlow never completes, so this operator typically has not
> effect, it can only catch exceptions from 'onSubscribe' operator

* Convert DownloadQueue queue to MutableStateFlow

Replace delegation to a MutableList with an internal
MutableStateFlow<List>.

In order to avoid modifying every usage of the queue as a list, add
passthrough functions for the currently used list functions. This
should be later refactored, possibly by inlining DownloadQueue
into Downloader.

DownloadQueue.updates was a SharedFlow which updated every time a
change was made to the queue. This is now equivalent to the queue
StateFlow.

Simultaneous assignments to _state.value could cause concurrency
issues. To avoid this, always modify the queue using _state.update.

* Add Download.statusFlow/progressFlow

progressFlow is based on the DownloadQueueScreenModel implementation
rather than the DownloadQueue implementation.

* Reimplement DownloadQueue.statusFlow/progressFlow

Use StateFlow<List<T>>.flatMapLatest() and List<Flow<T>>.merge() to
replicate the effect of PublishSubject.

Use drop(1) to avoid re-emitting the state of each download each time
the merged flow is recreated.

* fixup! Reimplement DownloadQueue.statusFlow/progressFlow
2023-02-07 22:13:19 -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 6bb3070c57.

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