Skip to content

Commit 2dd08a2

Browse files
committed
feat: Show icons for shared object messages
Signed-off-by: Marcel Müller <[email protected]>
1 parent cd2c54d commit 2dd08a2

File tree

8 files changed

+20
-31
lines changed

8 files changed

+20
-31
lines changed

NextcloudTalk.xcodeproj/project.pbxproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -743,6 +743,7 @@
743743
AvatarManager.swift,
744744
ColorGenerator.swift,
745745
Extensions/DateExtension.swift,
746+
Extensions/NSAttributedStringExtension.swift,
746747
Extensions/UIFontExtension.swift,
747748
);
748749
target = 2CC0014E24A1F0E900A20167 /* NotificationServiceExtension */;
@@ -770,6 +771,7 @@
770771
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
771772
membershipExceptions = (
772773
Extensions/DateExtension.swift,
774+
Extensions/NSAttributedStringExtension.swift,
773775
Extensions/UIFontExtension.swift,
774776
);
775777
target = 1FF2FD5A2AB99CCB000C9905 /* BroadcastUploadExtension */;
@@ -785,6 +787,7 @@
785787
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
786788
membershipExceptions = (
787789
Extensions/DateExtension.swift,
790+
Extensions/NSAttributedStringExtension.swift,
788791
Extensions/UIFontExtension.swift,
789792
);
790793
target = 1FA93D9B2D70FCC200DF6CDF /* TalkIntents */;

NextcloudTalk/Chat/Chat cells/BaseChatTableViewCell.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ class BaseChatTableViewCell: UITableViewCell, AudioPlayerViewDelegate, Reactions
260260
if let parent = message.parent, message.willShowParentMessageInThread(thread) {
261261
self.showQuotePart()
262262

263-
self.quotedMessageView?.messageLabel.attributedText = parent.messageForLastMessagePreview()
263+
self.quotedMessageView?.messageLabel.attributedText = parent.messageForLastMessagePreview()?.prefix(characters: 80)
264264
self.quotedMessageView?.actorLabel.attributedText = parent.actor.attributedDisplayName
265265
self.quotedMessageView?.highlighted = parent.isMessage(from: account.userId)
266266
self.quotedMessageView?.avatarImageView.setActorAvatar(forMessage: parent, withAccount: account)

NextcloudTalk/Chat/Chat views/PinnedMessageView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ protocol PinnedMessageViewDelegate: AnyObject {
122122
}
123123

124124
self.title.attributedText = titleLabel
125-
self.subtitle.attributedText = message.parsedMarkdownForChat()
125+
self.subtitle.attributedText = message.messageForLastMessagePreview()
126126

127127
var pinnedInfoText: String
128128

NextcloudTalk/Chat/Chat views/PinnedMessageView.xib

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="24128" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
2+
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="24412" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
33
<device id="retina6_12" orientation="portrait" appearance="light"/>
44
<dependencies>
55
<deployment identifier="iOS"/>
6-
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="24063"/>
6+
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="24405"/>
77
<capability name="System colors in document resources" minToolsVersion="11.0"/>
88
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
99
</dependencies>
@@ -59,6 +59,7 @@
5959
</label>
6060
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" scrollEnabled="NO" editable="NO" textAlignment="natural" selectable="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fGe-4e-Cfj">
6161
<rect key="frame" x="0.0" y="28.333333333333336" width="546" height="112.66666666666666"/>
62+
<color key="tintColor" systemColor="labelColor"/>
6263
<string key="text">Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda.</string>
6364
<color key="textColor" systemColor="labelColor"/>
6465
<fontDescription key="fontDescription" style="UICTFontTextStyleBody"/>

NextcloudTalk/Chat/ChatViewController.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1688,6 +1688,11 @@ import SwiftUI
16881688

16891689
self.updateMessage(withMessageId: updateMessage.messageId, updatedMessage: updateMessage)
16901690

1691+
// Update pinned message if needed
1692+
if let pinnedMessageView = self.pinnedMessageView, pinnedMessageView.message?.messageId == updateMessage.messageId {
1693+
pinnedMessageView.setupPinnedMessage(withMessage: updateMessage, inRoom: self.room)
1694+
}
1695+
16911696
if message.systemMessage == "message_pinned" {
16921697
// When a message was pinned, we can directly set the message id and update the view
16931698
self.room.lastPinnedId = updateMessage.messageId

NextcloudTalk/Chat/NCChatMessage.swift

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ import SwiftyAttributes
345345
}
346346

347347
public func lastMessagePreview(forOneToOneRoom: Bool = false) -> NSMutableAttributedString? {
348-
guard let message = messageForLastMessagePreview()
348+
guard let message = messageForLastMessagePreview()?.prefix(characters: 80)
349349
else {return nil}
350350

351351
let lastMessageAttributedString = NSMutableAttributedString()
@@ -391,8 +391,7 @@ import SwiftyAttributes
391391
}
392392

393393
public func messageForLastMessagePreview() -> NSAttributedString? {
394-
let message = String(self.parsedMarkdown().string.prefix(80))
395-
if message.isEmpty { return nil}
394+
guard let message = self.parsedMarkdown(), message.length > 0 else { return nil }
396395

397396
let messageAttributedString = NSMutableAttributedString()
398397
// Icon
@@ -402,7 +401,7 @@ import SwiftyAttributes
402401
messageAttributedString.append(attachmentAttributedString)
403402
}
404403
// Message
405-
messageAttributedString.append(NSAttributedString(string: message))
404+
messageAttributedString.append(message)
406405

407406
return messageAttributedString
408407
}

NextcloudTalk/User Interface/Extensions/NSAttributedStringExtension.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,4 +67,8 @@ extension NSAttributedString {
6767

6868
self.init(attributedString: mutableAttributedString)
6969
}
70+
71+
public func prefix(characters: Int) -> NSAttributedString {
72+
return self.attributedSubstring(from: .init(location: 0, length: min(characters, self.length)))
73+
}
7074
}

NextcloudTalk/User Interface/Extensions/NSMutableAttributedString+Extensions.swift

Lines changed: 0 additions & 23 deletions
This file was deleted.

0 commit comments

Comments
 (0)