From e799e80843c955021beed6a3ed2732d429c5fe4f Mon Sep 17 00:00:00 2001 From: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com> Date: Wed, 17 May 2023 13:31:24 +0400 Subject: [PATCH] ios: remove "off" from group preferences ttl picker; core: allow optional ttl for group preference (#2452) --- apps/ios/Shared/Views/Chat/Group/GroupPreferencesView.swift | 2 +- src/Simplex/Chat.hs | 2 +- src/Simplex/Chat/Messages.hs | 2 +- src/Simplex/Chat/Types.hs | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/ios/Shared/Views/Chat/Group/GroupPreferencesView.swift b/apps/ios/Shared/Views/Chat/Group/GroupPreferencesView.swift index 6d5832c809..eedf08d869 100644 --- a/apps/ios/Shared/Views/Chat/Group/GroupPreferencesView.swift +++ b/apps/ios/Shared/Views/Chat/Group/GroupPreferencesView.swift @@ -82,7 +82,7 @@ struct GroupPreferencesView: View { DropdownCustomTimePicker( selection: $preferences.timedMessages.ttl, label: "Delete after", - dropdownValues: TimedMessagesPreference.ttlValues, + dropdownValues: TimedMessagesPreference.ttlValues.filter { $0 != nil }, // TODO in 5.2 - allow "off" customPickerConfirmButtonText: "Select", customPickerDescription: "Delete after" ) diff --git a/src/Simplex/Chat.hs b/src/Simplex/Chat.hs index b916f3f336..db2dcbf04b 100644 --- a/src/Simplex/Chat.hs +++ b/src/Simplex/Chat.hs @@ -1605,7 +1605,7 @@ processChatCommand = \case prefs' = setPreference' SCFTimedMessages pref_ $ Just userPreferences updateContactPrefs user ct prefs' SetGroupTimedMessages gName ttl_ -> do - let pref = uncurry TimedMessagesGroupPreference $ maybe (FEOff, 86400) (FEOn,) ttl_ + let pref = uncurry TimedMessagesGroupPreference $ maybe (FEOff, Just 86400) (\ttl -> (FEOn, Just ttl)) ttl_ updateGroupProfileByName gName $ \p -> p {groupPreferences = Just . setGroupPreference' SGFTimedMessages pref $ groupPreferences p} QuitChat -> liftIO exitSuccess diff --git a/src/Simplex/Chat/Messages.hs b/src/Simplex/Chat/Messages.hs index 328fdffeb5..b0d48bd7af 100644 --- a/src/Simplex/Chat/Messages.hs +++ b/src/Simplex/Chat/Messages.hs @@ -376,7 +376,7 @@ contactTimedTTL Contact {mergedPreferences = ContactUserPreferences {timedMessag groupTimedTTL :: GroupInfo -> Maybe (Maybe Int) groupTimedTTL GroupInfo {fullGroupPreferences = FullGroupPreferences {timedMessages = TimedMessagesGroupPreference {enable, ttl}}} - | enable == FEOn = Just $ Just ttl + | enable == FEOn = Just ttl | otherwise = Nothing rcvContactCITimed :: Contact -> Maybe Int -> Maybe CITimed diff --git a/src/Simplex/Chat/Types.hs b/src/Simplex/Chat/Types.hs index fbfe7830bc..e46dcfa647 100644 --- a/src/Simplex/Chat/Types.hs +++ b/src/Simplex/Chat/Types.hs @@ -704,7 +704,7 @@ emptyChatPrefs = Preferences Nothing Nothing Nothing Nothing Nothing defaultGroupPrefs :: FullGroupPreferences defaultGroupPrefs = FullGroupPreferences - { timedMessages = TimedMessagesGroupPreference {enable = FEOff, ttl = 86400}, + { timedMessages = TimedMessagesGroupPreference {enable = FEOff, ttl = Just 86400}, directMessages = DirectMessagesGroupPreference {enable = FEOff}, fullDelete = FullDeleteGroupPreference {enable = FEOff}, -- receipts = GroupPreference {enable = FEOff}, @@ -796,7 +796,7 @@ data GroupPreference = GroupPreference data TimedMessagesGroupPreference = TimedMessagesGroupPreference { enable :: GroupFeatureEnabled, - ttl :: Int + ttl :: Maybe Int } deriving (Eq, Show, Generic, FromJSON) @@ -854,7 +854,7 @@ instance HasField "enable" VoiceGroupPreference GroupFeatureEnabled where instance GroupFeatureI 'GFTimedMessages where type GroupFeaturePreference 'GFTimedMessages = TimedMessagesGroupPreference sGroupFeature = SGFTimedMessages - groupPrefParam TimedMessagesGroupPreference {ttl} = Just ttl + groupPrefParam TimedMessagesGroupPreference {ttl} = ttl instance GroupFeatureI 'GFDirectMessages where type GroupFeaturePreference 'GFDirectMessages = DirectMessagesGroupPreference