v1.0.12
When a file was uploaded before state-tracking worked (getFileMetadata was broken), its SyncFileStateEntity was never saved. On next sync the engine saw !local + remote + known=null and downloaded it back instead of deleting it remotely, creating an infinite re-download loop. Fix: syncDecide() now accepts hasPriorSyncState (derived from whether the pair has any known states at all). On initial sync (no prior state) unknown remote files are downloaded as before. Once the pair has been synced, unknown remote-only files are treated as mirror-eligible deletions — same as if known state existed — so locally-deleted files propagate to the remote correctly. Verified live: 3 remote-only orphan files deleted from Nextcloud on sync. Bump version to 1.0.12 (code 13). 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