/* Metro module 10794; source: modules/video_calls/native/useScreenshareUtils.tsx; dependencies: [31, 27, 4492, 661, 4092, 7145, 4261, 9228, 8913, 4285, 8899, 9235, 10795, 10600, 1581, 10806, 10807, 10808, 10809, 10801, 566, 6771, 1244, 2] */ function _fun82906(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#82906, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:10980:6, offset: 0x01f05b65, size: 326 bytes, params: 8, frame: 22 const env0_0 = require; const closure = startStream_82907; const closure2 = getOSRequirement; const closure3 = getStreamPressHandler; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const env0_3 = importAll(31) /* metro dependency 31 */; const NativeModules = (require(27) /* metro dependency 27 */).NativeModules; const applicationStreamingStore = importDefault(4492) /* metro dependency 4492: ApplicationStreamingStore */; const env0_5 = (require(661) /* metro dependency 661: Constants */).ApplicationStreamStates; const env0_6 = (require(4092) /* metro dependency 4092: DeviceUtils */).getSystemVersionMajor(); const env0_7 = NativeModules.BroadcastUploadManager; const closure4 = handleCloseScreenshare; const closure5 = function() { require(dependencyMap[6]).getVoiceEngine().stopBroadcast(); handleCloseScreenshare(); }; (require(2) /* metro dependency 2 */).fileFinishedImporting('modules/video_calls/native/useScreenshareUtils.tsx'); exports.default = _default_82916; exports.handleCloseScreenshare = closure4; exports.stopScreenshare = closure5; exports.startStream = closure; exports.getOSRequirement = closure2; exports.getStreamPressHandler = closure3; exports.tryStartScreenShare = function(a0) { if (getOSRequirement() && require(dependencyMap[13]).getVideoPermission(a0)) { startStream_82907(); } }; } function startStream_82907() { // fn#82907, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:10980:476, offset: 0x01f05cab, size: 109 bytes, params: 1, frame: 12 const injectModule = require(4261) /* metro dependency 4261: inject */; const getVoiceEngine = injectModule.getVoiceEngine; if (Reflect.apply(getVoiceEngine, injectModule, []).platform === 'android') { (importDefault(7145) /* metro dependency 7145: ForegroundServiceManagerAndroid */).isForegroundServiceRunning(_fun82908); } else { BroadcastUploadManager.showPicker(); } } function getOSRequirement() { // fn#82909, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:10980:686, offset: 0x01f05d6b, size: 16 bytes, params: 1, frame: 2 return env0_6 >= 12; } function getStreamPressHandler({channel, hasPermission, isActive, osRequirement, showMobileGoLiveUpsell, analyticsLocations}) { // fn#82910, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:10980:727, offset: 0x01f05d7b, size: 130 bytes, params: 2, frame: 18 showMobileGoLiveUpsell = !(showMobileGoLiveUpsell === undefined) && showMobileGoLiveUpsell; return osRequirement ? hasPermission ? showMobileGoLiveUpsell ? getStreamPressHandlerS : isActive ? stopScreenshare : startStream_82907 : (require(9228) /* metro dependency 9228: CallsUtils */).showScreenshareDisabledAlert : getStreamPressHandlerS_82912; } function handleCloseScreenshare() { // fn#82913, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:10980:258, offset: 0x01f05e91, size: 114 bytes, params: 1, frame: 17 var moduleValue; var stopStream; var moduleValue2; const currentUserActiveStream = ApplicationStreamingStore.getCurrentUserActiveStream(); if (currentUserActiveStream != null) { moduleValue = require(8913) /* metro dependency 8913: StreamActionCreators */; stopStream = moduleValue.stopStream; moduleValue2 = require(4285) /* metro dependency 4285: StreamKeyUtils */; Reflect.apply(stopStream, moduleValue, [moduleValue2.encodeStreamKey(currentUserActiveStream)]); } (importDefault(8899) /* metro dependency 8899: AudioActionCreators */).setGoLiveSource(null); } function getShareIcon(a0, a1) { // fn#82915, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:10980:1168, offset: 0x01f05f3a, size: 116 bytes, params: 3, frame: 14 var r0; if (require(dependencyMap[14]).isMetaQuest()) { r0 = importDefault(a0 ? dependencyMap[15] : dependencyMap[16]); } else { r0 = a1 ? dependencyMap[17] : a0 ? dependencyMap[18] : dependencyMap[17]; r0 = importDefault(r0); } return r0; } function _default_82916(a0) { // fn#82916, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:10980:1249, offset: 0x01f05fae, size: 228 bytes, params: 2, frame: 22 const env0_0 = a0; const value2 = (importDefault(10600) /* metro dependency 10600: useHasVideoPermission */)(a0); const oSRequirement = getOSRequirement(); const defaultImport = importDefault(10801) /* metro dependency 10801: MobileGoLiveUpsellExperiment */; const useConfig = defaultImport.useConfig; const showMobileGoLiveUpsell = Reflect.apply(useConfig, defaultImport, [{location: 'useScreenshareUtils'}]).showMobileGoLiveUpsell; return showMobileGoLiveUpsell.useMemo(_fun82918, [(require(566) /* metro dependency 566: flux */).useStateFromStores([ApplicationStreamingStore], function() { return ApplicationStreamingStore.getCurrentUserActiveStream(); }), a0, value2, oSRequirement, showMobileGoLiveUpsell, (importDefault(6771) /* metro dependency 6771: useAnalyticsLocations */)().analyticsLocations]); } function _fun82908(a0) { // fn#82908, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:10980:581, offset: 0x01f05d18, size: 83 bytes, params: 2, frame: 12 let value = environment.__proto__; if (a0) { value = require(4261) /* metro dependency 4261: inject */; value = value.getVoiceEngine(); value.startBroadcast(); } else { (require(9228) /* metro dependency 9228: CallsUtils */).showScreenshareDisabledAlert(); } } function getStreamPressHandlerS() { // fn#82911, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:10980:896, owner: getStreamPressHandler.S, offset: 0x01f05dfd, size: 45 bytes, params: 1, frame: 11 let value = environment.__proto__; value = require(10795) /* metro dependency 10795: MobileGoLiveActionSheet */; return value.showMobileGoLiveActionSheet(analyticsLocations); } function getStreamPressHandlerS_82912() { // fn#82912, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:10980:1004, owner: getStreamPressHandler.S, offset: 0x01f05e2a, size: 103 bytes, params: 1, frame: 15 let value = environment.__proto__; value = require(9235) /* metro dependency 9235: AVError */; const reportAVError = value.reportAVError; const AVError = (require(9235) /* metro dependency 9235: AVError */).AVError; const SCREENSHARE_OS_NOT_SUPPORTED = AVError.SCREENSHARE_OS_NOT_SUPPORTED; Reflect.apply(reportAVError, value, [{type: SCREENSHARE_OS_NOT_SUPPORTED, channelId: channel.id}]); (require(9228) /* metro dependency 9228: CallsUtils */).showMinOSScreenshareRequirementAlert(); } function _fun82918() { // fn#82918, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:10980:1492, offset: 0x01f060a5, size: 287 bytes, params: 1, frame: 19 const intl = (require(1244) /* metro dependency 1244: indexNative */).intl; const t = (require(1244) /* metro dependency 1244: indexNative */).t; const r4 = currentUserActiveStream != null && currentUserActiveStream.state === ApplicationStreamStates.ACTIVE; const object2 = {}; object2.isFeatureEnabled = env0_1 && env0_2; object2.isActive = r4; object2.text = showMobileGoLiveUpsell ? intl.string(t.fjBNo1) : r4 ? intl.string(t.CpkXwZ) : intl.string(t.fjBNo1); const getStreamPressHandlerBinding = getStreamPressHandler; showMobileGoLiveUpsellBinding = showMobileGoLiveUpsell; object2.onPress = getStreamPressHandlerBinding({channel: env0_0, hasPermission: env0_1, isActive: r4, osRequirement: env0_2, showMobileGoLiveUpsell: showMobileGoLiveUpsellBinding, analyticsLocations: analyticsLocations}); object2.imgSource = getShareIcon(r4, showMobileGoLiveUpsellBinding); return object2; }