apply mute from mobile controls

This commit is contained in:
Timo
2025-05-14 20:09:39 +02:00
parent 6b39d0a5fd
commit 86beaeb20f
2 changed files with 9 additions and 3 deletions

View File

@@ -24,6 +24,7 @@ import {
type MatrixRTCSession,
} from "matrix-js-sdk/lib/matrixrtc";
import { useNavigate } from "react-router-dom";
import { useObservableEagerState } from "observable-hooks";
import type { IWidgetApiRequest } from "matrix-widget-api";
import {
@@ -68,6 +69,7 @@ import {
useSetting,
} from "../settings/settings";
import { useTypedEventEmitter } from "../useEvents";
import { setOutputEnabled$ } from "../controls.ts";
declare global {
interface Window {
@@ -104,8 +106,9 @@ export const GroupCallView: FC<Props> = ({
const [externalError, setExternalError] = useState<ElementCallError | null>(
null,
);
const [muteAllAudio] = useSetting(muteAllAudioSetting);
const muteAllAudioControlled = useObservableEagerState(setOutputEnabled$);
const [muteAllAudioFromSetting] = useSetting(muteAllAudioSetting);
const muteAllAudio = muteAllAudioControlled || muteAllAudioFromSetting;
const memberships = useMatrixRTCSessionMemberships(rtcSession);
const leaveSoundContext = useLatest(
useAudioContext({

View File

@@ -104,6 +104,7 @@ import { ReactionsReader } from "../reactions/ReactionsReader";
import { ConnectionLostError } from "../utils/errors.ts";
import { useTypedEventEmitter } from "../useEvents.ts";
import { MatrixAudioRenderer } from "../livekit/MatrixAudioRenderer.tsx";
import { setOutputEnabled$ } from "../controls.ts";
const canScreenshare = "getDisplayMedia" in (navigator.mediaDevices ?? {});
@@ -222,7 +223,9 @@ export const InCallView: FC<InCallViewProps> = ({
room: livekitRoom,
});
const [muteAllAudio] = useSetting(muteAllAudioSetting);
const muteAllAudioControlled = useObservableEagerState(setOutputEnabled$);
const [muteAllAudioFromSetting] = useSetting(muteAllAudioSetting);
const muteAllAudio = muteAllAudioControlled || muteAllAudioFromSetting;
// This seems like it might be enough logic to use move it into the call view model?
const [didFallbackToRoomKey, setDidFallbackToRoomKey] = useState(false);