Fix group call outgoing ring

This commit is contained in:
ayumi-signal 2024-02-29 18:04:37 -08:00 committed by GitHub
parent 99ee4a0d73
commit b40d052128
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 31 additions and 8 deletions

View file

@ -2137,14 +2137,23 @@ export function reducer(
remoteParticipants, remoteParticipants,
...ringState, ...ringState,
}; };
newAdhocCalls =
callMode === CallMode.Adhoc if (callMode === CallMode.Group) {
? { outgoingRing =
...adhocCalls, !ringState.ringId &&
[conversationId]: call, !call.peekInfo?.acis.length &&
} !call.remoteParticipants.length &&
: adhocCalls; !action.payload.isConversationTooBigToRing;
outgoingRing = false; newAdhocCalls = adhocCalls;
} else if (callMode === CallMode.Adhoc) {
outgoingRing = false;
newAdhocCalls = {
...adhocCalls,
[conversationId]: call,
};
} else {
throw missingCaseError(action.payload);
}
break; break;
} }
default: default:

View file

@ -2102,6 +2102,20 @@ describe('calling duck', () => {
assert.strictEqual(call.ringId, BigInt(987)); assert.strictEqual(call.ringId, BigInt(987));
assert.strictEqual(call.ringerAci, ringerAci); assert.strictEqual(call.ringerAci, ringerAci);
}); });
it('enables outgoingRing for a group call when there is no existing call', async () => {
const result = await getState(getEmptyState(), {
callMode: CallMode.Group,
hasLocalAudio: true,
hasLocalVideo: true,
connectionState: GroupCallConnectionState.Connected,
joinState: GroupCallJoinState.NotJoined,
peekInfo: undefined,
remoteParticipants: [],
});
assert.isTrue(result.activeCallState?.outgoingRing);
});
}); });
}); });