1
0
mirror of https://github.com/matrix-org/matrix-js-sdk.git synced 2026-01-03 23:22:30 +03:00

Merge branch 'develop' into voip

This commit is contained in:
Kegan Dougal
2015-07-14 12:04:00 +01:00
2 changed files with 29 additions and 18 deletions

View File

@@ -21,7 +21,7 @@ module.exports.PREFIX_V1 = "/_matrix/client/api/v1";
* A constant representing the URI path for version 2 alpha of the Client-Server
* HTTP API.
*/
module.exports.PREFIX_V2_ALPHA_PREFIX = "/_matrix/client/v2_alpha";
module.exports.PREFIX_V2_ALPHA = "/_matrix/client/v2_alpha";
/**
* Construct a MatrixHttpApi.

View File

@@ -85,25 +85,9 @@ utils.inherits(Room, EventEmitter);
Room.prototype.addEventsToTimeline = function(events, toStartOfTimeline) {
var stateContext = toStartOfTimeline ? this.oldState : this.currentState;
for (var i = 0; i < events.length; i++) {
// set sender and target properties
events[i].sender = stateContext.getSentinelMember(
events[i].getSender()
);
if (events[i].getType() === "m.room.member") {
events[i].target = stateContext.getSentinelMember(
events[i].getStateKey()
);
}
setEventMetadata(events[i], stateContext, toStartOfTimeline);
// modify state
if (events[i].isState()) {
// room state has no concept of 'old' or 'current', but we want the
// room state to regress back to previous values if toStartOfTimeline
// is set, which means inspecting prev_content if it exists. This
// is done by toggling the forwardLooking flag.
if (toStartOfTimeline) {
events[i].forwardLooking = false;
}
stateContext.setStateEvents([events[i]]);
}
// TODO: pass through filter to see if this should be added to the timeline.
@@ -146,6 +130,12 @@ Room.prototype.addEvents = function(events, duplicateStrategy) {
for (var j = 0; j < this.timeline.length; j++) {
if (this.timeline[j].getId() === events[i].getId()) {
if (duplicateStrategy === "replace") {
// still need to set the right metadata on this event
setEventMetadata(
events[i],
this.currentState,
false
);
this.timeline[j] = events[i];
// skip the insert so we don't add this event twice.
// Don't break in case we replace multiple events.
@@ -187,6 +177,27 @@ Room.prototype.recalculate = function(userId) {
}
};
function setEventMetadata(event, stateContext, toStartOfTimeline) {
// set sender and target properties
event.sender = stateContext.getSentinelMember(
event.getSender()
);
if (event.getType() === "m.room.member") {
event.target = stateContext.getSentinelMember(
event.getStateKey()
);
}
if (event.isState()) {
// room state has no concept of 'old' or 'current', but we want the
// room state to regress back to previous values if toStartOfTimeline
// is set, which means inspecting prev_content if it exists. This
// is done by toggling the forwardLooking flag.
if (toStartOfTimeline) {
event.forwardLooking = false;
}
}
}
/**
* This is an internal method. Calculates the name of the room from the current
* room state.