1.0.5: Eating out slots, rule violations panel, Crashlytics, search bar fix
- Eating out: tap any empty slot → "Mark as eating out"; shows teal indicator, skipped by auto-assign, counts as complete, tap again to unmark - Rule violations panel: access via wand long-press context menu when conflicts exist; shows all isRuleOverridden slots with Fix (clear) or Ignore (acknowledge) actions - Firebase Crashlytics integrated: CrashlyticsService + dSYM upload build phase, isPremium property tracked per session - PremiumSyncService: extracted premium state machine, StoreKit Transaction.updates listener, isPremium no longer synced via iCloud to avoid stale state - StoreManager: analytics on purchase/restore, bundle ID fallback for product ID lookup - Search bar contrast bug fixed: TextField now has explicit foreground color for dark mode - WelcomeStepView: redesigned onboarding welcome screen with week preview - Version bump: 1.0.5 build 22 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -9,6 +9,7 @@ final class MealSlot {
|
||||
var dishId: UUID?
|
||||
var calendarEventId: String?
|
||||
var isRuleOverridden: Bool
|
||||
var isEatingOut: Bool
|
||||
|
||||
var weekPlan: WeekPlan?
|
||||
|
||||
@@ -18,7 +19,8 @@ final class MealSlot {
|
||||
mealType: String,
|
||||
dishId: UUID? = nil,
|
||||
calendarEventId: String? = nil,
|
||||
isRuleOverridden: Bool = false
|
||||
isRuleOverridden: Bool = false,
|
||||
isEatingOut: Bool = false
|
||||
) {
|
||||
self.id = id
|
||||
self.dayOfWeek = dayOfWeek
|
||||
@@ -26,6 +28,7 @@ final class MealSlot {
|
||||
self.dishId = dishId
|
||||
self.calendarEventId = calendarEventId
|
||||
self.isRuleOverridden = isRuleOverridden
|
||||
self.isEatingOut = isEatingOut
|
||||
}
|
||||
|
||||
var mealTypeEnum: MealType {
|
||||
|
||||
Reference in New Issue
Block a user