* feat: add cross device sync.
* chore: add google api.
* chore: add SY specifics.
* feat: add backupSource, backupPref, and "SY" backupSavedSearches.
I forgot to add the data into the merging logic, So remote always have empty value :(. Better late than never.
* feat(sync): Allow to choose what to sync.
Various improvement and added the option to choose what they want to sync. Added sync library button to LibraryTab as well.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
* oops.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
* refactor: fix up the sync triggers, and update imports.
* refactor
* chore: review pointers.
* refactor: update imports
* refactor: add more error guard for gdrive.
Also changed it to be app specific, we don't want them to use sync data from SY or other forks as some of the model and backup is different. So if people using other forks they should use the same data and not mismatch.
* fix: conflict and refactor.
* refactor: update imports.
* chore: fix some of detekt error.
* refactor: add breaks and max retries.
I think we were reaching deadlock or infinite loop causing the sync to go forever.
* feat: db changes to accommodate new syncing logic.
Using timestamp to sync is a bit skewed due to system clock etc and therefore there was a lot of issues with it such as removing a manga that shouldn't have been removed. Marking chapters as unread even though it was marked as a read. Hopefully by using versioning system it should eliminate those issues.
* chore: add migrations
* chore: version and is_syncing fields.
* chore: add SY only stuff.
* fix: oops wrong index.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
* chore: review pointers.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
* chore: remove the option to reset timestamp
We don't need this anymore since we are utilizing versioning system.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
* refactor: Forgot to use the new versioning system.
I forgot to cherry pick this from mihon branch.
* chore: remove isSyncing from Chapter/Manga model.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
* chore: remove unused import.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
* chore: remove isSyncing leftover.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
* chore: remove isSyncing.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
* refactor: make sure the manga version is bumped.
When there is changes in the chapters table such as reading or updating last read page we should bump the manga version. This way the manga is synced properly as in the History and last_read history is synced properly. This should fix the sorting issue.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
---------
Signed-off-by: KaiserBh <kaiserbh@proton.me>
* Change preferences containing passwords to appStateKeys
* Change versionCode to 65
* fix merge conflict and add instructions to get library back after migration
`InputStream.available()` is implementation-dependent, should never assume it will return the total number of bytes in the stream.
(cherry picked from commit d0e64d3a66d227ca61fc8d956b03cab5ac3b84f0)
# Conflicts:
# core/common/src/main/kotlin/tachiyomi/core/common/util/system/ImageUtil.kt
* replace the windowInsetsPadding for navigationBarsPadding + statusBarsPadding
* Enabling TYPESAFE_PROJECT_ACCESSORS
* Adding typesafe project accessors in the app module
* Adding typesafe project accessors in the core module
* Adding typesafe project accessors in the core-metadata module
* Adding typesafe project accessors in the data module
* Adding typesafe project accessors in the domain module
* Adding typesafe project accessors in the presentation-core module
* Adding typesafe project accessors in the presentation-widget module
* Adding typesafe project accessors in the source-local module
* Adding typesafe project accessors in the source-api module
* Rolling back
* Changing TYPESAFE_PROJECT_ACCESSORS line
* Removing extra spaces
(cherry picked from commit e17d87f35749715946a96dc0e654792227c6722d)
Wasn't working correctly in release build, _probably_ because of R8 despite kotlin-reflect
shipping with Proguard rules and us already keeping all Tachiyomi classes.
(cherry picked from commit 6ab8e1e73dbcc65d693dd2ed2680c950139dadde)
- In case you want a backup of just settings?
- Also disable backup options if dependent option is disabled (and fix being able to toggle disabled items)
- Also fix crash in RestoreBackupScreen due to attempt to parcelize Uri
- Make restore validation message a bit nicer
(cherry picked from commit f0a0ecfd4a5c8ee85fdcf7e92dc9a0079ef40cde)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/backup/restore/RestoreOptions.kt
- Show bar representation of used/total space
- Handle all mounted storages
- Also included a bunch of unrelated immutables changes, sorry
(cherry picked from commit f31bc47757b3792f92c2c8721739b5e2d91b825d)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsAdvancedScreen.kt
# app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsDataScreen.kt
# app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsLibraryScreen.kt
# app/src/main/java/eu/kanade/presentation/more/settings/screen/SettingsReaderScreen.kt
# app/src/main/java/eu/kanade/tachiyomi/data/cache/ChapterCache.kt
Requires adjusting some file reading to first copy to a temporary file
in cache that we have permissions to read from. This is only applicable for things
like ZIP files where we need an actual File rather than just some Android content
URI shenanigans.
(cherry picked from commit 4fcdde4913df28bbd678ae1be4a2971ed77179d3)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/RarPageLoader.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/reader/loader/ZipPageLoader.kt
# source-local/src/androidMain/kotlin/tachiyomi/source/local/LocalSource.kt
Which has more correct nullability for some methods and case insensitivity for listFiles where possible.
(cherry picked from commit a74a689c9048cc67f4854678fbfefa361631a5e7)
# Conflicts:
# app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt
# source-local/src/androidMain/kotlin/tachiyomi/source/local/image/LocalCoverManager.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)
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