Hoofdscherm omgebouwd naar wekker-UI: klok, geplande wekkers, dienstinfo; testwekker verplaatst uit de UI naar launch-intent

This commit is contained in:
eddy 2026-10-14 20:19:23 +02:00
commit 6c0fa97e50
5 changed files with 146 additions and 70 deletions

View file

@ -26,16 +26,14 @@ automatisch zet op basis van de Nextcloud CalDAV-agenda **EBS-Diensten**.
1. Bouw de APK: `./gradlew :app:assembleDebug`
→ `app/build/outputs/apk/debug/app-debug.apk`
2. Zet de APK op de telefoon en installeer (sideload).
3. Open de app en vul bij **Instellingen** in:
3. Open de app → **Instellingen** → vul in:
- Agenda-URL: `https://nextcloud.eddydevink.nl/remote.php/dav/calendars/eddy/ebs_diensten-1/`
- Gebruikersnaam: `eddy`
- App-wachtwoord: een Nextcloud-app-wachtwoord
(Nextcloud → Beveiliging → App-wachtwoorden; zie de Obsidian-vault voor
de bestaande app-wachtwoorden — niet in de app hardcoden)
4. Druk op **Opslaan** en daarna op **Nu controleren** om te testen.
5. Verleen de gevraagde machtigingen via de knoppen onder **Machtigingen**:
meldingen, exacte alarmen, batterijoptimalisatie uitzonderen en (Android 14+)
volledig scherm.
4. **Opslaan**, terug op het hoofdscherm **Nu controleren** om te testen.
5. Verleen de meldingenmachtiging bij de eerste start (systeemdialoog).
## Machtigingen
@ -52,7 +50,8 @@ automatisch zet op basis van de Nextcloud CalDAV-agenda **EBS-Diensten**.
## Architectuur
```
MainActivity status + instellingen, knop "Nu controleren"
MainActivity hoofdscherm: status + "Nu controleren" + "Wekker testen" + link naar instellingen
SettingsActivity instellingen: CalDAV-url, gebruiker, app-wachtwoord (+ uitleg)
AlarmActivity volledig-scherm wekker (geluid, trillen, snooze/dismiss)
App kanalen + dagelijkse 12:00-controle bij opstart
daily check:
@ -69,6 +68,10 @@ BootReceiver na reboot: 12:00-controle + geplande wekkers herstellen
Prefs instellingen/status, versleuteld (EncryptedSharedPreferences)
```
Hoofdscherm en instellingen zijn bewust gescheiden; installatiehulp via
launch-intent-extra's (`--es url/user/pass`) slaat de config op en draait
direct een controle, zonder UI-interactie.
Details per bestand:
- `core/ShiftPlanner.kt` — pure logica: kwartier-afronding en wekkerplanning