amir 34fb06a673 v1.0.28: fix sync rewrite/delete loop, Avast-inspired icon
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>
2026-05-25 04:18:13 +00:00

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

  1. Download SyncFlow.apk from the latest release
  2. On your Android phone: Settings → Apps → Install unknown apps → allow your browser/file manager
  3. Open the downloaded APK and tap Install
  4. Open SyncFlow, go to Accounts tab → Add Account, pick your provider and sign in
  5. 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
S
Description
No description provided
Readme 21 MiB
v1.0.76 Latest
2026-06-07 13:49:59 +00:00
Languages
Kotlin 100%