34fb06a673a0f6570728c7702e9b97b30f2b4195
Sync loop root-cause fixes (three independent bugs): 1. Folder change clears stale file states (AddPairViewModel): when localPath or remotePath changes on an existing pair, all SyncFileStateEntity records are wiped. Previously those stale records caused every sync to attempt DELETE_REMOTE on the old folder's files and to treat all new-folder files as changed — causing both the "deleting 32 files" loop and rewrites on every run. 2. Download stores null localModifiedAt (SyncEngine): SAF document cursors can return a stale mtime immediately after a write. Storing null forces the SKIP reconciliation pass on the next sync to read the actual walkFiles cursor value, breaking the download->changed-> download loop caused by mtime inconsistency. 3. Second-precision mtime comparison (syncDecide): WebDAV RFC-1123 has 1-second precision; FAT32 has 2-second precision. Comparing at millisecond level caused phantom "changed" detections after syncing to/from these systems. Now uses epochSecond for both local and remote. Icon: three bold teal/red/yellow teardrop streaks (Avast palette) flying into a white cloud centre, on dark charcoal 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