From dda61b37b24cfb8688de9e99e5c4e19d973bedf0 Mon Sep 17 00:00:00 2001 From: Alvaro <110414366+alvaro-signal@users.noreply.github.com> Date: Fri, 16 Dec 2022 12:33:50 -0700 Subject: [PATCH] Don't ring incoming call for a large group --- ts/components/CallManager.tsx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/ts/components/CallManager.tsx b/ts/components/CallManager.tsx index 94227fc6bc..6c750bedf1 100644 --- a/ts/components/CallManager.tsx +++ b/ts/components/CallManager.tsx @@ -41,6 +41,7 @@ import type { } from '../state/ducks/calling'; import type { LocalizerType, ThemeType } from '../types/Util'; import { missingCaseError } from '../util/missingCaseError'; +import { isConversationTooBigToRing } from '../conversations/isConversationTooBigToRing'; const GROUP_CALL_RING_DURATION = 60 * 1000; @@ -197,7 +198,7 @@ function ActiveCallManager({ let groupMembers: | undefined | Array>; - let isConversationTooBigToRing = false; + let isConvoTooBigToRing = false; switch (activeCall.callMode) { case CallMode.Direct: { @@ -223,7 +224,7 @@ function ActiveCallManager({ case CallMode.Group: { showCallLobby = activeCall.joinState !== GroupCallJoinState.Joined; isCallFull = activeCall.deviceCount >= activeCall.maxDevices; - isConversationTooBigToRing = activeCall.isConversationTooBigToRing; + isConvoTooBigToRing = activeCall.isConversationTooBigToRing; ({ groupMembers } = activeCall); break; } @@ -244,7 +245,7 @@ function ActiveCallManager({ isGroupCall={activeCall.callMode === CallMode.Group} isGroupCallOutboundRingEnabled={isGroupCallOutboundRingEnabled} isCallFull={isCallFull} - isConversationTooBigToRing={isConversationTooBigToRing} + isConversationTooBigToRing={isConvoTooBigToRing} me={me} onCallCanceled={cancelActiveCall} onJoinCall={joinActiveCall} @@ -456,6 +457,11 @@ function getShouldRing({ incomingCall, }: Readonly>): boolean { if (incomingCall) { + // don't ring a large group + if (isConversationTooBigToRing(incomingCall.conversation)) { + return false; + } + return !activeCall; }