feat: auto sync reading history on startup#699
Merged
Conversation
Start reading history sync when the app becomes ready instead of waiting for the offline tab, and add a configurable minimum auto-sync interval with 0 meaning disabled. Also check again on app activation, keep a dedicated in-flight guard for reading history sync, and document that localization updates must write Localizable.xcstrings sequentially to avoid file corruption.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Reading history only synced after opening the offline tab, which left app launch and foreground resume with stale local history data. The new localization workflow change also exposed that parallel
translate.py updatecalls can corruptLocalizable.xcstrings.Approach
Move automatic reading history sync to the app lifecycle so it runs when the app becomes ready and again when the scene returns to active, while keeping a configurable minimum interval and a dedicated in-flight guard to avoid duplicate runs. Add a network setting for the minimum interval, with
0disabling automatic sync, and keep the sync success notification consistent for both automatic and manual triggers.Scope
ContentViewinstead ofOfflineViewreadingHistoryAutoSyncIntervalHourstoAppConfigand expose it in SettingsInstanceInitializerto enforce interval checks and avoid overlapping history sync tasksValidation
make formatmake buildmake localize./misc/translate.py list