mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			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.
		
		
		
		
		
			
		
			
				
	
	
		
			63 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Swift
		
	
			
		
		
	
	
			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)
 | 
						|
    }
 | 
						|
}
 |