- 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)