Conversation
There was a problem hiding this comment.
Pull request overview
Adds multi-image capture support to the ImageCapture camera use case, introducing a dedicated multi-capture session flow (with optional per-image confirmation) and updating public options/docs/samples accordingly.
Changes:
- Split image capture startup into
StartSingleImageCaptureandStartMultiImageCapture, replacingImageCaptureSettings/PostCaptureActionwithCameraOptions+MultiImageCaptureOptions. - Updated iOS/Android implementations and shared state handling to support multi-capture behavior.
- Updated wiki docs, added/renamed samples, and added a changelog entry.
Reviewed changes
Copilot reviewed 26 out of 26 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| wiki/Media/ImageCapture.md | Updates public documentation to describe single vs multi capture and new options types. |
| src/library/DIPS.Mobile.UI/API/Camera/ImageCapturing/ImageCapture.cs | Introduces single/multi start methods and session-driven behavior branching. |
| src/library/DIPS.Mobile.UI/API/Camera/ImageCapturing/CaptureSession.cs | Adds session records to distinguish single vs multi capture. |
| src/library/DIPS.Mobile.UI/API/Camera/ImageCapturing/Settings/CameraOptions.cs | Adds new public options types (CameraOptions, MultiImageCaptureOptions). |
| src/library/DIPS.Mobile.UI/API/Camera/ImageCapturing/ImageCapture.StreamingState.cs | Routes settings restart through CameraOptions. |
| src/library/DIPS.Mobile.UI/API/Camera/ImageCapturing/ImageCapture.ConfirmState.cs | Adjusts “Use photo” behavior to continue in multi mode vs stop in single mode. |
| src/library/DIPS.Mobile.UI/API/Camera/ImageCapturing/Views/TopToolbar/ImageCaptureTopToolbarView.cs | Adds a finished button for multi mode and updates cancel/settings visibility logic. |
| src/library/DIPS.Mobile.UI/API/Camera/ImageCapturing/BottomSheets/ImageCaptureSettingsBottomSheet.cs | Reworks settings sheet to operate on CameraOptions. |
| src/library/DIPS.Mobile.UI/API/Camera/ImageCapturing/Android/ImageCapture.cs | Updates Android capture pipeline to call shared multi/single handling. |
| src/library/DIPS.Mobile.UI/API/Camera/ImageCapturing/iOS/ImageCapture.cs | Updates iOS capture pipeline to call shared multi/single handling. |
| src/library/DIPS.Mobile.UI/API/Camera/ImageCapturing/dotnet/ImageCapture.cs | Updates net10.0 stub signature to match new options type. |
| src/library/DIPS.Mobile.UI/API/Camera/ImageCapturing/CapturedImage.cs | Minor formatting-only change. |
| src/library/DIPS.Mobile.UI/API/Camera/ImageCapturing/camera-feature-overview.md | Adds an internal overview of modes/states and file map. |
| src/library/DIPS.Mobile.UI/API/Camera/Camera.cs | Updates facade to use new single-capture start API. |
| src/library/DIPS.Mobile.UI/API/Camera/ImageCapturing/Settings/ImageCaptureSettings.cs | Removes deprecated settings type. |
| src/library/DIPS.Mobile.UI/API/Camera/ImageCapturing/Settings/PostCaptureAction.cs | Removes deprecated enum. |
| src/app/Components/REGISTER_YOUR_SAMPLES_HERE.cs | Updates sample registration entry point to a new ImageCapturing samples page. |
| src/app/Components/ComponentsSamples/ImageCapturing/ImageCapturingSamples.xaml | Adds a navigation hub for single vs multi capture samples. |
| src/app/Components/ComponentsSamples/ImageCapturing/ImageCapturingSamples.xaml.cs | Code-behind for the new navigation hub. |
| src/app/Components/ComponentsSamples/ImageCapturing/SingleImageCaptureSample.xaml | Renames sample to single capture. |
| src/app/Components/ComponentsSamples/ImageCapturing/SingleImageCaptureSample.xaml.cs | Updates single capture sample to use CameraOptions + StartSingleImageCapture. |
| src/app/Components/ComponentsSamples/ImageCapturing/MultiImageCaptureSample.xaml | Adds a UI to choose multi-capture mode and show results. |
| src/app/Components/ComponentsSamples/ImageCapturing/MultiImageCaptureSample.xaml.cs | Adds code-behind for launching the modal multi-capture flow and presenting results. |
| src/app/Components/ComponentsSamples/ImageCapturing/MultiImageCaptureModalPage.xaml | Adds a modal page hosting CameraPreview for multi capture. |
| src/app/Components/ComponentsSamples/ImageCapturing/MultiImageCaptureModalPage.xaml.cs | Implements the modal multi capture flow and completion task. |
| CHANGELOG.md | Adds release note entry for multi-image capture support. |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Agent-Logs-Url: https://github.com/DIPSAS/DIPS.Mobile.UI/sessions/ff23bcae-30d9-41cd-90ca-d0a3edab3b50 Co-authored-by: VegardHV <71251242+VegardHV@users.noreply.github.com>
…okens Agent-Logs-Url: https://github.com/DIPSAS/DIPS.Mobile.UI/sessions/0b8cb90d-a1f6-417b-94f6-1fb46da4eb83 Co-authored-by: VegardHV <71251242+VegardHV@users.noreply.github.com>
… button Agent-Logs-Url: https://github.com/DIPSAS/DIPS.Mobile.UI/sessions/3c8fff80-6d04-441d-8179-72549f173d2c Co-authored-by: VegardHV <71251242+VegardHV@users.noreply.github.com>
| internal CameraInfo CameraInfo { get; } = new(); | ||
| } | ||
|
|
||
| public record MultiImageCaptureOptions |
There was a problem hiding this comment.
FYI, ingen av disse properties er bindable slik det er nå. Men det er kanskje ikke et problem da dette er et code-behind API. Ser også at den tidligere ImageCaptureSettings ikke var bindable og. De kan i grunn være bindable, men da må du arve av BindableObject i så fall,
There was a problem hiding this comment.
Ja, det spørs om vi vil eksponere oss selv til økt kompleksitet via endring av options underveis. Tenker personlig at det egentlig er best at de er immutable i utgangspunktet, så er bruken av option parametrene mere forutsigbar.
| /// <summary> | ||
| /// Determines what should happen after people have confirmed their capture. | ||
| /// </summary> | ||
| public enum PostCaptureAction |
There was a problem hiding this comment.
Hvordan får jeg ekvivalent mulig oppsett med singleimagecapture nå?
There was a problem hiding this comment.
PostCaptureAction.Close skjer alltid i SingleImageCapture nå, og er det som er brukt i Arena Mobil.
Om man vil ha ekvivalent oppsett som PostCaptureAction.Continue, bruker man MultiImageCapture med RequiresConfirmationOnEachImage = true 😄
haavamoa
left a comment
There was a problem hiding this comment.
Vi holder igjen denne PR til etter Arena Mobil 4.6 er levert.
…g change entry Agent-Logs-Url: https://github.com/DIPSAS/DIPS.Mobile.UI/sessions/3e2f0b7e-b5ce-4140-b9e4-fffe85efb5c5 Co-authored-by: VegardHV <71251242+VegardHV@users.noreply.github.com>
Agent-Logs-Url: https://github.com/DIPSAS/DIPS.Mobile.UI/sessions/3e2f0b7e-b5ce-4140-b9e4-fffe85efb5c5 Co-authored-by: VegardHV <71251242+VegardHV@users.noreply.github.com>
Description of Change
Further refactoring should be considered when more time is available.