Browse Source

revert additional contact cache

B. Petersen 3 years ago
parent
commit
ce0c79feb6

+ 1 - 2
DcShare/Controller/ChatListController.swift

@@ -128,8 +128,7 @@ class ChatListController: UITableViewController {
              if let chatId = data.chatId {
                 chatListDelegate?.onChatSelected(chatId: chatId)
             } else {
-                let contact = data.contact
-                let chatId = dcContext.createChatByContactId(contactId: contact.id)
+                let chatId = dcContext.createChatByContactId(contactId: data.contactId)
                 chatListDelegate?.onChatSelected(chatId: chatId)
             }
         default:

+ 3 - 2
DcShare/View/ChatListCell.swift

@@ -109,11 +109,12 @@ class ChatListCell: UITableViewCell {
             subtitleLabel.attributedText = nil
 
         case .contact(let contactData):
+            let contact = cellViewModel.dcContext.getContact(id: contactData.contactId)
             titleLabel.attributedText = cellViewModel.title.boldAt(indexes: cellViewModel.titleHighlightIndexes, fontSize: titleLabel.font.pointSize)
-            if let profileImage = contactData.contact.profileImage {
+            if let profileImage = contact.profileImage {
                 avatar.setImage(profileImage)
             } else {
-                setBackupImage(name: cellViewModel.title, color: contactData.contact.color)
+                setBackupImage(name: cellViewModel.title, color: contact.color)
             }
             subtitleLabel.attributedText = cellViewModel.subtitle.boldAt(indexes: cellViewModel.subtitleHighlightIndexes,
                                                                          fontSize: subtitleLabel.font.pointSize)

+ 1 - 1
deltachat-ios/Controller/ChatListController.swift

@@ -292,7 +292,7 @@ class ChatListController: UITableViewController {
                 showChat(chatId: chatId, highlightedMsg: chatData.highlightMsgId)
             }
         case .contact(let contactData):
-            let contactId = contactData.contact.id
+            let contactId = contactData.contactId
             if let chatId = contactData.chatId {
                 showChat(chatId: chatId)
             } else {

+ 1 - 2
deltachat-ios/Controller/GroupChatDetailViewController.swift

@@ -410,9 +410,8 @@ extension GroupChatDetailViewController: UITableViewDelegate, UITableViewDataSou
                 break
             }
             let contactId: Int = getGroupMemberIdFor(row)
-            let contact = dcContext.getContact(id: contactId)
             let cellData = ContactCellData(
-                contact: contact,
+                contactId: contactId,
                 chatId: dcContext.getChatIdByContactIdOld(contactId)
             )
             let cellViewModel = ContactCellViewModel(dcContext: dcContext, contactData: cellData)

+ 4 - 3
deltachat-ios/View/ContactCell.swift

@@ -335,14 +335,15 @@ class ContactCell: UITableViewCell {
                                 isMuted: chat.isMuted)
 
         case .contact(let contactData):
+            let contact = cellViewModel.dcContext.getContact(id: contactData.contactId)
             titleLabel.attributedText = cellViewModel.title.boldAt(indexes: cellViewModel.titleHighlightIndexes, fontSize: titleLabel.font.pointSize)
-            if let profileImage = contactData.contact.profileImage {
+            if let profileImage = contact.profileImage {
                 avatar.setImage(profileImage)
             } else {
                 avatar.setName(cellViewModel.title)
-                avatar.setColor(contactData.contact.color)
+                avatar.setColor(contact.color)
             }
-            setVerified(isVerified: contactData.contact.isVerified)
+            setVerified(isVerified: contact.isVerified)
             setStatusIndicators(unreadCount: 0,
                                 status: 0,
                                 visibility: 0,

+ 3 - 3
deltachat-ios/ViewModel/ContactCellViewModel.swift

@@ -18,7 +18,7 @@ enum CellModel {
 }
 
 struct ContactCellData {
-    let contact: DcContact
+    let contactId: Int
     let chatId: Int?
 }
 
@@ -60,7 +60,7 @@ class ContactCellViewModel: AvatarCellViewModel {
         type = CellModel.contact(contactData)
         self.titleHighlightIndexes = titleHighlightIndexes
         self.subtitleHighlightIndexes = subtitleHighlightIndexes
-        self.contact = contactData.contact
+        self.contact = dcContext.getContact(id: contactData.contactId)
         self.dcContext = dcContext
     }
 }
@@ -150,7 +150,7 @@ extension ContactCellViewModel {
         let viewModel = ContactCellViewModel(
             dcContext: dcContext,
             contactData: ContactCellData(
-                contact: contact,
+                contactId: contactId,
                 chatId: chatId
             ),
             titleHighlightIndexes: nameIndexes,