فهرست منبع

Merge pull request #694 from deltachat/hint-blocked-contacts

Hint if blocked contacts list is empty
cyBerta 5 سال پیش
والد
کامیت
e97513dede
1فایلهای تغییر یافته به همراه26 افزوده شده و 0 حذف شده
  1. 26 0
      deltachat-ios/Controller/GroupMembersViewController.swift

+ 26 - 0
deltachat-ios/Controller/GroupMembersViewController.swift

@@ -228,6 +228,14 @@ class AddGroupMembersViewController: GroupMembersViewController {
 
 class BlockedContactsViewController: GroupMembersViewController, GroupMemberSelectionDelegate {
 
+    var emptyStateView: PaddingLabel = {
+        let view =  PaddingLabel()
+        view.text = String.localized("none_blocked_desktop")
+        view.backgroundColor = DcColors.systemMessageBackgroundColor
+        view.textColor = DcColors.defaultTextColor
+        return view
+    }()
+
     override init() {
         super.init()
         enableCheckmarks = false
@@ -237,6 +245,7 @@ class BlockedContactsViewController: GroupMembersViewController, GroupMemberSele
         fatalError("init(coder:) has not been implemented")
     }
 
+    // MARK: - lifecycle
     override func viewDidLoad() {
         super.viewDidLoad()
         title = String.localized("pref_blocked_contacts")
@@ -244,12 +253,24 @@ class BlockedContactsViewController: GroupMembersViewController, GroupMemberSele
         selectedContactIds = Set(contactIds)
         navigationItem.searchController = nil
         groupMemberSelectionDelegate = self
+        setupSubviews()
     }
 
     override func viewWillAppear(_ animated: Bool) {
         super.viewWillAppear(animated)
+        updateEmtpyStateView()
+    }
+
+    // MARK: - setup
+    private func setupSubviews() {
+        view.addSubview(emptyStateView)
+        emptyStateView.translatesAutoresizingMaskIntoConstraints = false
+        emptyStateView.centerYAnchor.constraint(equalTo: view.safeAreaLayoutGuide.centerYAnchor).isActive = true
+        emptyStateView.centerXAnchor.constraint(equalTo: view.safeAreaLayoutGuide.centerXAnchor).isActive = true
+        emptyStateView.widthAnchor.constraint(equalToConstant: 200).isActive = true
     }
 
+    // MARK: - actions + updates
     func selected(contactId: Int, selected: Bool) {
         if !selected {
             let dcContact = DcContact(id: contactId)
@@ -261,6 +282,7 @@ class BlockedContactsViewController: GroupMembersViewController, GroupMemberSele
                 self.contactIds = self.dcContext.getBlockedContacts()
                 self.selectedContactIds = Set(self.contactIds)
                 self.tableView.reloadData()
+                self.updateEmtpyStateView()
             }))
             alert.addAction(UIAlertAction(title: String.localized("cancel"), style: .cancel, handler: { _ in
                 self.selectedContactIds = Set(self.contactIds)
@@ -269,6 +291,10 @@ class BlockedContactsViewController: GroupMembersViewController, GroupMemberSele
            present(alert, animated: true, completion: nil)
         }
     }
+
+    private func updateEmtpyStateView() {
+        emptyStateView.isHidden = super.getNumberOfRowsForContactList() > 0
+    }
 }
 
 protocol GroupMemberSelectionDelegate: class {