feat: Konfigurierbare Sync-Intervalle + Über-Sektion (v1.1.0) (#1)
* feat: WiFi-Connect Auto-Sync + Debug Logging [skip ci]
- WiFi-Connect Auto-Sync via NetworkCallback + Broadcast (statt WorkManager)
- onResume Auto-Sync mit Toast-Feedback (nur Success)
- File-Logging Feature für Debugging (letzte 500 Einträge)
- Settings: Debug/Logs Section mit Test-Button
- FileProvider für Log-Sharing
- Extensive Debug-Logs für NetworkMonitor + MainActivity
- Material Design 3 Migration (alle 17 Tasks)
- Bug-Fixes: Input underlines, section rename, swipe-to-delete, flat cards
PROBLEM: WiFi-Connect sendet Broadcast aber MainActivity empfängt nicht
→ Benötigt logcat debugging auf anderem Gerät
* 🐛 fix: Remove WiFi-Connect related code and UI elements to streamline sync process
* feat: Konfigurierbare Sync-Intervalle + Über-Sektion (v1.1.0)
## Neue Features
### Konfigurierbare Sync-Intervalle
- Wählbare Intervalle: 15/30/60 Minuten in Settings
- Transparente Akkuverbrauchs-Anzeige (0.2-0.8% pro Tag)
- Sofortige Anwendung ohne App-Neustart
- NetworkMonitor liest Intervall dynamisch aus SharedPreferences
### Über-Sektion
- App-Version & Build-Datum Anzeige
- Klickbare Links zu GitHub Repository & Entwickler-Profil
- Lizenz-Information (MIT License)
- Ersetzt alte Debug/Logs Sektion
## Verbesserungen
- Benutzerfreundliche Doze-Mode Erklärung in Settings
- Keine störenden Sync-Fehler Toasts mehr im Hintergrund
- Modernisierte README mit Badges und kompakter Struktur
- F-Droid Metadaten aktualisiert (changelogs + descriptions)
## Technische Änderungen
- Version Bump: 1.0 → 1.1.0 (versionCode: 1 → 2)
- BUILD_DATE buildConfigField hinzugefügt
- PREF_SYNC_INTERVAL_MINUTES Konstante in Constants.kt
- NetworkMonitor.startPeriodicSync() nutzt konfigurierbare Intervalle
- SettingsActivity: setupSyncIntervalPicker() + setupAboutSection()
- activity_settings.xml: RadioGroup für Intervalle + About Cards
This commit is contained in:
174
README.md
174
README.md
@@ -1,143 +1,128 @@
|
||||
# Simple Notes Sync 📝
|
||||
|
||||
> Minimalistische Android-App für Offline-Notizen mit automatischer WLAN-Synchronisierung
|
||||
> **Minimalistische Android Notiz-App mit automatischer WLAN-Synchronisierung**
|
||||
|
||||
Eine schlanke Notiz-App ohne Schnickschnack - perfekt für schnelle Gedanken, die automatisch zu Hause synchronisiert werden.
|
||||
[](https://www.android.com/)
|
||||
[](https://kotlinlang.org/)
|
||||
[](https://m3.material.io/)
|
||||
[](LICENSE)
|
||||
|
||||
---
|
||||
Schlanke Offline-Notizen ohne Schnickschnack - deine Daten bleiben bei dir. Automatische Synchronisierung zu deinem eigenen WebDAV-Server, kein Google, kein Microsoft, keine Cloud.
|
||||
|
||||
## ✨ Features
|
||||
|
||||
- 📝 **Offline-first** - Notizen werden lokal gespeichert und sind immer verfügbar
|
||||
- 🔄 **Auto-Sync** - Automatische Synchronisierung wenn du im Heimnetzwerk bist
|
||||
- 🏠 **WebDAV Server** - Deine Daten bleiben bei dir (Docker-Container)
|
||||
- 🔋 **Akkuschonend** - Nur ~0.4% Akkuverbrauch pro Tag
|
||||
- 🚫 **Keine Cloud** - Keine Google, keine Microsoft, keine Drittanbieter
|
||||
- 🔐 **Privacy** - Keine Tracking, keine Analytics, keine Standort-Berechtigungen
|
||||
- 📝 **Offline-First** - Notizen lokal gespeichert, immer verfügbar
|
||||
- 🔄 **Auto-Sync** - Konfigurierbare Intervalle (15/30/60 Min.) mit ~0.2-0.8% Akku/Tag
|
||||
- 🏠 **Self-Hosted** - Deine Daten auf deinem Server (WebDAV)
|
||||
- 🎨 **Material Design 3** - Modern & Dynamic Theming
|
||||
- 🔋 **Akkuschonend** - Optimiert für Hintergrund-Synchronisierung
|
||||
- 🔐 **Privacy-First** - Kein Tracking, keine Analytics, keine Cloud
|
||||
- 🚫 **Keine Berechtigungen** - Nur Internet für WebDAV Sync
|
||||
|
||||
---
|
||||
## 📥 Quick Download
|
||||
|
||||
## 📥 Installation
|
||||
**Android APK:** [📱 Neueste Version herunterladen](https://github.com/inventory69/simple-notes-sync/releases/latest)
|
||||
|
||||
### Android App
|
||||
|
||||
**Option 1: APK herunterladen**
|
||||
|
||||
1. Neueste [Release](../../releases/latest) öffnen
|
||||
2. `app-debug.apk` herunterladen
|
||||
3. APK auf dem Handy installieren
|
||||
|
||||
**Option 2: Selbst bauen**
|
||||
|
||||
```bash
|
||||
cd android
|
||||
./gradlew assembleDebug
|
||||
# APK: android/app/build/outputs/apk/debug/app-debug.apk
|
||||
```
|
||||
|
||||
### WebDAV Server
|
||||
|
||||
Der Server läuft als Docker-Container und speichert deine Notizen.
|
||||
|
||||
```bash
|
||||
cd server
|
||||
cp .env.example .env
|
||||
nano .env # Passwort anpassen!
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
**Server testen:**
|
||||
```bash
|
||||
curl -u noteuser:dein_passwort http://192.168.0.XXX:8080/
|
||||
```
|
||||
💡 **Tipp:** Nutze [Obtainium](https://github.com/ImranR98/Obtainium) für automatische Updates!
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Schnellstart
|
||||
|
||||
1. **Server starten** (siehe oben)
|
||||
2. **App installieren** und öffnen
|
||||
3. **Einstellungen öffnen** (⚙️ Symbol oben rechts)
|
||||
4. **Server konfigurieren:**
|
||||
- Server-URL: `http://192.168.0.XXX:8080/notes`
|
||||
### 1️⃣ WebDAV Server starten
|
||||
|
||||
```fish
|
||||
cd server
|
||||
cp .env.example .env
|
||||
# Passwort in .env anpassen
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### 2️⃣ App installieren & konfigurieren
|
||||
|
||||
1. APK herunterladen und installieren
|
||||
2. App öffnen → **Einstellungen** (⚙️)
|
||||
3. Server konfigurieren:
|
||||
- URL: `http://192.168.0.XXX:8080/notes`
|
||||
- Benutzername: `noteuser`
|
||||
- Passwort: (aus `.env` Datei)
|
||||
- Auto-Sync: **AN**
|
||||
5. **Fertig!** Notizen werden jetzt automatisch synchronisiert
|
||||
- Passwort: (aus `.env`)
|
||||
4. **Auto-Sync aktivieren**
|
||||
5. **Sync-Intervall wählen** (15/30/60 Min.)
|
||||
|
||||
**Fertig!** Notizen werden automatisch synchronisiert 🎉
|
||||
|
||||
---
|
||||
|
||||
## 💡 Wie funktioniert Auto-Sync?
|
||||
## ⚙️ Sync-Intervalle
|
||||
|
||||
Die App prüft **alle 30 Minuten**, ob:
|
||||
- ✅ WLAN verbunden ist
|
||||
- ✅ Server im gleichen Netzwerk erreichbar ist
|
||||
- ✅ Neue Notizen vorhanden sind
|
||||
| Intervall | Akku/Tag | Anwendungsfall |
|
||||
|-----------|----------|----------------|
|
||||
| **15 Min** | ~0.8% (~23 mAh) | ⚡ Maximale Aktualität |
|
||||
| **30 Min** | ~0.4% (~12 mAh) | ✓ Empfohlen - Ausgewogen |
|
||||
| **60 Min** | ~0.2% (~6 mAh) | 🔋 Maximale Akkulaufzeit |
|
||||
|
||||
Wenn alle Bedingungen erfüllt → **Automatische Synchronisierung**
|
||||
|
||||
**Wichtig:** Funktioniert nur im selben Netzwerk wie der Server (kein Internet-Zugriff nötig!)
|
||||
💡 **Hinweis:** Android Doze Mode kann Sync im Standby auf ~60 Min. verzögern (betrifft alle Apps).
|
||||
|
||||
---
|
||||
|
||||
## 🔋 Akkuverbrauch
|
||||
## <EFBFBD> Neue Features in v1.1.0
|
||||
|
||||
| Komponente | Verbrauch/Tag |
|
||||
|------------|---------------|
|
||||
| WorkManager (alle 30 Min) | ~0.3% |
|
||||
| Netzwerk-Checks | ~0.1% |
|
||||
| **Total** | **~0.4%** |
|
||||
### Konfigurierbare Sync-Intervalle
|
||||
- ⏱️ Wählbare Intervalle: 15/30/60 Minuten
|
||||
- 📊 Transparente Akkuverbrauchs-Anzeige
|
||||
- <20> Sofortige Anwendung ohne App-Neustart
|
||||
|
||||
Bei einem 3000 mAh Akku entspricht das ~12 mAh pro Tag.
|
||||
### Über-Sektion
|
||||
- <20> App-Version & Build-Datum
|
||||
- 🌐 Links zu GitHub Repo & Entwickler
|
||||
- ⚖️ Lizenz-Information
|
||||
|
||||
### Verbesserungen
|
||||
- 🎯 Benutzerfreundliche Doze-Mode Erklärung
|
||||
- 🔕 Keine störenden Sync-Fehler Toasts im Hintergrund
|
||||
- 📝 Erweiterte Debug-Logs für Troubleshooting
|
||||
|
||||
---
|
||||
|
||||
## 📱 Screenshots
|
||||
## 🛠️ Selbst bauen
|
||||
|
||||
_TODO: Screenshots hinzufügen_
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Technische Details
|
||||
|
||||
Mehr Infos zur Architektur und Implementierung findest du in der [technischen Dokumentation](DOCS.md).
|
||||
|
||||
**Stack:**
|
||||
- **Android:** Kotlin, Material Design 3, WorkManager
|
||||
- **Server:** Docker, WebDAV (bytemark/webdav)
|
||||
- **Sync:** Sardine Android (WebDAV Client)
|
||||
```fish
|
||||
cd android
|
||||
./gradlew assembleStandardRelease
|
||||
# APK: android/app/build/outputs/apk/standard/release/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🐛 Troubleshooting
|
||||
|
||||
### Auto-Sync funktioniert nicht
|
||||
|
||||
1. **Akku-Optimierung deaktivieren**
|
||||
- Einstellungen → Apps → Simple Notes → Akku → Nicht optimieren
|
||||
2. **WLAN-Verbindung prüfen**
|
||||
- Funktioniert nur im selben Netzwerk wie Server
|
||||
3. **Server-Status checken**
|
||||
- Settings → "Verbindung testen"
|
||||
|
||||
### Server nicht erreichbar
|
||||
|
||||
```bash
|
||||
# Server Status prüfen
|
||||
docker-compose ps
|
||||
```fish
|
||||
# Status prüfen
|
||||
docker compose ps
|
||||
|
||||
# Logs ansehen
|
||||
docker-compose logs -f
|
||||
docker compose logs -f
|
||||
|
||||
# IP-Adresse finden
|
||||
ip addr show | grep "inet " | grep -v 127.0.0.1
|
||||
```
|
||||
|
||||
### Auto-Sync funktioniert nicht
|
||||
|
||||
1. **Akku-Optimierung deaktivieren**
|
||||
- Einstellungen → Apps → Simple Notes → Akku → Nicht optimieren
|
||||
2. **WLAN Verbindung prüfen**
|
||||
- App funktioniert nur im selben Netzwerk wie der Server
|
||||
3. **Server-Status in App prüfen**
|
||||
- Settings → Server-Status sollte "Erreichbar" zeigen
|
||||
|
||||
Mehr Details in der [Dokumentation](DOCS.md).
|
||||
Mehr Details: [📖 Dokumentation](DOCS.md)
|
||||
|
||||
---
|
||||
|
||||
## 🤝 Beitragen
|
||||
## 🤝 Contributing
|
||||
|
||||
Contributions sind willkommen! Bitte öffne ein Issue oder Pull Request.
|
||||
|
||||
@@ -149,5 +134,4 @@ MIT License - siehe [LICENSE](LICENSE)
|
||||
|
||||
---
|
||||
|
||||
**Projekt Start:** 19. Dezember 2025
|
||||
**Status:** ✅ Funktional & Produktiv
|
||||
**Version:** 1.1.0 · **Status:** ✅ Produktiv · **Gebaut mit:** Kotlin + Material Design 3
|
||||
|
||||
Reference in New Issue
Block a user