+9
−0
+32
−0
+3
−0
Loading
syncNow() had exactly one caller — the button in the sync screen — so a
user with a gpodder server only ever synced by hand, as one reported.
Feeds were no better: nothing refreshed them except a pull-to-refresh and
a background task the system runs when it feels like it, with a four-hour
floor.
Both now run at launch and when the app comes back to the foreground,
throttled to once every thirty minutes so switching apps does not hammer
anyone's feeds, and the background pass syncs before it refreshes. Sync
goes first either way: a subscription added on another device is then
picked up in the same pass instead of a day later.
The automatic path takes a separate entry point. syncNow() reports that
sync is not configured, which is right for someone who just tapped the
button and wrong for something running on its own, so syncIfConfigured()
stays silent instead.
Verified on an iOS 26 simulator: one pass at launch, and an immediate
return to the foreground is skipped by the throttle.
Co-Authored-By:
Claude Opus 5 <noreply@anthropic.com>