Skip to content
This repository has been archived by the owner on Jun 7, 2020. It is now read-only.

[NEW] Audio message with message headers #2250

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 28 additions & 8 deletions Rocket.Chat.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -297,8 +297,8 @@
419D78831FBDB7E0005FC7A2 /* InfoRequestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */; };
419D78871FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */; };
419EB5AF215E3C0A00E591BF /* AudioMessageChatItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419EB5AE215E3C0A00E591BF /* AudioMessageChatItem.swift */; };
419EB5B1215E3C1400E591BF /* AudioMessageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419EB5B0215E3C1400E591BF /* AudioMessageCell.swift */; };
419EB5B3215E3C2200E591BF /* AudioMessageCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 419EB5B2215E3C2200E591BF /* AudioMessageCell.xib */; };
419EB5B1215E3C1400E591BF /* AudioCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419EB5B0215E3C1400E591BF /* AudioCell.swift */; };
419EB5B3215E3C2200E591BF /* AudioCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 419EB5B2215E3C2200E591BF /* AudioCell.xib */; };
419EB5B5215E52BC00E591BF /* VideoMessageChatItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419EB5B4215E52BC00E591BF /* VideoMessageChatItem.swift */; };
419EB5B7215E52EA00E591BF /* VideoMessageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 419EB5B6215E52EA00E591BF /* VideoMessageCell.swift */; };
419EB5B9215E52F300E591BF /* VideoMessageCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 419EB5B8215E52F300E591BF /* VideoMessageCell.xib */; };
Expand Down Expand Up @@ -732,6 +732,10 @@
9914183B2166AF63007D2AA2 /* MessageURLCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9914183A2166AF63007D2AA2 /* MessageURLCell.xib */; };
9914183D2166C626007D2AA2 /* MessageURLCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9914183C2166C626007D2AA2 /* MessageURLCell.swift */; };
9914183F2166CFA4007D2AA2 /* MessageURLChatItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9914183E2166CFA4007D2AA2 /* MessageURLChatItem.swift */; };
991AB00621718D0F0097AE4C /* MessageHeaderChatItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 991AB00521718D0F0097AE4C /* MessageHeaderChatItem.swift */; };
991AB00821744E640097AE4C /* BaseAudioMessageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 991AB00721744E640097AE4C /* BaseAudioMessageCell.swift */; };
991AB00A217458790097AE4C /* AudioMessageCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 991AB009217458790097AE4C /* AudioMessageCell.xib */; };
991AB00C217459690097AE4C /* AudioMessageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 991AB00B217459690097AE4C /* AudioMessageCell.swift */; };
9921BFAC2075AF5F00BB027A /* PublicSettingsRequestSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */; };
9928225F204DDC8C005D2067 /* EditProfileViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */; };
992B5AB6209A14B5009C8123 /* AudioFileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 992B5AB5209A14B5009C8123 /* AudioFileViewController.swift */; };
Expand All @@ -751,6 +755,7 @@
994DA2B020653FB600083FB8 /* WebBrowserManagerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */; };
994DA2B32065486D00083FB8 /* WebBrowserViewModelSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */; };
994EB8042050DD5D0011A9CE /* NewPasswordTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */; };
99549ED2216FE4F50037D6A5 /* MessageHeaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99549ED1216FE4F50037D6A5 /* MessageHeaderCell.swift */; };
995F710B20C7822A00B7535F /* AuthTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 995F710A20C7822A00B7535F /* AuthTableViewController.swift */; };
995F710E20C7837300B7535F /* AuthSeparatorTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 995F710D20C7837300B7535F /* AuthSeparatorTableViewCell.swift */; };
995F711020C7842100B7535F /* LoginServiceTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 995F710F20C7842100B7535F /* LoginServiceTableViewCell.swift */; };
Expand Down Expand Up @@ -1190,8 +1195,8 @@
419D78821FBDB7E0005FC7A2 /* InfoRequestHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestHandler.swift; sourceTree = "<group>"; };
419D78861FBDCF6C005FC7A2 /* InfoRequestHandlerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoRequestHandlerSpec.swift; sourceTree = "<group>"; };
419EB5AE215E3C0A00E591BF /* AudioMessageChatItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioMessageChatItem.swift; sourceTree = "<group>"; };
419EB5B0215E3C1400E591BF /* AudioMessageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioMessageCell.swift; sourceTree = "<group>"; };
419EB5B2215E3C2200E591BF /* AudioMessageCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AudioMessageCell.xib; sourceTree = "<group>"; };
419EB5B0215E3C1400E591BF /* AudioCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioCell.swift; sourceTree = "<group>"; };
419EB5B2215E3C2200E591BF /* AudioCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AudioCell.xib; sourceTree = "<group>"; };
419EB5B4215E52BC00E591BF /* VideoMessageChatItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoMessageChatItem.swift; sourceTree = "<group>"; };
419EB5B6215E52EA00E591BF /* VideoMessageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoMessageCell.swift; sourceTree = "<group>"; };
419EB5B8215E52F300E591BF /* VideoMessageCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = VideoMessageCell.xib; sourceTree = "<group>"; };
Expand Down Expand Up @@ -1619,6 +1624,10 @@
9914183A2166AF63007D2AA2 /* MessageURLCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MessageURLCell.xib; sourceTree = "<group>"; };
9914183C2166C626007D2AA2 /* MessageURLCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageURLCell.swift; sourceTree = "<group>"; };
9914183E2166CFA4007D2AA2 /* MessageURLChatItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageURLChatItem.swift; sourceTree = "<group>"; };
991AB00521718D0F0097AE4C /* MessageHeaderChatItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageHeaderChatItem.swift; sourceTree = "<group>"; };
991AB00721744E640097AE4C /* BaseAudioMessageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseAudioMessageCell.swift; sourceTree = "<group>"; };
991AB009217458790097AE4C /* AudioMessageCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AudioMessageCell.xib; sourceTree = "<group>"; };
991AB00B217459690097AE4C /* AudioMessageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioMessageCell.swift; sourceTree = "<group>"; };
9921BFAB2075AF5F00BB027A /* PublicSettingsRequestSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PublicSettingsRequestSpec.swift; sourceTree = "<group>"; };
9928225E204DDC8C005D2067 /* EditProfileViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditProfileViewModel.swift; sourceTree = "<group>"; };
992B5AB5209A14B5009C8123 /* AudioFileViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioFileViewController.swift; sourceTree = "<group>"; };
Expand All @@ -1638,6 +1647,7 @@
994DA2AF20653FB600083FB8 /* WebBrowserManagerSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserManagerSpec.swift; sourceTree = "<group>"; };
994DA2B22065486D00083FB8 /* WebBrowserViewModelSpec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebBrowserViewModelSpec.swift; sourceTree = "<group>"; };
994EB8032050DD5D0011A9CE /* NewPasswordTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewPasswordTableViewController.swift; sourceTree = "<group>"; };
99549ED1216FE4F50037D6A5 /* MessageHeaderCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageHeaderCell.swift; sourceTree = "<group>"; };
995F710A20C7822A00B7535F /* AuthTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthTableViewController.swift; sourceTree = "<group>"; };
995F710D20C7837300B7535F /* AuthSeparatorTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthSeparatorTableViewCell.swift; sourceTree = "<group>"; };
995F710F20C7842100B7535F /* LoginServiceTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginServiceTableViewCell.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -3705,14 +3715,18 @@
996735CB21581CEC0049BB63 /* Cells */ = {
isa = PBXGroup;
children = (
99549ED1216FE4F50037D6A5 /* MessageHeaderCell.swift */,
996735CC21581D150049BB63 /* BasicMessageCell.xib */,
996735CE21582E790049BB63 /* BasicMessageCell.swift */,
41BF4D71215B4CC800588B35 /* DateSeparatorCell.xib */,
41BF4D6F215B4CBD00588B35 /* DateSeparatorCell.swift */,
996E741C215DFBDB00842818 /* SequentialMessageCell.xib */,
996E741E215DFBF400842818 /* SequentialMessageCell.swift */,
419EB5B2215E3C2200E591BF /* AudioMessageCell.xib */,
419EB5B0215E3C1400E591BF /* AudioMessageCell.swift */,
991AB00721744E640097AE4C /* BaseAudioMessageCell.swift */,
991AB009217458790097AE4C /* AudioMessageCell.xib */,
991AB00B217459690097AE4C /* AudioMessageCell.swift */,
419EB5B2215E3C2200E591BF /* AudioCell.xib */,
419EB5B0215E3C1400E591BF /* AudioCell.swift */,
419EB5B8215E52F300E591BF /* VideoMessageCell.xib */,
419EB5B6215E52EA00E591BF /* VideoMessageCell.swift */,
419EB5BE215E6A0C00E591BF /* ReactionsCell.xib */,
Expand All @@ -3736,6 +3750,7 @@
996735D021585C600049BB63 /* ChatItems */ = {
isa = PBXGroup;
children = (
991AB00521718D0F0097AE4C /* MessageHeaderChatItem.swift */,
996735D121585CA70049BB63 /* BasicMessageChatItem.swift */,
41BF4D6D215B4CA100588B35 /* DateSeparatorChatItem.swift */,
996E7420215DFE0700842818 /* SequentialMessageChatItem.swift */,
Expand Down Expand Up @@ -4178,6 +4193,7 @@
806465EC1FED19B9001F27DB /* EmojiView.xib in Resources */,
41833F4E1DEF16B600E54655 /* Keys.plist in Resources */,
4124FCC91F7A6BF9008ED4C3 /* ChannelInfoActionCell.xib in Resources */,
991AB00A217458790097AE4C /* AudioMessageCell.xib in Resources */,
995F711C20C7978C00B7535F /* LoginServiceTableViewCell.xib in Resources */,
41DF76ED1D2C50720028DBF8 /* LaunchScreen.storyboard in Resources */,
140A95E1202F526C003FD564 /* Drawing.storyboard in Resources */,
Expand Down Expand Up @@ -4218,7 +4234,7 @@
14F8A287202E659000175FDC /* White-40@2x.png in Resources */,
41DCB8261DDC828200E1197F /* SubscriptionSearchMoreView.xib in Resources */,
14F8A288202E659000175FDC /* White-60@3x.png in Resources */,
419EB5B3215E3C2200E591BF /* AudioMessageCell.xib in Resources */,
419EB5B3215E3C2200E591BF /* AudioCell.xib in Resources */,
333032A02073940800A9514D /* RCEmojiKit.strings in Resources */,
41CD52D520BEFA3B00336892 /* New Room.storyboard in Resources */,
14F8A25E202E64B200175FDC /* BnW-76@2x.png in Resources */,
Expand Down Expand Up @@ -4577,6 +4593,7 @@
8062E33520A5ECF50044F407 /* APIRequestOption.swift in Sources */,
99B15BCD20FD4589005A528F /* DatabaseManagerAuthSettings.swift in Sources */,
807C7C0620751ED2006B600E /* SpotlightClient.swift in Sources */,
99549ED2216FE4F50037D6A5 /* MessageHeaderCell.swift in Sources */,
8039441120AF1334002F317A /* RoomKickRequest.swift in Sources */,
33383509207926DE006E1D0A /* TransparentToTouchesWindow.swift in Sources */,
4174CB1F1D2DB3350086DAC8 /* StringExtensions.swift in Sources */,
Expand Down Expand Up @@ -4683,12 +4700,13 @@
1496A87C20FA481B005C2E14 /* SaveNotificationRequest.swift in Sources */,
9938A08720D3141C00714AB4 /* CustomFieldTableViewCell.swift in Sources */,
41BAE3E71D71B26C00C2445A /* URLExtension.swift in Sources */,
991AB00821744E640097AE4C /* BaseAudioMessageCell.swift in Sources */,
4174CB0D1D2D994A0086DAC8 /* ConnectServerViewController.swift in Sources */,
4199A9891DABCC570035F820 /* Emojione.swift in Sources */,
4116CBE720B599E6007E7163 /* StatusViewModel.swift in Sources */,
418C74431FA3813F00499577 /* CompoundPickerViewDelegate.swift in Sources */,
80235D1B1F74070100A56CA5 /* RoomMembersRequest.swift in Sources */,
419EB5B1215E3C1400E591BF /* AudioMessageCell.swift in Sources */,
419EB5B1215E3C1400E591BF /* AudioCell.swift in Sources */,
1496A86F20FA4644005C2E14 /* NotificationsSwitchCell.swift in Sources */,
3330329A20738E1500A9514D /* SubscriptionManagerRooms.swift in Sources */,
1496A87020FA4644005C2E14 /* NotificationsPreferencesViewModel.swift in Sources */,
Expand Down Expand Up @@ -4763,6 +4781,7 @@
80AE2542203E61AF00DC2867 /* ChatMessageUnreadSeparator.swift in Sources */,
8013F86D1FD6B59A00EE1A4E /* APIClient.swift in Sources */,
41FC9E08209B3A6300FED485 /* NSAttributedStringExtensions.swift in Sources */,
991AB00621718D0F0097AE4C /* MessageHeaderChatItem.swift in Sources */,
414D99161EA0E7CB0020F7E9 /* #TableViewController.swift in Sources */,
41E9F025215D4C6B00B2C9E7 /* TestingCoordinator.swift in Sources */,
80D41DF6208FC57100034D1F /* PreferencesViewController.swift in Sources */,
Expand Down Expand Up @@ -4881,6 +4900,7 @@
807371A61F96A4FF00D53ADF /* LoginServiceModelHandler.swift in Sources */,
80D41DFD2092378400034D1F /* StarMessageRequest.swift in Sources */,
33D08E2A20BD5F24008D03EF /* TopTransparentViewController.swift in Sources */,
991AB00C217459690097AE4C /* AudioMessageCell.swift in Sources */,
993B7B40215F0B730067B962 /* FileMessageChatItem.swift in Sources */,
41C45AEF1DFAD42800D9969C /* ChatDataController.swift in Sources */,
801DF8151FD7172500302CC8 /* SubscriptionUserView.swift in Sources */,
Expand Down
28 changes: 22 additions & 6 deletions Rocket.Chat/Controllers/Chat/ChatSections/MessageSection.swift
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ final class MessageSection: ChatSection {
// on the inverse order. What we want to show in the top
// needs to go last.
var cells: [AnyChatItem] = []
var shouldAppendMessageHeader = true

if !object.message.reactions.isEmpty {
cells.append(ReactionsChatItem(
Expand All @@ -50,10 +51,25 @@ final class MessageSection: ChatSection {
for attachment in object.message.attachments {
switch attachment.type {
case .audio:
cells.append(AudioMessageChatItem(
identifier: attachment.identifier,
audioURL: attachment.fullAudioURL
).wrapped)
if object.message.text.isEmpty {
cells.append(AudioMessageChatItem(
identifier: attachment.identifier,
audioURL: attachment.fullAudioURL,
hasText: false,
user: user,
message: object.message
).wrapped)

shouldAppendMessageHeader = false
} else {
cells.append(AudioMessageChatItem(
identifier: attachment.identifier,
audioURL: attachment.fullAudioURL,
hasText: true,
user: nil,
message: nil
).wrapped)
}
case .video:
cells.append(VideoMessageChatItem(
identifier: attachment.identifier,
Expand Down Expand Up @@ -94,12 +110,12 @@ final class MessageSection: ChatSection {
).wrapped)
}

if !object.isSequential {
if !object.isSequential && shouldAppendMessageHeader {
cells.append(BasicMessageChatItem(
user: user,
message: object.message
).wrapped)
} else {
} else if object.isSequential {
cells.append(SequentialMessageChatItem(
user: user,
message: object.message
Expand Down
1 change: 1 addition & 0 deletions Rocket.Chat/Controllers/Chat/MessagesViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ final class MessagesViewController: RocketChatViewController {
collectionView.register(BasicMessageCell.nib, forCellWithReuseIdentifier: BasicMessageCell.identifier)
collectionView.register(SequentialMessageCell.nib, forCellWithReuseIdentifier: SequentialMessageCell.identifier)
collectionView.register(DateSeparatorCell.nib, forCellWithReuseIdentifier: DateSeparatorCell.identifier)
collectionView.register(AudioCell.nib, forCellWithReuseIdentifier: AudioCell.identifier)
collectionView.register(AudioMessageCell.nib, forCellWithReuseIdentifier: AudioMessageCell.identifier)
collectionView.register(VideoMessageCell.nib, forCellWithReuseIdentifier: VideoMessageCell.identifier)
collectionView.register(ReactionsCell.nib, forCellWithReuseIdentifier: ReactionsCell.identifier)
Expand Down
Loading