Răsfoiți Sursa

Merge pull request #1366 from deltachat/update_chat_title_view

update initials badge in chat view dynamically
bjoern 3 ani în urmă
părinte
comite
3a976a01f6
1 a modificat fișierele cu 16 adăugiri și 15 ștergeri
  1. 16 15
      deltachat-ios/Chat/ChatViewController.swift

+ 16 - 15
deltachat-ios/Chat/ChatViewController.swift

@@ -97,23 +97,16 @@ class ChatViewController: UITableViewController {
         return UIBarButtonItem(customView: imageView)
     }()
 
-    private lazy var badgeItem: UIBarButtonItem = {
+    private lazy var initialsBadge: InitialsBadge = {
         let badge: InitialsBadge
-        let chat = dcContext.getChat(chatId: chatId)
-        if let image = chat.profileImage {
-            badge = InitialsBadge(image: image, size: 28, accessibilityLabel: String.localized("menu_view_profile"))
-        } else {
-            badge = InitialsBadge(
-                name: chat.name,
-                color: chat.color,
-                size: 28,
-                accessibilityLabel: String.localized("menu_view_profile")
-            )
-            badge.setLabelFont(UIFont.systemFont(ofSize: 14))
-        }
-        badge.setVerified(chat.isProtected)
+        badge = InitialsBadge(size: 28, accessibilityLabel: String.localized("menu_view_profile"))
+        badge.setLabelFont(UIFont.systemFont(ofSize: 14))
         badge.accessibilityTraits = .button
-        return UIBarButtonItem(customView: badge)
+        return badge
+    }()
+
+    private lazy var badgeItem: UIBarButtonItem = {
+        return UIBarButtonItem(customView: initialsBadge)
     }()
 
     private lazy var contextMenu: ContextMenuProvider = {
@@ -813,6 +806,14 @@ class ChatViewController: UITableViewController {
         titleView.updateTitleView(title: chat.name, subtitle: subtitle)
         navigationItem.titleView = titleView
 
+        if let image = chat.profileImage {
+            initialsBadge.setImage(image)
+        } else {
+            initialsBadge.setName(chat.name)
+            initialsBadge.setColor(chat.color)
+        }
+        initialsBadge.setVerified(chat.isProtected)
+
         var rightBarButtonItems = [badgeItem]
         if chat.isSendingLocations {
             rightBarButtonItems.append(locationStreamingItem)