Переглянути джерело

add only senseful options to saved-messages/device-chat profile

B. Petersen 4 роки тому
батько
коміт
2822a00816
1 змінених файлів з 23 додано та 2 видалено
  1. 23 2
      deltachat-ios/ViewModel/ContactDetailViewModel.swift

+ 23 - 2
deltachat-ios/ViewModel/ContactDetailViewModel.swift

@@ -33,6 +33,8 @@ class ContactDetailViewModel {
     }
 
     let chatId: Int
+    var isSavedMessages: Bool
+    var isDeviceTalk: Bool
     private let sharedChats: DcChatlist
     private var sections: [ProfileSections] = []
     private var chatActions: [ChatAction] = []
@@ -42,6 +44,8 @@ class ContactDetailViewModel {
         self.context = dcContext
         self.contactId = contactId
         self.chatId = dcContext.getChatIdByContactId(contactId: contactId)
+        self.isSavedMessages = false
+        self.isDeviceTalk = false
         self.sharedChats = context.getChatlist(flags: 0, queryString: nil, queryId: contactId)
 
         sections.append(.chatOptions)
@@ -51,8 +55,25 @@ class ContactDetailViewModel {
         sections.append(.chatActions)
 
         if chatId != 0 {
-            chatOptions = [.gallery, .documents, .ephemeralMessages, .muteChat, .startChat]
-            chatActions = [.archiveChat, .showEncrInfo, .blockContact, .deleteChat]
+            let dcChat = dcContext.getChat(chatId: chatId)
+            isSavedMessages = dcChat.isSelfTalk
+            isDeviceTalk = dcChat.isDeviceTalk
+
+            chatOptions = [.gallery, .documents]
+            if !isDeviceTalk {
+                chatOptions.append(.ephemeralMessages)
+            }
+            chatOptions.append(.muteChat)
+            if !isDeviceTalk {
+                chatOptions.append(.startChat)
+            }
+
+            chatActions = [.archiveChat]
+            if !isDeviceTalk && !isSavedMessages {
+                chatActions.append(.showEncrInfo)
+                chatActions.append(.blockContact)
+            }
+            chatActions.append(.deleteChat)
         } else {
             chatOptions = [.gallery, .documents, .startChat]
             chatActions = [.showEncrInfo, .blockContact]