Skip to content

Commit

Permalink
element-hq/element-ios/issues/5114 - More stable/unstable key support…
Browse files Browse the repository at this point in the history
…: audio, text, timestamp and file.
  • Loading branch information
stefanceriu committed Jan 18, 2022
1 parent acc6ced commit 7b70a67
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 24 deletions.
14 changes: 7 additions & 7 deletions MatrixSDK/Data/MXRoom.m
Original file line number Diff line number Diff line change
Expand Up @@ -1457,7 +1457,7 @@ - (MXHTTPOperation*)sendVoiceMessage:(NSURL*)fileLocalURL
return [self _sendFile:fileLocalURL
msgType:kMXMessageTypeAudio
additionalTypes:@{kMXMessageContentKeyVoiceMessageMSC3245 : @{},
kMXMessageContentKeyExtensibleAudio: extensibleAudioContent}
kMXMessageContentKeyExtensibleAudioMSC1767: extensibleAudioContent}
mimeType:(mimeType ?: @"audio/ogg")
localEcho:localEcho
success:success
Expand Down Expand Up @@ -1534,8 +1534,8 @@ - (MXHTTPOperation*)_sendFile:(NSURL*)fileLocalURL
@"mimetype": mimeType,
@"size": @(fileData.length)
},
kMXMessageContentKeyExtensibleText: filename,
kMXMessageContentKeyExtensibleFile: @{
kMXMessageContentKeyExtensibleTextMSC1767: filename,
kMXMessageContentKeyExtensibleFileMSC1767: @{
kMXMessageContentKeyExtensibleFileSize: @(fileData.length),
kMXMessageContentKeyExtensibleFileName: filename,
kMXMessageContentKeyExtensibleFileURL: fakeMediaURI,
Expand Down Expand Up @@ -1645,7 +1645,7 @@ - (MXHTTPOperation*)_sendFile:(NSURL*)fileLocalURL
}

msgContent[@"url"] = nil;
msgContent[kMXMessageContentKeyExtensibleFile][kMXMessageContentKeyExtensibleFileURL] = nil;
msgContent[kMXMessageContentKeyExtensibleFileMSC1767][kMXMessageContentKeyExtensibleFileURL] = nil;
msgContent[@"file"] = result.JSONDictionary;

MXHTTPOperation *operation2 = [self sendMessageWithContent:msgContent localEcho:&event success:onSuccess failure:onFailure];
Expand Down Expand Up @@ -1676,7 +1676,7 @@ - (MXHTTPOperation*)_sendFile:(NSURL*)fileLocalURL

// Update the message content with the mxc:// of the media on the homeserver
msgContent[@"url"] = url;
msgContent[kMXMessageContentKeyExtensibleFile][kMXMessageContentKeyExtensibleFileURL] = url;
msgContent[kMXMessageContentKeyExtensibleFileMSC1767][kMXMessageContentKeyExtensibleFileURL] = url;

// Make the final request that posts the image event
MXHTTPOperation *operation2 = [self sendMessageWithContent:msgContent localEcho:&event success:onSuccess failure:onFailure];
Expand Down Expand Up @@ -2428,10 +2428,10 @@ - (MXHTTPOperation *)sendLocationWithLatitude:(double)latitude

NSString *fallbackText = [NSString stringWithFormat:@"%@ was at %@ as of %@", self.mxSession.myUser.displayname, locationContent.geoURI, NSDate.date];
content[kMXMessageBodyKey] = fallbackText;
content[kMXMessageContentKeyExtensibleText] = fallbackText;
content[kMXMessageContentKeyExtensibleTextMSC1767] = fallbackText;

NSInteger timestamp = NSDate.date.timeIntervalSince1970 * 1000; // milliseconds since UNIX epoch
content[kMXMessageContentKeyExtensibleTimestamp] = @(timestamp);
content[kMXMessageContentKeyExtensibleTimestampMSC3488] = @(timestamp);

return [self sendMessageWithContent:content
localEcho:localEcho
Expand Down
28 changes: 22 additions & 6 deletions MatrixSDK/JSONModels/Event/Content/MXEventContentPollStart.m
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,16 @@ + (instancetype)modelFromJSON:(NSDictionary *)JSONDictionary
return nil;
}

NSString *question, *kind;
MXJSONModelSetString(question, content[kMXMessageContentKeyExtensiblePollQuestion][kMXMessageContentKeyExtensibleText]);
NSString *question = content[kMXMessageContentKeyExtensiblePollQuestion][kMXMessageContentKeyExtensibleTextMSC1767];
if (question == nil) {
question = content[kMXMessageContentKeyExtensiblePollQuestion][kMXMessageContentKeyExtensibleText];
}

if (question.length == 0) {
return nil;
}

NSString *kind;
MXJSONModelSetString(kind, content[kMXMessageContentKeyExtensiblePollKind]);

NSNumber *maxSelections;
Expand All @@ -64,7 +72,7 @@ - (NSDictionary *)JSONDictionary
{
NSMutableDictionary *content = [NSMutableDictionary dictionary];

content[kMXMessageContentKeyExtensiblePollQuestion] = @{kMXMessageContentKeyExtensibleText: self.question};
content[kMXMessageContentKeyExtensiblePollQuestion] = @{kMXMessageContentKeyExtensibleTextMSC1767: self.question};
content[kMXMessageContentKeyExtensiblePollKind] = self.kind;
content[kMXMessageContentKeyExtensiblePollMaxSelections] = self.maxSelections;

Expand Down Expand Up @@ -97,9 +105,17 @@ - (instancetype)initWithUUID:(NSString *)uuid text:(NSString *)text

+ (instancetype)modelFromJSON:(NSDictionary *)JSONDictionary
{
NSString *uuid, *text;
NSString *uuid;
MXJSONModelSetString(uuid, JSONDictionary[kMXMessageContentKeyExtensiblePollAnswerId]);
MXJSONModelSetString(text, JSONDictionary[kMXMessageContentKeyExtensibleText]);

NSString *text = JSONDictionary[kMXMessageContentKeyExtensibleTextMSC1767];
if (text == nil) {
text = JSONDictionary[kMXMessageContentKeyExtensibleText];
}

if (text.length == 0) {
return nil;
}

return [[MXEventContentPollStartAnswerOption alloc] initWithUUID:uuid text:text];
}
Expand All @@ -109,7 +125,7 @@ - (NSDictionary *)JSONDictionary
NSMutableDictionary *JSONDictionary = [NSMutableDictionary dictionary];

JSONDictionary[kMXMessageContentKeyExtensiblePollAnswerId] = self.uuid;
JSONDictionary[kMXMessageContentKeyExtensibleText] = self.text;
JSONDictionary[kMXMessageContentKeyExtensibleTextMSC1767] = self.text;

return JSONDictionary;
}
Expand Down
5 changes: 5 additions & 0 deletions MatrixSDK/JSONModels/MXEvent.h
Original file line number Diff line number Diff line change
Expand Up @@ -223,15 +223,20 @@ FOUNDATION_EXPORT NSString *const kMXEventLocalEventIdPrefix;
FOUNDATION_EXPORT NSString *const kMXMessageContentKeyVoiceMessage;
FOUNDATION_EXPORT NSString *const kMXMessageContentKeyVoiceMessageMSC2516;
FOUNDATION_EXPORT NSString *const kMXMessageContentKeyVoiceMessageMSC3245;

FOUNDATION_EXPORT NSString *const kMXMessageContentKeyExtensibleAudio;
FOUNDATION_EXPORT NSString *const kMXMessageContentKeyExtensibleAudioMSC1767;
FOUNDATION_EXPORT NSString *const kMXMessageContentKeyExtensibleAudioDuration;
FOUNDATION_EXPORT NSString *const kMXMessageContentKeyExtensibleAudioWaveform;

FOUNDATION_EXPORT NSString *const kMXMessageContentKeyExtensibleText;
FOUNDATION_EXPORT NSString *const kMXMessageContentKeyExtensibleTextMSC1767;

FOUNDATION_EXPORT NSString *const kMXMessageContentKeyExtensibleTimestamp;
FOUNDATION_EXPORT NSString *const kMXMessageContentKeyExtensibleTimestampMSC3488;

FOUNDATION_EXPORT NSString *const kMXMessageContentKeyExtensibleFile;
FOUNDATION_EXPORT NSString *const kMXMessageContentKeyExtensibleFileMSC1767;
FOUNDATION_EXPORT NSString *const kMXMessageContentKeyExtensibleFileSize;
FOUNDATION_EXPORT NSString *const kMXMessageContentKeyExtensibleFileName;
FOUNDATION_EXPORT NSString *const kMXMessageContentKeyExtensibleFileURL;
Expand Down
26 changes: 15 additions & 11 deletions MatrixSDK/JSONModels/MXEvent.m
Original file line number Diff line number Diff line change
Expand Up @@ -128,23 +128,27 @@

NSString *const kMXEventIdentifierKey = @"kMXEventIdentifierKey";

NSString *const kMXMessageContentKeyVoiceMessageMSC2516 = @"org.matrix.msc2516.voice";
NSString *const kMXMessageContentKeyVoiceMessageMSC3245 = @"org.matrix.msc3245.voice";
NSString *const kMXMessageContentKeyVoiceMessage = @"m.voice";
NSString *const kMXMessageContentKeyVoiceMessage = @"m.voice";
NSString *const kMXMessageContentKeyVoiceMessageMSC2516 = @"org.matrix.msc2516.voice";
NSString *const kMXMessageContentKeyVoiceMessageMSC3245 = @"org.matrix.msc3245.voice";

NSString *const kMXMessageContentKeyExtensibleAudio = @"org.matrix.msc1767.audio";
NSString *const kMXMessageContentKeyExtensibleAudio = @"m.audio";
NSString *const kMXMessageContentKeyExtensibleAudioMSC1767 = @"org.matrix.msc1767.audio";
NSString *const kMXMessageContentKeyExtensibleAudioDuration = @"duration";
NSString *const kMXMessageContentKeyExtensibleAudioWaveform = @"waveform";

NSString *const kMXMessageContentKeyExtensibleText = @"org.matrix.msc1767.text";
NSString *const kMXMessageContentKeyExtensibleText = @"m.text";
NSString *const kMXMessageContentKeyExtensibleTextMSC1767 = @"org.matrix.msc1767.text";

NSString *const kMXMessageContentKeyExtensibleTimestamp = @"org.matrix.msc3488.ts";
NSString *const kMXMessageContentKeyExtensibleTimestamp = @"m.ts";
NSString *const kMXMessageContentKeyExtensibleTimestampMSC3488 = @"org.matrix.msc3488.ts";

NSString *const kMXMessageContentKeyExtensibleFile = @"org.matrix.msc1767.file";
NSString *const kMXMessageContentKeyExtensibleFileSize = @"size";
NSString *const kMXMessageContentKeyExtensibleFileName = @"name";
NSString *const kMXMessageContentKeyExtensibleFileURL = @"url";
NSString *const kMXMessageContentKeyExtensibleFileMimeType = @"mimetype";
NSString *const kMXMessageContentKeyExtensibleFile = @"m.file";
NSString *const kMXMessageContentKeyExtensibleFileMSC1767 = @"org.matrix.msc1767.file";
NSString *const kMXMessageContentKeyExtensibleFileSize = @"size";
NSString *const kMXMessageContentKeyExtensibleFileName = @"name";
NSString *const kMXMessageContentKeyExtensibleFileURL = @"url";
NSString *const kMXMessageContentKeyExtensibleFileMimeType = @"mimetype";

// Polls

Expand Down

0 comments on commit 7b70a67

Please sign in to comment.