/* Metro module 9228; source: modules/voice_calls/native/CallsUtils.tsx; dependencies: [57, 5, 31, 27, 4492, 1379, 4259, 1934, 4297, 9229, 9232, 4661, 9234, 4496, 1244, 4662, 8899, 9235, 1848, 7709, 4796, 22, 9236, 9237, 9238, 477, 566, 9239, 9233, 9438, 9230, 2] */ function _fun72162(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72162, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9413:6, offset: 0x01d3ccd1, size: 1305 bytes, params: 8, frame: 35 var object3; const env0_0 = require; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const env0_4 = importDefault(57) /* metro dependency 57 */; const env0_5 = importDefault(5) /* metro dependency 5 */; const env0_6 = importAll(31) /* metro dependency 31 */; const env0_7 = (require(27) /* metro dependency 27 */).NativeModules; const applicationStreamingStore = importDefault(4492) /* metro dependency 4492: ApplicationStreamingStore */; const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */; const mediaEngineStore = importDefault(4259) /* metro dependency 4259: MediaEngineStore */; const selectedChannelStore = importDefault(1934) /* metro dependency 1934: SelectedChannelStore */; const voiceStateStore = importDefault(4297) /* metro dependency 4297: VoiceStateStore */; const audioRouteStoreNative = importDefault(9229) /* metro dependency 9229: AudioRouteStoreNative */; const audioManagerStoreAndroid = importDefault(9232) /* metro dependency 9232: AudioManagerStoreAndroid */; const env0_15 = (require(4661) /* metro dependency 4661: NativePermissionConstants */).NativePermissionTypes; const value = _fun72163(); const env0_16 = (importDefault(22) /* metro dependency 22 */).debounce(function(a0) { var AudioRoutePicker = NativeModules.AudioRoutePicker; if (AudioRoutePicker != null) { AudioRoutePicker.handleAudioRoute(a0); } }, 250); const env0_17 = (importDefault(22) /* metro dependency 22 */).debounce(function(a0) { a0(); }, 1); object3 = {EARPIECE: importDefault(9236) /* metro dependency 9236 */, BLUETOOTH_HEADSET: importDefault(9237) /* metro dependency 9237 */, WIRED_HEADSET: importDefault(9238) /* metro dependency 9238 */, SPEAKERPHONE: importDefault(9238) /* metro dependency 9238 */, INVALID: importDefault(9238) /* metro dependency 9238 */}; const object4 = {TYPE_UNKNOWN: 0}; object4[0] = 'TYPE_UNKNOWN'; object4.TYPE_BUILTIN_EARPIECE = 1; object4[1] = 'TYPE_BUILTIN_EARPIECE'; object4.TYPE_BUILTIN_SPEAKER = 2; object4[2] = 'TYPE_BUILTIN_SPEAKER'; object4.TYPE_WIRED_HEADSET = 3; object4[3] = 'TYPE_WIRED_HEADSET'; object4.TYPE_WIRED_HEADPHONES = 4; object4[4] = 'TYPE_WIRED_HEADPHONES'; object4.TYPE_LINE_ANALOG = 5; object4[5] = 'TYPE_LINE_ANALOG'; object4.TYPE_LINE_DIGITAL = 6; object4[6] = 'TYPE_LINE_DIGITAL'; object4.TYPE_BLUETOOTH_SCO = 7; object4[7] = 'TYPE_BLUETOOTH_SCO'; object4.TYPE_BLUETOOTH_A2DP = 8; object4[8] = 'TYPE_BLUETOOTH_A2DP'; object4.TYPE_HDMI = 9; object4[9] = 'TYPE_HDMI'; object4.TYPE_HDMI_ARC = 10; object4[10] = 'TYPE_HDMI_ARC'; object4.TYPE_USB_DEVICE = 11; object4[11] = 'TYPE_USB_DEVICE'; object4.TYPE_USB_ACCESSORY = 12; object4[12] = 'TYPE_USB_ACCESSORY'; object4.TYPE_DOCK = 13; object4[13] = 'TYPE_DOCK'; object4.TYPE_FM = 14; object4[14] = 'TYPE_FM'; object4.TYPE_BUILTIN_MIC = 15; object4[15] = 'TYPE_BUILTIN_MIC'; object4.TYPE_FM_TUNER = 16; object4[16] = 'TYPE_FM_TUNER'; object4.TYPE_TV_TUNER = 17; object4[17] = 'TYPE_TV_TUNER'; object4.TYPE_TELEPHONY = 18; object4[18] = 'TYPE_TELEPHONY'; object4.TYPE_AUX_LINE = 19; object4[19] = 'TYPE_AUX_LINE'; object4.TYPE_IP = 20; object4[20] = 'TYPE_IP'; object4.TYPE_BUS = 21; object4[21] = 'TYPE_BUS'; object4.TYPE_USB_HEADSET = 22; object4[22] = 'TYPE_USB_HEADSET'; object4.TYPE_HEARING_AID = 23; object4[23] = 'TYPE_HEARING_AID'; object4.TYPE_BUILTIN_SPEAKER_SAFE = 24; object4[24] = 'TYPE_BUILTIN_SPEAKER_SAFE'; object4.TYPE_REMOTE_SUBMIX = 25; object4[25] = 'TYPE_REMOTE_SUBMIX'; object4.TYPE_BLE_HEADSET = 26; object4[26] = 'TYPE_BLE_HEADSET'; object4.TYPE_BLE_SPEAKER = 27; object4[27] = 'TYPE_BLE_SPEAKER'; object4.TYPE_ECHO_REFERENCE = 28; object4[28] = 'TYPE_ECHO_REFERENCE'; object4.TYPE_HDMI_EARC = 29; object4[29] = 'TYPE_HDMI_EARC'; object4.TYPE_BLE_BROADCAST = 30; object4[30] = 'TYPE_BLE_BROADCAST'; object4.TYPE_DOCK_ANALOG = 31; object4[31] = 'TYPE_DOCK_ANALOG'; const platformUtilsModule = require(477) /* metro dependency 477: PlatformUtils */; const r3 = platformUtilsModule.isAndroid() ? function() { return require(dependencyMap[26]).useStateFromStoresObject([AudioManagerStoreAndroid], _fun72170, []); } : _fun72171; (require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_calls/native/CallsUtils.tsx'); exports.handleToggleVideo = value; exports.handleToggleSelfDeaf = handleToggleSelfDeaf; exports.handleToggleSelfMute = handleToggleSelfMute; exports.showSuppressedAlert = showSuppressedAlert; exports.showServerMuteAlert = showServerMuteAlert; exports.showServerDeafenAlert = showServerDeafenAlert; exports.showCameraDisabledAlert = showCameraDisabledAlert; exports.showScreenshareDisabledAlert = showScreenshareDisabledAlert; exports.showMinOSScreenshareRequirementAlert = showMinOSScreenshareRequirementAlert; exports.showTabletRequirementAlert = showTabletRequirementAlert; exports.handleDisconnect = handleDisconnect; exports.audioDeviceToIconMap = object3; exports.getAudioDeviceToDisplayText = getAudioDeviceToDisplayText; exports.useMaskedSpeakerStates = r3; exports.useImmediateMaskedSpeakerStates = useImmediateMaskedSpeakerStates; } function _fun72163() { // fn#72163, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9413:256, offset: 0x01d3d1ea, size: 36 bytes, params: 1, frame: 12 const env0_0 = env0_5(_fun72165); return _fun72166; } function _fun72169() { // fn#72169, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9413:2342, offset: 0x01d3d3dd, size: 65 bytes, params: 1, frame: 15 return (require(566) /* metro dependency 566: flux */).useStateFromStoresObject([AudioManagerStoreAndroid], _fun72170, []); } function _fun72171() { // fn#72171, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9413:2599, offset: 0x01d3d49d, size: 283 bytes, params: 1, frame: 20 const {isEnabled, isVideoMode, isBluetoothRoute} = require(dependencyMap[26]).useStateFromStoresObject([ChannelStore, SelectedChannelStore, ApplicationStreamingStore, VoiceStateStore, MediaEngineStore, AudioRouteStoreNative], _fun72172); const binding = env0_6; const [property, env0_3] = env0_4(binding.useState(isEnabled), 2); const value5 = binding.useCallback(_fun72173, [property, isVideoMode]); binding.useEffect(_fun72174, [isEnabled, isVideoMode]); return {isAudioRouteEnabled: property, toggleAudio: value5, routeSource: importDefault(isBluetoothRoute ? dependencyMap[23] : dependencyMap[24])}; } function handleToggleSelfDeaf() { // fn#72176, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9413:3324, offset: 0x01d3d707, size: 37 bytes, params: 1, frame: 11 (importDefault(8899) /* metro dependency 8899: AudioActionCreators */).toggleSelfDeaf(); } function handleToggleSelfMute() { // fn#72177, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9413:3379, offset: 0x01d3d72c, size: 80 bytes, params: 1, frame: 17 const defaultImport = importDefault(4662) /* metro dependency 4662: NativePermissionUtils */; const requestPermission = defaultImport.requestPermission; const AUDIO = NativePermissionTypes.AUDIO; Reflect.apply(requestPermission, defaultImport, [AUDIO, {showAuthorizationError: true}]); (importDefault(8899) /* metro dependency 8899: AudioActionCreators */).toggleSelfMute(); } function showSuppressedAlert() { // fn#72178, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9413:3497, offset: 0x01d3d77c, size: 150 bytes, params: 1, frame: 18 const defaultImport = importDefault(4496) /* metro dependency 4496: AlertActionCreators */; const show = defaultImport.show; const intl = (require(1244) /* metro dependency 1244: indexNative */).intl; const string = intl.string; const t = (require(1244) /* metro dependency 1244: indexNative */).t; const FJSZVM = t.FJSZVM; Reflect.apply(show, defaultImport, [{title: Reflect.apply(string, intl, [FJSZVM]), body: intl.string(t.etJjgW), hideActionSheet: false}]); } function showServerMuteAlert() { // fn#72179, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9413:3652, offset: 0x01d3d812, size: 154 bytes, params: 1, frame: 18 const defaultImport = importDefault(4496) /* metro dependency 4496: AlertActionCreators */; const show = defaultImport.show; const intl = (require(1244) /* metro dependency 1244: indexNative */).intl; const string = intl.string; const t = (require(1244) /* metro dependency 1244: indexNative */).t; Reflect.apply(show, defaultImport, [{title: Reflect.apply(string, intl, [t['+JQCa/']]), body: intl.string(t.hsNm7d), hideActionSheet: false}]); } function showServerDeafenAlert() { // fn#72180, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9413:3812, offset: 0x01d3d8ac, size: 154 bytes, params: 1, frame: 18 const defaultImport = importDefault(4496) /* metro dependency 4496: AlertActionCreators */; const show = defaultImport.show; const object2 = {}; const intl = (require(1244) /* metro dependency 1244: indexNative */).intl; let string = intl.string; const t = (require(1244) /* metro dependency 1244: indexNative */).t; const QZ7WSS = t.QZ7WSS; object2.title = Reflect.apply(string, intl, [QZ7WSS]); string = intl.string; const Tl9JpL = t.Tl9JpL; object2.body = Reflect.apply(string, intl, [Tl9JpL]); object2.hideActionSheet = false; Reflect.apply(show, defaultImport, [object2]); } function showCameraDisabledAlert() { // fn#72181, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9413:3971, offset: 0x01d3d946, size: 150 bytes, params: 1, frame: 18 const defaultImport = importDefault(4496) /* metro dependency 4496: AlertActionCreators */; const show = defaultImport.show; const intl = (require(1244) /* metro dependency 1244: indexNative */).intl; const string = intl.string; const t = (require(1244) /* metro dependency 1244: indexNative */).t; const OYzPcW = t.OYzPcW; Reflect.apply(show, defaultImport, [{title: Reflect.apply(string, intl, [OYzPcW]), body: intl.string(t.oBH7Y2), hideActionSheet: false}]); } function showScreenshareDisabledAlert() { // fn#72182, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9413:4135, offset: 0x01d3d9dc, size: 154 bytes, params: 1, frame: 18 const defaultImport = importDefault(4496) /* metro dependency 4496: AlertActionCreators */; const show = defaultImport.show; const object2 = {}; const intl = (require(1244) /* metro dependency 1244: indexNative */).intl; let string = intl.string; const t = (require(1244) /* metro dependency 1244: indexNative */).t; object2.title = Reflect.apply(string, intl, [t['/x4knx']]); string = intl.string; const PpfzUE = t.PpfzUE; object2.body = Reflect.apply(string, intl, [PpfzUE]); object2.hideActionSheet = false; Reflect.apply(show, defaultImport, [object2]); } function showMinOSScreenshareRequirementAlert() { // fn#72183, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9413:4310, offset: 0x01d3da76, size: 305 bytes, params: 1, frame: 22 var object2; const value2 = undefined; const intl = (require(1244) /* metro dependency 1244: indexNative */).intl; const formatToPlainString = intl.formatToPlainString; const t = (require(1244) /* metro dependency 1244: indexNative */).t; const ejOT95 = t.ejOT95; const avErrorModule = require(9235) /* metro dependency 9235: AVError */; const getErrorInfo = avErrorModule.getErrorInfo; const AVError = avErrorModule.AVError; const SCREENSHARE_OS_NOT_SUPPORTED = AVError.SCREENSHARE_OS_NOT_SUPPORTED; const value3 = Reflect.apply(getErrorInfo, avErrorModule, [SCREENSHARE_OS_NOT_SUPPORTED]); const value4 = Reflect.apply(formatToPlainString, intl, [ejOT95, {errorCode: value3 == null ? value2 : value3.errorCode}]); const defaultImport = importDefault(4496) /* metro dependency 4496: AlertActionCreators */; const show = defaultImport.show; object2 = {}; let string = intl.string; object2.title = Reflect.apply(string, intl, [t.oblMYa]); string = intl.string; const Wnhd3q = t.Wnhd3q; object2.body = '' + Reflect.apply(string, intl, [Wnhd3q]) + '\n\n' + value4; object2.hideActionSheet = false; Reflect.apply(show, defaultImport, [object2]); return value2; } function showTabletRequirementAlert() { // fn#72184, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9413:4656, offset: 0x01d3dba7, size: 154 bytes, params: 1, frame: 18 const defaultImport = importDefault(4496) /* metro dependency 4496: AlertActionCreators */; const show = defaultImport.show; const intl = (require(1244) /* metro dependency 1244: indexNative */).intl; const string = intl.string; const t = (require(1244) /* metro dependency 1244: indexNative */).t; Reflect.apply(show, defaultImport, [{title: Reflect.apply(string, intl, [t['1N0dxa']]), body: intl.string(t.qqDFVb), hideActionSheet: false}]); } function handleDisconnect(a0) { // fn#72185, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9413:4811, offset: 0x01d3dc41, size: 77 bytes, params: 2, frame: 14 (importAll(1848) /* metro dependency 1848: KeyboardManagerUtils */).dismissGlobalKeyboard(); (require(7709) /* metro dependency 7709: PrivateChannelCallUtils */).dismissVoiceChannelScreens(a0, _fun72186); } function getAudioDeviceToDisplayText(a0) { // fn#72187, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9413:4985, offset: 0x01d3dcb6, size: 364 bytes, params: 2, frame: 18 const object2 = {}; const intl = (require(1244) /* metro dependency 1244: indexNative */).intl; let string = intl.string; const t = (require(1244) /* metro dependency 1244: indexNative */).t; const Ouoi6E = t.Ouoi6E; object2.EARPIECE = Reflect.apply(string, intl, [Ouoi6E]); object2.BLUETOOTH_HEADSET = intl.string(t.i6eV3z); string = intl.string; const Dluojr = t.Dluojr; object2.WIRED_HEADSET = Reflect.apply(string, intl, [Dluojr]); object2.SPEAKERPHONE = intl.string(t.snEhlu); object2.INVALID = intl.string(t.kCBL6t); const deviceType = a0.deviceType; const TYPE_BLE_HEADSET = env0_19.TYPE_BLE_HEADSET; return deviceType === TYPE_BLE_HEADSET ? intl.string(t.BtXSp9) : object2[a0.simpleDeviceType]; } function useImmediateMaskedSpeakerStates() { // fn#72188, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9413:5460, offset: 0x01d3de22, size: 309 bytes, params: 1, frame: 20 const currentRouteType = require(dependencyMap[26]).useStateFromStores([AudioRouteStoreNative], function() { return AudioRouteStoreNative.getCurrentRouteType(); }); const value2 = importDefault(dependencyMap[29])(); const RouteTypes = require(dependencyMap[30]).RouteTypes; const SPEAKER = RouteTypes.SPEAKER; const value3 = currentRouteType === SPEAKER; const BLUETOOTH = RouteTypes.BLUETOOTH; const value4 = currentRouteType === BLUETOOTH; let r10 = value3 || value4; r10 = !r10 ? value2 : r10; const binding = env0_6; const [property, env0_3] = env0_4(binding.useState(r10), 2); const value7 = binding.useCallback(_fun72190, [property, value2]); binding.useEffect(_fun72191, [r10, value2]); return {isAudioRouteEnabled: property, toggleAudio: value7, routeSource: importDefault(value4 ? dependencyMap[23] : dependencyMap[24])}; } async function _fun72165(a0) { // fn#72165, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9413:276, offset: 0x01d3d222, size: 404 bytes, params: 2, frame: 22 var binding3; var value10; var show; var object3; var intl; var string; var t; var formatToPlainString; var x9mtl4; var object4; let value = a1; if (true) { var r3 = !(value !== undefined) || value; await undefined; if (false) { return undefined; } value = environment.__proto__.__proto__; var binding = env2_10; var isVideoEnabled2 = binding.isVideoEnabled(); var channelVideoLimit = env2_0(env2_3[12]).getChannelVideoLimit(a0); if (channelVideoLimit.reachedLimit) { if (r3) { binding = env2_1; binding3 = env2_3; value10 = binding(binding3[13]); show = value10.show; object3 = {}; binding = env2_0; intl = binding(binding3[14]).intl; string = intl.string; t = binding(binding3[14]).t; object3.title = Reflect.apply(string, intl, [t['3ffmE+']]); intl = binding(binding3[14]).intl; formatToPlainString = intl.formatToPlainString; t = binding(binding3[14]).t; x9mtl4 = t.x9mtl4; object4 = {}; object4.limit = channelVideoLimit.limit.toString(); object3.body = Reflect.apply(formatToPlainString, intl, [x9mtl4, object4]); Reflect.apply(show, value10, [object3]); } } else { binding = env2_1; var binding2 = env2_3; if (isVideoEnabled2) { binding(binding2[16]).setVideoEnabled(false); return undefined; } var value7 = binding(binding2[15]); var requestPermission = value7.requestPermission; var CAMERA = env2_15.CAMERA; await Reflect.apply(requestPermission, value7, [CAMERA]); var value8 = undefined; if (false) { return value8; } if (value8) { env2_1(env2_3[16]).setVideoEnabled(true); } } } } function _fun72170() { // fn#72170, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9413:2385, offset: 0x01d3d41e, size: 127 bytes, params: 1, frame: 16 const activeAudioDevice = AudioManagerStoreAndroid.getActiveAudioDevice(); const object2 = {isAudioRouteEnabled: true}; const value3 = undefined; object2.toggleAudio = (require(9239) /* metro dependency 9239: showAudioOutputSelector */).showAudioOutputSelector; object2.routeSource = env1_18[(activeAudioDevice == null ? value3 : activeAudioDevice.simpleDeviceType) ?? (require(9233) /* metro dependency 9233: NativeAudioManagerModule */).AudioDeviceType.INVALID]; return object2; } function _fun72172() { // fn#72172, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9413:2659, offset: 0x01d3d5b8, size: 156 bytes, params: 1, frame: 23 let value = environment.__proto__; const isVideoMode2 = (require(9438) /* metro dependency 9438: useIsVideoMode */).isVideoMode(ChannelStore, SelectedChannelStore, ApplicationStreamingStore, VoiceStateStore, MediaEngineStore); value = AudioRouteStoreNative.getCurrentRouteType(); const RouteTypes = (require(9230) /* metro dependency 9230: VoiceCallTypes */).RouteTypes; const SPEAKER = RouteTypes.SPEAKER; const value2 = value === SPEAKER; const BLUETOOTH = RouteTypes.BLUETOOTH; value = value === BLUETOOTH; let r3 = value2 || value; r3 = !r3 ? isVideoMode2 : r3; return {isEnabled: r3, isVideoMode: isVideoMode2, isBluetoothRoute: value}; } function _fun72173() { // fn#72173, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9413:2967, offset: 0x01d3d654, size: 85 bytes, params: 1, frame: 12 const getMultipleRoutesAvailable = AudioRouteStoreNative.getMultipleRoutesAvailable; if (!Reflect.apply(getMultipleRoutesAvailable, AudioRouteStoreNative, [])) { env1_17.cancel(); if (!isVideoMode) { env0_3(!env0_2); } } env1_16(!env0_2); } function _fun72174() { // fn#72174, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9413:3054, offset: 0x01d3d6a9, size: 74 bytes, params: 1, frame: 11 const getMultipleRoutesAvailable = AudioRouteStoreNative.getMultipleRoutesAvailable; if (Reflect.apply(getMultipleRoutesAvailable, AudioRouteStoreNative, [])) { env0_3(isEnabled); } else if (isVideoMode) { env0_3(isEnabled); } else { env1_17(_fun72175); } } function _fun72186() { // fn#72186, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9413:4887, offset: 0x01d3dc8e, size: 40 bytes, params: 1, frame: 12 const value = environment.__proto__; (importDefault(4796) /* metro dependency 4796: SelectedChannelActionCreators */).selectVoiceChannel(null); } function _fun72190() { // fn#72190, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9413:5683, offset: 0x01d3df6a, size: 85 bytes, params: 1, frame: 12 const getMultipleRoutesAvailable = AudioRouteStoreNative.getMultipleRoutesAvailable; if (!Reflect.apply(getMultipleRoutesAvailable, AudioRouteStoreNative, [])) { env1_17.cancel(); if (!env0_0) { env0_3(!env0_2); } } env1_16(!env0_2); } function _fun72175() { // fn#72175, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9413:3101, offset: 0x01d3d6f3, size: 20 bytes, params: 1, frame: 11 return env1_3(isEnabled); }