diff --git a/Andromida/App/Localization/Localizable.xcstrings b/Andromida/App/Localization/Localizable.xcstrings index 9d49164..72ff656 100644 --- a/Andromida/App/Localization/Localizable.xcstrings +++ b/Andromida/App/Localization/Localizable.xcstrings @@ -230,10 +230,6 @@ } } }, - "A relaxed pace for building habits slowly" : { - "comment" : "Description of what \"Gentle\" focus style means for the user.", - "isCommentAutoGenerated" : true - }, "A week of activity shows commitment!" : { "comment" : "Tip suggesting that a week of activity indicates strong commitment to habits.", "isCommentAutoGenerated" : true @@ -412,10 +408,6 @@ }, "Arc History" : { - }, - "Balanced daily check-ins" : { - "comment" : "Description of what the \"Steady\" focus style means for the user.", - "isCommentAutoGenerated" : true }, "Before 11am" : { "comment" : "Time range description for the \"Morning\" time of day.", @@ -577,6 +569,7 @@ "isCommentAutoGenerated" : true }, "Choose the intensity of your arc" : { + "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1204,6 +1197,7 @@ } }, "Focus style" : { + "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1225,10 +1219,6 @@ } } }, - "Focused approach with more accountability" : { - "comment" : "Description of the \"Intense\" focus style.", - "isCommentAutoGenerated" : true - }, "Four-week arc in progress" : { "extractionState" : "stale", "localizations" : { @@ -1319,6 +1309,7 @@ } }, "Gentle" : { + "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1568,6 +1559,7 @@ } }, "Intense" : { + "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2512,6 +2504,7 @@ } }, "Steady" : { + "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { diff --git a/Andromida/App/Models/AppSettingsData.swift b/Andromida/App/Models/AppSettingsData.swift index 9496938..8843d29 100644 --- a/Andromida/App/Models/AppSettingsData.swift +++ b/Andromida/App/Models/AppSettingsData.swift @@ -10,10 +10,10 @@ struct AppSettingsData: PersistableData { var reminderMinute: Int = 0 var hapticsEnabled: Bool = true var soundEnabled: Bool = true - var ritualLengthDays: Int = 28 var lastModified: Date = .now - var syncPriority: Int { ritualLengthDays } + /// Sync priority based on reminder settings - higher values win conflicts + var syncPriority: Int { remindersEnabled ? reminderHour : 0 } /// Returns the reminder time as DateComponents for scheduling. var reminderTimeComponents: DateComponents { diff --git a/Andromida/App/State/RitualStore.swift b/Andromida/App/State/RitualStore.swift index 556db5c..2bc45c4 100644 --- a/Andromida/App/State/RitualStore.swift +++ b/Andromida/App/State/RitualStore.swift @@ -497,6 +497,7 @@ final class RitualStore: RitualStoreProviding { } func createQuickRitual() { + let defaultDuration = 28 let habits = [ ArcHabit(title: String(localized: "Hydrate"), symbolName: "drop.fill"), ArcHabit(title: String(localized: "Move"), symbolName: "figure.walk"), @@ -504,7 +505,7 @@ final class RitualStore: RitualStoreProviding { ] let arc = RitualArc( startDate: Date(), - durationDays: Int(settingsStore.ritualLengthDays), + durationDays: defaultDuration, arcNumber: 1, isActive: true, habits: habits @@ -512,7 +513,7 @@ final class RitualStore: RitualStoreProviding { let ritual = Ritual( title: String(localized: "Custom Ritual"), theme: String(localized: "Your next chapter"), - defaultDurationDays: Int(settingsStore.ritualLengthDays), + defaultDurationDays: defaultDuration, notes: String(localized: "A fresh ritual created from your focus today."), arcs: [arc] ) diff --git a/Andromida/App/State/SettingsStore.swift b/Andromida/App/State/SettingsStore.swift index 834f4af..0fd4648 100644 --- a/Andromida/App/State/SettingsStore.swift +++ b/Andromida/App/State/SettingsStore.swift @@ -64,11 +64,6 @@ final class SettingsStore: CloudSyncable { set { update { $0.soundEnabled = newValue } } } - var ritualLengthDays: Double { - get { Double(cloudSync.data.ritualLengthDays) } - set { update { $0.ritualLengthDays = Int(newValue) } } - } - var iCloudAvailable: Bool { cloudSync.iCloudAvailable } var iCloudEnabled: Bool { diff --git a/Andromida/App/Views/Settings/SettingsView.swift b/Andromida/App/Views/Settings/SettingsView.swift index 326dcf8..d34f826 100644 --- a/Andromida/App/Views/Settings/SettingsView.swift +++ b/Andromida/App/Views/Settings/SettingsView.swift @@ -70,26 +70,6 @@ struct SettingsView: View { } } - SettingsSectionHeader( - title: String(localized: "Ritual pacing"), - systemImage: "timer", - accentColor: AppAccent.primary - ) - - SettingsCard(backgroundColor: AppSurface.card, borderColor: AppBorder.subtle) { - SettingsSlider( - title: String(localized: "Ritual length"), - subtitle: String(localized: "Adjust arc duration"), - value: $store.ritualLengthDays, - in: AppMetrics.RitualLength.minimumDays...AppMetrics.RitualLength.maximumDays, - step: AppMetrics.RitualLength.stepDays, - format: SliderFormat.integer(unit: String(localized: "days")), - accentColor: AppAccent.primary, - leadingIcon: Image(systemName: "calendar"), - trailingIcon: Image(systemName: "calendar.circle.fill") - ) - } - SettingsSectionHeader( title: String(localized: "iCloud Sync"), systemImage: "icloud", diff --git a/Andromida/Shared/AppMetrics.swift b/Andromida/Shared/AppMetrics.swift index 1df6eda..755240b 100644 --- a/Andromida/Shared/AppMetrics.swift +++ b/Andromida/Shared/AppMetrics.swift @@ -18,10 +18,4 @@ enum AppMetrics { static let yOffsetLarge: CGFloat = 10 static let xOffsetNone: CGFloat = 0 } - - enum RitualLength { - static let minimumDays: Double = 14 - static let maximumDays: Double = 42 - static let stepDays: Double = 7 - } } diff --git a/README.md b/README.md index e300b62..7a0eb01 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,6 @@ Rituals is a paid, offline-first habit tracker built around customizable "ritual ### Settings Tab - Daily reminder notifications with time picker - Haptics and sound toggles (wired to habit check-ins) -- Ritual length default setting - iCloud settings sync - Pro upgrade placeholder - Debug tools: reset onboarding, app icon generation, branding preview