539987f2ed41f8abcde6c6028d7aa29a7216b583
Complete Jetpack Glance Widget Framework
- Implement NoteWidget with 5 responsive size classes
- Support TEXT and CHECKLIST note types
- Material You dynamic colors integration
- Interactive checklist checkboxes in large layouts
- Read-only mode for locked widgets
Widget Configuration System
- NoteWidgetConfigActivity for placement and reconfiguration (Android 12+)
- NoteWidgetConfigScreen with note selection and settings
- Lock widget toggle to prevent accidental edits
- Background opacity slider with 0-100% range
- Auto-save on back navigation plus Save FAB
Widget State Management
- NoteWidgetState keys for per-instance persistence via DataStore
- NoteWidgetActionKeys for type-safe parameter passing
- Five top-level ActionCallback classes
* ToggleChecklistItemAction (updates checklist and marks for sync)
* ToggleLockAction (toggle read-only mode)
* ShowOptionsAction (show permanent options bar)
* RefreshAction (reload from storage)
* OpenConfigAction (launch widget config activity)
Responsive Layout System
- SMALL (110x80dp): Title only
- NARROW_MEDIUM (110x110dp): Preview or compact checklist
- NARROW_TALL (110x250dp): Full content display
- WIDE_MEDIUM (250x110dp): Preview layout
- WIDE_TALL (250x250dp): Interactive checklist
Interactive Widget Features
- Tap content to open editor (unlock) or show options (lock)
- Checklist checkboxes with immediate state sync
- Options bar with Lock/Unlock, Refresh, Settings, Open in App buttons
- Per-widget background transparency control
Connection Leak Fixes (Part of IMPL_019)
- Override put/delete/createDirectory in SafeSardineWrapper with response.use{}
- Proper resource cleanup in exportAllNotesToMarkdown and syncMarkdownFiles
- Use modern OkHttp APIs (toMediaTypeOrNull, toRequestBody)
UI Improvements (Part of IMPL_019)
- Checkbox toggle includes KEY_LAST_UPDATED to force Glance recomposition
- Note selection in config is visual-only (separate from save)
- Config uses moveTaskToBack() plus FLAG_ACTIVITY_CLEAR_TASK
- Proper options bar with standard Material icons
Resources and Configuration
- 8 drawable icons for widget controls
- Widget metadata file (note_widget_info.xml)
- Widget preview layout for Android 12+ widget picker
- Multi-language strings (English and German)
- Glance Jetpack dependencies version 1.1.1
System Integration
- SyncWorker updates all widgets after sync completion
- NoteEditorViewModel reloads checklist state on resume
- ComposeNoteEditorActivity reflects widget edits
- WebDavSyncService maintains clean connections
- AndroidManifest declares widget receiver and config activity
Complete v1.8.0 Widget Feature Set
- Fully responsive design for phones, tablets and foldables
- Seamless Material Design 3 integration
- Production-ready error handling
- Zero connection leaks
- Immediate UI feedback for all interactions
Simple Notes Sync
Clean, offline-first notes with intelligent sync - simplicity meets smart synchronization.
SHA-256 hash of the signing certificate:
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
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
📱 APK Download · 📖 Documentation · 🚀 Quick Start
🌍 Deutsch · English
📱 Screenshots
📝 Offline-first • 🔄 Smart Sync • 🔒 Self-hosted • 🔋 Battery-friendly
✨ Highlights
- 📝 Offline-first - Works without internet
- 📊 Flexible views - Switch between list and grid layout
- ✅ Checklists - Tap-to-check, drag & drop
- 🌍 Multilingual - English/German with language selector
- 🔄 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 (encryption available)
- 🖥️ 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 - Dynamic dark/light mode & colors based on system settings
➡️ 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)
- Download APK
- Install & open
- ⚙️ Settings → Configure server:
- URL:
http://YOUR-SERVER-IP:8080/(base URL only!) - User:
noteuser - Password: (from .env)
- WiFi: (your network name)
- URL:
- Test connection → Enable auto-sync
- Done! 🎉
➡️ Detailed guide: QUICKSTART.md
📚 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
💡 Feature Requests & Ideas
Have an idea for a new feature or improvement? We'd love to hear it!
➡️ How to suggest features:
- Check existing discussions to see if someone already suggested it
- If not, start a new discussion in the "Feature Requests / Ideas" category
- Upvote (👍) features you'd like to see
Features with enough community support will be considered for implementation. Please keep in mind that this app is designed to stay simple and user-friendly.
🤝 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 🛡️
androidfdroidkotlinkotlin-androidmarkdownmaterial-design-3notes-appprivacyself-hostedsimple-appwebdav
Readme
MIT
5.7 MiB
Languages
Kotlin
98.1%
Shell
1.9%








