- Camerafunktionalität dokumentiert
- Aufräumarbeiten
This commit is contained in:
@@ -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)
|
||||
@@ -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.
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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()
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user