0x7673
06d12e6562
Fix crash in library when selected category is deleted ( #9044 )
...
(cherry picked from commit 13bb45b4be
)
2 years ago
arkon
ec49411bee
Avoid crashes if headers can't be built for usage in WebView
2 years ago
arkon
3f7911235c
Use unique keys for all screens to avoid crashes
...
Fixes #9008
Fixes #9110
2 years ago
arkon
727399611d
Migrate library settings sheet to Compose
2 years ago
arkon
07fdb74fbc
Minor settings sheet cleanup
2 years ago
arkon
d400ac2a49
Remove unnecessary usages of NotificationManagerCompat to actually create notifications
2 years ago
arkon
dd71c76a8f
Move more components
2 years ago
arkon
58a0add4f6
Move more components to presentation-core module
2 years ago
arkon
bfe143015a
Move more components to presentation-core module
2 years ago
arkon
e3cf863230
Start moving some Compose components to presentation-core module
2 years ago
arkon
ee818bc7c5
Move chapter utils to domain module
2 years ago
arkon
f816196df2
Move more things to domain module
2 years ago
arkon
ceaf579cb0
Avoid crashing if getChapterUrl is not implemented
...
Fixes #9105
2 years ago
arkon
b49280e347
Remove unused Rx/Coroutines converters
2 years ago
Ivan Iskandar
d3dadf71e8
MainActivity: Avoid navigator-related crash when handling onNewIntent ( #9104 )
2 years ago
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.
2 years ago
arkon
0ef7650c1a
Avoid crashing if opening browse with unavailable source
2 years ago
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.
2 years ago
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.
2 years ago
0x7673
d02b0ca2db
Add copy tags to clipboard feature ( #9063 )
2 years ago
arkon
4d607c4aed
Don't apply Wi-Fi network restriction for manual library update jobs
...
Fixes #9074
2 years ago
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>
2 years ago
arkon
2970eca9e4
Remove background extensions updates check
...
Same reasoning as removing app update check. It gets kicked off in the foreground now too.
2 years ago
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.
2 years ago
arkon
6348cbaeb7
Add option to hide entries already in library when browsing sources
...
Closes #2941
2 years ago
arkon
a7cb33d8c9
Open global search when Browse is tapped twice
...
Closes #3925
2 years ago
arkon
3a2dc46ff0
Replace Local and In Library badge text with icons
...
Fixes #5725
2 years ago
arkon
e052bdef96
Move reader preloading to IO scope
...
Maybe fixes #8440
2 years ago
arkon
d522d6d545
Avoid preload download check if chapter is already loaded or loading
...
Maybe fixes #8953 , #9060
2 years ago
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()
2 years ago
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.
2 years ago
Ivan Iskandar
1671a56f42
MangaCoverDialog: Disable memory cache ( #9066 )
2 years ago
arkon
ab6dfe9e25
Bump dependencies
...
Fixes #8168 , I think.
2 years ago
arkon
bff98ca768
Clean up chapter item composables a bit
...
Might help with #9043 ?
2 years ago
arkon
23432e4405
Prioritize finding selected chapter when deduping reader chapters
...
Fixes #9054
2 years ago
Ivan Iskandar
34a586ce48
Scaffold: Fix snackbar bottom inset ( #9052 )
2 years ago
Ivan Iskandar
ad762f8303
Remove FAB extra padding in DownloadQueueScreen ( #9053 )
2 years ago
arkon
389b039679
Update version check for library update job migration
...
Forgot to bump as part of fixing merge conflict for last commit.
2 years ago
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>
2 years ago
0x7673
13bb45b4be
Fix crash in library when selected category is deleted ( #9044 )
2 years ago
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
2 years ago
arkon
477e3d9b94
Release v0.14.4
2 years ago
arkon
3c16082636
Don't show SourceNotInstalledException name in error snackbar
2 years ago
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.
2 years ago
stevenyomi
589bdba0b1
Show exception class in snackbar message ( #9006 )
...
* Show exception class in snackbar message
* omit IOException too
2 years ago
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.
2 years ago
Andreas
b00f00730d
Set InsertPage status to Ready ( #9001 )
...
Fixes insert page just loading
2 years ago
arkon
f2c48480b6
Move some interactors to domain module
2 years ago
arkon
1730dd6af1
Move more things around
2 years ago
Andreas
2501fef9e4
Split UpdatesGridGlanceWidget into smaller bits ( #8991 )
...
- Renamed Composables
- Moved Constants to core module
2 years ago
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
2 years ago
beerpsi
c892c793a8
[BackupRestorer] Handle uncompressed backups ( #8988 )
...
[Backups] Handle uncompressed backups
2 years ago
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.
2 years ago
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.
2 years ago
stevenyomi
448702e5be
OkHttp Call: split await() and awaitSuccess() ( #8980 )
2 years ago
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
2 years ago
stevenyomi
1a319601de
Fix extension search query cursor and debounce ( #8972 )
...
* Fix extension search query cursor
* debounce
* extract debounce constant
2 years ago
Andreas
cdf242e8c8
Move more to data and domain modules ( #8973 )
2 years ago
Andreas
aee785a8bb
Move more implementation to data module ( #8971 )
2 years ago
arkon
d45fc1e245
Move more models to domain module
2 years ago
arkon
14500ba4f8
Move more repositories to domain module
2 years ago
arkon
345e9c2a9a
Move more models to domain module
2 years ago
arkon
b53e24e0db
Move more models to domain module
2 years ago
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
2 years ago
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.
2 years ago
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
2 years ago
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.
2 years ago
Andreas
823749fc1e
Move SQLDelight to data module ( #8954 )
...
And use tachiyomi instead of eu.kanade.tachiyomi for package names in the module
2 years ago
Andreas
2b5d9fd76b
Move shared configuration to subprojects in root Gradle file ( #8951 )
...
* Move shared configuration to subprojects in root Gradle file
* Missed but not forgotten
* Review changes
2 years ago
arkon
7a972dfdb7
Don't use platform attributes for white/black reader backgrounds
...
Probably fixes #8946
2 years ago
Andreas
c31e75f02f
Create plugin for linting ( #8942 )
2 years ago
arkon
2695a4d8c7
Update local source icon and differentiate from fallback source icon
...
Closes #8934
2 years ago
arkon
1a4dad72a9
Hide WebView menu item in reader if local
...
Closes #8932
2 years ago
beerpsi
b7e6b4c28a
[MyAnimeList] Handle cases where my_list_status.status is not present ( #8931 )
2 years ago
stevenyomi
293b967858
Fix installing extensions on MIUI ( #8916 )
...
* Fix installing extensions on MIUI
* isShizukuReady -> isShizukuInstalled
2 years ago
arkon
e468554fd9
Assign keys for global search rows based on source
...
Maybe fixes #8924
2 years ago
arkon
5b5eb92184
Fix checking downloads banner showing up incorrectly
2 years ago
Two-Ai
58ebf14691
Convert PageLoader.getPages to suspending function ( #8917 )
2 years ago
Verzaukeks
992bab4f79
Prevent scrolling outside bounds in webtoon/vertical reading mode ( #8821 )
2 years ago
arkon
6fe650319d
Bump versionCode to prevent downgrades
...
Since the database schema was changed in f301dc64
2 years ago
zbue
f301dc64f0
Allow partially read chapters to be marked as unread in updates screen ( #8884 )
...
* Allow partially read chapters to be marked as unread in updates screen
* Review changes
* Review changes 2
2 years ago
zbue
33a2219716
Enable `confirmButton` only when needed to respond to user input ( #8848 )
...
* Enable `confirmButton` when appropriate
* Show error in dialog instead
* Follow M3 guidelines
2 years ago
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
2 years ago
zbue
e7937fe562
Make androidx.preference dialog match M3 dialog ( #8909 )
2 years ago
zbue
287489d7d0
Show chapter scanlator on reader transition ( #8910 )
...
Closes #7131
2 years ago
arkon
2df0236669
Show loading indicator during migration
...
Closes #8862
2 years ago
Aria Moradi
c54d77333f
Suwayomi Tracker: sync changes with Tachidesk v0.6.6 ( #8902 )
...
* Suwayomi Tracker: sync changes with Tachidesk v0.6.6
* replace var with val
2 years ago
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.
2 years ago
Two-Ai
8cea78de83
Fix ChapterCache.isImageInCache() resource leak ( #8907 )
...
diskCache.get() returns a DiskLruCache.Snapshot which must be closed.
2 years ago
arkon
b6468c7e31
Only how indexing downloads banner the first time
...
Closes #8903
2 years ago
arkon
91004ad514
Parallelize global search properly
...
Fixes #8906
2 years ago
arkon
a2ee4e63ae
Minor cleanup
2 years ago
zbue
768bb7b503
Fix downloaded filter unmatched state in manga screen ( #8897 )
2 years ago
zbue
db4ae134aa
Tweak `TriStateItem` view to match in earlier app version ( #8898 )
...
* Tweak `TriStateItem` view to match in earlier app version
* Apply to disabled state too
2 years ago
Alessandro Jean
7329f03bc5
Show proper Exception message in MangaScreen ( #8900 )
...
Show proper Exception message in MangaScreen.
2 years ago
arkon
82ea643c7d
Don't prompt to add to library multiple times
...
Fixes #8842
2 years ago
arkon
741c10e0b9
Reword set category dialog confirmation to "OK"
...
Closes #8878
2 years ago
arkon
34bb90f3c2
Update library sheet filter tab on open
...
Fixes #8885
2 years ago
arkon
f04cf72c0c
Bump core-ktx dependency
2 years ago
arkon
75b23c99ec
Refactor how extensions list is modelled
...
To better enable changing the UI in the future based on sections.
2 years ago
arkon
6bb3070c57
Show no pinned sources message when attempting to migrate/search
2 years ago
arkon
7df10b076c
Show the tracker name when showing error toast
2 years ago
Two-Ai
2245658363
Replace RxJava in DownloadQueueScreenModel ( #8872 )
2 years ago
arkon
46774771ec
Fix double tapping History not working consistently
...
Fixes #8875
2 years ago
arkon
6263817bb4
Avoid crash if multiple instances of ClearDatabaseScreen opened
...
Fixes #8851
I guess we might want to do this for all screens? Maybe?
2 years ago
arkon
60456fe0e9
Fix crash in categories screen on config change
...
Fixes #8861
2 years ago
arkon
a0f47d3f1b
Don't exclude same source when checking for duplicate entries
...
Closes #8870
2 years ago
arkon
6efcb8ccfa
Use Voyager for WebView in non-reader places
2 years ago
arkon
0067d474c8
Use theme padding values in more places
2 years ago
MCAxiaz
cf393b217b
Add Reader Setting to Skip Dupe Chapters ( #8831 )
...
Add reader setting to filter dupe chapters with same scanlator priority.
2 years ago
arkon
e265b929a1
Avoid crashes when fetching assist content URL in ReaderActivity
2 years ago
arkon
4cd01428ed
Only show MIUI extension warning on MIUI >= 13
...
Related to #8834
2 years ago
arkon
3be05fbf9b
Make global search results more compact
2 years ago
arkon
5d90ba8aa0
Only show library continue reading button if there's unread chapters
...
Closes #8865
2 years ago
arkon
48cab708ce
Show available but not installed enhanced trackers
...
Closes #8859
2 years ago
arkon
5d9753d6a7
Bump minimum ext-lib to 1.3
2 years ago
arkon
425e48bec6
Avoid crashes when opening WebView from reader
...
Also ensure WebViewActivity has an Assistant URL when it first opens with a URL.
2 years ago
stevenyomi
2a3c3d8d6a
Fix reader settings sheet's mode section not updated ( #8857 )
2 years ago
stevenyomi
7b026cec8d
Fix floating-point error in navigate pan ( #8856 )
2 years ago
arkon
d8b528a4e0
Remove repetition in enhanced tracker preference declarations
...
Also hides entries that aren't relevant (i.e. if you don't have the source installed).
2 years ago
arkon
0f45907144
Adjust bookmarked chapter styling in Updates
...
To match updated styling in manga screen.
2 years ago
Aria Moradi
c4c9931ae2
add Suwayomi tracker ( #8489 )
...
* add Suwayomi Tracker
* fix compile
2 years ago
arkon
68345e636e
Remove ability to hide unread chapter badges in library
2 years ago
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
2 years ago
arkon
817418f7c9
Release v0.14.3
2 years ago
arkon
4eb2cd85b2
Update baseline profile
2 years ago
arkon
1e65313fa7
Open entry when long pressing during migration in source search
...
This matches the behavior from 0.13.6
Fixes #8176
2 years ago
arkon
c4c6e41c46
Fix downloaded badges appearing when filtering by downloaded
...
Fixes #8850
2 years ago
Two-Ai
920ca405a2
Use MainScope for coroutines in ui package classes ( #8845 )
2 years ago
arkon
6d3a3b3f39
Adjust bookmarked chapter styling
...
No longer tints the title and subtitle text depending on bookmarked state
in favor of only showing a tinted bookmark icon regardless of read state.
Closes #8839
2 years ago
arkon
50d46fe7f6
Prioritize "all" ("Multi") lang in extensions lists
...
Fixes #8811
Fixes #8812
2 years ago
arkon
91e282d7e5
Show warning about installing extensions on MIUI
...
Related to #8834
2 years ago
arkon
a0f10f868e
Handle file names with multiple ".cbz" occurrences properly
...
Fixes #8838
2 years ago
stevenyomi
6a423f0650
Update toolbar query on genre search ( #8837 )
2 years ago
arkon
5cc84403e1
Debounce reindexing banner
...
Helps avoid showing it for short-lived jobs
2 years ago
Ivan Iskandar
ab61a65b4a
Add worker info screen ( #8774 )
...
Mainly for debug purpose, might help with support.
2 years ago
arkon
01ec26842d
Unify layout for new update and crash screens
2 years ago
arkon
bbf5817805
Allow 2 lines for tracker status text
...
Fixes #8805
2 years ago
jobobby04
611ec8103c
Handle 1000+ pages properly in the downloader ( #8818 )
2 years ago
Henrik
12c672667c
filter mangaupdates search ( #8813 )
2 years ago
arkon
f401574f5a
Increase max library column size back to 10
...
Fixes #8798
2 years ago
AntsyLich
3251fb36c8
Properly fix #8720 ( #8797 )
...
* Partially revert "Move library page EmptyScreens into list/grids"
This partially reverts commit 376bbeb724
.
* Properly fix issue 8720
2 years ago
Ivan Iskandar
94a410f50f
TrackDateRemoverScreen: Fix pop behavior after confirming removal ( #8792 )
2 years ago
arkon
a14c01c1de
Update baseline profile
2 years ago
stevenyomi
a8230ad574
Fix browse search query display and keyboard focus ( #8781 )
2 years ago
Ivan Iskandar
8e1b5b4803
Pager: Bring back previous snapping behavior ( #8776 )
...
New default LazyList snap behavior is optimized for non-pager use.
2 years ago
Ivan Iskandar
8552838bda
Update WorkManager ( #8772 )
2 years ago
stevenyomi
46417fe427
Pass listing query to BrowseSourceScreen ( #8763 )
...
* Pass listing query to BrowseSourceScreen
* Don't use referential equality
2 years ago
stevenyomi
63da463e02
Clean up usages of listing UI models ( #8762 )
2 years ago
stevenyomi
817e144ff6
BrowseSourceScreen: fix navigate up and filter sheet ( #8761 )
2 years ago
Ivan Iskandar
9d2d78ae5b
AdaptiveSheet: Don't blindly consume back event ( #8760 )
2 years ago
stevenyomi
c44db54d9f
Fix snackbar blocking refreshing state in MangaScreen ( #8759 )
2 years ago
arkon
376bbeb724
Move library page EmptyScreens into list/grids
...
It does look awkward due to the lack of filled height within those list/grids though.
Fixes #8720
Fixes #8721
2 years ago
arkon
0e2bdb7863
Minor cleanup
2 years ago
Ivan Iskandar
235bc77457
Fix indexing notif not showing ( #8758 )
2 years ago
Two-Ai
593172f891
Track Page progress with StateFlow ( #8749 )
...
* Update ReaderProgressIndicator documentation
ReaderProgressIndicator is not always determinate (cc554530
, #5605 ).
* Track Page progress with StateFlow
2 years ago
Ivan Iskandar
e20c66b156
App state banner tweaks ( #8746 )
...
* Move download indexing notification to this banner group
* Animate state changes
2 years ago
arkon
5f4825465e
Use actual indexes instead of existing order number when reordering categories
...
Fixes #8738
2 years ago
arkon
bc6a12a4f7
Sort global search source results properly
...
Fixes #8741
2 years ago
arkon
90db3acefd
Don't start at last read page if chapter is completely marked as read
...
Fixes #8737
2 years ago
arkon
2f2f59279d
Fix crash if tapping title when opening reader directly
2 years ago
arkon
4992f87cb1
Better handle status bar light/dark icons based on banner background color
2 years ago
Jays2Kings
7608cb0da3
Check ext lib version when checking for updates ( #8740 )
2 years ago
arkon
9dd9e741f3
Convert download cache/queue flows into SharedFlows
...
Fixes #8727
2 years ago
Two-Ai
171db639ff
Fix SetMangaViewerFlags ( #8719 )
...
Stop clearing old viewer flags when setting a flag
2 years ago
arkon
3ede42252c
Remove unused resources
2 years ago
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>
2 years ago
Ivan Iskandar
ca500da4d8
Adjust insets handling in tablet UI ( #8711 )
...
* Adds startBar slot in Scaffold to handle nav rail
* Consumes unneeded insets in settings
2 years ago
Ivan Iskandar
820ed6a468
Move system bar color set to the main composable ( #8710 )
...
This one doesn't check navbar location before adding a scrim, doesn't really
matter since now no body component is being drawn below the system bar.
2 years ago
arkon
7cbe18d325
Pull out settings sheet items as reusable composables
2 years ago
Soitora
8937e22ce4
Add back option to hide Updates count ( #8709 )
...
Adds back the option to hide the updates count on the Updates tab
2 years ago
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
2 years ago
Ivan Iskandar
d97eab0328
Move app state banner to the very top ( #8706 )
...
This moves the banners to the root composable and so eliminates the need to
track the app states in every screen.
2 years ago
arkon
a61e2799db
Abstract ChapterSettingsDialog for reuse elsewhere
2 years ago
arkon
1009e15aa6
Reuse basic theme preview annotation
2 years ago
zbue
01c6e46a71
Show empty screen when a category is empty ( #8690 )
...
* Show empty screen when a category is empty
* Review changes
* Review changes #2
Co-authored-by: arkon <arkon@users.noreply.github.com>
2 years ago
arkon
ed5e013874
Use proper category when getting random item
...
Fixes #8700
2 years ago
arkon
f8e4153dbf
Disable Jetifier
2 years ago
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>
2 years ago
arkon
e748d91d4a
Bump dependencies
2 years ago
stevenyomi
2c4ddca38e
Migrate Accompanist SwipeRefresh to Compose PullRefresh ( #8106 )
2 years ago
Two-Ai
6ca32710be
Cleanup Page status ( #8696 )
...
* Cleanup Page statusSubject and statusCallback
* Convert Page status from Int to enum
2 years ago
Ivan Iskandar
f05e251991
GlobalSearchScreen: Add unique key ( #8693 )
...
Avoids crash when an old screen is being replaced by a new one
2 years ago
arkon
a3f3f9d562
Avoid some crashes
2 years ago
zbue
410fcb73c5
Fix appbar back button in global search screen ( #8689 )
2 years ago
arkon
b6d6de6b9f
Avoid crashing when clearing cookies for invalid source URLs
...
e.g. Komga sources with no URLs set
2 years ago
arkon
09cebf20f3
Handle intent after navigator is initialized
...
Fixes crash if opening from widget or notification when activity isn't already launched.
2 years ago
arkon
a8c732d67b
Fix opening download notification only going to More tab
2 years ago
arkon
843c9c7e57
Fix migrate options dialog not being selected when tapping text
2 years ago
arkon
c88b79fa17
Minor cleanup
2 years ago
arkon
3f9820ac79
Always show library tabs and counts when searching
...
Closes #8680
2 years ago
Ivan Iskandar
c288e6b8fa
Fix ANR when opening from notification/widget ( #8683 )
2 years ago
Ivan Iskandar
8945ef8880
Change source preference theming fix ( #8679 )
2 years ago
arkon
99a717f849
Hide webtoon reader scrollbars
...
Fixes #8676
2 years ago
arkon
4622b18c99
Fix local source detail JSON files not being read if .noxml was created
...
Fixes #8549
2 years ago
arkon
4f5270cb7d
Fix unusable categories when content is filtered out
...
Fixes #8675
Effectively reverts #8633 , which introduces weird edge cases
2 years ago
arkon
719d427956
Truncate long nav bar/rail items
...
Fixes #8670
2 years ago
arkon
d7a21771a5
Tweak manga cover dialog UI
...
Closes #8654 , although it's just a workaround. The cover itself doesn't appear within the inset areas when zoomed.
2 years ago
Ivan Iskandar
be854b3e90
Fix appbar back button in Settings screen ( #8674 )
2 years ago
Ivan Iskandar
47f079891f
Track sheet fixes ( #8673 )
...
* Fix Track sheet not being disposed properly
* Change insets handling
2 years ago
arkon
696dc59ea5
More domain model migrations
2 years ago
Two-Ai
5f6666a438
Migrate Download to domain model ( #8664 )
2 years ago
AntsyLich
373463e995
Change Updates icon badge to show new updates count ( #8659 )
...
* Change Updates icon badge to show new updates count
* Fix reference
* review changes
* Lint
2 years ago
Ivan Iskandar
7be9b49143
Fix BrowseSourceScreen list/grid unnecessary reloads ( #8661 )
2 years ago
Ivan Iskandar
1a70ebe7ea
Fix crash when opening chapter from BrowseSourceScreen ( #8657 )
2 years ago
arkon
beda99bbe0
Replace RxJava in ReaderChapter and reader transitions
2 years ago
arkon
bb1e7816e1
Replace some usages of RxJava in reader
2 years ago
arkon
b0dc20e00c
Remove some dead code
2 years ago
Ivan Iskandar
3d66eaea83
Merge Voyager screens ( #8656 )
...
* Merge Voyager screens
* cleanups
2 years ago
arkon
5313a5d5d2
Remove unnecessary base Nucleus classes
...
The reader still uses it, but we just move stuff to there.
2 years ago
Ivan Iskandar
5b189a909b
Use Voyager on Source Preference screen ( #8651 )
2 years ago
arkon
75a687138d
Migrate to Accompanist M3 theme adapter
2 years ago
AntsyLich
ba91b483a0
Delayed Tracking Update related fix ( #8642 )
...
* Delayed Tracking Update related fix
* Lint
2 years ago
arkon
3a8b5e1b5e
Fix default category name being shown with empty library
2 years ago
Ivan Iskandar
94d1b68598
Use Voyager on BrowseSource and SourceSearch screen ( #8650 )
...
Some navigation janks will be dealt with when the migration is complete
2 years ago
arkon
8eda4df71f
Fix refreshing state for extensions tab
...
Fixes #8644
Also add an extra delay in case it's super fast.
2 years ago
AntsyLich
8ad9337863
Fix Stub Source migration screen broken ( #8643 )
...
* Fix Stub Source migration screen broken
* Lint
2 years ago
Ivan Iskandar
cd13e187cf
Use Voyager on Downloads screen ( #8640 )
2 years ago
Ivan Iskandar
bcc21e55bd
Complete Settings migration to Voyager ( #8639 )
...
Now the Controller wrapper can be yeeted anytime
2 years ago
arkon
5fbecfd7b7
Don't remove queued downloads when deleting manga after chapter deletion
2 years ago
arkon
3480b45098
Minor cleanup
2 years ago
arkon
44366ac058
Minor global search UI tweaks
2 years ago
arkon
4f2a794fba
Remove dead code
2 years ago
Dexroneum
fe6aa4358f
Show toolbarTitle depending of size ( #8633 )
2 years ago
Andreas
f99b62a069
Use Compose on Global/Migrate Search screen ( #8631 )
...
* Use Compose on Global/Migrate Search screen
- Refactor to use Voyager and Compose
- Use sealed class for state
- Somethings are broken/missing due to screens using different navigation libraries
* Review changes
2 years ago
arkon
ac1bed38f9
Show empty library message properly
...
Fixes #8632
The `library` map still contains the default category even when "empty".
2 years ago
Ivan Iskandar
217b03a292
Fix library not loading when not logged in to any tracker ( #8629 )
2 years ago
AntsyLich
3d7591feca
Implement simple stats screen ( #8068 )
...
* Implement simple stats screen
* Review Changes
* Some other changes
* Remove unused
* Small changes
* Review Changes 2 + Cleanup
* Review Changes 3
* Cleanup leftovers
* Optimize imports
2 years ago
Ivan Iskandar
e14909fff4
Use Voyager on Library tab ( #8620 )
2 years ago
arkon
37118088d4
Remove usage of PublishRelay in DownloadQueue
2 years ago
arkon
5c9e9bd2c4
Use Voyager between more screens
2 years ago
Andreas
db35ba53b1
Use Voyager between supported screens in Extension package ( #8616 )
...
- Minor state behavior changes
2 years ago
AntsyLich
758d223776
Disable generating ComicInfo.xml on download ( #8619 )
...
* Disable generating ComicInfo.xml on download
* Remove unused import
2 years ago
arkon
a54d9912d0
Fix Kavita interceptor crashing app + minor cleanup
2 years ago
arkon
7e74949d38
Explicitly add READ_APP_SPECIFIC_LOCALES permission
...
Some devices are throwing a SecurityException (calling getApplicationLocales) for some reason.
2 years ago
Andreas
a8c5780963
Use Voyager on Migrate Manga screen ( #8611 )
2 years ago
Ivan Iskandar
f4ac754d02
Use Voyager on Browse tab ( #8605 )
2 years ago
AntsyLich
0347d3970a
Cleanup [Downloader.ensureSuccessfulDownload] ( #8602 )
2 years ago
Ivan Iskandar
acc2312384
Use Voyager on Updates tab ( #8603 )
...
* Use Voyager on Updates tab
* Fix back press
* Fix selection
2 years ago
Ivan Iskandar
7d34ff214c
Change settings screen to object ( #8604 )
2 years ago
arkon
e2179a6669
Avoid concurrency issues when reordering categories
...
Maybe fixes #8372
2 years ago
arkon
5c37347cec
Delete empty source folder when deleting all downloads for a manga
...
It previously only attempted this after deleting a list of chapters, so it wasn't applicable
when deleting from Library or after unfavoriting an entry.
Closes #8594
2 years ago
Joseph Olugbohunmi
ef3a6c80a7
Implement copying of Manga URL to Clipboard ( #8587 )
...
feat: Implement copying of Manga URL to Clipboard
2 years ago
arkon
2a2c6cee5f
Allow zooming in WebView
...
Note that this does not force-enable zooming on pages with set viewports (which typically implies proper mobile scaling).
Closes #8588
2 years ago
Andreas
7dff3cc6cb
Remove unused resources ( #8578 )
2 years ago
arkon
8c1171a722
Don't attempt to check chapter download status for local chapters
...
Fixes #8541
2 years ago
arkon
2c850d0e33
Fix invert tapping dropdown not updating checked state in reader
...
Fixes #8566
Should ideally just Compose-ify it all some day.
2 years ago
Andreas
f1b85ff39d
Use Voyager on Extension Details screen ( #8576 )
2 years ago
arkon
2d86f69caa
Add reindex downloads description
...
Closes #8546
Also disable sound for the notification and cancel running indexing job if invalidating.
2 years ago
arkon
e22896a956
Use current timezone when setting tracker dates
...
Fixes #8553
2 years ago