Browse Source

add a messageInputBar view unconditionally, however, use it as an accessory only if it is not hidden

B. Petersen 3 years ago
parent
commit
8d554eb91f

+ 4 - 2
deltachat-ios/Chat/ChatViewController.swift

@@ -267,8 +267,10 @@ class ChatViewController: UITableViewController {
 
     override func loadView() {
         let dcChat = dcContext.getChat(chatId: chatId)
-        let inputBar = !dcChat.canSend && !dcChat.isContactRequest ? nil : messageInputBar
-        self.tableView = ChatTableView(messageInputBar: inputBar)
+        self.tableView = ChatTableView(messageInputBar: messageInputBar)
+        if !dcChat.canSend {
+            messageInputBar.isHidden = true
+        }
         self.tableView.delegate = self
         self.tableView.dataSource = self
         self.view = self.tableView

+ 4 - 6
deltachat-ios/Chat/Views/ChatTableView.swift

@@ -3,18 +3,17 @@ import InputBarAccessoryView
 
 class ChatTableView: UITableView {
 
-    var messageInputBar: InputBarAccessoryView?
+    var messageInputBar: InputBarAccessoryView
+    
     override var inputAccessoryView: UIView? {
-        return messageInputBar
+        return messageInputBar.isHidden ? nil : messageInputBar
     }
 
-
     override var canBecomeFirstResponder: Bool {
         return true
     }
 
-
-    public init(messageInputBar: InputBarAccessoryView?) {
+    public init(messageInputBar: InputBarAccessoryView) {
         self.messageInputBar = messageInputBar
         super.init(frame: .zero, style: .plain)
     }
@@ -22,5 +21,4 @@ class ChatTableView: UITableView {
     required init?(coder: NSCoder) {
         fatalError("init(coder:) has not been implemented")
     }
-
 }