- Create SelfieCamTheme.swift with rose/magenta-tinted surface colors
- Add AppSurface, AppAccent, AppStatus, AppBorder typealiases to avoid conflicts
- Wrap settings sections in SettingsCard containers for visual grouping
- Add accentColor parameter to all SegmentedPicker and SettingsToggle usages
- Update all color references to use App-prefixed typealiases
- Background uses AppSurface.primary, cards use AppSurface.card
- Create SelfieCamTheme.swift with rose/magenta-tinted surface colors matching app branding
- Add App-prefixed typealiases (AppSurface, AppAccent, AppStatus, etc.) to avoid Bedrock conflicts
- Add SettingsCard container for visual grouping of related settings
- Update SettingsView with card containers and accent-colored section headers
- Update all settings-related files to use new theme colors
- Pro section uses warning color, Debug section uses error color for visual distinction
MijickCamera's cameraGridView is nil in onAppear, causing a crash when
setGridVisibility() is called immediately. Added 100ms delay for grid,
HDR, and skin smoothing settings to let MijickCamera fully initialize.
AVCaptureDevice.centerStageControlMode must be .app (not .user) before
we can programmatically set isCenterStageEnabled. When mode is .user,
only the user can toggle it via Control Center.
IMPLEMENTED:
- HDR Mode: Now calls setHDRMode() on camera in onAppear and onChange
- Skin Smoothing: Applies CIGaussianBlur filter when enabled (premium)
- Center Stage: Enables/disables AVCaptureDevice.isCenterStageEnabled
- Zoom Factor Persistence: Saves and restores zoom level across sessions
DELETED:
- GridOverlay.swift: MijickCamera's built-in grid is used
- PostCapturePreviewView.swift: PhotoReviewView is used instead
Also:
- Added CoreImage import for CIFilter usage
- Clamp zoom to saved value on restore
- Setting was defined but never used in camera logic
- Flash Mode and Flash Sync settings handle all flash functionality
- Keep property in SyncedSettings for backwards compatibility with saved data
- Remove from SettingsView, SettingsViewModel, and RingLightConfigurable protocol
- MijickCamera's grid defaults to ON (true)
- Add setGridVisibility() call in onAppear to sync initial state
- Add onChange handler to update grid visibility when setting changes
- setCameraPosition is public on MCameraScreen protocol, internal on CameraManager
- Call self.setCameraPosition() instead of cameraManager.setCameraPosition()
- Add onChange handler in CustomCameraScreen to watch cameraPositionRaw
- Call cameraManager.setCameraPosition() at runtime when setting changes
- Camera now switches without needing to recreate the entire MCamera view
- Keep onDismiss fallback in ContentView as safety net
- Use raw string comparison instead of CameraPosition enum
- Add debug logs to trace setting changes and sheet dismiss
- Add cameraPositionRaw accessor to SettingsViewModel