Commit Graph

5459 Commits

Author SHA1 Message Date
KaiserBh
efb8d61e3e
chore: ktlint.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
2024-01-07 09:58:26 +11:00
KaiserBh
eb5b1610d0
feat: Enhanced SyncYomi with Robust Locking Mechanism
- Introduced `LockFile` data class to manage sync status and ownership.
- Enumerated `SyncStatus` to clearly indicate the stage of synchronization: Pending, Syncing, or Success.
- Implemented a new `beforeSync` method utilizing `OkHttpClient` for secure HTTP calls to manage the lock file.
- Added JSON serialization for lock file management and status updates.
- Implemented exponential backoff strategy to handle concurrent sync attempts and reduce race conditions.
- Added comprehensive logging for debugging and monitoring sync processes.

This update enhances the reliability and concurrency handling of SyncYomi's synchronization process, ensuring users experience seamless and efficient data syncing in a self-hosted environment.

Signed-off-by: KaiserBh <kaiserbh@proton.me>
2024-01-07 09:50:30 +11:00
KaiserBh
39d5714a1b
feat: Implemented Lock Mechanism for Synchronization.
- Refactored beforeSync() to incorporate a robust locking mechanism.
- Added backoff strategy to handle race conditions during concurrent sync attempts.
- Ensured single instance of sync data file on Google Drive to prevent duplication.
- Optimized lock file checking and handling for efficient synchronization process.

This update significantly improves the reliability and efficiency of the syncing process by preventing race conditions and ensuring that synchronization actions are atomic.

Signed-off-by: KaiserBh <kaiserbh@proton.me>
2024-01-07 09:48:44 +11:00
KaiserBh
2e5686372a
Merge branch 'master' into sync-part-final 2024-01-06 16:35:24 +11:00
arkon
8321ff6000 Bump dependencies 2024-01-05 23:21:19 -05:00
arkon
9c899e97a9 Clean up external repos
- Accept full URL as input instead, which allows for non-GitHub
- Remove automatic CDN fallback in favor of adding that as an external repo if needed
2024-01-05 23:13:16 -05:00
arkon
556f5a42a7 Fix lint error 2024-01-05 17:49:19 -05:00
arkon
850813820c Disable customized fetch intervals for stable builds for now
Until some of the issues get ironed out.
2024-01-05 17:39:12 -05:00
arkon
dba5e6fbfd Revert "Implement predictive back animation (#10273)"
This reverts commit 9c120e6231.

Potentially too buggy for a stable release for now.
2024-01-05 17:37:04 -05:00
arkon
c17ada2c98 Support external repos
Largely taken from SY.

Co-authored-by: jobobby04 <jobobby04@users.noreply.github.com>
2024-01-05 17:28:08 -05:00
arkon
32bed9b041 Change fetch interval action to show days until next expected update 2024-01-05 17:08:39 -05:00
arkon
e0a0942015 Remove custom extension readme/changelog URLs
These were barely used/maintained, so just killing them.
Changelog menu item still exists to take you to the relevant git history.
2024-01-05 17:07:49 -05:00
arkon
493da5c3f4 Force users to retrust unknown extensions on cold starts 2024-01-05 08:53:45 -05:00
arkon
4e221397ce Remove tmp chapter files after exiting reader 2024-01-04 18:02:40 -05:00
KaiserBh
b987e12db0
refactor: flipped the function names.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
2024-01-04 22:14:40 +11:00
KaiserBh
7bd9c2f7c0
Merge branch 'master' into sync-part-final 2024-01-03 00:45:44 +11:00
arkon
22589a9c30 Fix next expected update being weird number sometimes
Occurs if manga.lastUpdate has never been set yet.
2024-01-01 18:32:21 -05:00
KaiserBh
977b55df8c
chore: Ktlint.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
2024-01-02 08:15:32 +11:00
KaiserBh
e0e433349b
chore: merge upstream.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
2024-01-02 08:13:34 +11:00
arkon
ec478cbb1b Defer ACRA reporting until device is idle/not low battery/on unmetered network 2024-01-01 09:53:21 -05:00
arkon
b5e3f429fc Fix extension settings icon trying to install update instead of opening details 2023-12-31 23:46:07 -05:00
arkon
83130f9bf9 Try to show actual path in invalid location downloader notification
Instead of the class/hashCode, which doesn't mean much to a user.
2023-12-31 23:33:10 -05:00
arkon
6f34c5e894 Prevent creating backups with no valid options selected 2023-12-31 09:33:19 -05:00
arkon
74931fad86 Use Material3 version of AboutLibraries 2023-12-31 08:57:11 -05:00
arkon
6ab8e1e73d Don't use reflection for handling backup options as boolean array
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.
2023-12-30 20:29:12 -05:00
arkon
1cdaa761b7 Dedupe common LazyColumn with action at bottom layout 2023-12-30 20:08:28 -05:00
arkon
54f4711f7b Show next expected update in interval dialog
Related: #9793
2023-12-30 19:15:52 -05:00
arkon
3d0d5c0472 Misc refactoring
- Abstract away relative date string building
- Dedupe large update warning logic
2023-12-30 18:33:35 -05:00
arkon
f0a0ecfd4a Allow creating backups without library entries
- 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
2023-12-30 16:02:36 -05:00
arkon
f3b7eaf4a3 Shorten restore warning message a bit 2023-12-30 12:16:53 -05:00
arkon
5bba7af24a Allow partial restores (library/settings)
Closes #3136
2023-12-30 12:09:55 -05:00
arkon
32c3269291 Filter out empty source preferences when creating backups 2023-12-30 10:38:32 -05:00
arkon
a1e84911be Clean up create backup UI 2023-12-30 10:36:30 -05:00
arkon
6bb77bcf1a Minor cleanup/address lint warnings 2023-12-30 10:30:32 -05:00
KaiserBh
ea536b04f1
chore: fix build error.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
2023-12-30 21:44:28 +11:00
KaiserBh
6466bf040a
chore: ktlint
Signed-off-by: KaiserBh <kaiserbh@proton.me>
2023-12-30 21:39:15 +11:00
KaiserBh
cf58a6d871
chore: merge upstream.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
2023-12-30 21:34:44 +11:00
arkon
ccec5c3efe Add ability to create manual backups with private preferences too 2023-12-28 17:38:37 -05:00
arkon
8735836498 Refactor backup option flags to normal data class of booleans 2023-12-28 16:44:46 -05:00
arkon
8b65fd5751 Minor exception message cleanup 2023-12-28 16:33:54 -05:00
arkon
f0710df356 Don't make install permission required during onboarding
Closes #10257

We show a warning banner in the extensions list and also rely on the system
alert popup if someone attempts to install without the permission already
granted.
2023-12-28 15:48:08 -05:00
arkon
3afcee81f4 Hide private installer option for stable builds 2023-12-28 14:55:31 -05:00
KaiserBh
8cd7774054
chore: lint
Signed-off-by: KaiserBh <kaiserbh@proton.me>
2023-12-29 05:58:47 +11:00
KaiserBh
57f9aed411
Merge branch 'master' into sync-part-final 2023-12-29 05:57:56 +11:00
KaiserBh
646ec0c947
refactor
Signed-off-by: KaiserBh <kaiserbh@proton.me>
2023-12-29 05:57:27 +11:00
KaiserBh
5dbeda6b65
Revert "chore: ktlint"
This reverts commit 6677c90a39.
2023-12-29 05:43:05 +11:00
KaiserBh
080192a1a5
revert: comparison clean up, simple equality check makes the restore longer.
I think when library get updated so will last_modified_at field since one of the field in the row changes and the trigger get triggered, so it's best to ignore it if the only difference is last_modified_at.

Signed-off-by: KaiserBh <kaiserbh@proton.me>
2023-12-29 04:25:17 +11:00
Ivan Iskandar
9c120e6231
Implement predictive back animation (#10273)
For home screen tabs, Navigator screens and most dialogs
2023-12-28 11:01:01 -05:00
KaiserBh
440b624903
refactor: Ktlint and replace enum.values with Enum.entries.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
2023-12-29 02:06:43 +11:00
KaiserBh
ae8b1d8913
refactor: clean up comparison.
Signed-off-by: KaiserBh <kaiserbh@proton.me>
2023-12-29 00:58:40 +11:00