Эх сурвалжийг харах

WIP - added ImapSecurity options - but not fully working

Bastian van de Wetering 6 жил өмнө
parent
commit
cd92916b29

+ 79 - 2
deltachat-ios/Controller/AccountSetup/SecuritySettingsController.swift

@@ -11,7 +11,12 @@ import UIKit
 class SecuritySettingsController: UITableViewController {
 
 	private var options: [String]
-	private var selectedIndex: Int
+	private var selectedIndex: Int {
+		didSet {
+			print(selectedIndex)
+		}
+	}
+
 	private var backupIndex: Int
 
 	var onDismiss: ((String) -> Void)?
@@ -27,11 +32,12 @@ class SecuritySettingsController: UITableViewController {
 		}
 	}
 
-	init(options: [String], selectedOption: String) {
+	init(title: String, options: [String], selectedOption: String) {
 		self.options = options
 		selectedIndex = options.index(of: selectedOption)!
 		backupIndex = selectedIndex
 		super.init(style: .grouped)
+		self.title = title
 	}
 
 	required init?(coder aDecoder: NSCoder) {
@@ -89,3 +95,74 @@ class SecuritySettingsController: UITableViewController {
 	}
 
 }
+
+
+enum SecurityType {
+	case IMAPSecurity
+	case SMTPSecurity
+}
+
+enum SecurityValue: String {
+	case TLS = "SSL / TLS"
+	case STARTTLS = "STARTTLS"
+	case PLAIN = "OFF"
+}
+
+class SecurityConverter {
+
+	static func convert(type: SecurityType, test value: SecurityValue) -> Int {
+		switch type {
+		case .IMAPSecurity:
+			switch value {
+			case .STARTTLS:
+				return 0x100
+			case .TLS:
+				return 0x200
+			case .PLAIN:
+				return 0x400
+			}
+		case .SMTPSecurity:
+			switch value{
+			case .STARTTLS:
+				return 0x10000
+			case .TLS:
+				return 0x20000
+			case .PLAIN:
+				return 0x40000
+			}
+		}
+	}
+
+	static func convert(type: SecurityType, hex value: Int) -> String {
+		switch type {
+		case .IMAPSecurity:
+			switch value {
+			case 0:
+				return "Automatic"
+			case 0x100:
+				return "STARTTLS"
+			case 0x200:
+				return "SSL / TLS"
+			case 0x300:
+				return "OFF"
+			case  0x400:
+				return "OFF"
+			default:
+				return "Undefined"
+			}
+		case .SMTPSecurity:
+			switch value {
+			case 0:
+				return "Automatic"
+			case 0x10000:
+					return "STARTTLS"
+				case 0x20000:
+				return "SSL / TLS"
+				case  0x40000:
+				return "OFF"
+				default:
+				return "Undefined"
+			}
+		}
+	}
+}

+ 2 - 0
deltachat-ios/Controller/AccountSetupController.swift

@@ -163,6 +163,8 @@ class AccountSetupController: UITableViewController {
 		// needs to be changed if returning from portSettingsController
 		smtpPortCell.detailTextLabel?.text = MRConfig.sendPort ?? MRConfig.configuredSendPort
 		imapPortCell.detailTextLabel?.text = MRConfig.mailPort ?? MRConfig.configuredMailPort
+		smtpSecurityCell.detailTextLabel?.text = SecurityConverter.convert(type: .SMTPSecurity, hex: MRConfig.getSmtpSecurity())
+		imapSecurityCell.detailTextLabel?.text  = SecurityConverter.convert(type: .IMAPSecurity, hex: MRConfig.getImapSecurity())
 	}
 
   override func viewDidAppear(_ animated: Bool) {

+ 277 - 271
deltachat-ios/Coordinator/AppCoordinator.swift

@@ -9,102 +9,102 @@
 import UIKit
 
 class AppCoordinator: NSObject, Coordinator, UITabBarControllerDelegate {
-  private let window: UIWindow
-
-  var rootViewController: UIViewController {
-    return tabBarController
-  }
-
-  private var childCoordinators: [Coordinator] = []
-
-  private lazy var tabBarController: UITabBarController = {
-    let tabBarController = UITabBarController()
-    tabBarController.viewControllers = [contactListController, mailboxController, profileController, chatListController, settingsController]
-    // put viewControllers here
-    tabBarController.delegate = self
-    tabBarController.tabBar.tintColor = DCColors.primary
-    // tabBarController.tabBar.isTranslucent = false
-    return tabBarController
-  }()
-
-  // MARK: viewControllers
-
-  private lazy var contactListController: UIViewController = {
-    let controller = ContactListController()
-    let nav = NavigationController(rootViewController: controller)
-    let settingsImage = UIImage(named: "contacts")
-    nav.tabBarItem = UITabBarItem(title: "Contacts", image: settingsImage, tag: 4)
-    let coordinator = ContactListCoordinator(navigationController: nav)
-    self.childCoordinators.append(coordinator)
-    controller.coordinator = coordinator
-    return nav
-  }()
-
-  private lazy var mailboxController: UIViewController = {
-    let controller = MailboxViewController(chatId: Int(DC_CHAT_ID_DEADDROP), title: "Mailbox")
-    controller.disableWriting = true
-    let nav = NavigationController(rootViewController: controller)
-    let settingsImage = UIImage(named: "message")
-    nav.tabBarItem = UITabBarItem(title: "Mailbox", image: settingsImage, tag: 4)
-    let coordinator = MailboxCoordinator(navigationController: nav)
-    self.childCoordinators.append(coordinator)
-    controller.coordinator = coordinator
-    return nav
-  }()
-
-  private lazy var profileController: UIViewController = {
-    let controller = ProfileViewController()
-    let nav = NavigationController(rootViewController: controller)
-    let settingsImage = UIImage(named: "report_card")
-    nav.tabBarItem = UITabBarItem(title: "My Profile", image: settingsImage, tag: 4)
-    let coordinator = ProfileCoordinator(rootViewController: nav)
-    self.childCoordinators.append(coordinator)
-    controller.coordinator = coordinator
-    return nav
-  }()
-
-  private lazy var chatListController: UIViewController = {
-    let controller = ChatListController()
-    let nav = NavigationController(rootViewController: controller)
-    let settingsImage = UIImage(named: "chat")
-    nav.tabBarItem = UITabBarItem(title: "Chats", image: settingsImage, tag: 4)
-    let coordinator = ChatListCoordinator(navigationController: nav)
-    self.childCoordinators.append(coordinator)
-    controller.coordinator = coordinator
-    return nav
-  }()
-
-  private lazy var settingsController: UIViewController = {
-    let controller = SettingsViewController()
-    let nav = NavigationController(rootViewController: controller)
-    let settingsImage = UIImage(named: "settings")
-    nav.tabBarItem = UITabBarItem(title: "Settings", image: settingsImage, tag: 4)
-    let coordinator = SettingsCoordinator(navigationController: nav)
-    self.childCoordinators.append(coordinator)
-    controller.coordinator = coordinator
-    return nav
-  }()
-
-  init(window: UIWindow) {
-    self.window = window
-    super.init()
-    window.rootViewController = rootViewController
-    window.makeKeyAndVisible()
-  }
-
-  public func start() {
-    showTab(index: 3)
-  }
-
-  func showTab(index: Int) {
-    tabBarController.selectedIndex = index
-  }
+	private let window: UIWindow
+
+	var rootViewController: UIViewController {
+		return tabBarController
+	}
+
+	private var childCoordinators: [Coordinator] = []
+
+	private lazy var tabBarController: UITabBarController = {
+		let tabBarController = UITabBarController()
+		tabBarController.viewControllers = [contactListController, mailboxController, profileController, chatListController, settingsController]
+		// put viewControllers here
+		tabBarController.delegate = self
+		tabBarController.tabBar.tintColor = DCColors.primary
+		// tabBarController.tabBar.isTranslucent = false
+		return tabBarController
+	}()
+
+	// MARK: viewControllers
+
+	private lazy var contactListController: UIViewController = {
+		let controller = ContactListController()
+		let nav = NavigationController(rootViewController: controller)
+		let settingsImage = UIImage(named: "contacts")
+		nav.tabBarItem = UITabBarItem(title: "Contacts", image: settingsImage, tag: 4)
+		let coordinator = ContactListCoordinator(navigationController: nav)
+		self.childCoordinators.append(coordinator)
+		controller.coordinator = coordinator
+		return nav
+	}()
+
+	private lazy var mailboxController: UIViewController = {
+		let controller = MailboxViewController(chatId: Int(DC_CHAT_ID_DEADDROP), title: "Mailbox")
+		controller.disableWriting = true
+		let nav = NavigationController(rootViewController: controller)
+		let settingsImage = UIImage(named: "message")
+		nav.tabBarItem = UITabBarItem(title: "Mailbox", image: settingsImage, tag: 4)
+		let coordinator = MailboxCoordinator(navigationController: nav)
+		self.childCoordinators.append(coordinator)
+		controller.coordinator = coordinator
+		return nav
+	}()
+
+	private lazy var profileController: UIViewController = {
+		let controller = ProfileViewController()
+		let nav = NavigationController(rootViewController: controller)
+		let settingsImage = UIImage(named: "report_card")
+		nav.tabBarItem = UITabBarItem(title: "My Profile", image: settingsImage, tag: 4)
+		let coordinator = ProfileCoordinator(rootViewController: nav)
+		self.childCoordinators.append(coordinator)
+		controller.coordinator = coordinator
+		return nav
+	}()
+
+	private lazy var chatListController: UIViewController = {
+		let controller = ChatListController()
+		let nav = NavigationController(rootViewController: controller)
+		let settingsImage = UIImage(named: "chat")
+		nav.tabBarItem = UITabBarItem(title: "Chats", image: settingsImage, tag: 4)
+		let coordinator = ChatListCoordinator(navigationController: nav)
+		self.childCoordinators.append(coordinator)
+		controller.coordinator = coordinator
+		return nav
+	}()
+
+	private lazy var settingsController: UIViewController = {
+		let controller = SettingsViewController()
+		let nav = NavigationController(rootViewController: controller)
+		let settingsImage = UIImage(named: "settings")
+		nav.tabBarItem = UITabBarItem(title: "Settings", image: settingsImage, tag: 4)
+		let coordinator = SettingsCoordinator(navigationController: nav)
+		self.childCoordinators.append(coordinator)
+		controller.coordinator = coordinator
+		return nav
+	}()
+
+	init(window: UIWindow) {
+		self.window = window
+		super.init()
+		window.rootViewController = rootViewController
+		window.makeKeyAndVisible()
+	}
+
+	public func start() {
+		showTab(index: 3)
+	}
+
+	func showTab(index: Int) {
+		tabBarController.selectedIndex = index
+	}
 
 	func presentLoginController() {
-    let accountSetupController = AccountSetupController()
-    let accountSetupNavigationController = UINavigationController(rootViewController: accountSetupController)
-    rootViewController.present(accountSetupNavigationController, animated: false, completion: nil)
-  }
+		let accountSetupController = AccountSetupController()
+		let accountSetupNavigationController = UINavigationController(rootViewController: accountSetupController)
+		rootViewController.present(accountSetupNavigationController, animated: false, completion: nil)
+	}
 }
 
 extension AppCoordinator: UITabBarDelegate {
@@ -119,80 +119,80 @@ extension AppCoordinator: UITabBarDelegate {
 }
 
 class ContactListCoordinator: Coordinator {
-  let navigationController: UINavigationController
+	let navigationController: UINavigationController
 
-  var childCoordinators: [Coordinator] = []
+	var childCoordinators: [Coordinator] = []
 
-  init(navigationController: UINavigationController) {
-    self.navigationController = navigationController
-  }
+	init(navigationController: UINavigationController) {
+		self.navigationController = navigationController
+	}
 
-  func showContactDetail(contactId: Int) {
-    let contactDetailController = ContactDetailViewController(contactId: contactId)
-    let coordinator = ContactDetailCoordinator(navigationController: navigationController)
-    childCoordinators.append(coordinator)
-    contactDetailController.coordinator = coordinator
-    navigationController.pushViewController(contactDetailController, animated: true)
-  }
+	func showContactDetail(contactId: Int) {
+		let contactDetailController = ContactDetailViewController(contactId: contactId)
+		let coordinator = ContactDetailCoordinator(navigationController: navigationController)
+		childCoordinators.append(coordinator)
+		contactDetailController.coordinator = coordinator
+		navigationController.pushViewController(contactDetailController, animated: true)
+	}
 }
 
 // since mailbox and chatView -tab both use ChatViewController we want to be able to assign different functionality via coordinators -> therefore we override unneeded functions such as showChatDetail -> maybe find better solution in longterm
 class MailboxCoordinator: ChatViewCoordinator {
-  override func showChatDetail(chatId _: Int) {
-    // ignore for now
-  }
+	override func showChatDetail(chatId _: Int) {
+		// ignore for now
+	}
 }
 
 class ProfileCoordinator: Coordinator {
-  var rootViewController: UIViewController
+	var rootViewController: UIViewController
 
-  init(rootViewController: UIViewController) {
-    self.rootViewController = rootViewController
-  }
+	init(rootViewController: UIViewController) {
+		self.rootViewController = rootViewController
+	}
 }
 
 class ChatListCoordinator: Coordinator {
-  let navigationController: UINavigationController
-
-  var childCoordinators: [Coordinator] = []
-
-  init(navigationController: UINavigationController) {
-    self.navigationController = navigationController
-  }
-
-  func showNewChatController() {
-    let newChatVC = NewChatViewController()
-    let coordinator = NewChatCoordinator(navigationController: navigationController)
-    childCoordinators.append(coordinator)
-    newChatVC.coordinator = coordinator
-    navigationController.pushViewController(newChatVC, animated: true)
-  }
-
-  func showChat(chatId: Int) {
-    let chatVC = ChatViewController(chatId: chatId)
-    let coordinator = ChatViewCoordinator(navigationController: navigationController)
-    childCoordinators.append(coordinator)
-    chatVC.coordinator = coordinator
-    navigationController.pushViewController(chatVC, animated: true)
-  }
+	let navigationController: UINavigationController
+
+	var childCoordinators: [Coordinator] = []
+
+	init(navigationController: UINavigationController) {
+		self.navigationController = navigationController
+	}
+
+	func showNewChatController() {
+		let newChatVC = NewChatViewController()
+		let coordinator = NewChatCoordinator(navigationController: navigationController)
+		childCoordinators.append(coordinator)
+		newChatVC.coordinator = coordinator
+		navigationController.pushViewController(newChatVC, animated: true)
+	}
+
+	func showChat(chatId: Int) {
+		let chatVC = ChatViewController(chatId: chatId)
+		let coordinator = ChatViewCoordinator(navigationController: navigationController)
+		childCoordinators.append(coordinator)
+		chatVC.coordinator = coordinator
+		navigationController.pushViewController(chatVC, animated: true)
+	}
 }
 
 class SettingsCoordinator: Coordinator {
-  let navigationController: UINavigationController
+	let navigationController: UINavigationController
 
 	var childCoordinators:[Coordinator] = []
 
-  init(navigationController: UINavigationController) {
-    self.navigationController = navigationController
-  }
+	init(navigationController: UINavigationController) {
+		self.navigationController = navigationController
+	}
 
-  func showAccountSetupController() {
-    let accountSetupVC = AccountSetupController()
+	func showAccountSetupController() {
+		let accountSetupVC = AccountSetupController()
 		let coordinator = AccountSetupCoordinator(navigationController: navigationController)
 		childCoordinators.append(coordinator)
 		accountSetupVC.coordinator = coordinator
-    navigationController.pushViewController(accountSetupVC, animated: true)
-  }
+		navigationController.pushViewController(accountSetupVC, animated: true)
+	}
 
 	func showEditSettingsController(option: SettingsEditOption) {
 		let editController = EditSettingsController()
@@ -222,11 +222,15 @@ class AccountSetupCoordinator: Coordinator {
 
 	func showImapSecurityOptions() {
 		let currentSecurityOption = MRConfig.getImapSecurity()
-		print(currentSecurityOption)
-		let securitySettingsController = SecuritySettingsController(options: ["Automatic", "SSL / TLS", "STARTTLS", "OFF"], selectedOption: "OFF")
+		let convertedOption = SecurityConverter.convert(type: .IMAPSecurity, hex: currentSecurityOption)
+		let securitySettingsController = SecuritySettingsController(title: "IMAP Security", options: ["Automatic", "SSL / TLS", "STARTTLS", "OFF"], selectedOption: convertedOption)
 		securitySettingsController.onDismiss = {
 			option in
-			MRConfig.setSmtpSecurity(smptpFlags: 0) // TODO: needs mapping from option to flag
+			if let secValue = SecurityValue(rawValue: option) {
+				let value = SecurityConverter.convert(type: .IMAPSecurity, test: secValue)
+				MRConfig.setImapSecurity(imapFlags: value)
+				dc_configure(mailboxPointer)
+			}
 		}
 		navigationController.pushViewController(securitySettingsController, animated: true)
 	}
@@ -245,158 +249,160 @@ class AccountSetupCoordinator: Coordinator {
 
 	func showSmptpSecurityOptions() {
 		let currentSecurityOption = MRConfig.getSmtpSecurity()
-		print(currentSecurityOption)
-		let securitySettingsController = SecuritySettingsController(options: ["Automatic", "SSL / TLS", "STARTTLS", "OFF"], selectedOption: "OFF")
+		let convertedOption = SecurityConverter.convert(type: .SMTPSecurity, hex: currentSecurityOption)
+		let securitySettingsController = SecuritySettingsController(title: "IMAP Security", options: ["Automatic", "SSL / TLS", "STARTTLS", "OFF"], selectedOption: convertedOption)
 		securitySettingsController.onDismiss = {
 			option in
-			MRConfig.setSmtpSecurity(smptpFlags: 0) // TODO: needs mapping from option to flag
+			if let secValue = SecurityValue(rawValue: option) {
+				let value = SecurityConverter.convert(type: .SMTPSecurity, test: secValue)
+				MRConfig.setSmtpSecurity(smptpFlags: value)
+				dc_configure(mailboxPointer)
+			}
 		}
 		navigationController.pushViewController(securitySettingsController, animated: true)
-
 	}
-
 }
 
 class NewChatCoordinator: Coordinator {
-  let navigationController: UINavigationController
-
-  private var childCoordinators: [Coordinator] = []
-
-  init(navigationController: UINavigationController) {
-    self.navigationController = navigationController
-  }
-
-  func showNewGroupController() {
-    let newGroupController = NewGroupViewController()
-    let coordinator = NewGroupCoordinator(navigationController: navigationController)
-    childCoordinators.append(coordinator)
-    newGroupController.coordinator = coordinator
-    navigationController.pushViewController(newGroupController, animated: true)
-  }
-
-  func showQRCodeController() {
-    let controller = QrCodeReaderController()
-    // controller.delegate = self
-    // present(controller, animated: true, completion: nil)
-  }
-
-  func showNewContactController() {
-    let newContactController = NewContactController()
-    navigationController.pushViewController(newContactController, animated: true)
-  }
-
-  func showNewChat(contactId: Int) {
-    let chatId = dc_create_chat_by_contact_id(mailboxPointer, UInt32(contactId))
-    showChat(chatId: Int(chatId))
-  }
-
-  func showChat(chatId: Int) {
-    let chatViewController = ChatViewController(chatId: chatId)
-    let coordinator = ChatViewCoordinator(navigationController: navigationController)
-    childCoordinators.append(coordinator)
-    chatViewController.coordinator = coordinator
-    navigationController.pushViewController(chatViewController, animated: true)
-    navigationController.viewControllers.remove(at: 1)
-  }
+	let navigationController: UINavigationController
+
+	private var childCoordinators: [Coordinator] = []
+
+	init(navigationController: UINavigationController) {
+		self.navigationController = navigationController
+	}
+
+	func showNewGroupController() {
+		let newGroupController = NewGroupViewController()
+		let coordinator = NewGroupCoordinator(navigationController: navigationController)
+		childCoordinators.append(coordinator)
+		newGroupController.coordinator = coordinator
+		navigationController.pushViewController(newGroupController, animated: true)
+	}
+
+	func showQRCodeController() {
+		let controller = QrCodeReaderController()
+		// controller.delegate = self
+		// present(controller, animated: true, completion: nil)
+	}
+
+	func showNewContactController() {
+		let newContactController = NewContactController()
+		navigationController.pushViewController(newContactController, animated: true)
+	}
+
+	func showNewChat(contactId: Int) {
+		let chatId = dc_create_chat_by_contact_id(mailboxPointer, UInt32(contactId))
+		showChat(chatId: Int(chatId))
+	}
+
+	func showChat(chatId: Int) {
+		let chatViewController = ChatViewController(chatId: chatId)
+		let coordinator = ChatViewCoordinator(navigationController: navigationController)
+		childCoordinators.append(coordinator)
+		chatViewController.coordinator = coordinator
+		navigationController.pushViewController(chatViewController, animated: true)
+		navigationController.viewControllers.remove(at: 1)
+	}
 }
 
 class ChatDetailCoordinator: Coordinator {
-  let navigationController: UINavigationController
+	let navigationController: UINavigationController
 
-  private var childCoordinators: [Coordinator] = []
+	private var childCoordinators: [Coordinator] = []
 
-  init(navigationController: UINavigationController) {
-    self.navigationController = navigationController
-  }
+	init(navigationController: UINavigationController) {
+		self.navigationController = navigationController
+	}
 
-  func showSingleChatEdit(contactId: Int) {
-    let newContactController = NewContactController(contactIdForUpdate: contactId)
-    navigationController.pushViewController(newContactController, animated: true)
-  }
+	func showSingleChatEdit(contactId: Int) {
+		let newContactController = NewContactController(contactIdForUpdate: contactId)
+		navigationController.pushViewController(newContactController, animated: true)
+	}
 
-  func showAddGroupMember(chatId: Int) {
-    let groupMemberViewController = AddGroupMembersViewController(chatId: chatId)
-    navigationController.pushViewController(groupMemberViewController, animated: true)
-  }
+	func showAddGroupMember(chatId: Int) {
+		let groupMemberViewController = AddGroupMembersViewController(chatId: chatId)
+		navigationController.pushViewController(groupMemberViewController, animated: true)
+	}
 }
 
 class ChatViewCoordinator: Coordinator {
-  let navigationController: UINavigationController
-
-  var childCoordinators: [Coordinator] = []
-
-  init(navigationController: UINavigationController) {
-    self.navigationController = navigationController
-  }
-
-  func showChatDetail(chatId: Int) {
-    let chat = MRChat(id: chatId)
-    let chatDetailViewController: ChatDetailViewController
-    switch chat.chatType {
-    case .SINGLE:
-      chatDetailViewController = SingleChatDetailViewController(chatId: chatId) // inherits from ChatDetailViewController
-    case .GROUP, .VERYFIEDGROUP:
-      chatDetailViewController = GroupChatDetailViewController(chatId: chatId) // inherits from ChatDetailViewController
-    }
-    let coordinator = ChatDetailCoordinator(navigationController: navigationController)
-    childCoordinators.append(coordinator)
-    chatDetailViewController.coordinator = coordinator
-    navigationController.pushViewController(chatDetailViewController, animated: true)
-  }
+	let navigationController: UINavigationController
+
+	var childCoordinators: [Coordinator] = []
+
+	init(navigationController: UINavigationController) {
+		self.navigationController = navigationController
+	}
+
+	func showChatDetail(chatId: Int) {
+		let chat = MRChat(id: chatId)
+		let chatDetailViewController: ChatDetailViewController
+		switch chat.chatType {
+		case .SINGLE:
+			chatDetailViewController = SingleChatDetailViewController(chatId: chatId) // inherits from ChatDetailViewController
+		case .GROUP, .VERYFIEDGROUP:
+			chatDetailViewController = GroupChatDetailViewController(chatId: chatId) // inherits from ChatDetailViewController
+		}
+		let coordinator = ChatDetailCoordinator(navigationController: navigationController)
+		childCoordinators.append(coordinator)
+		chatDetailViewController.coordinator = coordinator
+		navigationController.pushViewController(chatDetailViewController, animated: true)
+	}
 }
 
 class NewGroupCoordinator: Coordinator {
-  let navigationController: UINavigationController
+	let navigationController: UINavigationController
 
-  private var childCoordinators: [Coordinator] = []
+	private var childCoordinators: [Coordinator] = []
 
-  init(navigationController: UINavigationController) {
-    self.navigationController = navigationController
-  }
+	init(navigationController: UINavigationController) {
+		self.navigationController = navigationController
+	}
 
-  func showGroupNameController(contactIdsForGroup: Set<Int>) {
-    let groupNameController = GroupNameController(contactIdsForGroup: contactIdsForGroup)
-    let coordinator = GroupNameCoordinator(navigationController: navigationController)
-    childCoordinators.append(coordinator)
-    groupNameController.coordinator = coordinator
-    navigationController.pushViewController(groupNameController, animated: true)
-  }
+	func showGroupNameController(contactIdsForGroup: Set<Int>) {
+		let groupNameController = GroupNameController(contactIdsForGroup: contactIdsForGroup)
+		let coordinator = GroupNameCoordinator(navigationController: navigationController)
+		childCoordinators.append(coordinator)
+		groupNameController.coordinator = coordinator
+		navigationController.pushViewController(groupNameController, animated: true)
+	}
 }
 
 class GroupNameCoordinator: Coordinator {
-  let navigationController: UINavigationController
-
-  private var childCoordinators: [Coordinator] = []
-
-  init(navigationController: UINavigationController) {
-    self.navigationController = navigationController
-  }
-
-  func showGroupChat(chatId: Int) {
-    let chatViewController = ChatViewController(chatId: chatId)
-    let coordinator = ChatViewCoordinator(navigationController: navigationController)
-    childCoordinators.append(coordinator)
-    chatViewController.coordinator = coordinator
-    navigationController.popToRootViewController(animated: false)
-    navigationController.pushViewController(chatViewController, animated: true)
-  }
+	let navigationController: UINavigationController
+
+	private var childCoordinators: [Coordinator] = []
+
+	init(navigationController: UINavigationController) {
+		self.navigationController = navigationController
+	}
+
+	func showGroupChat(chatId: Int) {
+		let chatViewController = ChatViewController(chatId: chatId)
+		let coordinator = ChatViewCoordinator(navigationController: navigationController)
+		childCoordinators.append(coordinator)
+		chatViewController.coordinator = coordinator
+		navigationController.popToRootViewController(animated: false)
+		navigationController.pushViewController(chatViewController, animated: true)
+	}
 }
 
 class ContactDetailCoordinator: Coordinator {
-  let navigationController: UINavigationController
-
-  private var childCoordinators: [Coordinator] = []
-
-  init(navigationController: UINavigationController) {
-    self.navigationController = navigationController
-  }
-
-  func showChat(chatId: Int) {
-    let chatViewController = ChatViewController(chatId: chatId)
-    let coordinator = ChatViewCoordinator(navigationController: navigationController)
-    childCoordinators.append(coordinator)
-    chatViewController.coordinator = coordinator
-    navigationController.popToRootViewController(animated: false)
-    navigationController.pushViewController(chatViewController, animated: true)
-  }
+	let navigationController: UINavigationController
+
+	private var childCoordinators: [Coordinator] = []
+
+	init(navigationController: UINavigationController) {
+		self.navigationController = navigationController
+	}
+
+	func showChat(chatId: Int) {
+		let chatViewController = ChatViewController(chatId: chatId)
+		let coordinator = ChatViewCoordinator(navigationController: navigationController)
+		childCoordinators.append(coordinator)
+		chatViewController.coordinator = coordinator
+		navigationController.popToRootViewController(animated: false)
+		navigationController.pushViewController(chatViewController, animated: true)
+	}
 }

+ 1 - 0
deltachat-ios/DC/Wrapper.swift

@@ -933,3 +933,4 @@ class MRConfig {
     set {}
   }
 }
+

+ 1 - 0
deltachat-ios/Helper/Constants.swift

@@ -26,3 +26,4 @@ struct Constants {
 
   static let notificationIdentifier = "deltachat-ios-local-notifications"
 }
+