Update group membership for a group call when it changes

This commit is contained in:
Evan Hahn 2020-12-09 17:21:34 -06:00 committed by GitHub
parent 3f58a9b762
commit db0ebc5779
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 25 additions and 7 deletions

View file

@ -553,6 +553,17 @@ export class CallingClass {
this.getGroupCall(conversationId)?.requestVideo(resolutions);
}
public groupMembersChanged(conversationId: string): void {
// This will be called for any conversation change, so it's likely that there won't
// be a group call available; that's fine.
const groupCall = this.getGroupCall(conversationId);
if (!groupCall) {
return;
}
groupCall.setGroupMembers(this.getGroupCallMembers(conversationId));
}
// See the comment in types/Calling.ts to explain why we have to do this conversion.
private convertRingRtcConnectionState(
connectionState: ConnectionState

View file

@ -2,6 +2,7 @@
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable camelcase */
import { ThunkAction } from 'redux-thunk';
import {
difference,
fromPairs,
@ -14,6 +15,8 @@ import {
without,
} from 'lodash';
import { StateType as RootStateType } from '../reducer';
import { calling } from '../../services/calling';
import { getOwn } from '../../util/getOwn';
import { trigger } from '../../shims/events';
import { NoopActionType } from './noop';
@ -454,13 +457,17 @@ function conversationAdded(
function conversationChanged(
id: string,
data: ConversationType
): ConversationChangedActionType {
return {
type: 'CONVERSATION_CHANGED',
payload: {
id,
data,
},
): ThunkAction<void, RootStateType, unknown, ConversationChangedActionType> {
return dispatch => {
calling.groupMembersChanged(id);
dispatch({
type: 'CONVERSATION_CHANGED',
payload: {
id,
data,
},
});
};
}
function conversationRemoved(id: string): ConversationRemovedActionType {