diff --git a/Airship/AirshipAutomation/Source/Automation/Engine/AutomationScheduleData.swift b/Airship/AirshipAutomation/Source/Automation/Engine/AutomationScheduleData.swift index f91e5631e..61d08e14e 100644 --- a/Airship/AirshipAutomation/Source/Automation/Engine/AutomationScheduleData.swift +++ b/Airship/AirshipAutomation/Source/Automation/Engine/AutomationScheduleData.swift @@ -9,7 +9,10 @@ import Foundation struct AutomationScheduleData: Sendable, Equatable, CustomDebugStringConvertible { var schedule: AutomationSchedule var scheduleState: AutomationScheduleState + + /// The last time the `schedule` field was updated. var lastScheduleModifiedDate: Date + var scheduleStateChangeDate: Date var executionCount: Int var triggerInfo: TriggeringInfo? @@ -48,7 +51,6 @@ extension AutomationScheduleData { guard scheduleState != state else { return } self.scheduleState = state self.scheduleStateChangeDate = date - self.lastScheduleModifiedDate = date } mutating func finished(date: Date) { diff --git a/Airship/AirshipFeatureFlags/Source/FeatureFlagManager.swift b/Airship/AirshipFeatureFlags/Source/FeatureFlagManager.swift index a45a1f894..a09e1ee75 100644 --- a/Airship/AirshipFeatureFlags/Source/FeatureFlagManager.swift +++ b/Airship/AirshipFeatureFlags/Source/FeatureFlagManager.swift @@ -161,10 +161,14 @@ public final class FeatureFlagManager: Sendable { throw FeatureFlagError.outOfDate case .stale: throw FeatureFlagError.staleData + @unknown default: + throw AirshipErrors.error("Unexpected state") } } else { return info } + @unknown default: + throw AirshipErrors.error("Unexpected state") } } diff --git a/CHANGELOG.md b/CHANGELOG.md index 5da603437..31cbb72f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,23 @@ # iOS Changelog +## Version 18.14.0 December 19, 2024 +Minor release that fixes issues with Banner In-App Automations, reduces power usage with In-App Automations & Scenes, and updates how Feature Flags are resolved. + +### Changes +- Added `resultCache` to `FeatureFlagManager`. This cache is managed by the app and can be optionally used when resolving a flag as a fallback if the flag fails to resolve or if +the flag rule set does not exist. +- FeatureFlag resolution will now resolve a rule set even if the listing is out of date. +- Fixed issue with In-App Automation banners constraints, causing the banner to sometimes steal focus from the underlying app screen or not fully display. +- Fixed issue with Surveys that require multi choice or single choice questions not blocking submission. +- Reduced the CPU overhead with In-App Automations & Scene execution to reduce overall power usage. + + ## Version 18.13.0 December 5, 2024 Minor release that improves a11y support, updated Preference Center UI, and fixes several minor and improvements in Scenes and in-app message banners. ### Changes +- Added support for email collection in Scenes - Updated Preference Center UI to use standard padding, titles, and colors to improve the look and feel across different platforms. - Added support to mark a label as a heading in Scenes. - Added support for auto-height modals in Scenes.