/* Metro module 9229; source: modules/voice_calls/AudioRouteStore.native.tsx; dependencies: [6, 7, 15, 17, 18, 27, 4294, 9230, 477, 9231, 566, 694, 2] */ function _fun72192(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#72192, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9414:6, offset: 0x01d3dfbf, size: 417 bytes, params: 8, frame: 19 const env0_0 = require; const resetState_72197 = function() { env0_10 = require(dependencyMap[7]).RouteTypes.UNKNOWN; }; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const env0_3 = importDefault(6) /* metro dependency 6 */; const env0_4 = importDefault(7) /* metro dependency 7 */; const env0_5 = importDefault(15) /* metro dependency 15 */; const env0_6 = importDefault(17) /* metro dependency 17 */; const env0_7 = importDefault(18) /* metro dependency 18 */; const {NativeModules, NativeEventEmitter} = require(27) /* metro dependency 27 */; const rtcConnectionStore = importDefault(4294) /* metro dependency 4294: RTCConnectionStore */; const RouteTypes = (require(9230) /* metro dependency 9230: VoiceCallTypes */).RouteTypes; let env0_10 = RouteTypes.UNKNOWN; const AudioRouteEmitter = NativeModules.AudioRouteEmitter; let nativeEventEmitter = new NativeEventEmitter(AudioRouteEmitter); const Store = (importDefault(566) /* metro dependency 566: flux */).Store; _fun72198(Store).displayName = 'AudioRouteStore'; nativeEventEmitter = new nativeEventEmitter(importDefault(694) /* metro dependency 694: Dispatcher */, {RTC_CONNECTION_STATE: RTC_CONNECTION_STATE_72203}); (require(2) /* metro dependency 2 */).fileFinishedImporting('modules/voice_calls/AudioRouteStore.native.tsx'); exports.default = nativeEventEmitter; } function _isNativeReflectConstruct_72193() { // fn#72193, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9414:209, offset: 0x01d3e160, size: 98 bytes, params: 1, frame: 18 var Boolean; var prototype; var valueOf; var call; var Reflect; var construct; var closure; var value; var error; try { Boolean = global.Boolean; prototype = Boolean.prototype; valueOf = prototype.valueOf; call = valueOf.call; Reflect = global.Reflect; construct = Reflect.construct; Boolean = global.Boolean; closure = function() { }; value = Reflect.apply(construct, Reflect, [Boolean, [], closure]); value = Reflect.apply(call, valueOf, [value]); var result = !value; } catch (error) { } return (_isNativeReflectConstruct_72193_isNativeReflectConstruct = function() { return !!result; })(); } function handleAudioRouteChanged(a0) { // fn#72196, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9414:476, offset: 0x01d3e1c2, size: 257 bytes, params: 2, frame: 15 var r3; const RouteTypes = (require(9230) /* metro dependency 9230: VoiceCallTypes */).RouteTypes; var UNKNOWN; var SPEAKER; var BLUETOOTH; if (a1 !== undefined) { } if (a0 == null) { UNKNOWN = RouteTypes.UNKNOWN; } else if (a0 === '') { UNKNOWN = RouteTypes.UNKNOWN; } else if (a0.includes('Bluetooth')) { BLUETOOTH = RouteTypes.BLUETOOTH; } else if (a0.includes('Speaker')) { SPEAKER = RouteTypes.SPEAKER; } else { r3 = a0.includes('Receiver') ? RouteTypes.RECEIVER : RouteTypes.UNKNOWN; } } function _fun72198(a0) { // fn#72198, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9414:846, offset: 0x01d3e2ee, size: 122 bytes, params: 2, frame: 16 const closure = AudioRouteStoreClass; env0_7(closure, a0); return env0_4(closure, [{key: 'initialize', value: function() { this.waitFor(RTCConnectionStore); }}, {key: 'getCurrentRouteType', value: function() { return UNKNOWN; }}, {key: 'getMultipleRoutesAvailable', value: value_72202}]); } function RTC_CONNECTION_STATE_72203() { // fn#72203, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9414:1416, offset: 0x01d3e368, size: 334 bytes, params: 1, frame: 18 var r1; var r3; var AudioRoutePicker; var resetState_72197Binding; var value2; var moduleValue; var value; const isConnected2 = RTCConnectionStore.isConnected(); if (env0_12 !== null) { if (env0_12 != null) { if (!isConnected2) { AudioRoutePicker = NativeModules.AudioRoutePicker; if (AudioRoutePicker != null) { AudioRoutePicker.resetPortOverride(); } resetState_72197(); env0_12.remove(); } } } else if (isConnected2) { resetState_72197Binding = resetState_72197; value2 = undefined; resetState_72197Binding(); r1 = env0_13 == null ? value2 : env0_13.addListener('audio-route-changed', _fun72204); moduleValue = require(477) /* metro dependency 477: PlatformUtils */; if (moduleValue.isAndroid()) { if ((importDefault(9231) /* metro dependency 9231: NativeAudioRouteEmitterModule */) == null) { r1 = value2; } else { value = importDefault(9231) /* metro dependency 9231: NativeAudioRouteEmitterModule */; value = value.getCurrentRoute(); r1 = value; } r3 = r1; } else { r3 = NativeModules.AudioRouteEmitter.getCurrentRoute(); } value = r3.then(function({routeType, multipleRoutesAvailable}) { handleAudioRouteChanged(routeType, multipleRoutesAvailable); }); value = value.then(_fun72206); value.catch(_fun72207); } else if (env0_12 != null) { if (!isConnected2) { AudioRoutePicker = NativeModules.AudioRoutePicker; if (AudioRoutePicker != null) { AudioRoutePicker.resetPortOverride(); } resetState_72197(); env0_12.remove(); } } return false; } function _fun72204({routeType, multipleRoutesAvailable}) { // fn#72204, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9414:1525, offset: 0x01d3e4b6, size: 46 bytes, params: 2, frame: 14 handleAudioRouteChanged(routeType, multipleRoutesAvailable); env1_14.emitChange(); } function _fun72206() { // fn#72206, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9414:1811, offset: 0x01d3e504, size: 34 bytes, params: 1, frame: 10 const value = environment.__proto__; return env1_14?.emitChange(); }