Commit Graph

27 Commits

Author SHA1 Message Date
52eed458f4 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.
2026-01-04 15:29:27 -06:00
564d2107ea Fix Center Stage crash - set control mode to .app before enabling
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.
2026-01-04 15:27:11 -06:00
56890cb519 Implement orphaned settings and delete unused files
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
2026-01-04 15:24:13 -06:00
77d9cf9584 Remove unused 'Front Flash' setting from UI
- 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
2026-01-04 15:16:08 -06:00
b96fc63b7b Fix grid overlay toggle - sync with MijickCamera's built-in grid
- 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
2026-01-04 15:12:31 -06:00
fee15463d6 Fix: Use MCameraScreen.setCameraPosition() instead of internal cameraManager method
- setCameraPosition is public on MCameraScreen protocol, internal on CameraManager
- Call self.setCameraPosition() instead of cameraManager.setCameraPosition()
2026-01-04 15:10:27 -06:00
1c07009e06 Fix camera position switch using runtime 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
2026-01-04 15:08:33 -06:00
9c88590926 Add debug logging for camera position switch troubleshooting
- Use raw string comparison instead of CameraPosition enum
- Add debug logs to trace setting changes and sheet dismiss
- Add cameraPositionRaw accessor to SettingsViewModel
2026-01-04 15:05:40 -06:00
55c4d7e05a Fix camera position switch - detect change on settings sheet dismiss
- Track lastCameraPosition to detect changes
- Use sheet onDismiss callback to check if position changed
- Force camera recreation only when position actually changes
- Works around @Observable tracking issues with nested cloudSync data
2026-01-04 15:02:29 -06:00
19e17b7051 Fix camera position switch to work in real-time
- Pass camera position from settings to CameraContainerView
- Add onChange handler to regenerate camera session when position changes
- Remove hardcoded .front camera position
- Camera now switches immediately when changed in settings
2026-01-04 14:59:59 -06:00
4ecdb8fbfe Signed-off-by: Matt Bruce <mbrucedogs@gmail.com> 2026-01-04 14:57:09 -06:00
a25e414d4e Signed-off-by: Matt Bruce <mbrucedogs@gmail.com> 2026-01-04 14:45:40 -06:00
815b91f6ca Update documentation and add branding system integration
Documentation:
- Update README.md with complete feature list and SelfieCam branding
- Update AI_Implementation.md with current architecture and branding details
- Add SelfieCam-specific sections to AGENTS.md (premium, branding, camera)

Features:
- Add branding debug section to SettingsView (icon generator, preview)
- Add BrandingConfig.swift with app colors and launch screen config
- Add LaunchBackground.colorset for seamless launch experience
- Wrap app in AppLaunchView for animated launch screen
2026-01-04 14:43:53 -06:00
1999f7c137 Signed-off-by: Matt Bruce <mbrucedogs@gmail.com> 2026-01-04 14:38:15 -06:00
f574b91ebb Signed-off-by: Matt Bruce <mbrucedogs@gmail.com> 2026-01-04 14:13:49 -06:00
0ea6993621 Signed-off-by: Matt Bruce <mbrucedogs@gmail.com> 2026-01-04 13:53:02 -06:00
0e6d7b5355 Signed-off-by: Matt Bruce <mbrucedogs@gmail.com> 2026-01-04 13:38:17 -06:00
f73da42a3d Make iCloud sync available to all users (remove from premium)
- Remove PremiumGate from iCloudEnabled property
- Update SettingsView to use regular toggle instead of premiumToggle
- Remove premium section header for iCloud sync
- Update proSection description to remove 'sync'
- Remove iCloud Settings Sync from ProPaywallView benefits
2026-01-04 13:31:11 -06:00
53170a1de4 Refactor premium settings to use Bedrock PremiumGate utility
- Replace inline premium checks with PremiumGate.get/canSet
- Define premium values as static sets for timer options, colors, quality
- Cleaner, more consistent premium gating pattern
- Values preserved when user unsubscribes (restored on re-subscribe)
2026-01-04 13:23:09 -06:00
459755be98 Signed-off-by: Matt Bruce <mbrucedogs@gmail.com> 2026-01-04 13:18:18 -06:00
7a564b2115 Signed-off-by: Matt Bruce <mbrucedogs@gmail.com> 2026-01-04 12:21:40 -06:00
fefb6cf363 Signed-off-by: Matt Bruce <mbrucedogs@gmail.com> 2026-01-04 11:56:15 -06:00
cf95c4e816 Signed-off-by: Matt Bruce <mbrucedogs@gmail.com> 2026-01-04 11:38:40 -06:00
eedd709ef5 Signed-off-by: Matt Bruce <mbrucedogs@gmail.com> 2026-01-04 11:34:49 -06:00
915088f180 Signed-off-by: Matt Bruce <mbrucedogs@gmail.com> 2026-01-04 11:26:00 -06:00
fd25942f59 Signed-off-by: Matt Bruce <mbrucedogs@gmail.com> 2026-01-04 10:58:45 -06:00
1be8c073d3 initial commit
Signed-off-by: Matt Bruce <mbrucedogs@gmail.com>
2026-01-04 10:57:30 -06:00