瀏覽代碼

remove EditGroupCoordinator

B. Petersen 5 年之前
父節點
當前提交
435065eb2f
共有 2 個文件被更改,包括 34 次插入40 次删除
  1. 33 10
      deltachat-ios/Controller/EditGroupViewController.swift
  2. 1 30
      deltachat-ios/Coordinator/AppCoordinator.swift

+ 33 - 10
deltachat-ios/Controller/EditGroupViewController.swift

@@ -2,9 +2,7 @@ import UIKit
 import DcCore
 import DcCore
 
 
 class EditGroupViewController: UITableViewController, MediaPickerDelegate {
 class EditGroupViewController: UITableViewController, MediaPickerDelegate {
-
-    weak var coordinator: EditGroupCoordinator?
-
+    private let dcContext: DcContext
     private let chat: DcChat
     private let chat: DcChat
     private var groupImage: UIImage?
     private var groupImage: UIImage?
 
 
@@ -13,6 +11,14 @@ class EditGroupViewController: UITableViewController, MediaPickerDelegate {
 
 
     var avatarSelectionCell: AvatarSelectionCell
     var avatarSelectionCell: AvatarSelectionCell
 
 
+    private lazy var mediaPicker: MediaPicker? = {
+        if let navigationController = self.parent as? UINavigationController {
+            return MediaPicker(navigationController: navigationController)
+        } else {
+            return nil
+        }
+    }()
+
     lazy var groupNameCell: TextFieldCell = {
     lazy var groupNameCell: TextFieldCell = {
         let cell = TextFieldCell(description: String.localized("group_name"), placeholder: self.chat.name)
         let cell = TextFieldCell(description: String.localized("group_name"), placeholder: self.chat.name)
         cell.setText(text: self.chat.name)
         cell.setText(text: self.chat.name)
@@ -31,7 +37,8 @@ class EditGroupViewController: UITableViewController, MediaPickerDelegate {
         return button
         return button
     }()
     }()
 
 
-    init(chat: DcChat) {
+    init(dcContext: DcContext, chat: DcChat) {
+        self.dcContext = dcContext
         self.chat = chat
         self.chat = chat
         self.avatarSelectionCell = AvatarSelectionCell(chat: chat)
         self.avatarSelectionCell = AvatarSelectionCell(chat: chat)
         super.init(style: .grouped)
         super.init(style: .grouped)
@@ -75,15 +82,15 @@ class EditGroupViewController: UITableViewController, MediaPickerDelegate {
     
     
     @objc func saveContactButtonPressed() {
     @objc func saveContactButtonPressed() {
         let newName = groupNameCell.getText()
         let newName = groupNameCell.getText()
-        if let groupImage = groupImage, let dcContext = coordinator?.dcContext {
+        if let groupImage = groupImage {
             AvatarHelper.saveChatAvatar(dcContext: dcContext, image: groupImage, for: Int(chat.id))
             AvatarHelper.saveChatAvatar(dcContext: dcContext, image: groupImage, for: Int(chat.id))
         }
         }
-        _ = DcContext.shared.setChatName(chatId: chat.id, name: newName ?? "")
-        coordinator?.navigateBack()
+        _ = dcContext.setChatName(chatId: chat.id, name: newName ?? "")
+        navigateBack()
     }
     }
 
 
     @objc func cancelButtonPressed() {
     @objc func cancelButtonPressed() {
-        coordinator?.navigateBack()
+        navigateBack()
     }
     }
 
 
     private func groupNameEdited(_ textField: UITextField) {
     private func groupNameEdited(_ textField: UITextField) {
@@ -102,11 +109,11 @@ class EditGroupViewController: UITableViewController, MediaPickerDelegate {
     }
     }
 
 
     private func galleryButtonPressed(_ action: UIAlertAction) {
     private func galleryButtonPressed(_ action: UIAlertAction) {
-        coordinator?.showPhotoPicker(delegate: self)
+        showPhotoPicker(delegate: self)
     }
     }
 
 
     private func cameraButtonPressed(_ action: UIAlertAction) {
     private func cameraButtonPressed(_ action: UIAlertAction) {
-        coordinator?.showCamera(delegate: self)
+        showCamera(delegate: self)
     }
     }
 
 
     func onImageSelected(image: UIImage) {
     func onImageSelected(image: UIImage) {
@@ -122,4 +129,20 @@ class EditGroupViewController: UITableViewController, MediaPickerDelegate {
         self.tableView.reloadRows(at: [indexPath], with: UITableView.RowAnimation.none)
         self.tableView.reloadRows(at: [indexPath], with: UITableView.RowAnimation.none)
         self.tableView.endUpdates()
         self.tableView.endUpdates()
     }
     }
+
+    // MARK: - coordinator
+
+    func showPhotoPicker(delegate: MediaPickerDelegate) {
+        mediaPicker?.showPhotoGallery(delegate: delegate)
+    }
+
+    func showCamera(delegate: MediaPickerDelegate) {
+        mediaPicker?.showCamera(delegate: delegate)
+    }
+
+    func navigateBack() {
+        if let navigationController = self.parent as? UINavigationController {
+            navigationController.popViewController(animated: true)
+        }
+    }
 }
 }

+ 1 - 30
deltachat-ios/Coordinator/AppCoordinator.swift

@@ -482,10 +482,7 @@ class GroupChatDetailCoordinator: Coordinator {
     }
     }
 
 
     func showGroupChatEdit(chat: DcChat) {
     func showGroupChatEdit(chat: DcChat) {
-        let editGroupViewController = EditGroupViewController(chat: chat)
-        let coordinator = EditGroupCoordinator(dcContext: dcContext, navigationController: navigationController)
-        childCoordinators.append(coordinator)
-        editGroupViewController.coordinator = coordinator
+        let editGroupViewController = EditGroupViewController(dcContext: dcContext, chat: chat)
         navigationController.pushViewController(editGroupViewController, animated: true)
         navigationController.pushViewController(editGroupViewController, animated: true)
     }
     }
 
 
@@ -721,32 +718,6 @@ class NewGroupCoordinator: Coordinator {
     }
     }
 }
 }
 
 
-// MARK: - EditGroupCoordinator
-class EditGroupCoordinator: Coordinator {
-    let navigationController: UINavigationController
-    let dcContext: DcContext
-    let mediaPicker: MediaPicker
-
-    init(dcContext: DcContext, navigationController: UINavigationController) {
-        self.dcContext = dcContext
-        self.navigationController = navigationController
-        mediaPicker = MediaPicker(navigationController: self.navigationController)
-    }
-
-    func showPhotoPicker(delegate: MediaPickerDelegate) {
-        mediaPicker.showPhotoGallery(delegate: delegate)
-    }
-
-    func showCamera(delegate: MediaPickerDelegate) {
-        mediaPicker.showCamera(delegate: delegate)
-    }
-
-    func navigateBack() {
-        navigationController.popViewController(animated: true)
-    }
-}
-
-
 /*
 /*
  boilerplate - I tend to remove that interface (cyberta)
  boilerplate - I tend to remove that interface (cyberta)
  */
  */