inventory69 cb63aa1220 fix(sync): Implement central canSync() gate for WiFi-only check
- Add WebDavSyncService.canSync() as single source of truth
- Add SyncGateResult data class for structured response
- Update MainViewModel.triggerManualSync() to use canSync()
- Update MainViewModel.triggerAutoSync() to use canSync() - FIXES onResume bug
- Update NoteEditorViewModel.triggerOnSaveSync() to use canSync()
- Update SettingsViewModel.syncNow() to use canSync()
- Update SyncWorker to use canSync() instead of direct prefs check

All 9 sync paths now respect WiFi-only setting through one central gate.
2026-01-26 22:41:00 +01:00

Simple Notes Sync

Minimalist offline notes with auto-sync to your own server

Android Kotlin Jetpack Compose Material 3 License

Get it on IzzyOnDroid Get it on Obtainium Get it on F-Droid

📱 APK Download · 📖 Documentation · 🚀 Quick Start

🌍 Deutsch · English


📱 Screenshots

Sync status Edit note Edit checklist Settings Server settings Sync settings


📝 Offline-first  •  🔄 Smart Sync  •  🔒 Self-hosted  •  🔋 Battery-friendly


Highlights

  • NEW: Checklists - Tap-to-check, drag & drop
  • 🌍 NEW: Multilingual - English/German with language selector
  • 📝 Offline-first - Works without internet
  • 🔄 Configurable sync triggers - onSave, onResume, WiFi-connect, periodic (15/30/60 min), boot
  • 🔒 Self-hosted - Your data stays with you (WebDAV)
  • 💾 Local backup - Export/Import as JSON file
  • 🖥️ Desktop integration - Markdown export for Obsidian, VS Code, Typora
  • 🔋 Battery-friendly - ~0.2% with defaults, up to ~1.0% with periodic sync
  • 🎨 Material Design 3 - Dark mode & dynamic colors

➡️ Complete feature list: FEATURES.md


🚀 Quick Start

1. Server Setup (5 minutes)

git clone https://github.com/inventory69/simple-notes-sync.git
cd simple-notes-sync/server
cp .env.example .env
# Set password in .env
docker compose up -d

➡️ Details: Server Setup Guide

2. App Installation (2 minutes)

  1. Download APK
  2. Install & open
  3. ⚙️ Settings → Configure server:
    • URL: http://YOUR-SERVER-IP:8080/ (base URL only!)
    • User: noteuser
    • Password: (from .env)
    • WiFi: (your network name)
  4. Test connection → Enable auto-sync
  5. Done! 🎉

➡️ Detailed guide: QUICKSTART.md


🔐 APK Verification

All official releases are signed with the same certificate.

Recommended: Verify with AppVerifier (Android app)

Expected SHA-256:

42:A1:C6:13:BB:C6:73:04:5A:F3:DC:81:91:BF:9C:B6:45:6E:E4:4C:7D:CE:40:C7:CF:B5:66:FA:CB:69:F1:6A

📚 Documentation

Document Content
QUICKSTART.md Step-by-step installation
FEATURES.md Complete feature list
BACKUP.md Backup & restore guide
DESKTOP.md Desktop integration (Markdown)
SELF_SIGNED_SSL.md Self-signed SSL certificate setup
DOCS.md Technical details & troubleshooting
CHANGELOG.md Version history
UPCOMING.md Upcoming features 🚀
TRANSLATING.md Translation guide 🌍
cd android
./gradlew assembleStandardRelease

➡️ Build guide: DOCS.md


🤝 Contributing

Contributions welcome! See CONTRIBUTING.md


📄 License

MIT License - see LICENSE


v1.7.0 · Built with ❤️ using Kotlin + Jetpack Compose + Material Design 3

Description
📝 Minimalist offline note-taking app with automatic Wi-Fi synchronisation via WebDAV without many permissions 🛡️
Readme MIT 5.7 MiB
Languages
Kotlin 98.1%
Shell 1.9%