소스 검색

use InitialsBadge unread message counter, fixes layouting issues on iOS 12. MessageCounter is moved to the upper right

cyberta 2 년 전
부모
커밋
0890060b57
1개의 변경된 파일15개의 추가작업 그리고 29개의 파일을 삭제
  1. 15 29
      deltachat-ios/Controller/ChatListController.swift

+ 15 - 29
deltachat-ios/Controller/ChatListController.swift

@@ -69,6 +69,19 @@ class ChatListController: UITableViewController, AccountSwitcherHandler {
         return editingBar
     }()
 
+    private lazy var accountButtonAvatar: InitialsBadge = {
+        let badge = InitialsBadge(size: 37, accessibilityLabel: String.localized("switch_account"))
+        badge.setLabelFont(UIFont.systemFont(ofSize: 14))
+        badge.accessibilityTraits = .button
+        let tapGestureRecognizer =  UITapGestureRecognizer(target: self, action: #selector(accountButtonTapped))
+        badge.addGestureRecognizer(tapGestureRecognizer)
+        return badge
+    }()
+
+    private lazy var accountButton: UIBarButtonItem = {
+        return UIBarButtonItem(customView: accountButtonAvatar)
+    }()
+
     private var editingConstraints: NSLayoutConstraintSet?
 
     init(dcContext: DcContext, dcAccounts: DcAccounts, isArchive: Bool) {
@@ -534,35 +547,8 @@ class ChatListController: UITableViewController, AccountSwitcherHandler {
         }
     }
     
-    lazy var accountButtonAvatar: InitialsBadge = {
-        let badge = InitialsBadge(size: 37, accessibilityLabel: String.localized("switch_account"))
-        badge.setLabelFont(UIFont.systemFont(ofSize: 14))
-        badge.accessibilityTraits = .button
-        return badge
-    }()
-    
-    private let accountButtonUnreadMessageCounter: MessageCounter = {
-        let view = MessageCounter(count: 0, size: 20)
-        view.backgroundColor = DcColors.unreadBadge
-        view.isHidden = true
-        return view
-    }()
-
-    private lazy var accountButton: UIBarButtonItem = {
-        let containerView = UIView(frame: CGRect(x: 0, y: 0, width: 37, height: 37))
-        containerView.addSubview(accountButtonAvatar)
-        containerView.addSubview(accountButtonUnreadMessageCounter)
-        
-        let tapGestureRecognizer =  UITapGestureRecognizer(target: self, action: #selector(showSwitchAccount))
-        containerView.addGestureRecognizer(tapGestureRecognizer)
-        
-        return UIBarButtonItem(customView: containerView)
-    }()
-    
     private func updateAccountButton() {
-        let unreadCount = getUnreadCounterOfOtherAccounts()
-        accountButtonUnreadMessageCounter.setCount(unreadCount)
-        accountButtonUnreadMessageCounter.isHidden = unreadCount == 0
+        accountButtonAvatar.setUnreadMessageCount(getUnreadCounterOfOtherAccounts())
         
         let contact = dcContext.getContact(id: Int(DC_CONTACT_ID_SELF))
         accountButtonAvatar.setColor(contact.color)
@@ -586,7 +572,7 @@ class ChatListController: UITableViewController, AccountSwitcherHandler {
         return unreadCount
     }
     
-    @objc private func showSwitchAccount() {
+    @objc private func accountButtonTapped() {
         showSwitchAccountMenu()
     }