Force preload to be false when setting an intent on an Element Call. (#30759)

* force preload

* lnt
This commit is contained in:
Will Hunt
2025-09-15 10:54:59 +01:00
committed by GitHub
parent 9ad239f87f
commit 2b5dc7bfd5

View File

@@ -595,19 +595,26 @@ export class ElementCall extends Call {
const isDM = !!DMRoomMap.shared().getUserIdForRoomId(room.roomId);
const oldestCallMember = client.matrixRTC.getRoomSession(room).getOldestMembership();
const hasCallStarted = !!oldestCallMember && oldestCallMember.sender !== client.getSafeUserId();
// XXX: @element-hq/element-call-embedded <= 0.15.0 sets the wrong parameter for
// preload by default so we override here. This can be removed when that package
// is released and upgraded.
if (isDM) {
params.append("sendNotificationType", "ring");
if (hasCallStarted) {
params.append("intent", ElementCallIntent.JoinExistingDM);
params.append("preload", "false");
} else {
params.append("intent", ElementCallIntent.StartCallDM);
params.append("preload", "false");
}
} else {
params.append("sendNotificationType", "notification");
if (hasCallStarted) {
params.append("intent", ElementCallIntent.JoinExisting);
params.append("preload", "false");
} else {
params.append("intent", ElementCallIntent.StartCall);
params.append("preload", "false");
}
}
}