Also add required config for android 13 system picker
(cherry picked from commit 2d690a09b37a55e87ce4365102ee818c5d9d1ba0)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsGeneralController.kt
Based on #7708, #7709 and #7717
Co-Authored-By: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
Co-Authored-By: Andreas <6576096+ghostbear@users.noreply.github.com>
Co-authored-by: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
Co-authored-by: Andreas <6576096+ghostbear@users.noreply.github.com>
(cherry picked from commit 1474c8ffb337f824bc7f30f1f0f3e70e27205254)
* Add back reset action to the Library and History Search toolbars
* Localize the descriptions
(cherry picked from commit 71fc5d6d35b0b10917f3db80b236b35fbbdaab3a)
* Change return value of `SyncChaptersWithSource.await()`
`updatedToAdd.subtract(reAdded).toList()` never worked as at this point `updatedToAdd` contained ids from db where `reAdded` had default one. Was the same case before the rewrite.
Removed `toDelete` from return value as it was not being used anywhere
* Add doc string
* Use HashSet
Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>
Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>
(cherry picked from commit 11f640cfee427b8912cdc43fc3efc61e0f774aa7)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
* Allow to refresh when there is white space
fixes#7701
* Don't use key on library screen as it retains scroll position on first item
fixes#7631
(cherry picked from commit 22e83f408bc6c19457cc8a03ed7f02d69e9308c7)
* Fix back handling when manga is still loading
* MangaPresenter: Show what we have earlier to reduce percepted slowness
(cherry picked from commit b4e15263db3d00326abe5886fffb3608c9a85c47)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
* Fix glance failing when there's too much children
* Adjust cover error placeholder
(cherry picked from commit 16abfeeff0eb482482fb60ac8ab6d01d75942531)
Also remove some usages of runBlocking
(cherry picked from commit 3bc6b1e202f8344356720467c60da19239e22ebc)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/more/AboutController.kt
- Fix categories modal showing when adding from source with no categories
- Use old categories icon in library bottom action menu
(cherry picked from commit 688cc64dffa8cdf1241d3b4e2467b5e8c8529800)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/components/MangaBottomActionMenu.kt
# app/src/main/java/eu/kanade/tachiyomi/App.kt
The abstraction was useful for handling 2 systems, but it's no longer needed. Cleaning it up will make migrating to domain models easier down the line.
(cherry picked from commit a2bb81b7db457c3927eaa1f03416a9b07985842b)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt
# app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestorer.kt
# app/src/main/java/eu/kanade/tachiyomi/data/backup/models/Backup.kt
# app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupFlatMetadata.kt
# app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupMergedMangaReference.kt
# app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupSavedSearch.kt
# app/src/main/java/eu/kanade/tachiyomi/data/backup/models/metadata/BackupSearchMetadata.kt
# app/src/main/java/eu/kanade/tachiyomi/data/backup/models/metadata/BackupSearchTag.kt
# app/src/main/java/eu/kanade/tachiyomi/data/backup/models/metadata/BackupSearchTitle.kt
* Add missing Authorization header on MAL refresh token request.
* Make sure to also close the response when it have failed.
(cherry picked from commit 531546790853dd9adb91777de8d9560a610c4838)
* Revert "Use SharedFlow for available extensions to always emit the value (#7609)"
This reverts commit 73901f50c0aee1cb82695642af72ff6ac7bc232d.
* ExtensionPresenter: Explicitly set refreshing status
* Scope coroutines job to presenter
* cleanup
* fix toast
(cherry picked from commit b3426f37e7d36be653363338288f74e2ae252a78)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt
Works when category tab is not shown
(cherry picked from commit afceac15c89f274d571dcb61da18c6273a550f65)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/library/LibraryScreen.kt
# app/src/main/java/eu/kanade/presentation/library/components/LibraryToolbar.kt
* Save read duration to backup
* Add default value
Co-authored-by: Andreas <andreas.everos@gmail.com>
Co-authored-by: Andreas <andreas.everos@gmail.com>
(cherry picked from commit 3d4e56948d86d10ecd227fb59b92da069f37a89f)
only on updates and history screen for now, but the required changes on app bar
is there.
also fix missing incognito-downloaded mode indicator on history screen
(cherry picked from commit 737cf9898db0f3e89752b82753c7fe2a88d7fef9)
* Use Stable interface for Updates screen + Cleanup
Co-Authored-By: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
* Disable swipe refresh in selection mode
* Review Changes
Co-Authored-By: Andreas <6576096+ghostbear@users.noreply.github.com>
* Review Changes 2
Co-authored-by: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
Co-authored-by: Andreas <6576096+ghostbear@users.noreply.github.com>
(cherry picked from commit 4774deb1efe023ecff4fd41708dd224edc216c0b)
* Don't compose category page unnecessarily
* Remove unnecessary library pager recompose
Defer and remember the "currentPage" state read since it's only needed when the
pager is composed for the first time.
* Badge opts
* Sync text style with previous impl
Also avoid reallocating by using copy
(cherry picked from commit d49ec41f3a68574601d5d773382045fdbc6624d8)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/library/components/LibraryGridCover.kt
- Fix mixup in Action Menu
- Fix back action not clearing search
(cherry picked from commit db93d1da76ba453e5b499bab0d2482728014786f)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/library/LibraryScreen.kt
* MangaScreen: Disable swipe refresh on action mode
* MangaPresenter: Add distinctUntilChanged to db flow
Now will only emit update when the related entry is changed
(cherry picked from commit 483b204fb5b6790fb6fe59ffd80345cd484ca241)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
* Add center margin option for horizontal dual page view
* Update readme to make the point of the fork obvious
* Center margins now added to large single images that would display in place of two smaller pages
* Cleanup; reworked preference into an int selector to specify which margins to add
* Suggested fixes and and readme reversion which somehow got skipped last commit
* Missed the build block in readme. Oops.
Co-authored-by: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
Co-authored-by: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
(cherry picked from commit 8bde35298f69ceb2c4ae40a8f05f0b8394894220)
Probably related to 788583e66f6ad355f65f5bd2db303faa85163c5c
(cherry picked from commit 1c8da5fa974b4cfd0fd762b0b1c2a07622ac7662)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt
- Fixes Extension screen being stuck refreshing due to StateFlow not emitting due to the value being the same
(cherry picked from commit 73901f50c0aee1cb82695642af72ff6ac7bc232d)
In the context of a weaker device--remembering objects inside a list item
is expensive. So only do it when we really need to.
This also flattens the download button by drawing a single icon instead of using
separate icon and progress indicator.
(cherry picked from commit aeffb5eeb806be8530aec7707d9075e48a75c9e3)
- Toolbar not having padding in landscape
- Fix library always refreshing everything even though user is refreshing category
- Tab text using primary color
- Fix Grid having to big of a top padding
- Fix Pager crashing when initial page is greater than the number of categories
(cherry picked from commit bc1f6ba5177735e76b2b42f7884edfbe8f30006e)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/library/LibraryScreen.kt
- Adds Stable interface
- Move last Dialog into Compose
- Make History screen be full Compose screen
(cherry picked from commit c751851941796ae7fa10f9dfba9b75396bbbf692)
- Move Pager to Compose
- Move AppBar to Compose
- Use Stable interface for state
- Use pills for no. of manga in category instead of (x)
(cherry picked from commit 2b8d1bcc02994e75e1479b037ef50eb84ae674d7)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/library/components/LibraryComfortableGrid.kt
# app/src/main/java/eu/kanade/presentation/library/components/LibraryCompactGrid.kt
# app/src/main/java/eu/kanade/presentation/library/components/LibraryCoverOnlyGrid.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryAdapter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
- Migrate sources filter screen to full compose
- Use standard "OK"/"Cancel" actions for delete category dialog
- Abstract some AppBar logic
- Remove some dead code
- Group related strings
(cherry picked from commit e2510c144ad3568caf81660d6ab1b4023202aad4)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/browse/SourcesFilterScreen.kt
# app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt
* Migrate Updates screen to compose
* Review Changes + Cleanup
Remove more unused stuff and show confirmation dialog when mass deleting chapters
* Review Changes 2 + Rebase
(cherry picked from commit d8fb6b893fd9ae6aab3b4762837ebce496a214b3)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/recent/updates/UpdatesPresenter.kt
# app/src/main/sqldelight/migrations/18.sqm
This lets us make it more consistent with the Compose screens for now. Maybe it'll return in the future.
This also includes making the AboutController a full Compose controller with a new abstracted TopAppBar composable.
(cherry picked from commit 80c7a453286f296ae4d5d3531c805e63db9ca424)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/category/components/CategoryTopAppBar.kt
# app/src/main/java/eu/kanade/presentation/more/about/AboutScreen.kt
- Remove Compose top app bar behaviour since it's kind of jank -- we'll probably just remove the scrolling behaviour everywhere
- Tap title to rename
- Focus in textfield when opening dialogs
(cherry picked from commit 0b78028cf660e2f576ee30f8315b657eca1f39cd)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/category/components/CategoryDialogs.kt
# app/src/main/java/eu/kanade/presentation/category/components/CategoryTopAppBar.kt
# app/src/main/java/eu/kanade/presentation/library/components/LibraryGridCover.kt
When manga screen takes time to load incognito and downloaded only label doesn't show up. It's fixed in the pr.
(cherry picked from commit b034f503f8ce9327187c2024b7ee74779f397bb8)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
- Clean up unused code
- Add text shadow in compact mode
- Tweak some paddings to better match stable
(cherry picked from commit fa73e2403b79deca40590d8f4fa15f00a70e316e)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
- Replace ExtensionManager relay and observable with Flow
- Inverse SourceManager dependency
- SourceManager observers ExtensionManager flow
- Separate SourceData from SourceRepository as it created a circular dependency
(cherry picked from commit 35ec5936587799f33a264f57729cb4b75c5a0f72)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/source/SourceManager.kt
* Little cleanup for stub source
Fixes instances where name shows up blank for stub sources
* Review Changes
Co-authored-by: Andreas <andreas.everos@gmail.com>
Co-authored-by: Andreas <andreas.everos@gmail.com>
(cherry picked from commit 902bb35ba7f56f06660985dda0f7f8abf41ee669)
- Turn on `foreign_keys` to cascade on delete properly
- Turn on `journal_mode` and set `synchronous` to NORMAL which may help performance for larger libraries
(cherry picked from commit d977b89af1f2a8850437ebd978535fc3fbfd257e)
* MangaScreen: Improve chapter list scrolling performance
Process chapter title, date and read progress string ahead of time
* Use enum for contentType and add key
(cherry picked from commit 1551891c15eb5d323cb1d425794876a753316091)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
* Increased touch target
* Fix downloaded icon smaller than other states
* Deferred state reads to minimize recompose works
* Move things around to eliminate unnecessary elements
(cherry picked from commit e56f6c10177949c88e61d13e95b23545bef06641)
Animating the content padding that's used for the lazy list is heavy. A simple
fix to *just* offset the list is blocked by a Compose fling issue (b/179417109).
So I decided to go with the previous layout of this screen by putting everything
in the list. MangaInfoHeader is split into separate composables to avoid jank
when the item is being inflated.
(cherry picked from commit 34906a74253e7463ac23ea96496c59198884e0be)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt
# app/src/main/java/eu/kanade/presentation/manga/components/MangaInfoHeader.kt
# app/src/main/java/eu/kanade/presentation/manga/components/MangaTopAppBar.kt
* Reset lastPageRead when chapter is marked unread
* Remove a bit of repetition in SetReadStatus
(cherry picked from commit 5159eabc5dfd77dd7e4a480c1982bd1d2e5fbb92)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
- Uses the new `asObservable` function to change the database calls to use SQLDelight, which should make the impact minimal when it comes to bugs.
- Use interactors where they already exist
- The todos are for the Compose rewrite
- Removed unused StorIO methods/queries
- Tested loading library, move manga to new category, unfavorite multiple manga, move multiple manga from one category to another, change filter, sort and display settings (with and without per category settings), (un)mark chapters, start/delete downloads
Thank Syer for asObservable
Co-authored-by: jobobby04 <17078382+jobobby04@users.noreply.github.com>
Co-authored-by: jobobby04 <17078382+jobobby04@users.noreply.github.com>
(cherry picked from commit 05085fe57fe4c3ada497f93b8cd282a5009cdbbb)
# Conflicts:
# app/src/main/java/eu/kanade/data/manga/MangaRepositoryImpl.kt
# app/src/main/java/eu/kanade/tachiyomi/data/database/DatabaseHelper.kt
# app/src/main/java/eu/kanade/tachiyomi/data/database/queries/CategoryQueries.kt
# app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaQueries.kt
# app/src/main/java/eu/kanade/tachiyomi/data/database/queries/TrackQueries.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchPresenter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt