* Add "Njalla" dns provider
Details ~~Tho there is none~~: https://dns.njal.la/
* Lint
(cherry picked from commit d85af2fec624aabfd9f2b2c829e8ea02dee09ad0)
TODO:
- Global search should launch a controller with the search textfield focused. This is pending a Compose rewrite of that screen.
- Better migrate sort UI
- Extensions search
(cherry picked from commit 92e83f702c775d5ab5a0b4248995308155150811)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/browse/MigrateSourceScreen.kt
# app/src/main/java/eu/kanade/presentation/browse/SourcesScreen.kt
# app/src/main/java/eu/kanade/presentation/library/components/LibraryTabs.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/BrowseController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrationSourcesController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesPresenter.kt
* Enable sub-languages on app first run.
* Fix wrong language code string parsing.
* Fix some build issues due to rebase.
* Use PreferenceHelper and remove an extra preference.
* Remove a constant.
(cherry picked from commit 084e6a964ee2f2a8499b861e5e3e58938ddab6e9)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt
- Filters do affect this
- Won't be shown if tabs aren't visible and there's more than 1 category (so it'd always show the per-category count), but a separate stats page should show that info instead
(cherry picked from commit 8a3a7418d055b500517ef6c9c5623328ae01bc10)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
* Tweak flag classes for Library
- Add interface for Flag and Mask
- Merge Sort Type and Direction into one class
- Use custom serializers for preferences
- Mainly to not break the old
* Review changes
(cherry picked from commit 880407442c598d1b63db8be43f4848550dc17ff1)
# Conflicts:
# app/build.gradle.kts
# app/src/main/java/eu/kanade/domain/category/interactor/SetDisplayModeForCategory.kt
# app/src/main/java/eu/kanade/domain/category/interactor/SetSortModeForCategory.kt
# app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceItem.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/library/setting/SortDirectionSetting.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/library/setting/SortModeSetting.kt
* trim newlines from user agent
* fix indents
* fix indents for real
* actually fix indents
(cherry picked from commit aab5f083dbae25380b97c7407309beb90a64d845)
- Allow large decrements (just goes to 0)
- Use Material3 text field for proper theming
- Move dialog composable to presentation package
(cherry picked from commit 03b9950fa15974f1a599a96c26177a612bed5c9d)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/more/settings/database/components/ClearDatabaseDialogs.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt
* Move a few Dialogs to Compose
- Separating dialogs that are not needed in the PR for the move to Compose on the Browse Source screen
- ChangeMangaCategoriesDialog and AddDuplicateMangaDialog will be removed in the Browse Source screen PR
* Review changes
(cherry picked from commit 2453d1a8861d61b03dce398fad169e556551b400)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/library/LibraryState.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/manga/MangaController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
* Fix stucked downloads when service not started
* Fix chapter download restart even if should be deleted
(cherry picked from commit a70b8486468ce8b57ae7a7ddc3ac845337789d45)
* New Theme Tidal Wave
Added a new strong blue theme appearance to Tachiyomi titled Tidal Wave.
* Better Tertiary Color: Seafoam Green
Updated the tertiary color to be lighter and match the blue more. Also changed the active button color to contrast better.
(cherry picked from commit 4b0f54966653c0a313d60cfe0d13d12b2c12ec79)
Also fix sort direction can't be changed for default category
(cherry picked from commit 763288ab137505813f951bb02ca3ba9c1590dbc4)
# Conflicts:
# app/src/main/java/eu/kanade/domain/category/interactor/SetSortModeForCategory.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/library/setting/SortDirectionSetting.kt
- Use the same flag as other categories
- Per-category uses the flag the user used before starting to use per-category
(cherry picked from commit 4228bbb88efc1a2ff62c52d3bf5724150800e39e)
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
* Changed cover alignment when title is longer
* Hide artist text if it's equal to author
* Set single line to status and source name
(cherry picked from commit 6129bbc9ab9ac493a40e4b7f928f8271c191ae2d)
* Add new "Lavender" theme
* Add light theme values for Lavender theme
* Fix order of enums
* Fix accented UI elements in set categories sheet being different colors
Co-authored-by: CrepeTF <trungnguyen02@outlookcom>
(cherry picked from commit ad106bd8842dfc9c047c0412b92a0cb1dc1aba1a)
- Use outlined icons where appropriate to match previous UI
- Allow tapping entire ChapterHeader to bring up sheet
(cherry picked from commit 8ec91cddab1b77baa631500d6878e60df8c8d13d)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/browse/ExtensionsScreen.kt
# app/src/main/java/eu/kanade/presentation/manga/components/MangaSmallAppBar.kt
* Use sqldelight in migration
* Some more changes
Co-Authored-By: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
* Review Changes
* Review changes 2
* Review Changes 3
* Review Changes 4
Co-authored-by: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
(cherry picked from commit e3b1053c03da17c8c1b66f1914251707134e84a9)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchPresenter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
Currently breaks initial settings state until the source of truth is
properly updated.
(cherry picked from commit 005b9b595cfe41484eea94998d2f3c9918759a94)
# Conflicts:
# app/src/main/java/eu/kanade/domain/manga/model/Manga.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersSettingsSheet.kt
* Make stub source icon part of `SourceIcon`
* Review Changes
(cherry picked from commit 82879a129e12509223a05230ebeb884f103d0745)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/browse/MigrateSourceScreen.kt
* Use custom QueryPagingSource
- Adds placeholder to make the list jump around less
- Fixes issue where SQLDelight QueryPagingSource would throw IndexOutOfBounds
* Review Changes
(cherry picked from commit 3fd9e021fa84557fc1681685ee1a3e8b6678e7ba)
Now checks for the backstack for any dialog controller when a push exit occurs
before restoring the title alpha.
(cherry picked from commit ae88252cb189283a87c3294c0b6c4bb28064b0f6)
* Use SQLDelight on Category screen
* Include category name in DuplicateNameException
(cherry picked from commit 017f6b22f02ef06cd5a3d521715c32c5e3b2b0e6)
# Conflicts:
# app/src/main/sqldelight/data/categories.sq
* Add cancel button in app update download notif
Since stuck downloads are a common issue and only solution until now was
to force close the app or download and update the app manually by
downloading from GitHub (which clears the notif away)
Based on commit
4dea924337
Co-authored-by: Jays2Kings <8617760+Jays2Kings@users.noreply.github.com>
* Linting by Android Studio
* commit PR Review Suggestion
Update app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt
Co-authored-by: arkon <arkon@users.noreply.github.com>
* Use `launchIO`
copied this over from how j2k was doing it. Launching in IO Thread like
how it was before this PR is sufficient
* Clear previous actions before adding `Cancel`
Otherwise, it led to two identical Cancel buttons
Co-authored-by: Jays2Kings <8617760+Jays2Kings@users.noreply.github.com>
Co-authored-by: arkon <arkon@users.noreply.github.com>
(cherry picked from commit fdf384b8092d09f0a4e68c5688f9c1c1e94c80d0)
The `source.headers.toMultimap()` call in WebViewActivity makes all the names lowercase.
(cherry picked from commit 284880d096d1a4e4f746cc49de945f3186207285)
* Fix Links to Changelog/Readme/Commits for `multisrc`
working basic fix. Needs to be refactored into `createUrl()`
* Refactor back into `createUrl`
hopefully the logic is understandable
there's three cases:
- when multisrc, if `path` isn't mentioned, then we're trying to open
commmit history
- when multisrc, if `path` is mentioned, then its either a changelog or
a readme to a multisrc extension, the files are stored in the
`overrides` subfolder
- when not multisrc, we're looking at a single source where the links
are constructed in the same way regardless of it being
changelog/readme/commit history
(cherry picked from commit e7695aef78c92c10e5bae953b24a19e67ac156af)
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 5bb78eb77f2f68c40079548d5fe3b75a11f2bf71)
# Conflicts:
# app/src/main/java/eu/kanade/domain/manga/model/Manga.kt
# app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaQueries.kt
# app/src/main/java/eu/kanade/tachiyomi/data/database/resolvers/MangaLastUpdatedPutResolver.kt
# app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt
* Make `syncChaptersWithSource` use sqldelight
Will break chapter list live update on current ui
Co-Authored-By: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
* Review Changes
Co-authored-by: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
(cherry picked from commit 120943a8b37eaf847ca1073676a8293288c28e12)
# Conflicts:
# app/src/main/java/eu/kanade/domain/manga/model/Manga.kt
# app/src/main/java/eu/kanade/tachiyomi/data/backup/AbstractBackupManager.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchPresenter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
# app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterSourceSync.kt
# app/src/main/sqldelight/data/mangas.sq
Use different key for custom cover and add last modified time for updating
cover without clearing the whole memory cache
(cherry picked from commit 59837bbb903dcfc2cf824972977b6247c713507b)
Fixing some things that were errors when compiling against SDK 33.
(cherry picked from commit cf48bbc176a164bf49a9dd3a0ccd3fe7cf4c6f2e)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt
Pulling out some of the smaller changes that aren't related to the manga controller changes in #7244
(cherry picked from commit 7fdbf40cd23132915bd90cf623e4a69fb560dd26)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/MigrationFlags.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SearchPresenter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersSettingsSheet.kt
- Protobuf backups have been around for 1.5 years now
- The ability to restore online-dependant data from JSON backups gets harder as time goes on and sources drift
- If users really need a way to restore them, they can use an older version of the app, or a separate tool for translating between the formats could be created
(cherry picked from commit d1be221d7aaa811e50417235021c7e038704d276)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/backup/AbstractBackupManager.kt
# app/src/main/java/eu/kanade/tachiyomi/data/backup/full/FullBackupManager.kt
# app/src/main/java/eu/kanade/tachiyomi/data/backup/legacy/LegacyBackupManager.kt
# app/src/main/java/eu/kanade/tachiyomi/data/backup/legacy/LegacyBackupRestore.kt
# app/src/main/java/eu/kanade/tachiyomi/data/backup/legacy/models/Backup.kt
* MangaUpdates tweaks
* Review changes
Co-authored-by: arkon <4098258+arkon@users.noreply.github.com>
* Use built in functions instead of Jsoup
Co-authored-by: arkon <4098258+arkon@users.noreply.github.com>
(cherry picked from commit c8468c29f1b65ce5e3a3680b3f095cf003d2f89d)
* Fixes: incorrect sorting when chapter name contains hyphens '-'
* Added a test case for hyphen in ChapterRecognitionTest.kt
* Removed chapter range test case since it will be replaced by chapterContainingHyphensCase
(cherry picked from commit 3e07100dc2725cb2d42050571232dd5d485b4de5)
Also rename some screens/controllers to better represent that they're the list views.
(cherry picked from commit 01e04e31bf63a9fed18d214f0d12b4c45c72f948)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/browse/SourcesFilterScreen.kt
* Settings cleanup
* Oops
* Also hide "Invert tap zones" if tap zones is set to "Disabled" in ReaderReadingModeSettings
(cherry picked from commit 4c9331c4e94d384393708eb6751b918bb31c5d06)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt
* Detect identical mangas when long pressing to add to library
* Use extracted duplicate manga dialog to avoid duplication
* Partially revert previous commit
* Review changes
* Review changes part 2
(cherry picked from commit f1afeac0bcd3904c323e24d67dd945c85c666f92)
* Fixes:
- spliiting fails when the page was already been split and processed before
- Moved CBZ logic a little earlier to avoid marking a download as complete before the CBZ compression was completed
* Added a single space for readablity
* Added 2 spaces for readability
* Moved the splitting logic to happen inside getOrDownloadImage()
* Minor cleanup
* - Improved error handling when splitting fails due to OOM exception caused by BitmapFactory.decodeFile. - Changed logic from throwing error to only notify to allow the download to complete even if splitting failed.
* reverted auto formatting changes
* removed an extra loop
* Merged to Upstream, cleaned up
* Removed unused localized string
* Minor cleanup
(cherry picked from commit f75d63274089c5a0cfe0e1afde8703017b521870)
- Add pending intent immutable flags to satisfy lint warnings
- Change AddDuplicateMangaDialog arg to a function instead to avoid leaking controller-specific logic into it
- Require WebView 99+
(cherry picked from commit d3f9232a3fa50e02af110b5320b4fcf4bcccb3cd)
* Fix download splitter potentially throwing OOM on huge images
Also move the splitting to ImageUtil
* Change variable name and logcat output
(cherry picked from commit 9f655e0d41a690752ac440d9bc8fb56188d4ef0c)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/util/system/ImageUtil.kt
Instead of just checking whether the current app version *matches* with
latest app version in GitHub Releases, compare the semver from the tag
names to check whether the latter is greater and the app needs an update
Reference: semver spec #11https://semver.org/#spec-item-11
Co-authored-by: Andreas <6576096+ghostbear@users.noreply.github.com>
Co-authored-by: Andreas <6576096+ghostbear@users.noreply.github.com>
(cherry picked from commit e7ed130f2a4fcd7452737476189687fbd130c80d)
Currently, manually created backups contain list of categories even if
Categories option is not selected during Backup Prompt. This leads to
empty categories being created when restoring such backup files
This commit adds a check before saving categories list info to the
backup file. The check is the same check which is used while backing up
category info of manga in library
Tested and worked successfully on app installed on Android 12
(cherry picked from commit 11c01235ac32c8fd3de864c37cab82367b4a9e41)
- Remove some unused StorIO queries
- Clean up tall image splitting a bit (no need for creating an unscaled scaled bitmap copy, or tracking coordinates)
- Clean up library updater a bit (still needs a lot of work though)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/database/queries/ChapterQueries.kt
# app/src/main/java/eu/kanade/tachiyomi/data/database/queries/HistoryQueries.kt
# app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaQueries.kt
# app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt
# app/src/main/java/eu/kanade/tachiyomi/util/system/ImageUtil.kt
* Auto split long images to improve performance of reader
* Auto split long images to improve performance of reader - fixed the sorting
* Improved performance of splitting by getting rid of 1 extra loop
* Cleaned up code and moved the functionality to work during the downloading process (unsure how this affects download speed)
* Replaced the import .* with the actual used imports
* Fixes for Bugs discovered during my testing
* Fixed last split missing bug.
* Reordered the download progress to be updated before splitting instead of after to reflect more meaningful progress of download
* Reverted last commit since it had no effect
* Improved progress tracking when a download is paused then resumed.
* Implemented the recommended changes to enhance the feature.
* Apply suggestions from code review
Co-authored-by: arkon <arkon@users.noreply.github.com>
* Update app/src/main/res/values/strings.xml
Co-authored-by: arkon <arkon@users.noreply.github.com>
Co-authored-by: arkon <arkon@users.noreply.github.com>
* Make `HistoryState` similar to `MigrateState`
* Review Changes
* Also cache the transformation
Co-authored-by: Andreas <andreas.everos@gmail.com>
* Fix States
Co-authored-by: Andreas <andreas.everos@gmail.com>
(cherry picked from commit 5bd5b215430c6d19c1e4314bdaf4264eb43e9d29)
* make `SourceState` similar to `MigrateState`
* Review Changes
(cherry picked from commit bd45bf7407716bceec5cc226d3680676bb211fea)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/source/SourceScreen.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcePresenter.kt
* Notify user of error during a page download failure
* Included the manga title in the error notification
(cherry picked from commit 5763201307551bcd6a1f25ca81c8125f6f434c0a)
* Migrate Source Filter Screen to Compose
* Changes from Review and some more fixes
* Rename some variable and classes
* Review Change
* Ewbase and Review changes
(cherry picked from commit 23f8f35354b30aded0749222234f76a4f9eaab5c)
# Conflicts:
# app/src/main/java/eu/kanade/domain/DomainModule.kt
# app/src/main/java/eu/kanade/tachiyomi/source/SourceManager.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourceFilterController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcePresenter.kt
* Remove source lang on migrate screen also seperate removed source on alphabetical sort
* Review changes
* Rename Variable
(cherry picked from commit 6ef6eab994b33770234f488b4060c197bb260a8b)
When using SQLDelight and Storio at the same time
(cherry picked from commit 891406cc7fbf9b449f306222e16b041b9ba8a96c)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/database/DatabaseHelper.kt
* Center `CurcularProgressIndicator` in `LoadingScreen`
* Fix Import and move modifier to top
(cherry picked from commit 78207d48ba8032103925cc13ed0f180b0a554ede)
* Add error state to MangaCover
- Add error drawable when thumbnailUrl isn't able to be loaded
- Tweak usage of MangaCover
* Change `contentDescription` to be nullable
As the invoke function makes default nulls
(cherry picked from commit adf02e53fd2da2c889a409a144cf1c81bde7f6f3)
Some spring cleaning to remove some unnecessary complexity so things are easier to maintain.
- Start screen: redundant with app shortcuts in Android 7.1+
- Jump to chapters: irrelevant in tablet mode and people can scroll a tiny bit if they really have to
- Option to not scroll away bottom nav: issues with fast scroll will be irrelevant with it being replaced or removed in the Compose migrations
Get ready for people malding over their special needs. https://xkcd.com/1172/
(cherry picked from commit 0b77b78f6a360d759241ac42b1dcf0fe66b27d50)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsLibraryController.kt
Considering we never run or update them, they're not providing any value right now.
Kept the chapter recognition tests and bumped to JUnit 5.
(cherry picked from commit 4d23f35b9d4cb4491811823f1d1dd3b5e5cc4304)
# Conflicts:
# app/src/test/java/eu/kanade/tachiyomi/CustomRobolectricGradleTestRunner.kt
Ascending by date = oldest dates first. If no date is present, fallback to epoch 0 (i.e., oldest).
(cherry picked from commit 7773deabc03eb106798aed113341acf66a5f6a77)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
Generally seems fine. People with weak devices may experience some issues, but they can toggle it off/extract the archives separately if needed.
(cherry picked from commit 883945e3e8b4c3fe5ec1bb151c247db7404b037c)
- Reword pins on top setting
- Make "Latest" button style match old UI
- Sort sources by name
(cherry picked from commit 08e63e5fab93154ca85d16e459226f01aeab5a2d)
# Conflicts:
# app/src/main/java/eu/kanade/domain/source/interactor/GetEnabledSources.kt
# app/src/main/java/eu/kanade/domain/source/model/Source.kt
* Use Compose in Source tab
* Replace hashCode with key function
* Add ability to turn off pins moving on top of source list
* Changes from review comments
(cherry picked from commit 29a0989f2889d3361f583285091878c9b4570a52)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/source/SourceManager.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourceController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourceHolder.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourceItem.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcePresenter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt
To be added back in a more consistent manner later around the app. Probably when more things are Compose-y with less repetition.
(cherry picked from commit c0214103a95e84e7f993831e497afc8560bed3ab)
* Migrate History screen database call to SQLDelight
- Move all migrations to SQLDelight
- Move all tables to SQLDelight
Co-authored-by: inorichi <3521738+inorichi@users.noreply.github.com>
* Changes from review comments
* Add adapters to database
* Remove logging of database version in App
* Change query name for paging source queries
* Update migrations
* Make SQLite Callback handle migration
- To ensure it updates the database
* Use SQLDelight Schema version for Callback database version
Co-authored-by: inorichi <3521738+inorichi@users.noreply.github.com>
(cherry picked from commit b1f46ed8302411fbd884bbc3c26fe28a378fd91a)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/database/DatabaseHelper.kt
# app/src/main/java/eu/kanade/tachiyomi/data/database/DbOpenCallback.kt
# app/src/main/java/eu/kanade/tachiyomi/data/database/queries/HistoryQueries.kt
# app/src/main/java/eu/kanade/tachiyomi/data/database/tables/CategoryTable.kt
# app/src/main/java/eu/kanade/tachiyomi/data/database/tables/MangaTable.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/setting/database/ClearDatabasePresenter.kt
# build.gradle.kts
Not enough room for 3 buttons. Users can still tap outside or back out of the dialog if they want to ignore it.
(cherry picked from commit 2ca6b655ad7d55856d9c0723fd42d009b29c6bd5)
Which is still stupidly high, but maybe it'll be lenient enough for certain people.
(cherry picked from commit cdd4ec623342de5894857f467bca2f2388b3f46d)
* Migrate History screen to Compose
- Migrate screen
- Strip logic from presenter into use cases and repository
- Setup for other screen being able to migrate to Compose with Theme
* Changes from review comments
(cherry picked from commit c475acd1eaf9f1fd9394f126a8a6f3c0daf52048)
# Conflicts:
# app/build.gradle.kts
# app/src/main/java/eu/kanade/tachiyomi/App.kt
# app/src/main/java/eu/kanade/tachiyomi/data/database/queries/HistoryQueries.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt
# settings.gradle.kts
This is a partial revert/evolution of 538dd60580f1b97993620b05d353db883e44b552
- Back to notifications, because Android 12+ may cut off toasts
- Notifications now automatically dismiss after 30s on Android 8+ (taken from J2K)
- Also warn if more than 30 chapters are queued for download
(cherry picked from commit e81bd61e24d4d773dddce7f7fd11713fb511e8fb)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt
# app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt
There's some weird crashes related to it. Happy Eyeballs will return once we upgrade again.
(cherry picked from commit f060daf8c4ed94c5c5b6dc3007ba620612d637b4)
* Added divider to top of migrate button + adjusted top margin
* Migration sheet now opens fully when initialized
Co-authored-by: CrepeTF <trungnguyen02@outlookcom>
To avoid potentially opening up third party apps, which aren't useful for handling OAuth login flows.
(cherry picked from commit 0ed0d903ccc63a17a122003333966522e0c7c090)
Users should better curate their chapter folder/file names if need be. There's legit reasons for a chapter to start with or contain the same word(s) that the manga title consists of.
(cherry picked from commit b89acb5853ee8cf3e53a45bb28dfd0607f00d158)