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
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)
* 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
* 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
* 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)
- 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.
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)
- 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
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
* 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 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
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)
* 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
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
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
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)
* Added basic move to top series feature
* Remove intermediate List
* Change text string
* Remove spanish manual translation
* Changed algorithm to use "partition"
(cherry picked from commit 3aa4e6eb93d7d821bfee313198f9d22f22da5889)
Considering there's no pagination for this list, the data loading can take some
time. So this will show the existing refresh indicator instead of empty view
while the list is loading.
(cherry picked from commit ffd9c6995a0ca376e72ca8271ff673b3477a6e78)
* Use the file extension from the ImageType enum
* Use the mime type from the ImageType enum
- On Android 29+
(cherry picked from commit cd070271921dd3191d1e3c51b631d9a2f999d5cf)
* Use MediaStore on newer Android Q or newer
* Use flow instead of Observable
* Review comment fixes
* Use suspended function instead of flow
(cherry picked from commit 1163aa4e4ecfe6f430e7f7c8323c0f64c73d7dbd)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/AppModule.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaPresenter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderPresenter.kt
* Recreate Backup worker with IS_AUTO_BACKUP_KEY flag
* Extra safety net to not delete backup folder
(cherry picked from commit 86016de6cbca0c83e15a05ca822abe450374d26b)
# Conflicts:
# app/build.gradle.kts
* Use existing worker for manual backup creation
This will show the "creating backup" notification when auto backup is
running. Complete or error notification will continue to be shown only on
manual job.
* Make sure disabling auto backup don't cancel running manual backup job
(cherry picked from commit d53bb4c337da6df807b43295d2991e8af9015098)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/backup/AbstractBackupManager.kt
# app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupCreateService.kt
# app/src/main/java/eu/kanade/tachiyomi/data/backup/full/FullBackupManager.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsBackupController.kt
Reappear stably on the api30 Android Studio Emulator,
first save a large backup file,
then save a small backup file, overwriting the previous larger backup file,
so you get a backup file with a larger size but only the first part is meaningful,
(cherry picked from commit 6f5328f663a7c3e148fa1d5b93ab5186b244fa1d)
* fix: getPageHolder would always return the first split, as they share the same index
* split pages have the same number, we need an extra check to know whether we move forward or back
(cherry picked from commit 2f07f226b8182699884262ac67139454d5b7070d)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt
Use ConstraintLayout for ez size ratio calculation and merge cover-only view
holder with compact's
(cherry picked from commit fad1449de34952e12e2c5464dccf500d49fa7fa1)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceItem.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryComfortableGridHolder.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCompactGridHolder.kt
# app/src/main/res/layout/source_comfortable_grid_item.xml
# app/src/main/res/layout/source_compact_grid_item.xml
* add quad9 as new doh provider
* add ipv6 addresses to google doh
* revert changes to import
(cherry picked from commit d8c8d7c58853c28adb36b2398b5bc65b6b1b9374)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt
* No title grid added to library and source
* Else added to display title in case image is null or empty
* No title grid renamed and now only available in library
* Spanish strings about cover only grid removed
Co-authored-by: micaelagimenez <micaela.gimenez@ext.prosegur.com>
(cherry picked from commit 44b055c01986b6b4952ab4658e04cf236f922fa0)
# Conflicts:
# 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/LibraryItem.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/library/setting/DisplayModeSetting.kt
* pan if the image is zoomed instead of navigating away
quickly display full landscape image before zooming to fit height in fit to screen
* add Tap to pan preference, defaults to true
add landscape zoom preference, defaults to false
* hide landscape image zoom option if scale is not fit screen
* fix landscape image zoom for first image and loading image
* properly reload pagerholders when landscape zoom option is changed
* enable landscape zoom by default
(cherry picked from commit d8719ceee9d19af73649613695c739c68091f146)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewer.kt
* added duplicate manga check
When adding a manga to your library, the app will go through each manga previously added and compare their names. If a match is detected, it will prompt the user and ask for confirmation. On this prompt there is also an option to view the other manga.
* added german translations for newly added strings
* Revert "added german translations for newly added strings"
This reverts commit 71ada620671651daeeb2546aecd02400a4bc86bc.
* changed `AlertDialog.Builder` to `MaterialAlertDialogBuilder`
* using SQL query instead of filtering entire library with Kotlin
(cherry picked from commit 71ddb1657440d54178f10fd62e3d0c66ee95a5a0)
* Reduce notifyDataSetChanged calls when category count is disabled
* Fix category tabs briefly showing when it's supposed to be disabled
Also fix tabs showing when activity recreated
* Lift appbar when tab is hidden
Check against tab visibility instead of viewpager
* Restore selected nav item after recreate
* Simplify SHORTCUT_MANGA intent handling
Don't need to change controller if the topmost controller is the target
(cherry picked from commit 2932ed670f5760eba28aea80f1dd29e7a9af48c7)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
So nobody will think that the error layout is broken when they see different
layout.
(cherry picked from commit 7108993936f440e6ad7fa927966b4963ec913124)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt
This requires adding the status bar foreground drawing logic since the parent
class wouldn't know the inset changes anymore.
(cherry picked from commit a68f12359436f0b57b50482687553f0a0b01845c)
* Fix Global and extension search input accepts formatted text #6495
* Code change as requested because of performance issue
* code changes as requested
* minor code changes
(cherry picked from commit 77a3acf5cc24410c7bc4b53b30c1f2e8e2f6f63c)
Since it seems to work fine, regardless of what the Material Components library seems to dictate.
(cherry picked from commit e3f3686b8a90fffe5140129a40f67b435c7d71a8)
To be exposed in extension-lib 1.3
(cherry picked from commit 375a27a93d76292a47310e9544c895f517af35f9)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt
* More coil
* ExtensionController: Drop first text change event
* Browse-Source: Remove unnecessary load
* ExtensionPresenter: Increase debounce timeout
To avoid heavy list reload during first enter animation
(cherry picked from commit 78a261f5d3911cd0546445c8f6e6e7baff35ae35)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourceController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourceHolder.kt
* Use material components on reader error views
* Adjust image loading behavior
Don't set automatic background color right away and keep show progress indicator
until the page image is fully loaded.
(cherry picked from commit b8f7653fb2eec259172e8b4631cdac5f662cafda)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt
App data is typically deleted during app uninstallation, which some users are unaware of. The folder is also inaccessible externally by default in Android 11+, which is also annoying to users.
(cherry picked from commit 8a5d8c96ef65abfd7e0dce0f9530849e0afabf34)
The remaining ones could also be converted to FlowPreferences for this, but it's not really necessary.
(cherry picked from commit f3718257f50e595dbbf04c8d2e90a21fb4d80c09)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt
# app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionPresenter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsBrowseController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsLibraryController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsReaderController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsSecurityController.kt
This is a follow up to 845e06138299c0333ca90ed9578422567779a9ac
...jk i actually forgot about it
(cherry picked from commit 728e14e8e4f4d8d02aff429104afda213437ae8c)
Add support to searching with source name, id and baseUrl for a extension's sources.
(cherry picked from commit 9e83130bd8a8fac1b13b0d093c301cd93892c27e)
* Pair ActionToolbar with ActionMode
This makes ActionToolbar an activity object that can be configured in the
similar way as ActionMode
* Remove action toolbar workaround now that it stays in activity layout
5924
* Set status bar color when action mode is active
6256
* Adjust fab show timing after action mode finished
* Adjust action toolbar layout and animation
Default corner size and use bottom sheet animation
6069
* Adjust action toolbar layout on large screen
Right half of the screen
(cherry picked from commit 2ed01af72381c3abc8692af22bc528c93f24d530)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
This doesn't make sense to have if the intention is to have reasonably sized global updates. Opting to remove it to remove complexity instead.
(cherry picked from commit 65062b4bcbe65ffc75a6c5e656d39c91be327d63)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaQueries.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsLibraryController.kt
* Add option for library update only update completely read manga
only check manga for updates if there is no unread chapter
* sum
(cherry picked from commit 6fddad7a77fca781582b9d98de66c29848df2a17)
Since apparently people don't read and either option is considered destructive to different people.
(cherry picked from commit cd87c7e88efafd5800b563d51c2ede4a84ad5e4b)
* Update shizuku api version
* SettingsAdvanced Controller: Verify if Sui is available
(cherry picked from commit 0a6160d7cf8a343ebe60ec814c42e3272a015d2e)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt
* Automatically set tracker as completed after reading the last chapter.
* use integer value in comparison
* also set `started_reading` date
* don't use source manga's status
* remove useless line
(cherry picked from commit a9d2741e6ab1f2c54398703a3ae7c0272a458b89)
* SimpleNavigationView: Don't set background and elevation
* Add divider for tabs in bottom sheet
(cherry picked from commit be0a23d9ad6a82ed9b26eaa6248807a80876db63)
(Which doesn't actually exist yet, but will at some point after the next major release)
(cherry picked from commit 60e73e2d1f89e254616fb5659d9f53f6399bbdba)
To be included in extension-lib 1.3 as a replacement for the lib that's currently compiled in tachiyomi-extensions.
(cherry picked from commit e8f284d377ebe6930e147cd36494020d4ae96f47)
To be included in extension-lib 1.3 (or whatever it's going to be). This applies to sources like Komga or Lanragi, where large numbers of update/download aren't of concern since they're (usually) self-hosted.
(cherry picked from commit 3ea3b0bf2ecc3f74a790af2012dd4f4a6b2ab3f7)
* fix local source cover changing
* Remove unnecessary check for `exists()`
* fix for when there is no thumbnail_url in the db
(cherry picked from commit 10ddeeb7999214f1ed2fa579dadab7e9e379c1a6)
* MinMaxNumberPicker: Set IME input to use number only
* MinMaxNumberPicker: Auto disable keyboard input when needed
(cherry picked from commit 3463d6c752cfc1145f4c8db9f65f145002ece5fb)
* Implement feature to selectively clear manga from database based on it's source
* Code cleanup and refactoring
(cherry picked from commit 9fe1a7e2ae14c4d7e70bfd85516d91c44514f04a)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaQueries.kt
# app/src/main/java/eu/kanade/tachiyomi/data/database/queries/RawQueries.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt
* Fix "Check for updates" not working due to time cooldown
* Update AppUpdateChecker.kt
Co-authored-by: arkon <arkon@users.noreply.github.com>
(cherry picked from commit c0d0ff66b6b73efae29635a61e4ee2ea13a925b3)
* added automatic tablet ui option; useful for foldables
* set automatic as default, rename setting
* remove redundant checks
Co-authored-by: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
* remove redundant checks
Co-authored-by: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
* fix defaultValue
Co-authored-by: Ivan Iskandar <12537387+ivaniskandar@users.noreply.github.com>
(cherry picked from commit 41952f02156c888c68157ce123f82c1a6f8a323c)
Causing too many theming issues/complexity. This will make the Material 3 transition easier.
(cherry picked from commit f85dfa90b867c80b7a456c07ee03f99c9b71a987)
* Lower position of swipe refresh
* Tweak existing code that sets swipe refresh position
(cherry picked from commit 78de11a9e3d0b09698ad7605e798c2ab8a8c7606)
For example, the application may be launched from a service, where channels cannot be deleted.
(cherry picked from commit d4aeeadb26b19d0eccbf9c9adcfd459d7a3927da)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/App.kt
getCoverFile only returns a cover if it already exists, meaning
the block of code to write it from the inputstream never executes.
If getCoverFile returns null, then use previous behaviour of setting
it to cover.jpg so that if the file doesn't exist it's created
(cherry picked from commit f0a5557e603e31a53117c40426237d2340142bc2)
The previous rationale for not allowing manga titles to update (at all) was that it would be confusing for users if a manga's title arbitrarily changed when the source changed it. Presumably, users would care less about this arbitrary change for manga that is not in library, so this provides a path for getting a manga's title updated, and prevents incorrect titles from persisting in the DB for manga that get title updates but aren't in library.
(cherry picked from commit 58a871c8cc600dbf59691e9c51413ef9b7da3796)
Because some people actually read images with really small text
*I hope they have some extreme high quality pictures else I don't know how they read the raster images*
(cherry picked from commit 8f00d34b0b3a5dc30f12ff5a22fd242ade84defe)
Hopefully fixes some weird states where the bottom nav shows up when it shouldn't.
(cherry picked from commit 593091a5e304eff771604ff2a91cdc0c886c4d68)
- Uses toasts now
- Adjusted wording to emphasize effect on sources
- Download warning has a different threshold (15 chapters per source, vs. 60 entries per source for library update)
(cherry picked from commit 538dd60580f1b97993620b05d353db883e44b552)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt
# app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateService.kt
Users with smaller libraries have a lower change of getting updates frequently. "Power users" are actively hurting sources by updating frequently.
(cherry picked from commit 9e2ef82902369908503e860af12e8536a004bd43)
# Conflicts:
# app/build.gradle.kts
So I stop confusing it for updaters of other things.
(cherry picked from commit 21e647017b629d1ec07a32b548d27342810a2c6b)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/Migrations.kt
Reverts inset change from #5997, was changed due to it not changing the padding when using setPadding
(cherry picked from commit b4490e209ba74e657c192dddc983b17e8bc3217a)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryView.kt
Arbitrarily set at a size of 100 for now. We could adjust this in the future as appropriate if needed.
(cherry picked from commit 082eef708fc50f4b26b499bfd50e9046ec26637a)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt
* Implemented language badge on library items
* Added left margin for better viewing the badge on list view
* Adjusting borders on badges, cleaning string interpolation and cleaning code
* Improving readability on Holders and removing unused background and text on grid items
(cherry picked from commit 918502742d9cd26ac70b0db067bfae02bb4c4e88)
* group LocalSource and Other lang source together
* use better kotlin syntactic sugar
* add lang "other" to local
* remove duplicate LocalSource entries in Browse
* linting
* revert unnecessary linting
was a manually adding change
* Revert previous two commit but not the most recent
This reverts commit 30250f2f82fc5e38a1b30c7b55c445efec23a114
This also reversts commit 359ed5a8cda91577216b593a4138280e971e0126
* better way to avoid duplicate Local Sources
* more linting by plugin
* `""` lang is no longer used anywhere
(cherry picked from commit 2d1404d15523484d5f900ae3808c7f31058c2a8c)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcePresenter.kt
* Updating the download queue label to account for pending downloads even on paused state
* changing separator
* Created observer to update the TitleBar of the controller to reflect pending downloads
* Reverting changes from MoreController that were made in an another commit
* Refactoring updateTitle method
(cherry picked from commit e98f90b0992af1eb99c2aca4bbe7b26cdb9a231b)
* Updating the download queue label to account for pending downloads even on paused state
* changing separator
(cherry picked from commit 828db19e025c52719afc4c0c9ef19c7765122aa5)
* Remove padding when using list with Per Category setting (fixes#5636)
* Add view type to RecyclerViewPagerAdapter
Correctly this time (ノ◕ヮ◕)ノ*:・゚✧
* Minor tweaks
(cherry picked from commit 372e5005903d12f131088df04d50799e88ba2de4)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCategoryView.kt
* order sources by library count when migrating (closes#4703)
* Use plain menu instead of full-on sheet
(cherry picked from commit ba8abd94a8bcbe409e96cf7d606852a789e439ed)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrationSourcesController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/sources/MigrationSourcesPresenter.kt
* align text towards right end
aligns the text (`Settings/Settings+` etc) to the end of the Text rather
than letting it be centred
* append "+" only for two states
"+" needs to be added only if the following conditions are met:
- Extension is Installed and is a ConfigurableSource (regardless of it
having an Update or not)
- Extension is in InstallStep.Idle state
* linting
* Revert "align text towards right end"
This reverts commit 5e4511d0beaff038e9dc31189095e1b6d853c020.
Since it was rejected and doesn't help much
* better if checking strategy
because installStep.idle holds true for all extensions, even uninstalled
ones, that leads to not having to check Ext.installed anyways for the
combined OR to return `false`
Checking for extension.Installed check first leads to getting `false`
faster
* Clear focus from SearchView when submitting a search query in BrowseSourceController
* Revert "Clear focus from SearchView when submitting a search query"
* Implement SearchView focus clearing in Tachiyomi's subclass to enable feature throughout app
* Add support for keyboard Enter key
Pressing enter on a keyboard (when using the emulator for example) now also submits the query
(cherry picked from commit 82f14a7d59120e9de31351409f81d10671e4e394)
* Implement new extension install methods
* Fixes
* Resolve feedback
* Keep pending status when waiting to install
* Cancellable installation
* Remove auto error now that we have cancellable job
(cherry picked from commit b284384f0ad318fea24e7324a4621e12eb9aca7f)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceValues.kt
# app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionHolder.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt
Users can exclude things from updating if needed, or disable the notification channel from system settings.
(cherry picked from commit fce3cd00a1f7ed557c04a40d676c6a32a4237482)
* Change how the bottom navigation is hidden
Modifies the translationY instead of the height.
* Cleanups
(cherry picked from commit f125ab01ee07d7144f93e1c67cfcf425f0df5779)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
Since multisource extensions are no longer a thing, we now simply rely on the flag at the extension level, i.e. the per-Source/SourceFactory `@Nsfw` annotation is no longer checked.
We'll have to remove all of the annotation usages from the existing sources, which will also effectively break the setting for older versions of the app.
(cherry picked from commit a2cf210a524894e5c1d1f062e4813086b46777a4)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionHolder.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/ExtensionPresenter.kt
* MangaFullCoverDialog: Support animated drawable
* Scaled zoom duration
* Wrap reader's image view to be reused in MangaFullCoverDialog
* Cleanups
* Forgot animated stuff for webtoon view
* Cleanups
* Oopsie
* Cleanups
* Consistent max scale for SubsamplingScaleImageView
The max scale will be obtained from the default scale times 3 for
consistent 3x zoom scale.
(cherry picked from commit 746d35b52be76b1ba75be62cdc1192a769fb9661)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerConfig.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonPageHolder.kt
* Change ProtoNumber of Backup Models for History and Source to non-zero
Changed BackupHistory url and BackupSource name properties
* Provide backwards compatibility to current proto backups
- Added data class for zero-based protoNumber
- Restore both 'new' proto and old ones by mapping old to 'new' proto format
- Thanks to @jobobby04 for providing the initial solution.
* Fix on createBackup missing parameter for brokenSource
* Fix issues on build
* Fix missing import on FullBackupRestore
(cherry picked from commit 9a7a03e32744a966f01ad184cad3775b9e715dd8)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/backup/full/FullBackupManager.kt
# app/src/main/java/eu/kanade/tachiyomi/data/backup/full/models/Backup.kt
# app/src/main/java/eu/kanade/tachiyomi/data/backup/full/models/BackupManga.kt
* Added the exclude category from delete after being read
* Stopped it from adding a wildcard to the import
* Placed the remove after read to the download manager
(cherry picked from commit a051079c6a2719e5f7429b289281ea3b3138aace)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsDownloadController.kt
* Less hacky way to make sure bottom action toolbar doesn't scroll down
* Fix action toolbar overlapping on landscape
* Disable app bar transparency when ActionMode is present
(cherry picked from commit 7b3c18bb97e1ca6b8889d7aa271d715cfee684d4)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
* Remove the remaining MotionLayout
* Use ImageButton instead of Blank View to handle taps in dead area
And some tweaks
(cherry picked from commit abdb67a123d714401ede9760dfae797f37bb8c56)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt
# app/src/main/res/layout-sw720dp/manga_info_header.xml
# app/src/main/res/layout/manga_info_header.xml
# app/src/main/res/xml/manga_summary_section_scene.xml
* Hide lang tag when only one lang used
* Comment the code
Can't be too useless and do nothing, Ghostbear practically wrote the entire PR for me
* Exclude 'all' from counting as a language
Co-Authored-By: Andreas <6576096+ghostbear@users.noreply.github.com>
* Use existing Preferences directly from Presenter
* Replace regex with an existing value
Co-authored-by: Andreas <6576096+ghostbear@users.noreply.github.com>
(cherry picked from commit 763bd54707ce48ef67a0d5062cfbe014675ef522)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt
* Use QuadState Categories to edit mangas in Library
Add updateMangasToCategories to build build correct Categories list for
each manga using Common and Mix list
Update QuadState Multi-Choice to either Action or Display List
Display list would have different state sequece from Action
Uncheck-> Indeterminate (only if initial so)-> Check
fixup manga categories logic as Windows and push request comments
* fixup: Use QuadStateTextView.State enum
Update function to use QuadStateTextView.State enum that missed in last change
* fixup: missing closing bracket and type cast
Co-authored-by: quangkieu <quangkieu1993@gmail.com>
(cherry picked from commit ee711dc0fb317bf1a661ede66ad392b8d1416274)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.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
* Add icons to manga status
* Slightly better formatting
Mixed in with a dose of syntactic sugar
* Remove unnecessary lines
I think they are, at least
* Change according to review comments
- Fix forgotten Tablet code removal
- Change 'android:background' to 'app:srcCompat'
* Adjust size of icon
Smaller and more fitting to the environment
(cherry picked from commit d935e22f0df88d59e6e527cbc3db5dd7d908df35)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt
* don't trim newlines if summary expanded
* move description trim logic to separate function
* logic error oops
* let's try something
* fix bug on first load
makes it so that, description text is trimmed when entering manga from
library
Co-authored-by: Andreas <andreas.everos@gmail.com>
Co-authored-by: Andreas <andreas.everos@gmail.com>
(cherry picked from commit f683f21ee2daf6787e258b852b847582535221c1)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt
* Remove MotionLayout and add full screen dialog for enlarged cover
* Address some of the review comments
(cherry picked from commit e7d6dfff530db08a8380e68425b9f9d11da497cb)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt
# app/src/main/res/xml/manga_info_header_scene.xml
# app/src/main/res/xml/manga_info_header_scene_sw720dp.xml
* Add IME_FLAG_NO_PERSONALIZED_LEARNING flag to text input when incognito is enabled
Tested with Gboard only.
* Revert "Add IME_FLAG_NO_PERSONALIZED_LEARNING flag to text input when incognito is enabled"
This reverts commit 068399db
* Add IME_FLAG_NO_PERSONALIZED_LEARNING flag to text inputs when incognito is enabled
Source preference is not affected.
* Source preference stuff
(cherry picked from commit 3ea84cf0ce23d37a1787663834ab9922f10577f8)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/extension/details/SourcePreferencesController.kt
* make check only visible after selecting an item
* replace tick with button and send to bottom
* fixed button visibility
* grey btn out
* resolving some bits
* removing the tick from appbar
* remove useless lines, appl insetter
(cherry picked from commit c666dd623d2efdac2ec5a853cd5761a97ef6fd3a)
each TrackService can convert it to Int if decimal chapters are not supported
(cherry picked from commit 2cd87332125e8b4c703d2b8f47cfc0d540118a97)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/database/DbOpenCallback.kt
* Use ActivityCompat.recreate
* Use more KTX extensions
* Use PackageInfoCompat.getLongVersionCode
* Remove unnecessary compat usages
(cherry picked from commit 12a9d0575d432a4bc2f2c471e864d26205aba953)
* add new category for navbar appearance
* update strings for new appearance settings
also adds `pref_category_navbar` for new Navbar settings sub section
* Update SettingsAppearanceController.kt
Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>
* Add initial code for scaling animations, apply scale to reader nav overlay
* Rename extension function, apply system animator scale to ActionToolbar
* Apply system animator scale to expanding manga cover animation
* Apply system animator scale to image crossfade (also disables animated covers when browsing)
* Add documentation, make MotionScene Transition comment a bit more clear
* Disable animated covers in MangaInfoHeaderAdapter if animator duration scale is 0
* Disable animated covers in Library if animator duration scale is 0
* Convert loadAny listener to extension function
(cherry picked from commit df683375b1d7a15c03d315e85d4a0327b49f8ceb)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryComfortableGridHolder.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCompactGridHolder.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt
* Replace "More" with Arrows
We used to have arrows but it was set away from the description which took a lot of space.
It was changed to "More" text, but with the recent design changes I think it'd look better to get a mix between them both.
* Properly align icons
Co-Authored-By: Andreas <6576096+ghostbear@users.noreply.github.com>
* Expand support to Tablets
Get it... expand... hehe 😎
* Fix expanded width
Also fixes so that the constraint for the toggleLess is dependant on the right thing
* Give info toggles its own space
Uses its own margin now to push info rather than just being attached as a info margin.
* Remove weird duplicates I did not add
I did not add these but I don't see a reason to keep dupes
* Add bottom scrim
* Change to centered arrow under info
Anyone wanna experiment/build on top off then feel free to tweak
* Add background glow to icon for contrast
Co-Authored-By: Andreas <6576096+ghostbear@users.noreply.github.com>
Co-authored-by: Andreas <6576096+ghostbear@users.noreply.github.com>
Co-authored-by: Andreas <andreas.everos@gmail.com>
(cherry picked from commit 57aefcd9176450c6413d8e34482fb6c57d120498)
# Conflicts:
# app/src/main/res/drawable/manga_info_more_gradient.xml
# app/src/main/res/layout/manga_info_header.xml
# app/src/main/res/xml/manga_summary_section_scene.xml
* Fix failed reader context creation on v28
* Re-apply the reader styles manually after overriding night mode
This commit replaces the ThemeCompat.rebase() call since the private API used is
in dark greylist max target P, thus making it unreachable.
* Revert "Fix failed reader context creation on v28"
This reverts commit 6e2104d7
(cherry picked from commit b3854ad3829dbb97831cd8db3defeb967a89334e)
Co-authored-by: Andreas <andreas.everos@gmail.com>
Co-authored-by: Andreas <andreas.everos@gmail.com>
(cherry picked from commit 50b282f58ba37dd927a71c93a2a70938358e139a)
* Use user preferred title language in Anilist
Since Anilist is only used by authenticated users, the title language
can be set using the `userPreferred` field (defaults to romaji)
Changed wherever `title>romaji` was being used. Shouldn't have missed
any. `userPreferred` is also available for Staff and Character but not
relevant to Tachiyomi for now.
Users might need to go Logout and log back in on Anilist to see the
change. Actual setting can be found at https://anilist.co/settings/media
closes https://github.com/tachiyomiorg/tachiyomi/issues/5757
* correct title in anilist model
indicates the fact that userPreferred title is used
* convert forgotten `type` to `format` as well
leads to NPE when using `findLibManga`.
missed one query in https://github.com/tachiyomiorg/tachiyomi/pull/5741
(cherry picked from commit 708e71a35a275836f1f04ccc5f6de0725c4456f6)
The image will be drawn over it so the animation won't be visible anyway
(cherry picked from commit 4eaccc966eba26a47ed3e6d645dcccf8a4edf8ea)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt
* Requires authentication-confirmation to change biometric lock settings
* Prevent double authentications on older APIs when confirming settings changes
* Use new AuthPrompt API for app lock
With this commit, the app lock will only explicitly require Class 2 biometrics
or screen lock credential. Class 3 biometrics are guaranteed to meet Class 2
requirements thus will also be used when available.
* Use extension toast
(cherry picked from commit 90ab04e81d6ff26656488d3ab4dc3eca4976c5a9)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/security/SecureActivityDelegate.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsSecurityController.kt
* Prepare for edge-to-edge MangaController
* Fix derpy liftToScroll with our own implementation
* Edge-to-edge MangaController
Except when legacy blue theme is used.
* Save app bar lift state for controller backstack
* Fix expanded cover position after the view recycled
* Handle overlap changes when incognito mode disabled
* Tablet fixes
* Revert "Handle overlap changes when incognito mode disabled"
This reverts commit 1f492449
Breaks on rotation changes.
* Fix MangaController's swipe refresh position
* All controllers are now doing lift app bar on scroll by default
They are already doing that before so this pretty much just a cleanups.
* TachiyomiCoordinatorLayout: Support ViewPager for app bar lift state check
I'm willing to revert this if this minute detail solution is deemed too hacky xD
* Fix app bar not lifted when scrolled without fling
* Save app bar lift state across configuration changes
* Fix MangaController's swipe refresh position after configuration change
* TachiyomiCoordinatorLayout: Update ViewPager reference when controller is changed
(cherry picked from commit da16110e1c571526baea34275db41937f68c7e8c)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/ConductorExtensions.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/more/AboutController.kt
* Put themed reader context in adapter
This avoids creating themed context everytime the page holder is created, this
also allows the transition view to use the same themed context.
* Check against app night mode to create themed reader context
* ReaderTransitionView: Use context theme color for texts
The whole reader will need to be recreated when changing reader background while
webtoon mode is used, because recreating just the RecyclerView without messing
up the scroll position is impossible (I hope I just missed something).
(cherry picked from commit 914b686c8eaf3954e291355975532eb28662c38c)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerViewerAdapter.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonConfig.kt
* use format instead of type in anilist search
As per anilist graphql docs, `type` refers to whether anime/manga and is
redundant (since we already limit it to `MANGA`). What we actually want
is `format` which includes whether the media is a One-shot or Manga
This should help in making search a bit better as one no longer needs to
rely on the Date to figure out if its the One-shot entry or the Manga
entry
* Revert "use format instead of type in anilist search"
This reverts commit 6f0ba4888669f414a2093d7632eb1fab109d74de.
Accidentally changed the wrong query while further testing whoops
* use format instead of type in anilist search
As per anilist graphql docs, `type` refers to whether anime/manga and is
redundant (since we already limit it to `MANGA`). What we actually want
is `format` which includes whether the media is a One-shot or Manga
Changes search query and corresponding JSONALManga structure
(cherry picked from commit 27133520fcede737fb2390014443c67dbb8801cb)
* add Theme "Teal & Turquoise"
* re sorting & change tertiary dark
* use alpha on ripple color & capitalize
(cherry picked from commit 83436c9550fb46f6322959b01959542e967ec84e)
Apparently 0 quantity is ignored for some locales...
(cherry picked from commit 071bad123208274a8d4858038b4073a0ce208aa3)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt
* Use relative time in ChapterHolder
Similar to how J2K does it
* Use custom implementation for relative time
* Changes based on review comments
(cherry picked from commit 57a5862840eafc0848c5226376f2f22c48693e5a)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterHolder.kt
* Tweak threshold
* Put setting under Webtoon instead
Because it only affects Webtoon related viewers
(cherry picked from commit 7907a4fc24c972811feb6dbf14e99200210e3925)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceValues.kt
Similar to app bar's scroll behavior
(cherry picked from commit ff2a4e69526a2edfa5f3bd7570c09204e5ebb9f9)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
Will also set to indeterminate if progress is 0.
(cherry picked from commit cc55453076b5055fcd202fa10fa56e86493679c7)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/pager/PagerPageHolder.kt