Răsfoiți Sursa

move disappearing and mute options up

B. Petersen 5 ani în urmă
părinte
comite
b633e1514c

+ 12 - 12
deltachat-ios/Controller/ContactDetailViewController.swift

@@ -142,13 +142,13 @@ class ContactDetailViewController: UITableViewController {
                 return documentsCell
             case .gallery:
                 return galleryCell
-            }
-        case .chatActions:
-            switch viewModel.chatActionFor(row: row) {
             case .ephemeralMessages:
                 return ephemeralMessagesCell
             case .muteChat:
                 return muteChatCell
+            }
+        case .chatActions:
+            switch viewModel.chatActionFor(row: row) {
             case .archiveChat:
                 return archiveChatCell
             case .blockContact:
@@ -216,15 +216,6 @@ class ContactDetailViewController: UITableViewController {
     private func handleCellAction(for index: Int) {
         let action = viewModel.chatActionFor(row: index)
         switch action {
-        case .ephemeralMessages:
-            showEphemeralMessagesController()
-        case .muteChat:
-            if viewModel.chatIsMuted {
-                self.viewModel.context.setChatMuteDuration(chatId: self.viewModel.chatId, duration: 0)
-                muteChatCell.actionTitle = String.localized("menu_mute")
-            } else {
-                showMuteAlert()
-            }
         case .archiveChat:
             toggleArchiveChat()
         case .blockContact:
@@ -241,6 +232,15 @@ class ContactDetailViewController: UITableViewController {
             showDocuments()
         case .gallery:
             showGallery()
+        case .ephemeralMessages:
+            showEphemeralMessagesController()
+        case .muteChat:
+            if viewModel.chatIsMuted {
+                self.viewModel.context.setChatMuteDuration(chatId: self.viewModel.chatId, duration: 0)
+                muteChatCell.actionTitle = String.localized("menu_mute")
+            } else {
+                showMuteAlert()
+            }
         }
     }
 

+ 21 - 21
deltachat-ios/Controller/GroupChatDetailViewController.swift

@@ -12,26 +12,26 @@ class GroupChatDetailViewController: UIViewController {
     enum ChatOption {
         case gallery
         case documents
+        case ephemeralMessages
+        case muteChat
     }
 
     enum ChatAction {
-        case ephemeralMessages
-        case muteChat
         case archiveChat
         case leaveGroup
         case deleteChat
     }
 
     private lazy var chatOptions: [ChatOption] = {
-        return [.gallery, .documents]
+        var options: [ChatOption] = [.gallery, .documents, .muteChat]
+        if UserDefaults.standard.bool(forKey: "ephemeral_messages") || dcContext.getChatEphemeralTimer(chatId: chatId) > 0 {
+            options.insert(.ephemeralMessages, at: 2)
+        }
+        return options
     }()
 
     private lazy var chatActions: [ChatAction] = {
-        var actions: [ChatAction] = [.muteChat, .archiveChat, .leaveGroup, .deleteChat]
-        if UserDefaults.standard.bool(forKey: "ephemeral_messages") || dcContext.getChatEphemeralTimer(chatId: chatId) > 0 {
-            actions.insert(.ephemeralMessages, at: 0)
-        }
-        return actions
+        return [.archiveChat, .leaveGroup, .deleteChat]
     }()
 
     private let membersRowAddMembers = 0
@@ -329,6 +329,10 @@ extension GroupChatDetailViewController: UITableViewDelegate, UITableViewDataSou
                 return galleryCell
             case .documents:
                 return documentsCell
+            case .ephemeralMessages:
+                return ephemeralMessagesCell
+            case .muteChat:
+                return muteChatCell
             }
         case .members:
             if row == membersRowAddMembers || row == membersRowQrInvite {
@@ -360,10 +364,6 @@ extension GroupChatDetailViewController: UITableViewDelegate, UITableViewDataSou
             return contactCell
         case .chatActions:
             switch chatActions[row] {
-            case .ephemeralMessages:
-                return ephemeralMessagesCell
-            case .muteChat:
-                return muteChatCell
             case .archiveChat:
                 return archiveChatCell
             case .leaveGroup:
@@ -387,6 +387,15 @@ extension GroupChatDetailViewController: UITableViewDelegate, UITableViewDataSou
                 showGallery()
             case .documents:
                 showDocuments()
+            case .ephemeralMessages:
+                showEphemeralMessagesController()
+            case .muteChat:
+                if chat.isMuted {
+                    dcContext.setChatMuteDuration(chatId: chatId, duration: 0)
+                    muteChatCell.actionTitle = String.localized("menu_mute")
+                } else {
+                    showMuteAlert()
+                }
             }
         case .members:
             if row == membersRowAddMembers {
@@ -399,15 +408,6 @@ extension GroupChatDetailViewController: UITableViewDelegate, UITableViewDataSou
             }
         case .chatActions:
             switch chatActions[row] {
-            case .ephemeralMessages:
-                showEphemeralMessagesController()
-            case .muteChat:
-                if chat.isMuted {
-                    dcContext.setChatMuteDuration(chatId: chatId, duration: 0)
-                    muteChatCell.actionTitle = String.localized("menu_mute")
-                } else {
-                    showMuteAlert()
-                }
             case .archiveChat:
                 toggleArchiveChat()
             case .leaveGroup:

+ 8 - 6
deltachat-ios/ViewModel/ContactDetailViewModel.swift

@@ -9,17 +9,17 @@ class ContactDetailViewModel {
         case startChat
         case chatOptions
         case sharedChats
-        case chatActions //  archive chat, block chat, delete chats
+        case chatActions
     }
 
     enum ChatOption {
         case gallery
         case documents
+        case ephemeralMessages
+        case muteChat
     }
 
     enum ChatAction {
-        case ephemeralMessages
-        case muteChat
         case archiveChat
         case blockContact
         case deleteChat
@@ -35,7 +35,7 @@ class ContactDetailViewModel {
     private let sharedChats: DcChatlist
     private var sections: [ProfileSections] = []
     private var chatActions: [ChatAction] = []
-    private var chatOptions: [ChatOption] = [.gallery, .documents]
+    private var chatOptions: [ChatOption] = []
 
     init(dcContext: DcContext, contactId: Int) {
         self.context = dcContext
@@ -51,11 +51,13 @@ class ContactDetailViewModel {
         sections.append(.chatActions)
 
         if chatId != 0 {
-            chatActions = [.muteChat, .archiveChat, .blockContact, .deleteChat]
+            chatOptions = [.gallery, .documents, .muteChat]
+            chatActions = [.archiveChat, .blockContact, .deleteChat]
             if UserDefaults.standard.bool(forKey: "ephemeral_messages") || dcContext.getChatEphemeralTimer(chatId: chatId) > 0 {
-                chatActions.insert(.ephemeralMessages, at: 0)
+                chatOptions.insert(.ephemeralMessages, at: 2)
             }
         } else {
+            chatOptions = [.gallery, .documents]
             chatActions = [.blockContact]
         }
     }