Simply use call states

Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
pull/21833/head
Šimon Brandner 2021-06-01 10:11:48 +02:00
parent 6b72c13e34
commit f96e25d833
No known key found for this signature in database
GPG Key ID: 9760693FDD98A790
2 changed files with 6 additions and 17 deletions

View File

@ -21,16 +21,6 @@ import { CallEvent, CallState, MatrixCall } from "matrix-js-sdk/src/webrtc/call"
import CallHandler from '../../CallHandler'; import CallHandler from '../../CallHandler';
import { EventEmitter } from 'events'; import { EventEmitter } from 'events';
export enum CallEventGrouperState {
Incoming = "incoming",
Connecting = "connecting",
Connected = "connected",
Ringing = "ringing",
Missed = "missed",
Rejected = "rejected",
Ended = "ended",
}
export enum CallEventGrouperEvent { export enum CallEventGrouperEvent {
StateChanged = "state_changed", StateChanged = "state_changed",
} }
@ -38,7 +28,7 @@ export enum CallEventGrouperEvent {
export default class CallEventGrouper extends EventEmitter { export default class CallEventGrouper extends EventEmitter {
invite: MatrixEvent; invite: MatrixEvent;
call: MatrixCall; call: MatrixCall;
state: CallEventGrouperState; state: CallState;
public answerCall = () => { public answerCall = () => {
this.call?.answer(); this.call?.answer();
@ -76,9 +66,7 @@ export default class CallEventGrouper extends EventEmitter {
} }
private setCallState = () => { private setCallState = () => {
if (this.call?.state === CallState.Ringing) { this.state = this.call.state
this.state = CallEventGrouperState.Incoming;
}
this.emit(CallEventGrouperEvent.StateChanged, this.state); this.emit(CallEventGrouperEvent.StateChanged, this.state);
} }

View File

@ -19,8 +19,9 @@ import React from 'react';
import { MatrixEvent } from "matrix-js-sdk/src/models/event"; import { MatrixEvent } from "matrix-js-sdk/src/models/event";
import { _t } from '../../../languageHandler'; import { _t } from '../../../languageHandler';
import MemberAvatar from '../avatars/MemberAvatar'; import MemberAvatar from '../avatars/MemberAvatar';
import CallEventGrouper, { CallEventGrouperEvent, CallEventGrouperState } from '../../structures/CallEventGrouper'; import CallEventGrouper, { CallEventGrouperEvent } from '../../structures/CallEventGrouper';
import FormButton from '../elements/FormButton'; import FormButton from '../elements/FormButton';
import { CallState } from 'matrix-js-sdk/src/webrtc/call';
interface IProps { interface IProps {
mxEvent: MatrixEvent; mxEvent: MatrixEvent;
@ -28,7 +29,7 @@ interface IProps {
} }
interface IState { interface IState {
callState: CallEventGrouperState; callState: CallState;
} }
export default class CallEvent extends React.Component<IProps, IState> { export default class CallEvent extends React.Component<IProps, IState> {
@ -57,7 +58,7 @@ export default class CallEvent extends React.Component<IProps, IState> {
const sender = event.sender ? event.sender.name : event.getSender(); const sender = event.sender ? event.sender.name : event.getSender();
let content; let content;
if (this.state.callState === CallEventGrouperState.Incoming) { if (this.state.callState === CallState.Ringing) {
content = ( content = (
<div className="mx_CallEvent_content"> <div className="mx_CallEvent_content">
<FormButton <FormButton