Bläddra i källkod

added swipe action in contactlist to edit contact

Bastian van de Wetering 6 år sedan
förälder
incheckning
dfaa6ab797

+ 18 - 1
deltachat-ios/Controller/ContactListController.swift

@@ -87,6 +87,23 @@ class ContactListController: UITableViewController {
 
   override func tableView(_: UITableView, didSelectRowAt indexPath: IndexPath) {
     let contactId = contactIds[indexPath.row]
-    coordinator?.showContactDetail(contactId: contactId)
+		let chatId = dc_create_chat_by_contact_id(mailboxPointer, UInt32(contactId))
+
+		coordinator?.showChat(chatId: Int(chatId))
+		// coordinator?.showContactDetail(contactId: contactId)
   }
+
+	override func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
+		let row = indexPath.row
+
+		let contactId = contactIds[row]
+
+		// assigning swipe by delete to chats
+		let edit = UITableViewRowAction(style: .default, title: "Edit") {
+			[unowned self] _, indexPath in
+			self.coordinator?.showContactDetail(contactId: contactId)
+		}
+		edit.backgroundColor = DCColors.primary
+		return [edit]
+	}
 }

+ 8 - 0
deltachat-ios/Coordinator/AppCoordinator.swift

@@ -134,6 +134,14 @@ class ContactListCoordinator: Coordinator {
 		contactDetailController.coordinator = coordinator
 		navigationController.pushViewController(contactDetailController, 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)
+	}
 }
 
 // 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