59 lines
2.9 KiB
TypeScript
59 lines
2.9 KiB
TypeScript
// Metro module 16135 (f16136).
|
|
import { NativeModules } from "react-native";
|
|
import EmbeddedActivitiesStore from "../../activities/EmbeddedActivitiesStore";
|
|
import StageChannelRoleStore from "../../stage_channels/StageChannelRoleStore";
|
|
import ApplicationStreamingStore from "../../../stores/ApplicationStreamingStore";
|
|
import AuthenticationStore from "../../../stores/AuthenticationStore";
|
|
import ChannelStore from "../../../stores/ChannelStore";
|
|
import MediaEngineStore from "../../../stores/MediaEngineStore";
|
|
import SelectedChannelStore from "../../../stores/SelectedChannelStore";
|
|
import VoiceStateStore from "../../../stores/VoiceStateStore";
|
|
import AppStateStore from "../../../stores/native/AppStateStore";
|
|
import { AppStates } from "../../../Constants";
|
|
import { isAndroid } from "../../../utils/PlatformUtils";
|
|
import * as _VoicePermissionManager from "../VoicePermissionManager";
|
|
import AutomaticLifecycleManager from "../../../lib/AutomaticLifecycleManager";
|
|
let c11556_12, VOICE;
|
|
const handleAVAudioSessionMode = function handleAVAudioSessionMode() {
|
|
let DEFAULT;
|
|
L14: {
|
|
const channel = ChannelStore.getChannel(SelectedChannelStore.getVoiceChannelId());
|
|
if (channel == null) {
|
|
DEFAULT = c11556_12.AVAudioSessionMode.DEFAULT;
|
|
} else {
|
|
const r15 = ApplicationStreamingStore.getAllActiveStreams().length > 0 || VoiceStateStore.hasVideo(channel.id) || MediaEngineStore.isVideoEnabled();
|
|
const r23 = EmbeddedActivitiesStore.getCurrentEmbeddedActivity() != null;
|
|
if (!r15 && !r23) {
|
|
const shouldImmediatelyRequestVoicePermissions = _VoicePermissionManager.shouldImmediatelyRequestVoicePermissions(AuthenticationStore.getId(), channel.id);
|
|
const AVAudioSessionMode = c11556_12.AVAudioSessionMode;
|
|
if (shouldImmediatelyRequestVoicePermissions) {
|
|
DEFAULT = AVAudioSessionMode.VOICE;
|
|
break L14;
|
|
}
|
|
DEFAULT = AVAudioSessionMode.LISTEN;
|
|
break L14;
|
|
}
|
|
DEFAULT = c11556_12.AVAudioSessionMode.VIDEO;
|
|
}
|
|
}
|
|
if (VOICE !== DEFAULT && AppStateStore.getState() === AppStates.ACTIVE) {
|
|
VOICE = DEFAULT;
|
|
c11556_12.setAVAudioSessionMode(DEFAULT);
|
|
}
|
|
};
|
|
c11556_12 = isAndroid() ? {
|
|
setAVAudioSessionMode: () => {},
|
|
AVAudioSessionMode: {
|
|
VOICE: "AVAudioSessionModeVoiceChat",
|
|
VIDEO: "AVAudioSessionModeVideoChat",
|
|
LISTEN: "AVAudioSessionModeSpokenAudio",
|
|
DEFAULT: "AVAudioSessionModeDefault"
|
|
}
|
|
} : NativeModules.VoiceEngine;
|
|
VOICE = c11556_12.AVAudioSessionMode.VOICE;
|
|
class AudioSessionModeManager extends AutomaticLifecycleManager {
|
|
stores = new Map().set(ApplicationStreamingStore, handleAVAudioSessionMode).set(VoiceStateStore, handleAVAudioSessionMode).set(MediaEngineStore, handleAVAudioSessionMode).set(StageChannelRoleStore, handleAVAudioSessionMode).set(EmbeddedActivitiesStore, handleAVAudioSessionMode);
|
|
}
|
|
const audioSessionModeManager = new AudioSessionModeManager();
|
|
export default audioSessionModeManager;
|