From 9c043eb2b85dd39fb6de2d95b8ad8af8eb96e241 Mon Sep 17 00:00:00 2001 From: Mauro Romito Date: Fri, 27 Mar 2026 17:12:17 +0100 Subject: [PATCH] added an FF for the floating date --- ElementX/Sources/Application/Settings/AppSettings.swift | 4 ++++ .../DeveloperOptionsScreenModels.swift | 2 ++ .../DeveloperOptionsScreen/View/DeveloperOptionsScreen.swift | 5 +++++ 3 files changed, 11 insertions(+) diff --git a/ElementX/Sources/Application/Settings/AppSettings.swift b/ElementX/Sources/Application/Settings/AppSettings.swift index 42c8e1de2..b6e849aad 100644 --- a/ElementX/Sources/Application/Settings/AppSettings.swift +++ b/ElementX/Sources/Application/Settings/AppSettings.swift @@ -79,6 +79,7 @@ final class AppSettings { case focusEventOnNotificationTap case linkNewDeviceEnabled case liveLocationSharingEnabled + case floatingTimelineDateEnabled // Doug's tweaks 🔧 case hideUnreadMessagesBadge @@ -436,6 +437,9 @@ final class AppSettings { @UserPreference(key: UserDefaultsKeys.liveLocationSharingEnabled, defaultValue: false, storageType: .userDefaults(store)) var liveLocationSharingEnabled + @UserPreference(key: UserDefaultsKeys.floatingTimelineDateEnabled, defaultValue: false, storageType: .userDefaults(store)) + var floatingTimelineDateEnabled + @UserPreference(key: UserDefaultsKeys.developerOptionsEnabled, defaultValue: appBuildType == .debug, storageType: .userDefaults(store)) var developerOptionsEnabled } diff --git a/ElementX/Sources/Screens/Settings/DeveloperOptionsScreen/DeveloperOptionsScreenModels.swift b/ElementX/Sources/Screens/Settings/DeveloperOptionsScreen/DeveloperOptionsScreenModels.swift index 9e8426902..4614e63d7 100644 --- a/ElementX/Sources/Screens/Settings/DeveloperOptionsScreen/DeveloperOptionsScreenModels.swift +++ b/ElementX/Sources/Screens/Settings/DeveloperOptionsScreen/DeveloperOptionsScreenModels.swift @@ -69,6 +69,8 @@ protocol DeveloperOptionsProtocol: AnyObject { var linkNewDeviceEnabled: Bool { get set } var liveLocationSharingEnabled: Bool { get set } + + var floatingTimelineDateEnabled: Bool { get set } } extension AppSettings: DeveloperOptionsProtocol { } diff --git a/ElementX/Sources/Screens/Settings/DeveloperOptionsScreen/View/DeveloperOptionsScreen.swift b/ElementX/Sources/Screens/Settings/DeveloperOptionsScreen/View/DeveloperOptionsScreen.swift index 4f8e2671c..bb3c5fb24 100644 --- a/ElementX/Sources/Screens/Settings/DeveloperOptionsScreen/View/DeveloperOptionsScreen.swift +++ b/ElementX/Sources/Screens/Settings/DeveloperOptionsScreen/View/DeveloperOptionsScreen.swift @@ -80,6 +80,11 @@ struct DeveloperOptionsScreen: View { Toggle(isOn: $context.liveLocationSharingEnabled) { Text("Live location sharing") } + + Toggle(isOn: $context.floatingTimelineDateEnabled) { + Text("Floating timeline date") + Text("Shows a floating date badge while scrolling the timeline.") + } } Section("Join rules") {