Related to #3453
(cherry picked from commit 9e67abcc8a1e7ca90c0a92acc563e998a7a99886)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/reader/appbars/ReaderAppBars.kt
Text style to labelMedium and set secondary alpha to the whole row
(cherry picked from commit 5f34539525f93a92ca80f3b1fb9e71953b6758a1)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt
* Combining manga information into a function
* clean space
* indexes
* context
* clean
* textAlign for Tablet Mode
(cherry picked from commit d862d83511d6bc7dee53609bcac77c20b01bc795)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/manga/components/MangaInfoHeader.kt
* Mark author and artist
* overall style
* Clean up spacing
---------
Co-authored-by: arkon <eugcheung94@gmail.com>
(cherry picked from commit 7457a18aee15ce7b2afd01fc5bc33f08baa2f6f1)
We can house more things in here in the future, like:
- A unified storage location setting (with scoped storage)
- Sync
- Disk usage info
(cherry picked from commit c46c39d4aea887503838cc832822047f3a41018a)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt
* add ext info to crashlog
* add unofficial to crashlog too
* update to have header include unofficial too
* after ktlintFormat
* Clean up debug info output
---------
Co-authored-by: arkon <eugcheung94@gmail.com>
(cherry picked from commit 0bdd3f79d4d14318ba8110748c6d39484c6d446b)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/util/CrashLogUtil.kt
Being an extension on the DiskUtil couples to a class at a different abstraction
layer without really needing to. Created PermissionRequestHelper as a place to
put similar requests if needed in the future.
(cherry picked from commit 3b7ed9bc6d99c9822f3051f3696fb8359b4a8f8a)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/BrowseTab.kt
* Created DummyTracker for use in tests and presentation previews
* Added previews for TrackerSearch
* Added previews for TrackLogoIcon
* Added preview for TrackInfoDialogSelector
* Added previews for TrackInfoDialogHome
(cherry picked from commit 6d1e520c6c5c3860bbd588677bb4a05ab06fe830)
* open manga and chapter using URL
* removing unnnecessary logs
* Resolving comments
* Resolving comments
(cherry picked from commit f84868a2641578b7e07719d8f580e4668804fd50)
The lambda-format was really confusing to read and keep which anonymous data
item was corresponding to which field. Now it's directly inspectable in the IDE
(cherry picked from commit 15423bfc8476179dff20ed49e5aa92a5387061ff)
# Conflicts:
# data/src/main/java/tachiyomi/data/chapter/ChapterRepositoryImpl.kt
# data/src/main/java/tachiyomi/data/manga/MangaMapper.kt
# data/src/main/java/tachiyomi/data/manga/MangaRepositoryImpl.kt
# data/src/main/java/tachiyomi/data/updates/UpdatesMapper.kt
# data/src/main/java/tachiyomi/data/updates/UpdatesRepositoryImpl.kt
Closes#1652
Also removes the ability to trigger refreshes for the entire library or
as part of a library update as it should no longer be needed. Opening
the tracking sheet already refreshes the data too, so stale data is
irrelevant there.
Also closes#4775 since it would no longer be relevant.
(cherry picked from commit 489d22720a4343f198c81fe10f69d5b212bfc41a)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt
* Added display preview for HistoryDialogs
* Added preview with provider for each branch for HistoryItem
* Added previews for HistoryScreen
Created in-memory preferences construct for when its needed at top-level injection
* Fixed ktlint violations
(cherry picked from commit 447bcb28efa890ea1ebd73183b9ae25e8150be39)
Catches pages like what Shinigami is currently showing.
Also adjusts the banner to make it look more like part of the top AppBar so it
looks less like part of the webpage.
(cherry picked from commit c386d375dee2a846dd59395e6eda3a07311ed3d5)
This had a bunch of issues around split pages not showing up properly so things
end up appearing to be missing while reading.
It'd be more worthwhile redoing the reader viewers than trying to get this to work
properly. It'd be better to just enable the split pages on download instead.
Closes#8433
(cherry picked from commit 94cba9324c872b1f0caa3f4d385266f190a9b114)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderPreferences.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonPageHolder.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonViewer.kt
# core/src/main/java/tachiyomi/core/util/system/ImageUtil.kt
This should be compatible with Aniyomi's implementation.
Related to #1857
Co-authored-by: jmir1 <jmir1@users.noreply.github.com>
(cherry picked from commit 72024aa44af1622fd148b859c8cea0c3404dc370)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsBackupScreen.kt
# app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupConst.kt
# 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
Except now it's just an on/off toggle for relative up to a week.
(cherry picked from commit 56d2464870cbd59f1e67dab7cf2a359bddfa0f41)
# Conflicts:
# app/build.gradle.kts
# app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt
# app/src/main/java/eu/kanade/presentation/updates/UpdatesScreen.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesScreenModel.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/updates/UpdatesTab.kt
Also limit the dates we look at to most recent 10 distinct dates only. Closes#9930
(cherry picked from commit 6663abebaf69241741d0702331857951834ba806)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestorer.kt
# app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt
These are basically 1-to-1 replacements for the existing RxJava APIs.
This will make the initial migration off of RxJava simpler. We'll
revisit the actual call flows in followup versions of the API.
(cherry picked from commit 26c5d761da4ba577481f41e63f03952b8a6c323f)
# Conflicts:
# data/src/main/java/tachiyomi/data/source/SourcePagingSource.kt
# source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt
# source-api/src/commonMain/kotlin/eu/kanade/tachiyomi/source/online/HttpSourceFetcher.kt
Not sure if this will return to the download queue screen, you really
shouldn't be downloading a ton of stuff at once anyway?
(cherry picked from commit 1668be85875522721ee971afac4b46aa7da343c6)
# Conflicts:
# app/src/main/res/values/styles.xml
We use the application ID now to ensure uniqueness if the same folder is selected
between different app versions/forks. This will make more sense once storage
settings are unified to a single location.
Also changes the file extension while we're at it so people stop accidentally
ungzipping it.
(cherry picked from commit cc018cee182f880ebfe07e45809a98d0f6d73220)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/backup/models/Backup.kt
Should be better at incremental builds.
To format, run `./gradlew ktlintFormat`.
(cherry picked from commit d29b7c4e5735dc137d578d3bcb3da1f0a02573e8)
# Conflicts:
# buildSrc/src/main/kotlin/tachiyomi.lint.gradle.kts
# data/src/main/java/tachiyomi/data/manga/MangaMapper.kt
# domain/src/main/java/tachiyomi/domain/library/model/LibrarySortMode.kt
# domain/src/main/java/tachiyomi/domain/library/service/LibraryPreferences.kt
# domain/src/main/java/tachiyomi/domain/release/interactor/GetApplicationRelease.kt
# presentation-core/src/main/java/tachiyomi/presentation/core/components/CollapsibleBox.kt
Implemented as an intermediate step in the existing Global Search share intent workflow.
If any source manages to resolve the URI (e.g., a URL, a slug, etc.), the resolved SManga entry
is directly opened. If nothing gets resolved, continue to a Global Search.
(cherry picked from commit 6d9a8a30e974574b8d92ba478333e6f62b0de2e2)
Closes#9834
Individual tracker implementations already handle setting it too on update.
(cherry picked from commit 8a6a104987738c7251097f172d24aa7235a86e96)
* Add private extension install method
Private extensions are put inside private data directory of the running app, so
this kind of extensions can only be used by the running app and not shared with
other apps.
One limitation of private extension is the lack of deeplink handlers (if there's
any) since the extension APK is not installed to the system.
When both kinds of extensions are installed with a same package name, shared
extension (the one installed to the system) will be used unless the version
codes are different. In that case the one with higher version code will be used.
* update
(cherry picked from commit 627f07408e0fe62ab89dcd8881275141591b328d)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/extension/model/Extension.kt
Fix bug of not fetch update if manual library refresh, no auto
If somehow manga missed check period, we would not give new next update cycle and it would forever left behind
(cherry picked from commit d874f20362217bf1752b16f513143f1f83972f69)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt
Contents' UIs should probably be improved, but that can happen separately.
(cherry picked from commit 73080902885c9d219f5534002ccf5d16a07a678f)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
* Add support to kotlin.time APIs in the rate limit interceptor.
* Add a missing line break in the doc.
* Move the specific host to the same file.
* Add kotlin.time rule to Proguard and remove specific host rule.
* Mark the old version as deprecated and address review.
* Remove unused import.
* Remove yet another unused import.
(cherry picked from commit 9b6567f5e4bfa4b8a4845400216551fd28545094)
Not really much point in keeping these as singletons.
Hopefully allows for these to be GC-ed after closing them.
(cherry picked from commit c9a1bd86b58ce4a41bfc0eeb527cac9d30802353)
* Add Predict Interval Test
* Get mangas next update and interval in library update
* Get next update and interval in backup restore
* Display and set intervals, nextUpdate in Manga Info
* Move logic function to MangeScreen and InfoHeader
Update per suggestion
---------
Co-authored-by: arkon <arkon@users.noreply.github.com>
(cherry picked from commit cb639f4e90121b98221ba7358108200c46b6657f)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/manga/components/MangaDialogs.kt
# app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestorer.kt
# app/src/main/java/eu/kanade/tachiyomi/data/library/LibraryUpdateJob.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreenModel.kt
* refactor: backup and restore to support cross device sync.
* chore: Updated string resources
* refactor: change function name.
* refactor: Use URI SyncHolder.kt not needed anymore.
(cherry picked from commit 7b2764e8f70ff4564fb744f48c1c53692f55f289)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupManager.kt
# app/src/main/java/eu/kanade/tachiyomi/data/backup/BackupRestorer.kt
Still needs better refactoring to dedupe all of this stuff though...
(cherry picked from commit dd3ca0c131f4251302e0852265893f68c142f6a4)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateSearchScreenModel.kt
The per-series settings aren't quite functional yet, but they're also
accessible outside of the sheet.
(cherry picked from commit 28131ac1357e1134d75c02e2a3bb5e3161a3ecfe)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/reader/settings/ReadingModePage.kt
# app/src/main/res/layout/reader_activity.xml
# app/src/main/res/values/attrs.xml
# app/src/main/res/values/themes.xml
Pinned only setting is removed in favor of the UI in the global search screen itself, which defaults to pinned only.
This needs more UX improvements, but I'm not really sure what it should be like right now.
(cherry picked from commit 12e7ee9d0caaa56d551908d179788fa637768397)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateSearchScreen.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/globalsearch/GlobalSearchScreenModel.kt
* add pinned and available filter chips to global search
* split filter predicate into seperate function
* change the global search available filter to has Results
* reordering of imports
(cherry picked from commit cbcec8c4d9d6f08ecb6ab50eff9aa51d4a3728a0)
Also allow webtoon side padding to be any amount between 0 - 25%.
(cherry picked from commit 2f0133986a60fbd4218e32fce19df6171bad4e71)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderSettingsSheet.kt
# app/src/main/res/layout/reader_pager_settings.xml
# app/src/main/res/layout/reader_webtoon_settings.xml
Could probably call this if we ever make it update tracking on manually
marking chapters as read.
(cherry picked from commit efabe801be56476bf9ee536747f39ab8d486ca12)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
* feat: added migrations.
* feat: create triggers, account for new installs.
* feat: update mappers to include the new field.
* feat: update backupManga and backupChapter.
Include the new fields to be backed up as well.
* feat: add sql query to fetch all manga with `last_favorited_at` field.
* feat: version bump.
* chore: revert and refactor.
* chore: forgot to lower case the field name.
* chore: added getAllManga query as well renamed `fetchMangaWithLastFavorite` to `getMangasWithFavoriteTimestamp`
* chore: oops that's not meant to be there.
* feat: back fill and set last_modified_at to not null.
* chore: remove redundant triggers.
* fix: build error, accidentally removed insert.
* fix: build error, accidentally removed insert.
* refactor: review pointer, make fields not null.
(cherry picked from commit a577f5534f31086174b1cc851d8b489d69f557e8)
# Conflicts:
# app/build.gradle.kts
# app/src/main/java/eu/kanade/tachiyomi/data/backup/models/BackupManga.kt
# data/src/main/java/tachiyomi/data/manga/MangaMapper.kt
# data/src/main/sqldelight/tachiyomi/data/mangas.sq
# data/src/main/sqldelight/tachiyomi/migrations/25.sqm
# domain/src/main/java/tachiyomi/domain/manga/model/Manga.kt
Using swipe (the library) and added haptic feedback
(cherry picked from commit 8287c9d1935ac16980f9dd0ac4e0284775554a74)
# Conflicts:
# app/build.gradle.kts
# app/src/main/java/eu/kanade/presentation/manga/components/MangaChapterListItem.kt
Fixes#9564
Avoids the issue of clearing the cache when the app is backgrounded despite being in the reader.
We could do a job on idle, but we'd still need to be careful around whether the reader is active,
so this is just simpler considering it's a separate activity.
(cherry picked from commit 53c6230afebe8e8cddca216f281fdec70e450a33)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
add function to delete downloaded chapters when migrating manga and getFlagsFromPositions fix
(cherry picked from commit 4882896f4d65acabb82771699906b797b3de7662)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/MigrationFlags.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateDialog.kt
Fixes#9668
Could probably refactor this a bit more, but the reader view model stuff is a mess in general anyway.
(cherry picked from commit 6fe5e6e21bfaef2f03ecca3659e03835fc354602)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
* Show a progress indicator while checking for updates.
* Remove a unused import.
* Remove the initial toast.
(cherry picked from commit 2a7cca6ea43f88e10db313f3361184d90ae80c4c)
It'll eventually be a tab with the other settings again once the other tabs are also
migrated over so it's just a single Compose sheet.
(cherry picked from commit fe82cdb9c85274e0c9b904ec6b37fac97d01ea37)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/more/settings/PreferenceItem.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderActivity.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/setting/ReaderColorFilterSettings.kt
# app/src/main/res/layout/reader_activity.xml
I missed this in the PR that it came with, but I guess it'll be useful if we go multiplatform.
(cherry picked from commit f344831d5877d1d0a7772b00f498ddfb6e86da04)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
Referring at the examples and other internal usages, the
resulting stateful Modifier should be separated from
all the previous Modifier chain.
(cherry picked from commit 25b0458930b3de21340cdc201e7e5e46501dbda1)
* Dialog for service tracker removal added, anilist query prepared
* added API delete requests for Mal and Kitsu
* implement and fix tracker delete for anilist, shikimori, mangaupdates
* implement and test mal delete request
* Update to dialog text to reflect current tracker
* finish kitsu api request and block bangumi tracker removal
* Change delete flag into interface, localise strings, clean up logs
* Add shikimori delete compatibility for already existing entries
* update track delete dialog prompt to include checkbox, update strings
* Update i18n/src/main/res/values/strings.xml
Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>
* Update i18n/src/main/res/values/strings.xml
---------
Co-authored-by: unknown <zaghdane@fireflow.de>
Co-authored-by: arkon <arkon@users.noreply.github.com>
Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>
(cherry picked from commit b36b3bfcabd4a33826b455e1cdfc06fde110a452)
Similar to J2K. This only applies on Android 12+.
(cherry picked from commit ee95c1439f8c47d912c88bd9ebb442e64a89f8ff)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateDialog.kt
Actually closes#7228, which I forgot was about history more than trackers.
(cherry picked from commit e323f3c25a22ba7b9b831f17064ee7196b5ce951)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderViewModel.kt
* Refactor updateSuccessState
- Convert to inline function
- Use when for type safety if we add other MangaScreenState types
* Replace equivalent expressions with updateSuccessState
* Replace safe cast in MangaScreen
(cherry picked from commit cf777d989339a5190966b537aa493c5984d36a93)
State approach doesn't work well for client-side routed apps like MangaDex.
Fixes#9576
(cherry picked from commit 39a7356ed15b111fd940fc4bb8059f7130a1542e)
There seems to be little value in this feature, and juggling flag masks is annoying.
Per-category sorting is still a thing, but could be refactored away from the flag in the feature.
(cherry picked from commit 405a75438a61770a12292cc87c0fa36e16668124)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/library/LibrarySettingsDialog.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryScreenModel.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt
# domain/src/main/java/tachiyomi/domain/category/interactor/SetDisplayModeForCategory.kt
# domain/src/main/java/tachiyomi/domain/category/interactor/SetSortModeForCategory.kt
Redundant with predictive back, but also just sort of pointless since it doesn't help
with any sort of app state retention.
(cherry picked from commit 8f4bc71cf7b99fe0b0d2ea68dfca0140477686cc)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsGeneralScreen.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
* Replace RxJava in extension installer
Replace common downloadsRelay with Map of individual StateFlows
* Drop RxRelay dependency
* Simplify updateAllExtensions
* Simplify addDownloadState/removeDownloadState
Use immutable Map functions instead of converting to MutableMap
(cherry picked from commit 0ac38297f4bdeb83b2d9c8919b89520e9722f35e)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/extension/ExtensionManager.kt
Still limits to things within the past 3 months though.
Closes#9554
(cherry picked from commit 4c65c2311e09bf5dcb77327c415a6fddd12123c5)
# Conflicts:
# data/src/main/java/tachiyomi/data/updates/UpdatesRepositoryImpl.kt
# domain/src/main/java/tachiyomi/domain/updates/interactor/GetUpdates.kt
* Add Grace Period value and settings
* Add functions to calculate nextUpdate
* update per review
* Move more into SetMangaUpdateInterval, keep wrapper
(cherry picked from commit c90f3449108a8362fea1ee9070979b5a14be9be5)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt
# domain/src/main/java/tachiyomi/domain/library/service/LibraryPreferences.kt
Related to #7813. It still starts below the status bar, but it looks a bit less weird.
(cherry picked from commit 899fe57f154c01d9dab46863641d1094267c991d)
Closes#9442 because I just removed the rounding entirely...
(cherry picked from commit 929a881943bd0a08b2209ee478be1fcd6539de7b)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/manga/components/MangaChapterListItem.kt
The Dialog is handling it anyway, so this doesn't really do anything useful.
We might need to add this back if Dialog actually handles edge-to-edge properly.
(cherry picked from commit e3b27209246c60e2de7033976573681352fee7f9)
* Rename removeFromQueueByPredicate to removeFromQueueIf
Follow-up to PR comment in #9511
* Make Download hashCode stable
Mutating pages would previously change the Download hashCode, which
breaks HashMap lookups.
* Convert Donwloader subscription to coroutine
Replace downloadsRelay with activeDownloadsFlow. Instead of managing
a PublishRelay independent from the queue, derive a Flow of active
downloads directly from the queue StateFlow. (This will allow
updating the queue without pausing the downloader, to be done in a
follow-up PR.)
When a download completes successfully, the downloads is removed from
queueState. This updates activeDownloadsFlow and causes the
downloaderJob start the download job for the next active download.
When a download fails, the download is left in the queue, so
queueState is not modified. To make activeDownloadsFlow update
without a change to queueState, use transformLatest and use the
Download statusFlows to suspend until a download reaches the ERROR
state.
To avoid stopping and starting downloads every time
activeDownloadsFlow emits a new value, maintain a map of current
download Jobs and only start/stop jobs in the difference between
downloadJobs and activeDownloads. To make sure all child download
jobs are cancelled when the top-level downloader job is cancelled,
use supervisorScope.
* Remove obsolete main thread references in Downloader
Thread safety of the queue state used to be guaranteed by running all
queue mutation on the main thread, but this has not been true for
some time. Since the queue state is now backed by a StateFlow,
queueState can be safely updated by any thread.
(cherry picked from commit 3ae1e37c40fcfa43798377d2d9b8af58ec4498db)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt
This reverts commit ce81b76150006b9b23ad5424d49c3de36fb8c090.
Fixes crashes when opening menus. Cascade doesn't have an update
to fix this yet.
(cherry picked from commit b4bb8556751353c06531b55f3b052217254314c0)
Turns out that changing the pagerSnapDistance
is enough to achieve the same result.
(cherry picked from commit 96defd6b054101c540dc62907e43f4aa5db1ef6c)
Related to #8270
(cherry picked from commit bcd90be5254fbb3bbf0878a321d89620beb71707)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/more/settings/screen/debug/WorkerInfoScreen.kt
* Implemented local cover encryption and made coil capable of reading encrypted cover archives
* add check that the file is not an image before determining that it is a zip file
Issues:
- Apache implementation relies on methods unavailable on lower Android API levels
- Using input stream implementation doesn't seem to read some files properly, but using
ZipFile implementation still requires reading the entire thing into memory
(cherry picked from commit 6f59c6c6bb12f1ef123abd418001c7a86d43ef7a)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ZipPageLoader.kt
I feel like this needs to be aligned with the browse screen/deduped somehow, but that can happen separately.
Fixes#9444
(cherry picked from commit 1b25290d399037fe2d9744a899f86ca128699f8e)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SourceSearchScreen.kt
Fetch each source image URL immediately before downloading each image
instead of fetching all URLs and then downloading all images.
Source image URLs may change, so the downloader may fail if there is
too long a delay between fetching the image URL and downloading the
image.
(cherry picked from commit bbe0ab1dd0b51bcb91ff0a7f78555b078d73201e)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt
Closes#9255, sort of. The example is a bad edge case though, where chapter numbers are repeated across versions,
so realistically only the first 113 will appear but the later 113(s) won't despite being "different". Those realistically
should be in different manga entries, not all mixed together, so this is just a crappy source.
(cherry picked from commit 9339ea41962c5a8d8317eb973b25b7dc39b15843)
- It changes the columns based on the current orientation
(cherry picked from commit 7451c13edd8486dd690bf7a2a55c3372b26061c4)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/library/LibrarySettingsDialog.kt
* added chapter swipe
* Rework corner animtion
* Update i18n/src/main/res/values/strings.xml
Co-authored-by: arkon <arkon@users.noreply.github.com>
* Replace LTR/RTL with Start/End layout
* Added label to the animation so the warning will go away
* Getting rid of the swipe threshold setting
* adding disabled option, renaming stuff, other stuff?
* Getting rid of the snackbar
* Getting rid of unecessary strings
* changing enum names as requested
* Renaming Raio to Ratio (I need a better keyboard as well -__-)
* Replacing error with download icon and action
* backup
* minor cleanup
* fixing an nasty edge case
* fixing mistakes in the previous conflict
* space
* fixing bug
fixed bug where the user could dismiss already dismissed item leading to item getting stuck
* fixing lint errors
* fixing lints (hopefully)
* Added "swipe disabled" to the list of actions
* Replacing string value and moving value as requested
* replacing rest of the strings with generic ones
---------
Co-authored-by: arkon <arkon@users.noreply.github.com>
(cherry picked from commit a8f17a3fabae7070a353661873c7a5ae1ae23eca)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/manga/MangaScreen.kt
# app/src/main/java/eu/kanade/presentation/manga/components/MangaChapterListItem.kt
# app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt
# domain/src/main/java/tachiyomi/domain/library/service/LibraryPreferences.kt
* Extract downloaded archives to tmp folder when loading for viewing
* Generate sequence of entries from ZipInputStream instead of loading entire ZipFile
(cherry picked from commit 44619febd333f4e662cdbf149ae0741a43ebd27b)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ZipPageLoader.kt
* change the directory's name for a download when the chapter's name is only composed of numbers or is blank
* maj in case the chapter name is blank or empty
* clean code
(cherry picked from commit 41cc1fe7237a52c830e87c8261254b7f59922a6b)
* App version
* WebView version
* ART profile status
* Device model
* Android version
(cherry picked from commit 2c6e02506363496a183f2ecb7b50382a1544e94e)
* Initial Implementation of encrypted CBZ archives
* changed a preference key to correct Syntax, changed a function name and changed ComicInfo padding length
* Update app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt
Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>
* Update app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt
Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>
* add necessary imports
* fix indentation after merge conflict
* Update app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsSecurityScreen.kt
Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>
* fix indentation and add imports
* collect preferences as states
* test if password is correct in ZipPageLoader
* added withIOContext to function call
* added encryption type preference
* implemented database encryption
* added proguard rules for sqlcipher and generate padding length with SecureRandom
---------
Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>