Ver código fonte

use overridden sender names

B. Petersen 4 anos atrás
pai
commit
cc09e42582

+ 15 - 0
DcCore/DcCore/DC/Wrapper.swift

@@ -837,6 +837,21 @@ public class DcMsg {
         return Int(dc_msg_get_real_chat_id(messagePointer))
     }
 
+    public var overrideSenderName: String? {
+        guard let cString = dc_msg_get_override_sender_name(messagePointer) else { return nil }
+        let swiftString = String(cString: cString)
+        dc_str_unref(cString)
+        return swiftString
+    }
+
+    public func getSenderName(_ dcContact: DcContact, markOverride: Bool = false) -> String {
+        if let overrideName = overrideSenderName {
+            return (markOverride ? "~" : "") + overrideName
+        } else {
+            return dcContact.displayName
+        }
+    }
+
     public var text: String? {
         set {
             if let newValue = newValue {

+ 1 - 1
DcCore/DcCore/DC/events.swift

@@ -149,7 +149,7 @@ public func handleEvent(event: DcEvent) {
             if !UserDefaults.standard.bool(forKey: "notifications_disabled") && !chat.isMuted {
                 let content = UNMutableNotificationContent()
                 let msg = DcMsg(id: Int(data2))
-                content.title = msg.fromContact.displayName
+                content.title = msg.getSenderName(msg.fromContact)
                 content.body = msg.summary(chars: 40) ?? ""
                 content.userInfo = userInfo
                 content.sound = .default

+ 3 - 3
deltachat-ios/Chat/Views/Cells/BaseMessageCell.swift

@@ -241,7 +241,7 @@ public class BaseMessageCell: UITableViewCell {
 
         } else {
             topLabel.text = msg.isForwarded ? String.localized("forwarded_message") :
-                isGroup ? msg.fromContact.displayName : nil
+                isGroup ? msg.getSenderName(msg.fromContact, markOverride: true) : nil
             topLabel.textColor = msg.isForwarded ? DcColors.grayDateColor :
                 isGroup ? msg.fromContact.color : DcColors.defaultTextColor
             leadingConstraintCurrentSender?.isActive = false
@@ -258,7 +258,7 @@ public class BaseMessageCell: UITableViewCell {
 
         if isAvatarVisible {
             avatarView.isHidden = false
-            avatarView.setName(msg.fromContact.displayName)
+            avatarView.setName(msg.getSenderName(msg.fromContact))
             avatarView.setColor(msg.fromContact.color)
             if let profileImage = msg.fromContact.profileImage {
                 avatarView.setImage(profileImage)
@@ -286,7 +286,7 @@ public class BaseMessageCell: UITableViewCell {
                     quoteView.citeBar.backgroundColor = DcColors.grayDateColor
                 } else {
                     let contact = quoteMsg.fromContact
-                    quoteView.senderTitle.text = contact.displayName
+                    quoteView.senderTitle.text = quoteMsg.getSenderName(contact)
                     quoteView.senderTitle.textColor = contact.color
                     quoteView.citeBar.backgroundColor = contact.color
                 }

+ 1 - 1
deltachat-ios/Chat/Views/QuotePreview.swift

@@ -40,7 +40,7 @@ public class QuotePreview: DraftPreview {
                     quoteView.citeBar.backgroundColor = DcColors.grayDateColor
                 } else {
                     let contact = quoteMessage.fromContact
-                    quoteView.senderTitle.text = contact.displayName
+                    quoteView.senderTitle.text = quoteMessage.getSenderName(contact)
                     quoteView.senderTitle.textColor = contact.color
                     quoteView.citeBar.backgroundColor = contact.color
                 }

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

@@ -43,7 +43,7 @@ class BlockedContactsViewController: GroupMembersViewController, GroupMemberSele
     func selected(contactId: Int, selected: Bool) {
         if !selected {
             let dcContact = DcContact(id: contactId)
-            let title = dcContact.displayName.isEmpty ? dcContact.email : dcContact.displayName
+            let title = dcContact.displayName
             let alert = UIAlertController(title: title, message: String.localized("ask_unblock_contact"), preferredStyle: .safeActionSheet)
             alert.addAction(UIAlertAction(title: String.localized("menu_unblock_contact"), style: .default, handler: { _ in
                 let contact = DcContact(id: contactId)