Fix grid visibility crash - delay camera settings until initialized

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.
This commit is contained in:
Matt Bruce 2026-01-04 15:29:27 -06:00
parent 564d2107ea
commit 52eed458f4

View File

@ -179,14 +179,18 @@ struct CustomCameraScreen: MCameraScreen {
}
// Track initial camera position
currentCameraPosition = cameraSettings.cameraPosition
// Sync grid visibility with MijickCamera (defaults to true, so we need to set it)
setGridVisibility(cameraSettings.isGridVisible)
// Apply HDR mode from settings
applyHDRMode(cameraSettings.hdrMode)
// Apply Center Stage from settings
// Apply camera settings after a brief delay to let MijickCamera fully initialize
Task { @MainActor in
try? await Task.sleep(for: .milliseconds(100))
// Sync grid visibility with MijickCamera (defaults to true)
setGridVisibility(cameraSettings.isGridVisible)
// Apply HDR mode from settings
applyHDRMode(cameraSettings.hdrMode)
// Apply skin smoothing filter from settings
applySkinSmoothing(cameraSettings.isSkinSmoothingEnabled)
}
// Center Stage can be set immediately (system-level, not camera-view-level)
applyCenterStage(cameraSettings.isCenterStageEnabled)
// Apply skin smoothing filter from settings
applySkinSmoothing(cameraSettings.isSkinSmoothingEnabled)
}
.onChange(of: cameraSettings.cameraPositionRaw) { _, newRaw in
// Switch camera when position changes in settings