Skip to content

Commit 86beaeb

Browse files
committed
apply mute from mobile controls
1 parent 6b39d0a commit 86beaeb

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

src/room/GroupCallView.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import {
2424
type MatrixRTCSession,
2525
} from "matrix-js-sdk/lib/matrixrtc";
2626
import { useNavigate } from "react-router-dom";
27+
import { useObservableEagerState } from "observable-hooks";
2728

2829
import type { IWidgetApiRequest } from "matrix-widget-api";
2930
import {
@@ -68,6 +69,7 @@ import {
6869
useSetting,
6970
} from "../settings/settings";
7071
import { useTypedEventEmitter } from "../useEvents";
72+
import { setOutputEnabled$ } from "../controls.ts";
7173

7274
declare global {
7375
interface Window {
@@ -104,8 +106,9 @@ export const GroupCallView: FC<Props> = ({
104106
const [externalError, setExternalError] = useState<ElementCallError | null>(
105107
null,
106108
);
107-
108-
const [muteAllAudio] = useSetting(muteAllAudioSetting);
109+
const muteAllAudioControlled = useObservableEagerState(setOutputEnabled$);
110+
const [muteAllAudioFromSetting] = useSetting(muteAllAudioSetting);
111+
const muteAllAudio = muteAllAudioControlled || muteAllAudioFromSetting;
109112
const memberships = useMatrixRTCSessionMemberships(rtcSession);
110113
const leaveSoundContext = useLatest(
111114
useAudioContext({

src/room/InCallView.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ import { ReactionsReader } from "../reactions/ReactionsReader";
104104
import { ConnectionLostError } from "../utils/errors.ts";
105105
import { useTypedEventEmitter } from "../useEvents.ts";
106106
import { MatrixAudioRenderer } from "../livekit/MatrixAudioRenderer.tsx";
107+
import { setOutputEnabled$ } from "../controls.ts";
107108

108109
const canScreenshare = "getDisplayMedia" in (navigator.mediaDevices ?? {});
109110

@@ -222,7 +223,9 @@ export const InCallView: FC<InCallViewProps> = ({
222223
room: livekitRoom,
223224
});
224225

225-
const [muteAllAudio] = useSetting(muteAllAudioSetting);
226+
const muteAllAudioControlled = useObservableEagerState(setOutputEnabled$);
227+
const [muteAllAudioFromSetting] = useSetting(muteAllAudioSetting);
228+
const muteAllAudio = muteAllAudioControlled || muteAllAudioFromSetting;
226229

227230
// This seems like it might be enough logic to use move it into the call view model?
228231
const [didFallbackToRoomKey, setDidFallbackToRoomKey] = useState(false);

0 commit comments

Comments
 (0)