Vary resume link text

Use 'Switch' if unholding that call would hold another
This commit is contained in:
David Baker 2020-12-18 19:35:41 +00:00
parent f63572f02b
commit 7cc00faeb3
3 changed files with 17 additions and 2 deletions

View file

@ -616,6 +616,18 @@ export default class CallHandler {
} }
} }
/**
* @returns true if we are currently in anu call where we haven't put the remote party on hold
*/
hasAnyUnheldCall() {
for (const call of this.calls.values()) {
if (call.state === CallState.Ended) continue;
if (!call.isRemoteOnHold()) return true;
}
return false;
}
private async startCallApp(roomId: string, type: string) { private async startCallApp(roomId: string, type: string) {
dis.dispatch({ dis.dispatch({
action: 'appsDrawer', action: 'appsDrawer',

View file

@ -19,7 +19,7 @@ import React, { createRef, CSSProperties, ReactNode } from 'react';
import dis from '../../../dispatcher/dispatcher'; import dis from '../../../dispatcher/dispatcher';
import CallHandler from '../../../CallHandler'; import CallHandler from '../../../CallHandler';
import {MatrixClientPeg} from '../../../MatrixClientPeg'; import {MatrixClientPeg} from '../../../MatrixClientPeg';
import { _t } from '../../../languageHandler'; import { _t, _td } from '../../../languageHandler';
import VideoFeed, { VideoFeedType } from "./VideoFeed"; import VideoFeed, { VideoFeedType } from "./VideoFeed";
import RoomAvatar from "../avatars/RoomAvatar"; import RoomAvatar from "../avatars/RoomAvatar";
import { CallState, CallType, MatrixCall } from 'matrix-js-sdk/src/webrtc/call'; import { CallState, CallType, MatrixCall } from 'matrix-js-sdk/src/webrtc/call';
@ -423,7 +423,9 @@ export default class CallView extends React.Component<IProps, IState> {
const isOnHold = this.state.isLocalOnHold || this.state.isRemoteOnHold; const isOnHold = this.state.isLocalOnHold || this.state.isRemoteOnHold;
let onHoldText = null; let onHoldText = null;
if (this.state.isRemoteOnHold) { if (this.state.isRemoteOnHold) {
onHoldText = _t("You held the call <a>Resume</a>", {}, { const holdString = CallHandler.sharedInstance().hasAnyUnheldCall() ?
_td("You held the call <a>Switch</a>") : _td("You held the call <a>Resume</a>");
onHoldText = _t(holdString, {}, {
a: sub => <AccessibleButton kind="link" onClick={this.onCallResumeClick}> a: sub => <AccessibleButton kind="link" onClick={this.onCallResumeClick}>
{sub} {sub}
</AccessibleButton>, </AccessibleButton>,

View file

@ -851,6 +851,7 @@
"sends fireworks": "sends fireworks", "sends fireworks": "sends fireworks",
"Sends the given message with snowfall": "Sends the given message with snowfall", "Sends the given message with snowfall": "Sends the given message with snowfall",
"sends snowfall": "sends snowfall", "sends snowfall": "sends snowfall",
"You held the call <a>Switch</a>": "You held the call <a>Switch</a>",
"You held the call <a>Resume</a>": "You held the call <a>Resume</a>", "You held the call <a>Resume</a>": "You held the call <a>Resume</a>",
"%(peerName)s held the call": "%(peerName)s held the call", "%(peerName)s held the call": "%(peerName)s held the call",
"Video Call": "Video Call", "Video Call": "Video Call",