- Camerafunktionalität dokumentiert

- Aufräumarbeiten
This commit is contained in:
2026-02-09 22:20:59 +01:00
parent 7d6bf0fdd7
commit 48802606e8
10 changed files with 162 additions and 262 deletions

View File

@@ -0,0 +1,19 @@
## Intent (sealed class)
```kotlin
sealed class Intent
```
**Zweck:** Definition aller möglichen Benutzeraktionen im Album-System.
### Varianten
| Intent | Parameter | Beschreibung |
|--------|-----------|--------------|
| `OnPermissionGrantedWith` | `Context` | Kamera-Permission erteilt |
| `OnImageSavedWith` | `Context` | Kamera-Aufnahme gespeichert |
| `OnFinishPickingImagesWith` | `Context, List<Uri>` | Bilder aus Galerie ausgewählt |
| `OnPermissionDenied` | - | Permission verweigert |
| `OnImageSavingCanceled` | - | Kamera-Aufnahme abgebrochen |
**Deprecated:** `OnPermissionGranted`, `OnImageSaved`, `OnFinishPickingImages` (Varianten ohne Context-Parameter)

View File

@@ -0,0 +1,40 @@
# Album/Kamera-System Dokumentation
## AlbumViewModel
```kotlin
class AlbumViewModel(private val coroutineContext: CoroutineContext) : ViewModel()
```
**Zweck:** Verwaltung von Bildauswahl und Kamera-Aufnahmen für Schadensmeldungen.
### Properties
| Name | Typ | Beschreibung |
|------|-----|--------------|
| `viewStateFlow` | `StateFlow<AlbumViewState>` | Read-only State für UI-Komponenten |
### Methoden
#### `onReceive(intent: Intent)`
Verarbeitet Benutzeraktionen für Bild-Verwaltung.
**Parameter:**
- `intent: Intent` - Benutzeraktion (siehe Intent-Klasse)
**Verwendete Intents:**
- `OnPermissionGrantedWith(Context)` - Erstellt temp. Datei für Kamera
- `OnFinishPickingImagesWith(Context, List<Uri>)` - Lädt Bilder aus Galerie
- `OnImageSavedWith(Context)` - Speichert Kamera-Aufnahme
- `OnImageSavingCanceled` - Verwirft temp. Datei
- `OnPermissionDenied` - Loggt Permission-Verweigerung
**Deprecated Intents:** `OnPermissionGranted`, `OnFinishPickingImages`, `OnImageSaved` (ohne Context)
#### `clearSelection()`
Löscht alle ausgewählten Bilder aus dem State.
---

View File

@@ -0,0 +1,45 @@
## AlbumViewState
```kotlin
data class AlbumViewState(
val tempFileUrl: Uri? = null,
val selectedPictures: List<ImageBitmap> = emptyList()
)
```
**Zweck:** Immutable State-Container für Album-UI.
### Properties
| Name | Typ | Default | Beschreibung |
|------|-----|---------|--------------|
| `tempFileUrl` | `Uri?` | `null` | Temporäre URI für Kamera-Aufnahme |
| `selectedPictures` | `List<ImageBitmap>` | `emptyList()` | Alle ausgewählten/aufgenommenen Bilder |
---
## Verwendungsbeispiel
```kotlin
// Initialisierung
val albumViewModel = remember { AlbumViewModel(Dispatchers.Default) }
// State beobachten
val viewState by albumViewModel.viewStateFlow.collectAsState()
// Kamera öffnen
albumViewModel.onReceive(Intent.OnPermissionGrantedWith(context))
val cameraUri = viewState.tempFileUrl
// Bild gespeichert
albumViewModel.onReceive(Intent.OnImageSavedWith(context))
// Bilder hochladen
viewState.selectedPictures.forEach { bitmap ->
mapViewModel.uploadImageAsAttachment(bitmap)
}
albumViewModel.clearSelection()
```