66d28761a85583a9f22a7ff5308f7d0186456b88
Three additional fixes found via live device logs: 1. Startup race window: FileObserver fires immediately after startWatching() before catchupScan coroutine runs, starting a 5s debounce with cooldown=0. Fixed by setting a 15s startup cooldown in watchPath() BEFORE calling watchDirRecursive. 2. Stale debounce bypass: debounce job started with cooldown=0 fires 5s later even after catchupScan has already set cooldown and started a catchup sync. Fixed by re-checking cooldown after the 5s delay and aborting if already active. 3. Debounce not cancelled by catchupScan: if a debounce was queued before catchupScan ran, catchupScan would enqueue a catchup sync AND the old debounce would fire 5s later enqueuing a second sync. Fixed by cancelling pending debounce in catchupScan before enqueue. Icon: four thick arcs (blue/red/green/orange) in a 4-way pinwheel with over/under ordering. White sync-arrow circle at center. Pure black background. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
SyncFlow
Native Android file sync app — sync any folder to WebDAV, SFTP, Nextcloud, ownCloud, Google Drive, Dropbox, or OneDrive.
Features
- Multi-provider — WebDAV, SFTP, SFTPGo, Nextcloud, ownCloud, Google Drive, Dropbox, OneDrive
- Flexible sync — one-way upload, one-way download, or two-way mirror
- Auto-sync — schedule by interval or trigger on Wi-Fi connect / device charge
- Conflict resolution — keep local, keep remote, keep newer, or keep both
- Secure — credentials encrypted with Android Keystore; biometric app-lock option
- No cloud dependency — runs fully on-device, no third-party relay
Install
- Download
SyncFlow.apkfrom the latest release - On your Android phone: Settings → Apps → Install unknown apps → allow your browser/file manager
- Open the downloaded APK and tap Install
- Open SyncFlow, go to Accounts tab → Add Account, pick your provider and sign in
- Tap + on the Syncs tab to create your first sync pair
Supported Providers
| Provider | Auth |
|---|---|
| WebDAV | Username + password |
| SFTP | Password or private key |
| SFTPGo | Username + password |
| Nextcloud | Username + password |
| ownCloud | Username + password |
| Google Drive | OAuth 2.0 (PKCE) |
| Dropbox | OAuth 2.0 (PKCE) |
| OneDrive | OAuth 2.0 (PKCE) |
Requirements
- Android 8.0+ (API 26)
- Storage permission (or SAF picker) for local folder access
Description