@@ -47,6 +47,16 @@ private enum ForkExtrasLocalizedString {
4747 " ForkExtras.BackendDefault " : " Default " ,
4848 " ForkExtras.BackendSystem " : " System (Apple) " ,
4949 " ForkExtras.BackendApple " : " On-Device (Apple) " ,
50+ " ForkExtras.SaveDeletedMessages " : " Save Deleted Messages " ,
51+ " ForkExtras.SaveDeletedMessagesFooter " : " Keep text of messages others delete. Open View Deleted from the chat menu. " ,
52+ " ForkExtras.SaveMessagesHistory " : " Save Edit History " ,
53+ " ForkExtras.SaveMessagesHistoryFooter " : " Keep previous text when a message is edited. Open Edit History from the message menu. " ,
54+ " ForkExtras.SaveForBots " : " Also Save Bot Messages " ,
55+ " ForkExtras.ViewDeleted " : " View Deleted " ,
56+ " ForkExtras.EditHistory " : " Edit History " ,
57+ " ForkExtras.ClearDeleted " : " Clear Deleted " ,
58+ " ForkExtras.NoDeleted " : " No deleted messages saved yet. " ,
59+ " ForkExtras.NoEdits " : " No previous versions saved. " ,
5060 ] ,
5161 " ru " : [
5262 " ForkExtras.Title " : " Дополнительно " ,
@@ -84,6 +94,16 @@ private enum ForkExtrasLocalizedString {
8494 " ForkExtras.BackendDefault " : " По умолчанию " ,
8595 " ForkExtras.BackendSystem " : " Системный (Apple) " ,
8696 " ForkExtras.BackendApple " : " На устройстве (Apple) " ,
97+ " ForkExtras.SaveDeletedMessages " : " Сохранять удалённые " ,
98+ " ForkExtras.SaveDeletedMessagesFooter " : " Хранить текст сообщений, которые удалили другие. Смотрите «Удалённые» в меню чата. " ,
99+ " ForkExtras.SaveMessagesHistory " : " История правок " ,
100+ " ForkExtras.SaveMessagesHistoryFooter " : " Хранить предыдущий текст при редактировании. Открывается из меню сообщения. " ,
101+ " ForkExtras.SaveForBots " : " Также сохранять ботов " ,
102+ " ForkExtras.ViewDeleted " : " Удалённые " ,
103+ " ForkExtras.EditHistory " : " История правок " ,
104+ " ForkExtras.ClearDeleted " : " Очистить удалённые " ,
105+ " ForkExtras.NoDeleted " : " Пока нет сохранённых удалённых сообщений. " ,
106+ " ForkExtras.NoEdits " : " Предыдущих версий нет. " ,
87107 ] ,
88108 ]
89109
@@ -138,6 +158,16 @@ private enum ForkExtrasLocalizedString {
138158 static var translationFooter : String { string ( forKey: " ForkExtras.TranslationFooter " ) }
139159 static var scrollToNextChat : String { string ( forKey: " ForkExtras.ScrollToNextChat " ) }
140160 static var scrollToNextChatFooter : String { string ( forKey: " ForkExtras.ScrollToNextChatFooter " ) }
161+ static var saveDeletedMessages : String { string ( forKey: " ForkExtras.SaveDeletedMessages " ) }
162+ static var saveDeletedMessagesFooter : String { string ( forKey: " ForkExtras.SaveDeletedMessagesFooter " ) }
163+ static var saveMessagesHistory : String { string ( forKey: " ForkExtras.SaveMessagesHistory " ) }
164+ static var saveMessagesHistoryFooter : String { string ( forKey: " ForkExtras.SaveMessagesHistoryFooter " ) }
165+ static var saveForBots : String { string ( forKey: " ForkExtras.SaveForBots " ) }
166+ static var viewDeleted : String { string ( forKey: " ForkExtras.ViewDeleted " ) }
167+ static var editHistory : String { string ( forKey: " ForkExtras.EditHistory " ) }
168+ static var clearDeleted : String { string ( forKey: " ForkExtras.ClearDeleted " ) }
169+ static var noDeleted : String { string ( forKey: " ForkExtras.NoDeleted " ) }
170+ static var noEdits : String { string ( forKey: " ForkExtras.NoEdits " ) }
141171 static var backendDefault : String { string ( forKey: " ForkExtras.BackendDefault " ) }
142172 static var backendSystem : String { string ( forKey: " ForkExtras.BackendSystem " ) }
143173 static var backendApple : String { string ( forKey: " ForkExtras.BackendApple " ) }
@@ -162,6 +192,9 @@ private final class ForkExtrasControllerArguments {
162192 let openTranslationBackend : ( ) -> Void
163193 let openTranscriptionBackend : ( ) -> Void
164194 let updateScrollToNextChatDisabled : ( Bool ) -> Void
195+ let updateSaveDeletedMessages : ( Bool ) -> Void
196+ let updateSaveMessagesHistory : ( Bool ) -> Void
197+ let updateSaveForBots : ( Bool ) -> Void
165198
166199 init (
167200 updateGhostMode: @escaping ( Bool ) -> Void ,
@@ -181,7 +214,10 @@ private final class ForkExtrasControllerArguments {
181214 updateForceBuiltInMic: @escaping ( Bool ) -> Void ,
182215 openTranslationBackend: @escaping ( ) -> Void ,
183216 openTranscriptionBackend: @escaping ( ) -> Void ,
184- updateScrollToNextChatDisabled: @escaping ( Bool ) -> Void
217+ updateScrollToNextChatDisabled: @escaping ( Bool ) -> Void ,
218+ updateSaveDeletedMessages: @escaping ( Bool ) -> Void ,
219+ updateSaveMessagesHistory: @escaping ( Bool ) -> Void ,
220+ updateSaveForBots: @escaping ( Bool ) -> Void
185221 ) {
186222 self . updateGhostMode = updateGhostMode
187223 self . updateInstantPasscode = updateInstantPasscode
@@ -201,6 +237,9 @@ private final class ForkExtrasControllerArguments {
201237 self . openTranslationBackend = openTranslationBackend
202238 self . openTranscriptionBackend = openTranscriptionBackend
203239 self . updateScrollToNextChatDisabled = updateScrollToNextChatDisabled
240+ self . updateSaveDeletedMessages = updateSaveDeletedMessages
241+ self . updateSaveMessagesHistory = updateSaveMessagesHistory
242+ self . updateSaveForBots = updateSaveForBots
204243 }
205244}
206245
@@ -214,6 +253,7 @@ private enum ForkExtrasSection: Int32 {
214253 case calls
215254 case translation
216255 case navigation
256+ case messageSaving
217257}
218258
219259private enum ForkExtrasEntry : ItemListNodeEntry {
@@ -246,6 +286,11 @@ private enum ForkExtrasEntry: ItemListNodeEntry {
246286 case translationFooter
247287 case scrollToNextChat( Bool )
248288 case scrollToNextChatFooter
289+ case saveDeletedMessages( Bool )
290+ case saveDeletedMessagesFooter
291+ case saveMessagesHistory( Bool )
292+ case saveMessagesHistoryFooter
293+ case saveForBots( Bool )
249294
250295 var section : ItemListSectionId {
251296 switch self {
@@ -267,6 +312,8 @@ private enum ForkExtrasEntry: ItemListNodeEntry {
267312 return ForkExtrasSection . translation. rawValue
268313 case . scrollToNextChat, . scrollToNextChatFooter:
269314 return ForkExtrasSection . navigation. rawValue
315+ case . saveDeletedMessages, . saveDeletedMessagesFooter, . saveMessagesHistory, . saveMessagesHistoryFooter, . saveForBots:
316+ return ForkExtrasSection . messageSaving. rawValue
270317 }
271318 }
272319
@@ -301,6 +348,11 @@ private enum ForkExtrasEntry: ItemListNodeEntry {
301348 case . translationFooter: return 26
302349 case . scrollToNextChat: return 27
303350 case . scrollToNextChatFooter: return 28
351+ case . saveDeletedMessages: return 29
352+ case . saveDeletedMessagesFooter: return 30
353+ case . saveMessagesHistory: return 31
354+ case . saveMessagesHistoryFooter: return 32
355+ case . saveForBots: return 33
304356 }
305357 }
306358
@@ -419,6 +471,22 @@ private enum ForkExtrasEntry: ItemListNodeEntry {
419471 } )
420472 case . scrollToNextChatFooter:
421473 return ItemListTextItem ( presentationData: presentationData, text: . plain( ForkExtrasLocalizedString . scrollToNextChatFooter) , sectionId: self . section)
474+ case let . saveDeletedMessages( value) :
475+ return ItemListSwitchItem ( presentationData: presentationData, systemStyle: . glass, title: ForkExtrasLocalizedString . saveDeletedMessages, value: value, sectionId: self . section, style: . blocks, updated: { value in
476+ arguments. updateSaveDeletedMessages ( value)
477+ } )
478+ case . saveDeletedMessagesFooter:
479+ return ItemListTextItem ( presentationData: presentationData, text: . plain( ForkExtrasLocalizedString . saveDeletedMessagesFooter) , sectionId: self . section)
480+ case let . saveMessagesHistory( value) :
481+ return ItemListSwitchItem ( presentationData: presentationData, systemStyle: . glass, title: ForkExtrasLocalizedString . saveMessagesHistory, value: value, sectionId: self . section, style: . blocks, updated: { value in
482+ arguments. updateSaveMessagesHistory ( value)
483+ } )
484+ case . saveMessagesHistoryFooter:
485+ return ItemListTextItem ( presentationData: presentationData, text: . plain( ForkExtrasLocalizedString . saveMessagesHistoryFooter) , sectionId: self . section)
486+ case let . saveForBots( value) :
487+ return ItemListSwitchItem ( presentationData: presentationData, systemStyle: . glass, title: ForkExtrasLocalizedString . saveForBots, value: value, sectionId: self . section, style: . blocks, updated: { value in
488+ arguments. updateSaveForBots ( value)
489+ } )
422490 }
423491 }
424492}
@@ -454,6 +522,11 @@ private func forkExtrasControllerEntries(settings: ForkExtrasSettings) -> [ForkE
454522 . translationFooter,
455523 . scrollToNextChat( settings. scrollToNextChatDisabled) ,
456524 . scrollToNextChatFooter,
525+ . saveDeletedMessages( settings. saveDeletedMessages) ,
526+ . saveDeletedMessagesFooter,
527+ . saveMessagesHistory( settings. saveMessagesHistory) ,
528+ . saveMessagesHistoryFooter,
529+ . saveForBots( settings. saveForBots) ,
457530 ]
458531}
459532
@@ -633,6 +706,27 @@ public func forkExtrasController(context: AccountContext) -> ViewController {
633706 updated. scrollToNextChatDisabled = value
634707 return updated
635708 } . start ( ) )
709+ } ,
710+ updateSaveDeletedMessages: { value in
711+ updateDisposable. set ( updateForkExtrasSettingsInteractively ( accountManager: context. sharedContext. accountManager) { current in
712+ var updated = current
713+ updated. saveDeletedMessages = value
714+ return updated
715+ } . start ( ) )
716+ } ,
717+ updateSaveMessagesHistory: { value in
718+ updateDisposable. set ( updateForkExtrasSettingsInteractively ( accountManager: context. sharedContext. accountManager) { current in
719+ var updated = current
720+ updated. saveMessagesHistory = value
721+ return updated
722+ } . start ( ) )
723+ } ,
724+ updateSaveForBots: { value in
725+ updateDisposable. set ( updateForkExtrasSettingsInteractively ( accountManager: context. sharedContext. accountManager) { current in
726+ var updated = current
727+ updated. saveForBots = value
728+ return updated
729+ } . start ( ) )
636730 }
637731 )
638732
0 commit comments