/* Metro module 8904; source: modules/video_backgrounds/applyBackgroundOption.tsx; dependencies: [5, 1878, 8905, 7617, 661, 44, 8907, 4406, 8910, 1423, 8906, 8909, 8911, 2] */ function _fun69429(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#69429, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9089:6, offset: 0x01c73868, size: 304 bytes, params: 8, frame: 20 const env0_0 = require; const applyBackgroundOption = function() { return _applyBackgroundOption.apply(this, arguments); }; const closure = function() { return _applyBackgroundOptionLive.apply(this, arguments); }; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const env0_3 = importDefault(5) /* metro dependency 5 */; const userStore = importDefault(1878) /* metro dependency 1878: UserStore */; const videoBackgroundStore = importDefault(8905) /* metro dependency 8905: VideoBackgroundStore */; const videoBackgroundConstantsModule = require(7617) /* metro dependency 7617: VideoBackgroundConstants */; const env0_6 = videoBackgroundConstantsModule.BACKGROUND_REPLACEMENT_SIZE; const env0_7 = videoBackgroundConstantsModule.BLUR_BACKGROUND_OPTION; const env0_8 = (require(661) /* metro dependency 661: Constants */).NOOP; (require(2) /* metro dependency 2 */).fileFinishedImporting('modules/video_backgrounds/applyBackgroundOption.tsx'); exports.applyBackgroundOptionLive = closure; exports.applyBackgroundOptionPreview = function() { return _applyBackgroundOptionPreview.apply(this, arguments); }; exports.applyInitialVideoBackgroundOption = applyInitialVideoBackgroundOption; } function _getFilterBlob() { // fn#69430, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9089:212, offset: 0x01c73998, size: 50 bytes, params: 1, frame: 14 return env0_3(_fun69432).apply(this, arguments); } function applyBackgroundMediaFilterSettings(a0, a1, a2, a3, a4) { // fn#69433, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9089:392, offset: 0x01c73a4c, size: 84 bytes, params: 6, frame: 14 (require(8907) /* metro dependency 8907: VideoBackgroundActionCreators */).applyMediaFilterSettings({[a0]: {graph: a2, target: a1, image: a3, blob: a4}}); } function _applyBackgroundOption() { // fn#69435, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9089:606, offset: 0x01c73aa0, size: 50 bytes, params: 1, frame: 14 return env0_3(_fun69437).apply(this, arguments); } function _applyBackgroundOptionLive() { // fn#69444, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9089:2078, offset: 0x01c73eb8, size: 50 bytes, params: 1, frame: 14 return env0_3(_fun69446).apply(this, arguments); } function _applyBackgroundOptionPreview() { // fn#69447, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9089:2397, offset: 0x01c73fb4, size: 50 bytes, params: 1, frame: 14 return env0_3(_fun69449).apply(this, arguments); } function applyInitialVideoBackgroundOption() { // fn#69451, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9089:3082, offset: 0x01c740ce, size: 140 bytes, params: 1, frame: 16 var r1; var lastUsedVideoBackgroundOption; const currentUser = UserStore.getCurrentUser(); if (currentUser != null) { lastUsedVideoBackgroundOption = (require(8909) /* metro dependency 8909: LastUsedVideoBackgroundOption */).getLastUsedVideoBackgroundOption(currentUser); r1 = (importDefault(8911) /* metro dependency 8911: isVideoBackgroundSupported */)() && !VideoBackgroundStore.hasBeenApplied; r1 = r1 && lastUsedVideoBackgroundOption != null; if (r1) { applyBackgroundOptionLive(lastUsedVideoBackgroundOption, {track: false}).catch(NOOP); } } } function* _fun69432(a0) { // fn#69432, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9089:263, offset: 0x01c739d5, size: 119 bytes, params: 2, frame: 14 if (false) { return undefined; } yield global.fetch(a0); value = undefined; if (false) { return value; } yield value.blob(); value = undefined; if (false) { return value; } const Uint8ClampedArray = global.Uint8ClampedArray; yield value.arrayBuffer(); value = undefined; if (false) { return value; } const value6 = Object.create(Uint8ClampedArray.prototype, {constructor: {value: Uint8ClampedArray}}); const uint8ClampedArray = new Uint8ClampedArray(value); return uint8ClampedArray instanceof Object ? uint8ClampedArray : value6; } function* _fun69437(a0, a1, a2) { // fn#69437, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9089:673, offset: 0x01c73add, size: 553 bytes, params: 4, frame: 28 var environment; var r9; var r11; var r7; var r8; var asset; var binding; var property; var isVideo; var closure; var value10; var value11; var value12; var value13; var value14; var value15; var binding2; var binding3; var value16; var FilterSettingsGraph; var BACKGROUND_REPLACEMENT; var error; var value17; var value18; if (false) { return undefined; } value = undefined; if (a2 == null) { value18 = environment.__proto__.__proto__; env2_10(a0, a1, env2_0(env2_2[7]).FilterSettingsGraph.NONE); } else { if (a2 === env2_7) { env2_10(a0, a1, env2_0(env2_2[7]).FilterSettingsGraph.BACKGROUND_BLUR); return value; } var value4 = typeof a2; if (value4 === 'string') { binding = env2_1; property = binding(env2_2[8])()[a2]; isVideo = property.isVideo; r11 = isVideo != null && isVideo; r7 = property.source; r8 = r11; } else if (value4 === 'number') { binding = env2_1; property = binding(env2_2[8])()[a2]; isVideo = property.isVideo; r11 = isVideo != null && isVideo; r7 = property.source; r8 = r11; } else { asset = a2.asset; binding = env2_0; r9 = binding(env2_2[9]).isAnimatedIconHash(asset) || env2_0(env2_2[9]).isVideoAssetHash(asset); binding = env2_0; r7 = binding(env2_2[9]).getVideoFilterAssetURL({userId: a2.user_id, assetId: a2.id, assetHash: asset, size: env2_6.width}); r8 = r9; } if (r7 == null) { return value; } if (r8) { r9 = value; if (r8) { try { closure = getFilterBlob; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { value13 = closure(r7); } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } yield value13; try { value14 = undefined; value15 = false; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } if (value15) { return value14; } r11 = value14; try { binding = env2_10; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { binding2 = env2_0; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { binding3 = env2_2; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { property = binding3[7]; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { value16 = binding2(property); } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { FilterSettingsGraph = value16.FilterSettingsGraph; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { BACKGROUND_REPLACEMENT = FilterSettingsGraph.BACKGROUND_REPLACEMENT; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { binding(a0, a1, BACKGROUND_REPLACEMENT, r9, r11); } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); } return value; } r11 = value; try { binding = env2_10; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { binding2 = env2_0; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { binding3 = env2_2; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { property = binding3[7]; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { value16 = binding2(property); } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { FilterSettingsGraph = value16.FilterSettingsGraph; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { BACKGROUND_REPLACEMENT = FilterSettingsGraph.BACKGROUND_REPLACEMENT; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { binding(a0, a1, BACKGROUND_REPLACEMENT, r9, r11); } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); } return value; } try { closure = function(a0) { var env0_0 = a0; var Promise = global.Promise; var value = Object.create(Promise.prototype, {constructor: {value: Promise}}); var value2 = new Promise(_fun69439); return value2 instanceof Object ? value2 : value; }; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { value10 = closure(r7); } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } yield value10; try { value11 = undefined; value12 = false; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } if (value12) { return value11; } r9 = value11; if (r8) { try { closure = getFilterBlob; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { value13 = closure(r7); } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } yield value13; try { value14 = undefined; value15 = false; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } if (value15) { return value14; } r11 = value14; try { binding = env2_10; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { binding2 = env2_0; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { binding3 = env2_2; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { property = binding3[7]; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { value16 = binding2(property); } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { FilterSettingsGraph = value16.FilterSettingsGraph; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { BACKGROUND_REPLACEMENT = FilterSettingsGraph.BACKGROUND_REPLACEMENT; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { binding(a0, a1, BACKGROUND_REPLACEMENT, r9, r11); } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); } return value; } r11 = value; try { binding = env2_10; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { binding2 = env2_0; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { binding3 = env2_2; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { property = binding3[7]; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { value16 = binding2(property); } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { FilterSettingsGraph = value16.FilterSettingsGraph; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { BACKGROUND_REPLACEMENT = FilterSettingsGraph.BACKGROUND_REPLACEMENT; } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); return value; } try { binding(a0, a1, BACKGROUND_REPLACEMENT, r9, r11); } catch (error) { binding = env2_0; value17 = binding(env2_2[6]); value17.errorApplyingMediaFilterSettings(); } } return value; } async function _fun69446(a0, {track, location}) { // fn#69446, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9089:2153, offset: 0x01c73efe, size: 182 bytes, params: 3, frame: 23 if (true) { track = track === undefined || track; await undefined; if (false) { return undefined; } value = environment.__proto__.__proto__; var binding = env2_11; var binding2 = env2_0; var binding3 = env2_2; var FilterSettingsKey = binding2(binding3[7]).FilterSettingsKey; var CAMERA_BACKGROUND_LIVE = FilterSettingsKey.CAMERA_BACKGROUND_LIVE; var FilterTargetType = binding2(binding3[7]).FilterTargetType; var INPUT_DEVICE = FilterTargetType.INPUT_DEVICE; await binding(CAMERA_BACKGROUND_LIVE, {type: INPUT_DEVICE}, a0); if (false) { return undefined; } if (track) { env2_0(env2_2[10]).trackBackgroundOptionUpdated(a0, location, 'Enabled'); } } } async function _fun69449(a0, a1, {track, location}) { // fn#69449, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9089:2478, offset: 0x01c73ffa, size: 212 bytes, params: 4, frame: 23 if (true) { track = track === undefined || track; await undefined; if (false) { return undefined; } value = environment.__proto__.__proto__; var binding = env2_0; var binding2 = env2_2; binding(binding2[6]).startApplyMediaFilterSettings(); var binding3 = env2_11; var FilterSettingsKey = binding(binding2[7]).FilterSettingsKey; var CAMERA_BACKGROUND_PREVIEW = FilterSettingsKey.CAMERA_BACKGROUND_PREVIEW; var FilterTargetType = binding(binding2[7]).FilterTargetType; var STREAM = FilterTargetType.STREAM; await binding3(CAMERA_BACKGROUND_PREVIEW, {type: STREAM, streamId: a1}, a0); if (false) { return undefined; } if (track) { env2_0(env2_2[10]).trackBackgroundOptionUpdated(a0, location, 'Preview'); } } } function getFilterImage(a0) { // fn#69438, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9089:1199, offset: 0x01c73d06, size: 46 bytes, params: 2, frame: 11 const env0_0 = a0; const Promise = global.Promise; const value = Object.create(Promise.prototype, {constructor: {value: Promise}}); const promise = new Promise(_fun69439); return promise instanceof Object ? promise : value; } function _fun69439(a0, a1) { // fn#69439, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9089:1246, offset: 0x01c73d34, size: 103 bytes, params: 3, frame: 10 const env0_0 = a0; const env0_1 = a1; const Image = global.Image; const image = new Image(); image.crossOrigin = 'anonymous'; image.onload = onload_69440; image.onerror = function(a0) { return require(a0); }; image.src = env0_0; } function onload_69440() { // fn#69440, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:9089:1305, offset: 0x01c73d9b, size: 285 bytes, params: 1, frame: 22 let value = global.document.createElement('canvas'); value.width = env5_6.width; let height = env5_6.height; value.height = height; const context = value.getContext('2d'); let binding = env5_1; binding(env5_2[5])(context != null, 'Canvas context is missing'); binding = env0_2; const value6 = binding.height / binding.width; height = env5_6.height; const value7 = env5_6.height / value6; context.drawImage(binding, (value.width - value7) / 2, (value.height - height) / 2, value7, height); value = context.getImageData(0, 0, value.width, value.height); env0_0({data: value.data, width: value.width, height: value.height, pixelFormat: 'rgba'}); }