Fix group call outgoing ring

Co-authored-by: ayumi-signal <143036029+ayumi-signal@users.noreply.github.com>
This commit is contained in:
automated-signal 2024-03-01 12:24:53 -06:00 committed by GitHub
parent 281fd6054c
commit 6b0c63fccc
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,
...ringState,
};
newAdhocCalls =
callMode === CallMode.Adhoc
? {
...adhocCalls,
[conversationId]: call,
}
: adhocCalls;
outgoingRing = false;
if (callMode === CallMode.Group) {
outgoingRing =
!ringState.ringId &&
!call.peekInfo?.acis.length &&
!call.remoteParticipants.length &&
!action.payload.isConversationTooBigToRing;
newAdhocCalls = adhocCalls;
} else if (callMode === CallMode.Adhoc) {
outgoingRing = false;
newAdhocCalls = {
...adhocCalls,
[conversationId]: call,
};
} else {
throw missingCaseError(action.payload);
}
break;
}
default:

View file

@ -2102,6 +2102,20 @@ describe('calling duck', () => {
assert.strictEqual(call.ringId, BigInt(987));
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);
});
});
});