/* Metro module 8913; source: actions/StreamActionCreators.tsx; dependencies: [5, 4295, 8043, 8914, 4492, 1226, 1379, 1867, 1934, 4297, 661, 4286, 694, 4285, 44, 4800, 7712, 8915, 507, 672, 5046, 480, 8912, 4796, 4603, 8916, 2] */ function _fun69539(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#69539, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:6, offset: 0x01c76232, size: 566 bytes, params: 8, frame: 24 const env0_0 = require; const closure = watchStream; const closure2 = watchStreamAndTransitionToStream; const closure3 = stopStream; const closure4 = closeStream; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const env0_3 = importDefault(5) /* metro dependency 5 */; const gameConsoleStore = importDefault(4295) /* metro dependency 4295: GameConsoleStore */; const popoutWindowStoreNative = importDefault(8043) /* metro dependency 8043: PopoutWindowStoreNative */; const applicationStreamPreviewStore = importDefault(8914) /* metro dependency 8914: ApplicationStreamPreviewStore */; const applicationStreamingStore = importDefault(4492) /* metro dependency 4492: ApplicationStreamingStore */; const authenticationStore = importDefault(1226) /* metro dependency 1226: AuthenticationStore */; const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */; const guildStore = importDefault(1867) /* metro dependency 1867: GuildStore */; const selectedChannelStore = importDefault(1934) /* metro dependency 1934: SelectedChannelStore */; const voiceStateStore = importDefault(4297) /* metro dependency 4297: VoiceStateStore */; const constantsModule = require(661) /* metro dependency 661: Constants */; const env0_13 = constantsModule.Endpoints; const env0_14 = constantsModule.AppContext; const env0_15 = constantsModule.PopoutWindowKeys; const env0_16 = (require(4286) /* metro dependency 4286: Constants */).StreamTypes; const Number = global.Number; const env0_17 = Number.MAX_VALUE; (require(2) /* metro dependency 2 */).fileFinishedImporting('actions/StreamActionCreators.tsx'); exports.startStream = function(a0, a1, a2) { var r7; var r6; var defaultImport = importDefault(dependencyMap[12]); var dispatch = defaultImport.dispatch; var object = {type: 'STREAM_START'}; if (a0 != null) { r6 = StreamTypes.GUILD; r7 = StreamTypes; } else { r6 = StreamTypes.CALL; } object.streamType = r6; object.guildId = a0; object.channelId = a1; object.appContext = AppContext.APP; copyDataProperties(object, a2, r7); Reflect.apply(dispatch, defaultImport, [object]); }; exports.setStreamPaused = setStreamPaused; exports.watchStream = closure; exports.toggleSelfStreamHidden = toggleSelfStreamHidden; exports.watchStreamAndTransitionToStream = closure2; exports.stopStream = closure3; exports.closeStream = closure4; exports.fetchStreamPreview = function() { return _fetchStreamPreview.apply(this, arguments); }; exports.setLayout = setLayout; exports.notifyStreamStart = function() { return _notifyStreamStart.apply(this, arguments); }; exports.updateStreamSettings = updateStreamSettings; exports.changeStreamRegion = function(a0, a1) { var HTTP = require(dependencyMap[18]).HTTP; var object = {}; object.url = Endpoints.STREAM(a0); object.body = {region: a1}; object.oldFormErrors = true; object.rejectWithError = true; HTTP.patch(object); }; exports.stopOwnStream = stopOwnStream; exports.joinPrivateChannelAndWatchStream = joinPrivateChannelAndWatchStream; } function isVoiceChannelFull(a0, a1) { // fn#69540, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:299, offset: 0x01c76468, size: 124 bytes, params: 3, frame: 17 const channel = ChannelStore.getChannel(a1); (importDefault(44) /* metro dependency 44 */)(channel != null, 'Cannot join a null voice channel'); return !VoiceStateStore.isInChannel(a1) && (require(4800) /* metro dependency 4800: ChannelUtils */).isChannelFull(channel, VoiceStateStore, GuildStore); } function watchStream(a0, a1) { // fn#69541, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:463, offset: 0x01c764e4, size: 304 bytes, params: 3, frame: 20 var forceMultiple; var r5; var guildId; var channelId; var value3; var value4; var allActiveStreamsForChannel; var defaultImport; var value; if (GameConsoleStore.getRemoteSessionId() == null) { guildId = a0.guildId; channelId = a0.channelId; if (guildId == null) { value3 = undefined; value4 = (require(4285) /* metro dependency 4285: StreamKeyUtils */).encodeStreamKey(a0); forceMultiple = a1 == null ? value3 : a1.forceMultiple; if (forceMultiple) { r5 = forceMultiple; } else { allActiveStreamsForChannel = ApplicationStreamingStore.getAllActiveStreamsForChannel(channelId); r5 = allActiveStreamsForChannel.filter(function({ownerId}) { return ownerId !== AuthenticationStore.getId(); }).length >= MAX_VALUE; } defaultImport = importDefault(694) /* metro dependency 694: Dispatcher */; defaultImport.dispatch({type: 'STREAM_WATCH', streamKey: value4, allowMultiple: r5}); if (!((a1 == null ? value3 : a1.forceFocus) !== true && (!r5 ? a1 != null && a1.noFocus : r5))) { value = importDefault(7712) /* metro dependency 7712: ChannelRTCActionCreators */; value.selectParticipant(a0.channelId, value4); } } else if (!isVoiceChannelFull(undefined, channelId)) { value3 = undefined; value4 = (require(4285) /* metro dependency 4285: StreamKeyUtils */).encodeStreamKey(a0); forceMultiple = a1 == null ? value3 : a1.forceMultiple; if (forceMultiple) { r5 = forceMultiple; } else { allActiveStreamsForChannel = ApplicationStreamingStore.getAllActiveStreamsForChannel(channelId); r5 = allActiveStreamsForChannel.filter(_fun69542).length >= MAX_VALUE; } defaultImport = importDefault(694) /* metro dependency 694: Dispatcher */; defaultImport.dispatch({type: 'STREAM_WATCH', streamKey: value4, allowMultiple: r5}); if (!((a1 == null ? value3 : a1.forceFocus) !== true && (!r5 ? a1 != null && a1.noFocus : r5))) { value = importDefault(7712) /* metro dependency 7712: ChannelRTCActionCreators */; value.selectParticipant(a0.channelId, value4); } } } } function watchStreamAndTransitionToStream(a0, a1) { // fn#69543, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:921, offset: 0x01c76634, size: 133 bytes, params: 3, frame: 16 const guildId = a0.guildId; const channelId = a0.channelId; if (guildId == null) { watchStream(a0, a1); if (!(PopoutWindowStoreNative.getWindowOpen(PopoutWindowKeys.CHANNEL_CALL_POPOUT) && SelectedChannelStore.getVoiceChannelId() === channelId)) { (importDefault(8915) /* metro dependency 8915: transitionToStreamNative */)(a0); } } else if (!isVoiceChannelFull(undefined, channelId)) { watchStream(a0, a1); if (!(PopoutWindowStoreNative.getWindowOpen(PopoutWindowKeys.CHANNEL_CALL_POPOUT) && SelectedChannelStore.getVoiceChannelId() === channelId)) { (importDefault(8915) /* metro dependency 8915: transitionToStreamNative */)(a0); } } } function stopStream(a0) { // fn#69544, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:1145, offset: 0x01c766b9, size: 104 bytes, params: 2, frame: 16 const value = a1; const value2 = a2; if (!(value2 !== undefined) || value2) { closeStream(a0, !(value !== undefined) || value); } const defaultImport = importDefault(694) /* metro dependency 694: Dispatcher */; const dispatch = defaultImport.dispatch; const APP = AppContext.APP; Reflect.apply(dispatch, defaultImport, [{type: 'STREAM_STOP', streamKey: a0, appContext: APP}]); } function closeStream(a0) { // fn#69545, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:1267, offset: 0x01c76721, size: 69 bytes, params: 2, frame: 14 let value = a1; const r4 = !(value !== undefined) || value; value = importDefault(694) /* metro dependency 694: Dispatcher */; value.dispatch({type: 'STREAM_CLOSE', streamKey: a0, canShowFeedback: r4}); } function _fetchStreamPreview() { // fn#69546, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:1367, offset: 0x01c76766, size: 50 bytes, params: 1, frame: 14 return env0_3(_fun69548).apply(this, arguments); } function _notifyStreamStart() { // fn#69549, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:2043, offset: 0x01c7698f, size: 50 bytes, params: 1, frame: 14 return env0_3(_fun69551).apply(this, arguments); } function setStreamPaused(a0, a1) { // fn#69553, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:2553, offset: 0x01c76ad5, size: 90 bytes, params: 3, frame: 14 const value2 = (require(4285) /* metro dependency 4285: StreamKeyUtils */).encodeStreamKey(a0); const value = importDefault(694) /* metro dependency 694: Dispatcher */; value.dispatch({type: 'STREAM_SET_PAUSED', streamKey: value2, paused: a1}); } function toggleSelfStreamHidden(a0, a1) { // fn#69554, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:2736, offset: 0x01c76b2f, size: 62 bytes, params: 3, frame: 13 (importDefault(694) /* metro dependency 694: Dispatcher */).dispatch({type: 'STREAM_UPDATE_SELF_HIDDEN', channelId: a0, selfStreamHidden: a1}); } function setLayout(a0) { // fn#69556, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:3090, offset: 0x01c76b6d, size: 57 bytes, params: 2, frame: 13 (importDefault(694) /* metro dependency 694: Dispatcher */).dispatch({type: 'STREAM_LAYOUT_UPDATE', layout: a0}); } function updateStreamSettings(a0) { // fn#69558, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:3292, offset: 0x01c76ba6, size: 136 bytes, params: 2, frame: 18 var r8; var value; var trackStreamSettingsUpdate; var preset; var resolution; var frameRate; if (a0.noTrack !== true) { value = require(8912) /* metro dependency 8912: StreamQualityUtils */; trackStreamSettingsUpdate = value.trackStreamSettingsUpdate; preset = a0.preset; resolution = a0.resolution; frameRate = a0.frameRate; Reflect.apply(trackStreamSettingsUpdate, value, [preset, resolution, frameRate, a0.soundshareEnabled]); r8 = frameRate; } value = importDefault(694) /* metro dependency 694: Dispatcher */; const dispatch = value.dispatch; const object2 = {type: 'STREAM_UPDATE_SETTINGS'}; copyDataProperties(object2, a0, r8); Reflect.apply(dispatch, value, [object2]); } function stopOwnStream() { // fn#69560, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:3650, offset: 0x01c76c8a, size: 77 bytes, params: 1, frame: 16 var stopStreamBinding; let value = a0; const r3 = !(value !== undefined) || value; const currentUserActiveStream = ApplicationStreamingStore.getCurrentUserActiveStream(); if (currentUserActiveStream != null) { stopStreamBinding = stopStream; value = require(4285) /* metro dependency 4285: StreamKeyUtils */; stopStreamBinding(value.encodeStreamKey(currentUserActiveStream), r3); } } function joinPrivateChannelAndWatchStream(a0, a1) { // fn#69561, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:3803, offset: 0x01c76cd7, size: 176 bytes, params: 3, frame: 19 const env0_0 = a0; const id = AuthenticationStore.getId(); const env0_1 = (require(4285) /* metro dependency 4285: StreamKeyUtils */).decodeStreamKey(a1); const voiceChannelId = SelectedChannelStore.getVoiceChannelId(); if (voiceChannelId != null && voiceChannelId !== a0) { (importDefault(4796) /* metro dependency 4796: SelectedChannelActionCreators */).disconnect(); } (importDefault(4603) /* metro dependency 4603: ChannelActionCreators */).addRecipient(a0, id, undefined, _fun69562); } function _fun69542({ownerId}) { // fn#69542, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:706, offset: 0x01c76614, size: 32 bytes, params: 2, frame: 10 const getId = AuthenticationStore.getId; return ownerId !== Reflect.apply(getId, AuthenticationStore, []); } function* _fun69548(a0, a1, a2) { // fn#69548, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:1428, offset: 0x01c767a3, size: 492 bytes, params: 4, frame: 24 var r12; var r5; var value3; var binding; var shouldFetchPreview; var value4; var encodeStreamKey; var object3; var CALL; var GUILD; var value5; var value6; var dispatch; var binding2; var property; var value7; var HTTP; var get; var STREAM_PREVIEW; var value8; var object4; var Date; var now; var value9; var value10; var value11; var value12; var binding3; var value13; var body; var url; var error; var status; var retry_after; var Millis; var SECOND; var value14; var value15; let value = undefined; if (true) { reduciblePort52: while (true) { exceptionLanding49: while (true) { value = undefined; value3 = environment.__proto__.__proto__; binding = env2_6; shouldFetchPreview = binding.shouldFetchPreview; if (Reflect.apply(shouldFetchPreview, binding, [a0, a1, a2])) { binding = env2_0; value4 = binding(env2_2[13]); encodeStreamKey = value4.encodeStreamKey; if (a0 != null) { GUILD = env2_16.GUILD; r12 = GUILD; } else { CALL = env2_16.CALL; r12 = CALL; } value5 = Reflect.apply(encodeStreamKey, value4, [{streamType: r12, guildId: a0, channelId: a1, ownerId: a2}]); binding = env2_1; value6 = binding(env2_2[12]); dispatch = value6.dispatch; Reflect.apply(dispatch, value6, [{type: 'STREAM_PREVIEW_FETCH_START', streamKey: value5}]); try { binding = env2_0; } catch (error) { break exceptionLanding49; } try { binding2 = env2_2; } catch (error) { break exceptionLanding49; } try { property = binding2[18]; } catch (error) { break exceptionLanding49; } try { value7 = binding(property); } catch (error) { break exceptionLanding49; } try { HTTP = value7.HTTP; } catch (error) { break exceptionLanding49; } try { get = HTTP.get; } catch (error) { break exceptionLanding49; } try { object3 = {}; } catch (error) { break exceptionLanding49; } try { binding = env2_13; } catch (error) { break exceptionLanding49; } try { STREAM_PREVIEW = binding.STREAM_PREVIEW; } catch (error) { break exceptionLanding49; } try { value8 = Reflect.apply(STREAM_PREVIEW, binding, [value5]); } catch (error) { break exceptionLanding49; } try { object3.url = value8; } catch (error) { break exceptionLanding49; } try { object4 = {}; } catch (error) { break exceptionLanding49; } try { Date = global.Date; } catch (error) { break exceptionLanding49; } try { now = Date.now; } catch (error) { break exceptionLanding49; } try { value9 = Reflect.apply(now, Date, []); } catch (error) { break exceptionLanding49; } try { object4.version = value9; } catch (error) { break exceptionLanding49; } try { object3.query = object4; } catch (error) { break exceptionLanding49; } try { object3.oldFormErrors = true; } catch (error) { break exceptionLanding49; } try { object3.rejectWithError = false; } catch (error) { break exceptionLanding49; } try { value10 = Reflect.apply(get, HTTP, [object3]); } catch (error) { break exceptionLanding49; } yield value10; try { value11 = undefined; value12 = false; } catch (error) { break exceptionLanding49; } if (value12) { return value11; } try { binding = env2_1; } catch (error) { break exceptionLanding49; } try { binding3 = env2_2; } catch (error) { break exceptionLanding49; } try { property = binding3[12]; } catch (error) { break exceptionLanding49; } try { value13 = binding(property); } catch (error) { break exceptionLanding49; } try { dispatch = value13.dispatch; } catch (error) { break exceptionLanding49; } try { object3 = {}; } catch (error) { break exceptionLanding49; } try { object3.type = 'STREAM_PREVIEW_FETCH_SUCCESS'; } catch (error) { break exceptionLanding49; } try { object3.streamKey = value5; } catch (error) { break exceptionLanding49; } try { body = value11.body; } catch (error) { break exceptionLanding49; } try { url = body.url; } catch (error) { break exceptionLanding49; } try { object3.previewURL = url; } catch (error) { break exceptionLanding49; } try { Reflect.apply(dispatch, value13, [object3]); } catch (error) { break exceptionLanding49; } break reduciblePort52; } break reduciblePort52; } status = error.status; reducibleJoin51: while (true) { if (status !== 429) { r5 = value; break reducibleJoin51; } body = error.body; retry_after = body.retry_after; binding = env2_1; Millis = binding(env2_2[19]).Millis; SECOND = Millis.SECOND; value14 = retry_after * SECOND; r5 = value14; break reducibleJoin51; } binding = env2_1; value15 = binding(env2_2[12]); dispatch = value15.dispatch; Reflect.apply(dispatch, value15, [{type: 'STREAM_PREVIEW_FETCH_FAIL', streamKey: value5, retryAfter: r5}]); break reduciblePort52; } } return value; } function* _fun69551(a0) { // fn#69551, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:2102, offset: 0x01c769cc, size: 146 bytes, params: 2, frame: 18 var binding; var binding2; var property; var value3; var post; var object3; var STREAM_NOTIFY; var value4; var object4; var NetworkActionNames; var value5; var error; if (true) { value = environment.__proto__.__proto__; try { binding = env2_1; } catch (error) { return undefined; } try { binding2 = env2_2; } catch (error) { return undefined; } try { property = binding2[20]; } catch (error) { return undefined; } try { value3 = binding(property); } catch (error) { return undefined; } try { post = value3.post; } catch (error) { return undefined; } try { object3 = {}; } catch (error) { return undefined; } try { binding = env2_13; } catch (error) { return undefined; } try { STREAM_NOTIFY = binding.STREAM_NOTIFY; } catch (error) { return undefined; } try { value4 = Reflect.apply(STREAM_NOTIFY, binding, [a0]); } catch (error) { return undefined; } try { object3.url = value4; } catch (error) { return undefined; } try { object3.oldFormErrors = true; } catch (error) { return undefined; } try { object4 = {}; } catch (error) { return undefined; } try { binding = env2_0; } catch (error) { return undefined; } try { property = binding2[21]; } catch (error) { return undefined; } try { value = binding(property); } catch (error) { return undefined; } try { NetworkActionNames = value.NetworkActionNames; } catch (error) { return undefined; } try { STREAM_NOTIFY = NetworkActionNames.STREAM_NOTIFY; } catch (error) { return undefined; } try { object4.event = STREAM_NOTIFY; } catch (error) { return undefined; } try { object3.trackedActionData = object4; } catch (error) { return undefined; } try { object3.rejectWithError = true; } catch (error) { return undefined; } try { value = Reflect.apply(post, value3, [object3]); } catch (error) { return undefined; } yield value; try { value = undefined; value5 = false; } catch (error) { return undefined; } if (value5) { return value; } } } function _fun69562() { // fn#69562, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:3992, offset: 0x01c76d87, size: 61 bytes, params: 1, frame: 19 var environment; let value = environment.__proto__; value = importDefault(8916) /* metro dependency 8916: CallActionCreators */; value.call(env0_0, false, false, null, _fun69563); } function _fun69563() { // fn#69563, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9098:4025, offset: 0x01c76dc4, size: 23 bytes, params: 1, frame: 11 watchStreamAndTransitionToStream(env1_1); }