Commit Graph

8 Commits

Author SHA1 Message Date
a384db1c84 Fix ring light color always showing white
Bug: The ring light background was gated behind premium check:
  premiumManager.isPremiumUnlocked ? settings.lightColor : white

This blocked ALL colors (even non-premium ones like Warm Cream)
from displaying unless the user was premium.

Fix: Remove the premium gate from the display - the selected color
always shows. Premium enforcement should happen in Settings when
selecting colors, not in displaying them.
2026-01-02 15:54:11 -06:00
533e428e94 Fix ring light color not updating when changed in settings
Issue: SwiftUI observation wasn't tracking color changes properly

Fixes:
1. Removed intermediate 'settings' computed property in ContentView
   - Was breaking SwiftUI's observation chain
   - Now access viewModel.settings directly everywhere

2. Added cached lightColorId for immediate UI response
   - Similar pattern to ringSize caching
   - Ensures SwiftUI tracks the stored property changes

This ensures the ring light color updates immediately when
selecting a different color preset or custom color in settings.
2026-01-02 15:49:34 -06:00
c442acf464 Fix camera issues: front flash reset, rotation, Center Stage
Fixes:
1. Front flash now properly resets after capture
   - restorePreviewAfterFlash() called in photo delegate
   - Preview no longer stays white after taking photo

2. Device rotation support
   - updateVideoOrientation() updates capture connections
   - Uses modern videoRotationAngle API (iOS 17+)
   - Listens to UIDevice.orientationDidChangeNotification

3. Center Stage support for supported devices
   - Detects Center Stage availability on front camera
   - Toggle button in top control bar (person.crop.rectangle icon)
   - Yellow highlight when enabled
   - Updates availability on camera switch
2026-01-02 15:46:56 -06:00
9066635a4d Fix UI issues: preview sizing, debounce, corners, color picker
Fixes:
1. Camera preview rounded corners - clipShape now applied before padding
   so the preview itself has rounded corners, not the container

2. Debounced slider saves - ringSize and customColor now use debouncing
   - Immediate UI update via cached values
   - 300ms debounce before cloud save
   - Prevents excessive save operations during slider drag

3. Simplified custom color picker to one-step
   - ColorPicker styled as a circle button
   - Shows current custom color always (no rainbow)
   - Tapping opens iOS native color picker directly
   - Color applies immediately on selection
   - No Apply/Cancel sheet needed
2026-01-02 15:43:01 -06:00
95377c5950 Add custom color picker as premium feature
Features:
- Custom color button in Light Color section (rainbow gradient icon)
- Tapping opens color picker sheet with:
  - Live color preview
  - Native iOS ColorPicker
  - Tips for best ring light colors
- Custom color syncs across devices via iCloud
- Premium-gated with crown icon indicator

Storage:
- CustomColorRGB struct for Codable-compatible color storage
- RGB values stored separately in SyncedSettings
- Color converts to/from UIColor for RGB extraction

UI:
- Rainbow gradient when not selected, solid custom color when selected
- Sheet with Apply/Cancel buttons
- Color preview bar at top of picker
2026-01-02 13:26:11 -06:00
bf5853d999 Fix UI issues: full-screen preview, ring size limits, cleaner layout
Changes:
1. Camera preview now fills available space (not forced square)
   - Maintains proper aspect ratio for captured photos
   - Controls overlay on top of preview

2. Ring size now limited based on screen dimensions
   - Maximum is 1/4 of smaller screen dimension
   - Prevents content from shifting off-screen

3. Removed light intensity slider
   - Was causing color changes (opacity approach)
   - Ring light now always at full brightness

4. Removed crown icon from main screen
   - Pro upgrade moved to Settings > Pro section
   - Cleaner camera interface

5. Smaller top icons
   - Grid and settings buttons use .body font
   - Less visual clutter
2026-01-02 13:23:17 -06:00
ef15a8c21a Add post-capture workflow with preview, edit, and share
Features:
- Full-screen PostCapturePreviewView after photo/video capture
- Auto-save to Photo Library (on by default, configurable in Settings)
- Toast notification when saved
- Retake button to discard and return to camera
- Share button with native iOS Share Sheet
- Edit mode with smoothing and glow intensity sliders
- Premium tools teaser in edit view
- Video/boomerang auto-playback with loop support

Settings:
- Added 'Auto-Save' toggle in Capture section
- Syncs across devices via iCloud

Architecture:
- CapturedMedia enum for photo/video/boomerang types
- ShareSheet UIViewControllerRepresentable wrapper
- Toast system in CameraViewModel
2026-01-02 13:05:27 -06:00
74e65829de Initial commit: SelfieRingLight app
Features:
- Camera preview with ring light effect
- Adjustable ring size with slider
- Light color presets (white, warm cream, ice blue, soft pink, warm amber, cool lavender)
- Light intensity control (opacity)
- Front flash (hides preview during capture)
- True mirror mode
- Skin smoothing toggle
- Grid overlay (rule of thirds)
- Self-timer options
- Photo and video capture modes
- iCloud sync for settings across devices

Architecture:
- SwiftUI with @Observable view models
- Protocol-oriented design (RingLightConfigurable, CaptureControlling)
- Bedrock design system integration
- CloudSyncManager for iCloud settings sync
- RevenueCat for premium features
2026-01-02 13:01:24 -06:00