You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
session-ios/Session/Settings/ChatSettingsViewController....

63 lines
2.0 KiB
Swift

// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved.
import UIKit
import SessionUIKit
import SignalUtilitiesKit
// FIXME: Refactor to be MVVM and use database observation
class ChatSettingsViewController: OWSTableViewController {
// MARK: - Lifecycle
override func viewDidLoad() {
super.viewDidLoad()
self.updateTableContents()
ViewControllerUtilities.setUpDefaultSessionStyle(for: self, title: "CHATS_TITLE".localized(), hasCustomBackButton: false)
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
self.updateTableContents()
}
// MARK: - Table Contents
func updateTableContents() {
let updatedContents: OWSTableContents = OWSTableContents()
let messageTrimming: OWSTableSection = OWSTableSection()
messageTrimming.headerTitle = "MESSAGE_TRIMMING_TITLE".localized()
messageTrimming.footerTitle = "MESSAGE_TRIMMING_OPEN_GROUP_DESCRIPTION".localized()
messageTrimming.add(OWSTableItem.switch(
withText: "MESSAGE_TRIMMING_OPEN_GROUP_TITLE".localized(),
isOn: { Storage.shared[.trimOpenGroupMessagesOlderThanSixMonths] },
target: self,
selector: #selector(didToggleTrimOpenGroupsSwitch(_:))
))
updatedContents.addSection(messageTrimming)
self.contents = updatedContents
}
// MARK: - Actions
@objc private func didToggleTrimOpenGroupsSwitch(_ sender: UISwitch) {
let switchIsOn: Bool = sender.isOn
Storage.shared.writeAsync(
updates: { db in
db[.trimOpenGroupMessagesOlderThanSixMonths] = !switchIsOn
},
completion: { [weak self] _, _ in
self?.updateTableContents()
}
)
}
@objc private func close(_ sender: UIBarButtonItem) {
self.navigationController?.dismiss(animated: true)
}
}