feat(1.5.0): add "Nothing to sync" banner and improve sync UX for v1.5.0

Code changes:
- Show "ℹ️ Nothing to sync" when no notes need syncing (banner instead of toast)
- Add i18n strings for EN/DE

Documentation:
- Improve auto-sync description: mention WiFi reconnect + multi-device sync
- Add 2 new screenshots: server settings & sync status banner

Assets:
- Add screenshots 5 & 6 (server settings & sync banner showcase)
This commit is contained in:
inventory69
2026-01-16 21:56:42 +01:00
parent 06dda24a64
commit 3bf97dbc14
9 changed files with 15 additions and 4 deletions

View File

@@ -22,6 +22,8 @@
<img src="fastlane/metadata/android/de-DE/images/phoneScreenshots/2.png" width="250" alt="Notiz bearbeiten"> <img src="fastlane/metadata/android/de-DE/images/phoneScreenshots/2.png" width="250" alt="Notiz bearbeiten">
<img src="fastlane/metadata/android/de-DE/images/phoneScreenshots/3.png" width="250" alt="Checkliste bearbeiten"> <img src="fastlane/metadata/android/de-DE/images/phoneScreenshots/3.png" width="250" alt="Checkliste bearbeiten">
<img src="fastlane/metadata/android/de-DE/images/phoneScreenshots/4.png" width="250" alt="Einstellungen"> <img src="fastlane/metadata/android/de-DE/images/phoneScreenshots/4.png" width="250" alt="Einstellungen">
<img src="fastlane/metadata/android/de-DE/images/phoneScreenshots/5.png" width="250" alt="Server-Einstellungen">
<img src="fastlane/metadata/android/de-DE/images/phoneScreenshots/6.png" width="250" alt="Sync-Status">
</p> </p>
--- ---
@@ -31,7 +33,7 @@
-**NEU: Checklisten** - Tap-to-Check, Drag & Drop -**NEU: Checklisten** - Tap-to-Check, Drag & Drop
- 🌍 **NEU: Mehrsprachig** - Deutsch/Englisch mit Sprachauswahl - 🌍 **NEU: Mehrsprachig** - Deutsch/Englisch mit Sprachauswahl
- 📝 **Offline-First** - Funktioniert ohne Internet - 📝 **Offline-First** - Funktioniert ohne Internet
- 🔄 **Auto-Sync** - Bei WiFi-Verbindung (15/30/60 Min) - 🔄 **Auto-Sync** - WLAN-Verbindung, regelmäßige Intervalle (15/30/60 Min) & Multi-Geräte-Sync
- 🔒 **Self-Hosted** - Deine Daten bleiben bei dir (WebDAV) - 🔒 **Self-Hosted** - Deine Daten bleiben bei dir (WebDAV)
- 💾 **Lokales Backup** - Export/Import als JSON-Datei - 💾 **Lokales Backup** - Export/Import als JSON-Datei
- 🖥️ **Desktop-Integration** - Markdown-Export für Obsidian, VS Code, Typora - 🖥️ **Desktop-Integration** - Markdown-Export für Obsidian, VS Code, Typora

View File

@@ -22,6 +22,8 @@
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/2.png" width="250" alt="Edit note"> <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/2.png" width="250" alt="Edit note">
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/3.png" width="250" alt="Edit checklist"> <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/3.png" width="250" alt="Edit checklist">
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/4.png" width="250" alt="Settings"> <img src="fastlane/metadata/android/en-US/images/phoneScreenshots/4.png" width="250" alt="Settings">
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/5.png" width="250" alt="Server settings">
<img src="fastlane/metadata/android/en-US/images/phoneScreenshots/6.png" width="250" alt="Sync status">
</p> </p>
--- ---
@@ -31,7 +33,7 @@
-**NEW: Checklists** - Tap-to-check, drag & drop -**NEW: Checklists** - Tap-to-check, drag & drop
- 🌍 **NEW: Multilingual** - English/German with language selector - 🌍 **NEW: Multilingual** - English/German with language selector
- 📝 **Offline-first** - Works without internet - 📝 **Offline-first** - Works without internet
- 🔄 **Auto-sync** - On WiFi connection (15/30/60 min) - 🔄 **Auto-sync** - WiFi reconnect, periodic intervals (15/30/60 min) & multi-device sync
- 🔒 **Self-hosted** - Your data stays with you (WebDAV) - 🔒 **Self-hosted** - Your data stays with you (WebDAV)
- 💾 **Local backup** - Export/Import as JSON file - 💾 **Local backup** - Export/Import as JSON file
- 🖥️ **Desktop integration** - Markdown export for Obsidian, VS Code, Typora - 🖥️ **Desktop integration** - Markdown export for Obsidian, VS Code, Typora

View File

@@ -493,7 +493,12 @@ class MainViewModel(application: Application) : AndroidViewModel(application) {
} }
if (result.isSuccess) { if (result.isSuccess) {
SyncStateManager.markCompleted(getString(R.string.toast_sync_success, result.syncedCount)) val bannerMessage = if (result.syncedCount > 0) {
getString(R.string.toast_sync_success, result.syncedCount)
} else {
getString(R.string.snackbar_nothing_to_sync)
}
SyncStateManager.markCompleted(bannerMessage)
loadNotes() loadNotes()
} else { } else {
SyncStateManager.markError(result.errorMessage) SyncStateManager.markError(result.errorMessage)
@@ -566,7 +571,7 @@ class MainViewModel(application: Application) : AndroidViewModel(application) {
loadNotes() loadNotes()
} else if (result.isSuccess) { } else if (result.isSuccess) {
Logger.d(TAG, " Auto-sync ($source): No changes") Logger.d(TAG, " Auto-sync ($source): No changes")
SyncStateManager.markCompleted() SyncStateManager.markCompleted(getString(R.string.snackbar_nothing_to_sync))
} else { } else {
Logger.e(TAG, "❌ Auto-sync failed ($source): ${result.errorMessage}") Logger.e(TAG, "❌ Auto-sync failed ($source): ${result.errorMessage}")
SyncStateManager.markError(result.errorMessage) SyncStateManager.markError(result.errorMessage)

View File

@@ -92,6 +92,7 @@
<string name="snackbar_already_synced">Bereits synchronisiert</string> <string name="snackbar_already_synced">Bereits synchronisiert</string>
<string name="snackbar_server_unreachable">Server nicht erreichbar</string> <string name="snackbar_server_unreachable">Server nicht erreichbar</string>
<string name="snackbar_synced_count">✅ Gesynct: %d Notizen</string> <string name="snackbar_synced_count">✅ Gesynct: %d Notizen</string>
<string name="snackbar_nothing_to_sync"> Nichts zu syncen</string>
<!-- ============================= --> <!-- ============================= -->
<!-- URL VALIDATION ERRORS --> <!-- URL VALIDATION ERRORS -->

View File

@@ -93,6 +93,7 @@
<string name="snackbar_already_synced">Already synced</string> <string name="snackbar_already_synced">Already synced</string>
<string name="snackbar_server_unreachable">Server not reachable</string> <string name="snackbar_server_unreachable">Server not reachable</string>
<string name="snackbar_synced_count">✅ Synced: %d notes</string> <string name="snackbar_synced_count">✅ Synced: %d notes</string>
<string name="snackbar_nothing_to_sync"> Nothing to sync</string>
<!-- ============================= --> <!-- ============================= -->
<!-- URL VALIDATION ERRORS --> <!-- URL VALIDATION ERRORS -->

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB