46 lines
1.0 KiB
Markdown
46 lines
1.0 KiB
Markdown
## 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()
|
|
```
|
|
|
|
|
|
|