/* Metro module 4396; source: stores/PresenceStore.tsx; dependencies: [6, 7, 15, 17, 18, 1226, 1878, 661, 4397, 22, 644, 21, 566, 694, 2] */ import ClassCallCheck from '../by-id/module-00006-ClassCallCheck.js'; /* Metro dependency 6 */ import CreateClass from '../by-id/module-00007-CreateClass.js'; /* Metro dependency 7 */ import PossibleConstructorReturn from '../by-id/module-00015-PossibleConstructorReturn.js'; /* Metro dependency 15 */ import Module00017 from '../by-id/module-00017.js'; /* Metro dependency 17 */ import Inherits from '../by-id/module-00018-Inherits.js'; /* Metro dependency 18 */ import SnowflakeUtils from '../utils/SnowflakeUtils.tsx'; /* Metro dependency 21 */ import Flux from '../external/discord_common/js/packages/flux/index.tsx'; /* Metro dependency 566 */ import AuthenticationStore from './AuthenticationStore.tsx'; /* Metro dependency 1226 */ import UserStore from './UserStore.tsx'; /* Metro dependency 1878 */ import HasRichActivity from '../modules/activities/utils/hasRichActivity.tsx'; /* Metro dependency 4397 */ import * as FileImportTrackerModule from '../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */ import * as ConstantsModule from '../Constants.tsx'; /* Metro dependency 661 */ function _fun37253(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#37253, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:6, offset: 0x0109fabd, size: 681 bytes, params: 8, frame: 21 const _arrayLikeToArray_37259 = function(a0, a1) { var r0; var r1; var r2; var value3; var length; var value5; var value = undefined; var value2 = value == null; reducibleJoin2: while (true) { if (value2) { r0 = value2; break reducibleJoin2; } value3 = value > a0.length; r0 = value3; break reducibleJoin2; } reducibleJoin4: while (true) { if (r0) { length = a0.length; r1 = length; break reducibleJoin4; } r1 = value; break reducibleJoin4; } value = (0, global.Array)(r1); var value4 = 0; if (value4 < r1) { r2 = value4; reducibleLoop5: while (true) { value[r2] = a0[r2]; value5 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1; if (value5 < r1) { r2 = value5; continue reducibleLoop5; } break reducibleLoop5; } } return value; }; const sortActivity2 = sortActivity; const dedupeHiddenActivities = function(a0) { var r5; if (a0.length === 0) { return a0; } var items = []; arraySpread(items, a0, 0, r5); var value = items.reverse(); var Map = global.Map; var value2 = value.map(_fun37271); var value3 = Object.create(Map.prototype, {constructor: {value: Map}}); var value4 = new Map(value2); var value6 = (value4 instanceof Object ? value4 : value3).values(); items = []; arraySpread(items, value6, 0, value); return items; }; let Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); let value = ConstantsModule; const env0_9 = value.StatusTypes; const env0_10 = value.ActivityTypes; const env0_11 = value.ClientTypes; const env0_12 = value.ME; const env0_13 = value.UserFlags; Object = global.Object; const env0_14 = Object.freeze([]); let env0_15 = {}; let env0_16 = {}; let env0_17 = {}; const env0_18 = {}; let env0_19 = {}; const env0_20 = {}; let env0_21 = {}; const typeScore = function({type}) { if (ActivityTypes.CUSTOM_STATUS === type) { return 4; } if (ActivityTypes.COMPETING === type) { return 3; } if (ActivityTypes.STREAMING === type) { return 2; } if (ActivityTypes.PLAYING === type) { return 1; } return 0; }; const Store = (Flux).Store; _fun37280(Store).displayName = 'PresenceStore'; value = new value(importDefault(694) /* metro dependency 694: Dispatcher */, {CONNECTION_OPEN: function() { return true; }, CONNECTION_OPEN_SUPPLEMENTAL: CONNECTION_OPEN_SUPPLEMENTAL_37301, OVERLAY_INITIALIZE: function({presences}) { env0_15 = presences.presencesForGuilds; env0_16 = presences.statuses; env0_17 = presences.activities; env0_19 = presences.hiddenActivities; env0_21 = presences.activityMetadata; }, GUILD_CREATE: function({guild}) { var env0_0 = guild; guild = guild.presences; guild.forEach(_fun37307); }, GUILD_DELETE: function({guild}) { clearPresences(guild.id); }, GUILD_MEMBER_REMOVE: function({guildId, user}) { return clearPresence(guildId, user.id); }, PRESENCE_UPDATES: function({updates}) { return updates.map(_fun37311).some(_fun37312); }, PRESENCES_REPLACE: function({presences}) { clearPresences(ME); presences.forEach(_fun37314); }, ACTIVITY_METADATA_UPDATE: ACTIVITY_METADATA_UPDATE, THREAD_MEMBER_LIST_UPDATE: function({guildId, members}) { members.forEach(_fun37317); }, THREAD_MEMBERS_UPDATE: function({guildId, addedMembers}) { if (addedMembers != null) { addedMembers.forEach(_fun37319); } }, SELF_PRESENCE_STORE_UPDATE: SELF_PRESENCE_STORE_UPDATE}); (FileImportTrackerModule).fileFinishedImporting('stores/PresenceStore.tsx'); exports.default = value; exports.sortActivity = sortActivity2; function _isNativeReflectConstruct_37254() { // fn#37254, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:252, offset: 0x0109fd66, size: 94 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_37254_isNativeReflectConstruct = function() { return !!result; })(); } function _createForOfIteratorHelperLoose_37257(a0, a1) { // fn#37257, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:445, offset: 0x0109fdc4, size: 370 bytes, params: 3, frame: 20 var r6; var r9; var r5; var value3; var regexp; const env0_0 = a0; const Symbol = global.Symbol; let value = typeof Symbol !== 'undefined'; let r1 = value && a0[global.Symbol.iterator]; r1 = !r1 ? a0['@@iterator'] : r1; if (r1) { value = r1.call(a0); return value.next.bind(value); } const Array = global.Array; if (Array.isArray(a0)) { if (r1) { } return _fun37258; } value = undefined; if (a0) { if (typeof a0 === 'string') { value = _arrayLikeToArray_37259(a0, value); r5 = value; } else { value3 = ({}).toString.call(a0).slice(8, -1); r6 = value3 === 'Object' && a0.constructor; r9 = r6 ? a0.constructor.name : value3; if (r9 === 'Map') { r6 = global.Array.from(a0); } else if (r9 === 'Set') { r6 = global.Array.from(a0); } else if (r9 === 'Arguments') { value = _arrayLikeToArray_37259(a0, value); r6 = value; } else { regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', ''); if (regexp.test(r9)) { value = _arrayLikeToArray_37259(a0, value); r6 = value; } else { r6 = value; } } r5 = r6; } } else { r5 = value; } if (r5) { if (r5) { } return _fun37258; } const TypeError = global.TypeError; throw new TypeError('Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.'); function _fun37258() { // fn#37258, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:1016, offset: 0x00c39d73, size: 69 bytes, params: 1, frame: 5 return env0_1 >= env0_0.length ? {done: true} : {done: false, value: env0_0[typeof env0_1 === 'bigint' ? env0_1 : +env0_1]}; } } function getPresence(a0, a1) { // fn#37260, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:1414, offset: 0x0109ff36, size: 32 bytes, params: 3, frame: 3 const property = env0_15[a0]; const value = null; return value != property ? property[a1] : value; } function sortActivity(a0, a1) { // fn#37261, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:1670, offset: 0x0109ff56, size: 105 bytes, params: 3, frame: 15 var r1; var created_at; var value; let r0 = typeScore(a1) - typeScore(a0) || richnessScore(a1) - richnessScore(a0); if (!r0) { created_at = a1.created_at; value = 0; r1 = created_at ?? value; created_at = a0.created_at; value = r1 - (created_at ?? value); r0 = value; } return r0; } function filterPlayingActivities(a0) { // fn#37262, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:1978, offset: 0x0109ffbf, size: 199 bytes, params: 2, frame: 21 var r10; var r5; var value4; var type; var PLAYING; var value5; if (a0.length === 0) { return a0; } const items5 = []; const items2 = []; const value2 = _createForOfIteratorHelperLoose_37257(a0); const value3 = value2(); let done = value3.done; if (!done) { r5 = value3; while (true) { value4 = r5.value; type = value4.type; PLAYING = ActivityTypes.PLAYING; if (type === PLAYING) { items2.push(value4); } else { items5.push(value4); } value5 = value2(); done = value5.done; if (done) { r10 = type; break; } r5 = value5; continue; } } if (items2.length <= 1) { return a0; } const items3 = []; arraySpread(items3, items2, 0, r10); const sort = items3.sort; const sortActivityBinding = sortActivity; const property = Reflect.apply(sort, items3, [sortActivityBinding])[0]; const items4 = []; const value = arraySpread(items4, items5, 0, r10); items4[value] = property; value + 1; return items4.sort(sortActivityBinding); } function setActivitiesForUser(a0, a1) { // fn#37263, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:2258, offset: 0x010a0086, size: 38 bytes, params: 3, frame: 13 env0_17[a0] = a1; env0_18[a0] = filterPlayingActivities(a1); } function flattenPresence(a0) { // fn#37264, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:2332, offset: 0x010a00ac, size: 405 bytes, params: 2, frame: 22 var value2; var value3; var defaultImport; var binding; var dedupeHiddenActivitiesBinding; var value4; var value; delete env0_16[a0]; delete env0_17[a0]; delete env0_18[a0]; delete env0_19[a0]; delete env0_20[a0]; if (env0_15[a0] != null) { value2 = global.Object.values(env0_15[a0]); value3 = value2.reduce(function(a0, a1) { var value = a0; var value2 = a1; var processedAtTimestamp = value2.processedAtTimestamp; var processedAtTimestamp2 = value.processedAtTimestamp; var value3 = 0; return processedAtTimestamp > processedAtTimestamp2 ? value2 : processedAtTimestamp !== processedAtTimestamp2 ? value : (value2.activities != null ? value2.activities.length : value3) > (value.activities != null ? value.activities.length : value3) ? value2 : value; }, value2[0]); if (value3.status !== StatusTypes.OFFLINE) { binding = env0_16; binding[a0] = value3.status; setActivitiesForUser(a0, value3.activities); binding = env0_19; dedupeHiddenActivitiesBinding = dedupeHiddenActivities; value4 = global.Object.values(value2); binding[a0] = dedupeHiddenActivitiesBinding(value4.flatMap(_fun37266)); if (value3.clientStatus != null) { env0_20[a0] = value3.clientStatus; } } else if (value3.hiddenActivities == null) { defaultImport = importDefault(22) /* metro dependency 22 */; if (defaultImport.every(env0_15[a0], _fun37267)) { delete env0_15[a0]; } else if (value2.some(_fun37268)) { binding = env0_19; dedupeHiddenActivitiesBinding = dedupeHiddenActivities; value = global.Object.values(value2); binding[a0] = dedupeHiddenActivitiesBinding(value.flatMap(_fun37269)); } } else if (value3.hiddenActivities.length > 0) { binding = env0_16; binding[a0] = value3.status; setActivitiesForUser(a0, value3.activities); binding = env0_19; dedupeHiddenActivitiesBinding = dedupeHiddenActivities; value4 = global.Object.values(value2); binding[a0] = dedupeHiddenActivitiesBinding(value4.flatMap(_fun37266)); if (value3.clientStatus != null) { env0_20[a0] = value3.clientStatus; } } else { defaultImport = importDefault(22) /* metro dependency 22 */; if (defaultImport.every(env0_15[a0], _fun37267)) { delete env0_15[a0]; } else if (value2.some(_fun37268)) { binding = env0_19; dedupeHiddenActivitiesBinding = dedupeHiddenActivities; value = global.Object.values(value2); binding[a0] = dedupeHiddenActivitiesBinding(value.flatMap(_fun37269)); } } } function _fun37267(a0) { // fn#37267, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:3007, offset: 0x010a02b5, size: 65 bytes, params: 2, frame: 4 const status = a0.status; const value = environment.__proto__; const OFFLINE = StatusTypes.OFFLINE; return status === OFFLINE && (a0.hiddenActivities == null || a0.hiddenActivities.length === 0); } } function dedupeHiddenActivities(a0) { // fn#37270, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:3290, offset: 0x010a031b, size: 109 bytes, params: 2, frame: 16 if (a0.length === 0) { return a0; } let items2 = []; arraySpread(items2, a0, 0, undefined); const value = items2.reverse(); const Map = global.Map; let map = value.map; const value2 = Reflect.apply(map, value, [function(a0) { return ['' + a0.application_id + ':' + a0.party?.id, a0]; }]); const value3 = Object.create(Map.prototype, {constructor: {value: Map}}); map = new Map(value2); const value5 = (map instanceof Object ? map : value3).values(); items2 = []; arraySpread(items2, value5, 0, value); return items2; } function flattenPresenceInConnectionOpen(a0) { // fn#37272, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:3487, offset: 0x010a03d1, size: 207 bytes, params: 2, frame: 18 var defaultImport; var value3; var binding; const property = env0_15[a0]; if (property != null) { defaultImport = importDefault(22) /* metro dependency 22 */; value3 = defaultImport.maxBy(global.Object.values(property), function(a0) { return a0.processedAtTimestamp; }); if (value3.status !== StatusTypes.OFFLINE) { binding = env0_16; binding[a0] = value3.status; setActivitiesForUser(a0, value3.activities); binding = env0_19; binding[a0] = value3.hiddenActivities ?? []; if (value3.clientStatus != null) { env0_20[a0] = value3.clientStatus; } } else if (value3.hiddenActivities != null) { if (value3.hiddenActivities.length > 0) { binding = env0_16; binding[a0] = value3.status; setActivitiesForUser(a0, value3.activities); binding = env0_19; binding[a0] = value3.hiddenActivities ?? []; if (value3.clientStatus != null) { env0_20[a0] = value3.clientStatus; } } } } } function updatePresence({guildId, userId, status, clientStatus, activities, hiddenActivities, processedAtTimestamp}) { // fn#37274, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:3836, offset: 0x010a04ab, size: 366 bytes, params: 2, frame: 25 var r3; var r11; var object; var value6; const authenticationStoreBinding = AuthenticationStore; const getId = authenticationStoreBinding.getId; if (userId === Reflect.apply(getId, authenticationStoreBinding, [])) { return false; } const OFFLINE = StatusTypes.OFFLINE; const r1 = status === OFFLINE && (hiddenActivities == null || hiddenActivities.length === 0); let property = env0_15[userId]; if (property != null) { r3 = property; if (r1) { r3[guildId] = {status: status, clientStatus: clientStatus, activities: env0_14, hiddenActivities: env0_14, processedAtTimestamp: processedAtTimestamp}; } else { if (activities.length > 1) { object = []; arraySpread(object, activities, 0, undefined); r11 = object.sort(sortActivity); } else { r11 = activities; } value6 = dedupeHiddenActivities(hiddenActivities ?? []); property = r3[guildId]; r3[guildId] = {status: status, clientStatus: clientStatus, activities: property == null ? r11 : (importDefault(644) /* metro dependency 644 */)(property.activities, r11) ? property.activities : r11, hiddenActivities: value6, processedAtTimestamp: processedAtTimestamp}; } delete env0_21[userId]; flattenPresence(userId); } else { if (r1) { return false; } var binding = env0_15; object = {}; binding[userId] = object; r3 = object; if (r1) { r3[guildId] = {status: status, clientStatus: clientStatus, activities: env0_14, hiddenActivities: env0_14, processedAtTimestamp: processedAtTimestamp}; } else { if (activities.length > 1) { object = []; arraySpread(object, activities, 0, undefined); r11 = object.sort(sortActivity); } else { r11 = activities; } value6 = dedupeHiddenActivities(hiddenActivities ?? []); property = r3[guildId]; r3[guildId] = {status: status, clientStatus: clientStatus, activities: property == null ? r11 : (importDefault(644) /* metro dependency 644 */)(property.activities, r11) ? property.activities : r11, hiddenActivities: value6, processedAtTimestamp: processedAtTimestamp}; } delete env0_21[userId]; flattenPresence(userId); } return true; } function updatePresenceInConnectionOpen({guildId, userId, status, clientStatus, activities, hiddenActivities, processedAtTimestamp}) { // fn#37275, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:4440, offset: 0x010a0619, size: 285 bytes, params: 2, frame: 23 var r7; var r1; var r8; var object; const authenticationStoreBinding = AuthenticationStore; const getId = authenticationStoreBinding.getId; if (userId !== Reflect.apply(getId, authenticationStoreBinding, [])) { var OFFLINE = StatusTypes.OFFLINE; r7 = status === OFFLINE && (hiddenActivities == null || hiddenActivities.length === 0); var property = env0_15[userId]; if (property != null) { r1 = property; if (r7) { r1[guildId] = {status: status, clientStatus: clientStatus, activities: env0_14, hiddenActivities: env0_14, processedAtTimestamp: processedAtTimestamp}; } else { if (activities.length > 1) { object = []; arraySpread(object, activities, 0, userId); r8 = object.sort(sortActivity); } else { r8 = activities; } object = {status: status, clientStatus: clientStatus, activities: r8, hiddenActivities: dedupeHiddenActivities(hiddenActivities ?? []), processedAtTimestamp: processedAtTimestamp}; r1[guildId] = object; } return undefined; } if (r7) { return undefined; } var binding = env0_15; object = {}; binding[userId] = object; r1 = object; if (r7) { r1[guildId] = {status: status, clientStatus: clientStatus, activities: env0_14, hiddenActivities: env0_14, processedAtTimestamp: processedAtTimestamp}; } else { if (activities.length > 1) { object = []; arraySpread(object, activities, 0, userId); r8 = object.sort(sortActivity); } else { r8 = activities; } object = {status: status, clientStatus: clientStatus, activities: r8, hiddenActivities: dedupeHiddenActivities(hiddenActivities ?? []), processedAtTimestamp: processedAtTimestamp}; r1[guildId] = object; } } } function clearPresence(a0, a1) { // fn#37276, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:4953, offset: 0x010a0736, size: 111 bytes, params: 3, frame: 14 const authenticationStoreBinding = AuthenticationStore; const getId = authenticationStoreBinding.getId; if (a1 === Reflect.apply(getId, authenticationStoreBinding, [])) { return false; } const property = env0_15[a1]; if (property == null) { return false; } if (property[a0] == null) { return false; } delete property[a0]; const Object = global.Object; if (Object.keys(property).length === 0) { delete env0_15[a1]; } flattenPresence(a1); } function clearPresences(a0) { // fn#37277, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:5120, offset: 0x010a07a5, size: 95 bytes, params: 2, frame: 16 var r2; var clearPresenceBinding; var value4; var value5; const _createForOfIteratorHelperLoose_37257Binding = _createForOfIteratorHelperLoose_37257; const defaultImport = SnowflakeUtils; const value2 = _createForOfIteratorHelperLoose_37257Binding(defaultImport.keys(env0_15)); const value3 = value2(); let done = value3.done; if (!done) { for (r2 = value3; true; r2 = value5) { clearPresenceBinding = clearPresence; value4 = r2.value; clearPresenceBinding(a0, value4); value5 = value2(); done = value5.done; if (done) { break; } } } } function richnessScore(a0) { // fn#37279, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:1652, offset: 0x010a085f, size: 43 bytes, params: 2, frame: 11 let value = HasRichActivity; value = value(a0); return value ? 1 : 0; } function _fun37280(a0) { // fn#37280, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:5257, offset: 0x010a088a, size: 423 bytes, params: 2, frame: 16 const PresenceStore2 = PresenceStore; Inherits(PresenceStore2, a0); return CreateClass(PresenceStore2, [{key: 'initialize', value: function() { this.waitFor(AuthenticationStore, UserStore); }}, {key: 'setCurrentUserOnConnectionOpen', value: value_37283}, {key: 'getStatus', value: value_37284}, {key: 'getActivities', value: value_37285}, {key: 'getUnfilteredActivities', value: value_37286}, {key: 'getHiddenActivities', value: value_37287}, {key: 'getPrimaryActivity', value: function(a0) { var value = a1; value = this.getActivities(a0, value !== undefined ? value : null); value = value.filter(_fun37289); return value[0]; }}, {key: 'getAllApplicationActivities', value: value_37290}, {key: 'getApplicationActivity', value: function(a0, a1) { var value = a2; var env0_0 = a1; return this.findActivity(a0, _fun37292, value !== undefined ? value : null, true); }}, {key: 'findActivity', value: function(a0, a1) { var r5; var r1; var r2; var value = a2; var value2 = a3; r5 = value !== undefined ? value : null; r1 = value2 !== undefined ? value2 : false; var r0 = r1 != null && r1; value = this.getActivities(a0, r5); if (r0) { value = value.concat(this.getHiddenActivities(a0, r5)); r2 = value; } else { r2 = value; } return r2.find(a1); }}, {key: 'getActivityMetadata', value: value_37294}, {key: 'getUserIds', value: value_37295}, {key: 'isMobileOnline', value: value_37296}, {key: 'isVROnline', value: value_37297}, {key: 'getClientStatus', value: value_37298}, {key: 'getState', value: value_37299}]); function PresenceStore() { // fn#37281, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:5269, offset: 0x010a0a31, size: 113 bytes, params: 1, frame: 20 const value = environment.__proto__; env1_2(this, PresenceStore); const value3 = env1_5(PresenceStore); return env1_4(this, _isNativeReflectConstruct_37254() ? global.Reflect.construct(value3, arguments, env1_5(this).constructor) : value3.apply(this, arguments)); } function value_37283(a0, a1) { // fn#37283, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:5627, offset: 0x010a0aa2, size: 87 bytes, params: 3, frame: 16 const value = environment.__proto__; env1_16[AuthenticationStore.getId()] = a0; const setActivitiesForUserBinding = setActivitiesForUser; const id = AuthenticationStore.getId(); const items2 = []; arraySpread(items2, a1, 0, undefined); setActivitiesForUserBinding(id, items2.sort(sortActivity)); } function value_37284(a0) { // fn#37284, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:5739, offset: 0x010a0af9, size: 152 bytes, params: 2, frame: 19 let value = a1; const value2 = a2; const value3 = undefined; const r6 = value !== value3 ? value : null; let r0 = value2 !== value3 ? value2 : StatusTypes.OFFLINE; value = environment.__proto__; const user = UserStore.getUser(a0); r0 = user != null && user.hasFlag(UserFlags.BOT_HTTP_INTERACTIONS) ? StatusTypes.UNKNOWN : r0; if (r6 == null) { r0 = env1_16[a0] ?? r0; return r0; } value = getPresence(a0, r6); return (value == null ? value3 : value.status) ?? r0; } function value_37285(a0) { // fn#37285, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:5986, offset: 0x010a0b91, size: 91 bytes, params: 2, frame: 15 let value = a1; const r4 = value !== undefined ? value : null; if (r4 == null) { value = environment.__proto__; return env1_18[a0] ?? env1_14; } value = environment.__proto__; const presence = getPresence(a0, r4); return presence == null || presence.activities == null ? env1_14 : filterPlayingActivities(presence.activities); } function value_37286(a0) { // fn#37286, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:6185, offset: 0x010a0bec, size: 82 bytes, params: 2, frame: 15 let value = a1; const r5 = value !== undefined ? value : null; if (r5 == null) { value = environment.__proto__; return env1_17[a0] ?? env1_14; } value = environment.__proto__; const presence = getPresence(a0, r5); return presence == null || presence.activities == null ? env1_14 : presence.activities; } function value_37287(a0) { // fn#37287, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:6355, offset: 0x010a0c3e, size: 82 bytes, params: 2, frame: 15 var r0; var presence; let value = a1; const value2 = undefined; const r5 = value !== value2 ? value : null; if (r5 == null) { value = environment.__proto__; r0 = env1_19[a0] ?? env1_14; } else { value = environment.__proto__; presence = getPresence(a0, r5); r0 = (presence == null ? value2 : presence.hiddenActivities) ?? env1_14; } return r0; } function value_37288(a0) { // fn#37288, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:6519, offset: 0x010a0c90, size: 54 bytes, params: 2, frame: 13 let value = a1; value = this.getActivities(a0, value !== undefined ? value : null); value = value.filter(function({type}) { return type !== ActivityTypes.HANG_STATUS; }); return value[0]; function _fun37289({type}) { // fn#37289, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:6577, offset: 0x010a0cc6, size: 27 bytes, params: 2, frame: 2 const HANG_STATUS = ActivityTypes.HANG_STATUS; return type !== HANG_STATUS; } } function value_37290(a0) { // fn#37290, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:6651, offset: 0x010a0ce1, size: 177 bytes, params: 2, frame: 22 var r3; var r8; var value4; var value5; var value6; var value7; var application_id; var value8; var value9; const items2 = []; const _createForOfIteratorHelperLoose_37257Binding = _createForOfIteratorHelperLoose_37257; const defaultImport = SnowflakeUtils; const value2 = _createForOfIteratorHelperLoose_37257Binding(defaultImport.keys(env1_18)); const value3 = value2(); let done = value3.done; if (!done) { r3 = value3; while (true) { value4 = r3.value; value5 = _createForOfIteratorHelperLoose_37257(env1_18[value4]); value6 = value5(); done = value6.done; if (!done) { r8 = value6; while (true) { value7 = r8.value; application_id = value7.application_id; if (application_id === a0) { items2.push({userId: value4, activity: value7}); } value8 = value5(); done = value8.done; if (done) { break; } r8 = value8; continue; } } value9 = value2(); done = value9.done; if (done) { break; } r3 = value9; continue; } } return items2; } function value_37291(a0, a1) { // fn#37291, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:6934, offset: 0x010a0d92, size: 51 bytes, params: 3, frame: 17 const value = a2; const env0_0 = a1; return this.findActivity(a0, function({application_id}) { return application_id === require; }, value !== undefined ? value : null, true); function _fun37292({application_id}) { // fn#37292, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:6983, offset: 0x0108da35, size: 22 bytes, params: 2, frame: 2 return application_id === require; } } function value_37294(a0) { // fn#37294, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:7210, offset: 0x01080378, size: 16 bytes, params: 2, frame: 2 return env1_21[a0]; } function value_37295() { // fn#37295, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:7260, offset: 0x010a0e23, size: 41 bytes, params: 1, frame: 12 return (SnowflakeUtils).keys(env1_17); } function value_37296(a0) { // fn#37296, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:7325, offset: 0x010a0e4c, size: 115 bytes, params: 2, frame: 5 const value = environment.__proto__; const property = env1_20[a0]; return property != null && property[ClientTypes.MOBILE] === StatusTypes.ONLINE && property[ClientTypes.DESKTOP] !== StatusTypes.ONLINE && property[ClientTypes.VR] !== StatusTypes.ONLINE; } function value_37297(a0) { // fn#37297, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:7458, offset: 0x010a0ebf, size: 53 bytes, params: 2, frame: 4 const value = environment.__proto__; const property = env1_20[a0]; return property != null && property[ClientTypes.VR] === StatusTypes.ONLINE; } function value_37298(a0) { // fn#37298, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:7547, offset: 0x010a0ef4, size: 16 bytes, params: 2, frame: 2 return env1_20[a0]; } function value_37299() { // fn#37299, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:7595, offset: 0x010a0f04, size: 74 bytes, params: 1, frame: 3 return {presencesForGuilds: env1_15, statuses: env1_16, activities: env1_17, filteredActivities: env1_18, hiddenActivities: env1_19, activityMetadata: env1_21, clientStatuses: env1_20}; } } function CONNECTION_OPEN_SUPPLEMENTAL_37301({guilds, presences}) { // fn#37301, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:7895, offset: 0x010a0f4e, size: 225 bytes, params: 2, frame: 16 const id = AuthenticationStore.getId(); env0_15 = {}; env0_21 = {}; ({})[id] = env0_16[id]; ({})[id] = env0_17[id]; ({})[id] = env0_18[id]; ({})[id] = env0_19[id]; ({})[id] = {}; const Set = global.Set; const set = new Set(); guilds.forEach(function(a0) { var env0_0 = a0; a0.presences.forEach(_fun37303); }); presences.forEach(_fun37304); set.delete(id); set.forEach(flattenPresenceInConnectionOpen); function _fun37302(a0) { // fn#37302, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:8075, offset: 0x010a102f, size: 34 bytes, params: 2, frame: 11 const env0_0 = a0; a0.presences.forEach(_fun37303); function _fun37303({user, status, clientStatus, activities, hiddenActivities, processedAtTimestamp}) { // fn#37303, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:8100, offset: 0x010a1051, size: 126 bytes, params: 2, frame: 17 updatePresenceInConnectionOpen({guildId: env0_0.id, userId: user.id, status: status, clientStatus: clientStatus, activities: activities, hiddenActivities: hiddenActivities, processedAtTimestamp: processedAtTimestamp}); const binding = env1_0; binding.add(user.id); } } function _fun37304({user, status, clientStatus, activities, hiddenActivities, processedAtTimestamp}) { // fn#37304, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:8359, offset: 0x010a10cf, size: 126 bytes, params: 2, frame: 17 var value; var updatePresenceInConnectionOpenBinding; var id; var binding; var add; if (user != null) { value = environment.__proto__; updatePresenceInConnectionOpenBinding = updatePresenceInConnectionOpen; id = user.id; updatePresenceInConnectionOpenBinding({guildId: ME, userId: id, status: status, clientStatus: clientStatus, activities: activities, hiddenActivities: hiddenActivities, processedAtTimestamp: processedAtTimestamp}); binding = env0_0; add = binding.add; id = user.id; Reflect.apply(add, binding, [id]); } } } function GUILD_CREATE_37306({guild}) { // fn#37306, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:8842, offset: 0x010a118f, size: 39 bytes, params: 2, frame: 11 guild.presences.forEach(function({user, status, clientStatus, activities, hiddenActivities, processedAtTimestamp}) { updatePresence({guildId: guild.id, userId: user.id, status: status, clientStatus: clientStatus, activities: activities, hiddenActivities: hiddenActivities, processedAtTimestamp: processedAtTimestamp}); }); function _fun37307({user, status, clientStatus, activities, hiddenActivities, processedAtTimestamp}) { // fn#37307, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:8901, offset: 0x010a11b6, size: 104 bytes, params: 2, frame: 17 updatePresence({guildId: guild.id, userId: user.id, status: status, clientStatus: clientStatus, activities: activities, hiddenActivities: hiddenActivities, processedAtTimestamp: processedAtTimestamp}); } } function PRESENCE_UPDATES({updates}) { // fn#37310, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:9312, offset: 0x010a125e, size: 44 bytes, params: 2, frame: 12 return updates.map(function({guildId, user, status, clientStatus, activities, hiddenActivities, processedAtTimestamp}) { return updatePresence({guildId: guildId ?? ME, userId: user.id, status: status, clientStatus: clientStatus, activities: activities, hiddenActivities: hiddenActivities, processedAtTimestamp: processedAtTimestamp}); }).some(function(a0) { return a0; }); function _fun37311({guildId, user, status, clientStatus, activities, hiddenActivities, processedAtTimestamp}) { // fn#37311, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:9370, offset: 0x010a128a, size: 107 bytes, params: 2, frame: 19 return updatePresence({guildId: guildId ?? ME, userId: user.id, status: status, clientStatus: clientStatus, activities: activities, hiddenActivities: hiddenActivities, processedAtTimestamp: processedAtTimestamp}); } } function PRESENCES_REPLACE({presences}) { // fn#37313, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:9634, offset: 0x010a12f5, size: 46 bytes, params: 2, frame: 12 clearPresences(ME); presences.forEach(_fun37314); function _fun37314({user, status, clientStatus, activities, hiddenActivities, processedAtTimestamp}) { // fn#37314, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:9709, offset: 0x010a1323, size: 104 bytes, params: 2, frame: 17 var value; if (user != null) { value = environment.__proto__; updatePresence({guildId: ME, userId: user.id, status: status, clientStatus: clientStatus, activities: activities, hiddenActivities: hiddenActivities, processedAtTimestamp: processedAtTimestamp}); } } } function ACTIVITY_METADATA_UPDATE({userId, metadata}) { // fn#37315, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:9958, offset: 0x010a138b, size: 29 bytes, params: 2, frame: 3 env0_21[userId] = metadata; return false; } function THREAD_MEMBER_LIST_UPDATE_37316({guildId, members}) { // fn#37316, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:10063, offset: 0x010a13a8, size: 39 bytes, params: 2, frame: 11 members.forEach(_fun37317); function _fun37317(a0) { // fn#37317, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:10135, offset: 0x010a13cf, size: 139 bytes, params: 2, frame: 12 var value; var updatePresenceBinding; var object; let presence = a0.presence; if (presence != null) { value = environment.__proto__; updatePresenceBinding = updatePresence; object = {}; object.guildId = guildId; object.userId = a0.user_id; presence = a0.presence; object.status = presence.status; presence = a0.presence; object.clientStatus = presence.clientStatus; presence = a0.presence; object.activities = presence.activities; presence = a0.presence; object.hiddenActivities = presence.hiddenActivities; presence = a0.presence; object.processedAtTimestamp = presence.processedAtTimestamp; updatePresenceBinding(object); } } } function THREAD_MEMBERS_UPDATE_37318({guildId, addedMembers}) { // fn#37318, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:10421, offset: 0x010a145a, size: 45 bytes, params: 2, frame: 11 if (addedMembers != null) { addedMembers.forEach(_fun37319); } function _fun37319(a0) { // fn#37319, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:10504, offset: 0x010a1487, size: 138 bytes, params: 2, frame: 12 var value; var updatePresenceBinding; var object; let presence = a0.presence; if (presence != null) { value = environment.__proto__; updatePresenceBinding = updatePresence; object = {}; object.guildId = guildId; object.userId = a0.userId; presence = a0.presence; object.status = presence.status; presence = a0.presence; object.clientStatus = presence.clientStatus; presence = a0.presence; object.activities = presence.activities; presence = a0.presence; object.hiddenActivities = presence.hiddenActivities; presence = a0.presence; object.processedAtTimestamp = presence.processedAtTimestamp; updatePresenceBinding(object); } } } function SELF_PRESENCE_STORE_UPDATE(a0) { // fn#37320, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:10794, offset: 0x010a1511, size: 182 bytes, params: 2, frame: 18 var activities; var hiddenActivities; var binding; var setActivitiesForUserBinding; var items2; var sort; var sortActivityBinding; const id = AuthenticationStore.getId(); let property = env0_16[id]; if (property !== a0.status) { binding = env0_16; binding[id] = a0.status; setActivitiesForUserBinding = setActivitiesForUser; activities = a0.activities; items2 = []; arraySpread(items2, activities, 0, undefined); sort = items2.sort; sortActivityBinding = sortActivity; setActivitiesForUserBinding(id, Reflect.apply(sort, items2, [sortActivityBinding])); binding = env0_19; hiddenActivities = a0.hiddenActivities; items2 = []; arraySpread(items2, hiddenActivities, 0, undefined); sort = items2.sort; binding[id] = Reflect.apply(sort, items2, [sortActivityBinding]); delete env0_21[id]; } else { property = env0_17[id]; activities = a0.activities; if (property !== activities) { binding = env0_16; binding[id] = a0.status; setActivitiesForUserBinding = setActivitiesForUser; activities = a0.activities; items2 = []; arraySpread(items2, activities, 0, undefined); sort = items2.sort; sortActivityBinding = sortActivity; setActivitiesForUserBinding(id, Reflect.apply(sort, items2, [sortActivityBinding])); binding = env0_19; hiddenActivities = a0.hiddenActivities; items2 = []; arraySpread(items2, hiddenActivities, 0, undefined); sort = items2.sort; binding[id] = Reflect.apply(sort, items2, [sortActivityBinding]); delete env0_21[id]; return undefined; } property = env0_19[id]; hiddenActivities = a0.hiddenActivities; if (property === hiddenActivities) { return false; } binding = env0_16; binding[id] = a0.status; setActivitiesForUserBinding = setActivitiesForUser; activities = a0.activities; items2 = []; arraySpread(items2, activities, 0, undefined); sort = items2.sort; sortActivityBinding = sortActivity; setActivitiesForUserBinding(id, Reflect.apply(sort, items2, [sortActivityBinding])); binding = env0_19; hiddenActivities = a0.hiddenActivities; items2 = []; arraySpread(items2, hiddenActivities, 0, undefined); sort = items2.sort; binding[id] = Reflect.apply(sort, items2, [sortActivityBinding]); delete env0_21[id]; } } } function _fun37266({hiddenActivities}) { // fn#37266, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:2880, offset: 0x010a02a0, size: 21 bytes, params: 2, frame: 2 return hiddenActivities ?? []; } function _fun37268(a0) { // fn#37268, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:3117, offset: 0x010a02f6, size: 37 bytes, params: 2, frame: 3 return a0.hiddenActivities != null && a0.hiddenActivities.length > 0; } function _fun37269({hiddenActivities}) { // fn#37269, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:3232, offset: 0x010a02a0, size: 21 bytes, params: 2, frame: 2 return hiddenActivities ?? []; } function _fun37271(a0) { // fn#37271, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4568:3398, offset: 0x010a0388, size: 73 bytes, params: 2, frame: 16 return ['' + a0.application_id + ':' + a0.party?.id, a0]; } function _fun37312(a0) { // fn#37312, offset: 0x00c37049, size: 5 bytes, params: 2, frame: 1 return a0; } global.__d(_fun37253, 4396, [6, 7, 15, 17, 18, 1226, 1878, 661, 4397, 22, 644, 21, 566, 694, 2]) /* metro module 4396, dependencies: [6, 7, 15, 17, 18, 1226, 1878, 661, 4397, 22, 644, 21, 566, 694, 2] */;