/* Metro module 4610; source: modules/calls/ChannelRTCParticipants.tsx; dependencies: [6, 7, 1378, 4492, 1226, 4258, 1379, 4259, 4607, 1878, 4609, 4297, 4299, 661, 4291, 4611, 3780, 4612, 22, 4617, 4618, 4285, 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 AuthenticationStore from '../../stores/AuthenticationStore.tsx'; /* Metro dependency 1226 */ import EmbeddedActivitiesStore from '../activities/EmbeddedActivitiesStore.tsx'; /* Metro dependency 1378 */ import ChannelStore from '../../stores/ChannelStore.tsx'; /* Metro dependency 1379 */ import UserStore from '../../stores/UserStore.tsx'; /* Metro dependency 1878 */ import CallStore from '../../stores/CallStore.tsx'; /* Metro dependency 4258 */ import MediaEngineStore from '../../stores/MediaEngineStore.tsx'; /* Metro dependency 4259 */ import VoiceStateStore from '../../stores/VoiceStateStore.tsx'; /* Metro dependency 4297 */ import ApplicationStreamingStore from '../../stores/ApplicationStreamingStore.tsx'; /* Metro dependency 4492 */ import SpeakingStore from '../../stores/SpeakingStore.tsx'; /* Metro dependency 4607 */ import VideoStreamStore from '../../stores/VideoStreamStore.tsx'; /* Metro dependency 4609 */ import * as FileImportTrackerModule from '../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */ import * as SecondaryIndexMapModule from '../../external/discord_common/js/packages/secondary-index-map/SecondaryIndexMap.tsx'; /* Metro dependency 3780 */ import * as ConstantsModule from '../../external/discord_common/js/packages/media-engine/Constants.tsx'; /* Metro dependency 4291 */ import * as CallConstantsModule from './CallConstants.tsx'; /* Metro dependency 4299 */ function _fun39541(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#39541, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4788:6, offset: 0x010e4767, size: 506 bytes, params: 8, frame: 21 const env0_0 = require; const closure = function({applicationId, instanceId}) { return instanceId != null ? 'activity-' + applicationId + '-' + instanceId : 'activity-' + applicationId; }; const sortKey2 = sortKey; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); let value = CallConstantsModule; const env0_15 = value.isStreamParticipant; const env0_16 = value.ParticipantTypes; value = require(661) /* metro dependency 661: Constants */; const env0_17 = value.ActivityTypes; const env0_18 = value.ChannelTypes; value = _fun39544(); (FileImportTrackerModule).fileFinishedImporting('modules/calls/ChannelRTCParticipants.tsx'); exports.default = value; exports.getEmbeddedActivityParticipantId = closure; exports.activityParticipantIdToApplicationId = function(a0) { var r0; var value = a0; if (value == null) { r0 = value; } else { value = value.split('-'); r0 = value[1]; } return r0; }; exports.sortKey = sortKey2; exports.areParticipantsEqual = areParticipantsEqual; exports.ChannelRTCParticipantsIndexes = {VIDEO: 'VIDEO', STREAM: 'STREAM', FILTERED: 'FILTERED', SPEAKING: 'SPEAKING', ACTIVITY: 'ACTIVITY', NOT_POPPED_OUT: 'NOT_POPPED_OUT'}; function sortKey(a0) { // fn#39543, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4788:509, offset: 0x010e49af, size: 326 bytes, params: 2, frame: 17 var r5; var r4; var voiceState; var userVideo; var value6; const type = a0.type; var value; const ACTIVITY = ParticipantTypes.ACTIVITY; if (ACTIVITY === type) { return '\x01' + a0.sortKey; } const HIDDEN_STREAM = ParticipantTypes.HIDDEN_STREAM; if (HIDDEN_STREAM === type) { userVideo = a0.userVideo; value6 = '\x03'; r4 = userVideo ? '\x02' : value6; value = importDefault(4611) /* metro dependency 4611: getParticipantUserKey */; value = value(a0.userNick, a0.user); return '' + r4 + value + value6; } const STREAM = ParticipantTypes.STREAM; if (STREAM === type) { userVideo = a0.userVideo; value6 = '\x03'; r4 = userVideo ? '\x02' : value6; value = importDefault(4611) /* metro dependency 4611: getParticipantUserKey */; value = value(a0.userNick, a0.user); return '' + r4 + value + value6; } const USER = ParticipantTypes.USER; if (USER === type) { voiceState = a0.voiceState; r5 = voiceState == null ? a0.voiceState != null && a0.voiceState.selfStream ? '\x04' : '\x05' : voiceState.selfVideo ? '\x03' : a0.voiceState != null && a0.voiceState.selfStream ? '\x04' : '\x05'; value = importDefault(4611) /* metro dependency 4611: getParticipantUserKey */; value = value(a0.userNick, a0.user); return '' + r5 + value; } } function _fun39544() { // fn#39544, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4788:1010, offset: 0x010e4af5, size: 385 bytes, params: 1, frame: 15 return CreateClass(ChannelRTCParticipants, [{key: 'version', get: function() { return this.participantByIndex.version; }}, {key: 'size', value: function(a0) { return this.participantByIndex.size(a0); }}, {key: 'toArray', value: function(a0) { return this.participantByIndex.values(a0, true); }}, {key: 'rebuild', value: value_39550}, {key: 'getParticipant', value: function(a0) { var value = this.participantByIndex.get(a0); var value2 = null; return value2 != value ? value : value2; }}, {key: 'updateEmbeddedActivities', value: function() { return this.updateParticipant('__EMBEDDED_ACTIVITIES__'); }}, {key: 'hasEmbeddedActivity', value: value_39555}, {key: 'updateParticipant', value: function(a0) { var r2; var r0; var env0_0 = this; var property = this.participants[a0]; r2 = a0 === '__EMBEDDED_ACTIVITIES__' ? this._getParticipantsForEmbeddedActivities() : this._getParticipantsForUser(a0); r0 = property != null || r2.length !== 0; if (r0) { if (property != null) { property.forEach(_fun39557); } r2.forEach(_fun39558); this.participants[a0] = r2; r0 = true; } return r0; }}, {key: 'updateParticipantSpeaking', value: function(a0) { var r1; var env0_0 = this; var env0_1 = a0; r1 = this.participants[a0]?.reduce(_fun39560, false); return r1 != null && r1; }}, {key: 'updateParticipantQuality', value: function(a0, a1, a2) { var r1; var env0_0 = this; var env0_1 = a1; var env0_2 = a2; r1 = this.participants[a0]?.reduce(_fun39562, false); return r1 != null && r1; }}, {key: 'updateGuildRingingUsers', value: function(a0, a1) { var guildRingingUsers = this.guildRingingUsers; if (a1) { guildRingingUsers.add(a0); } else { guildRingingUsers.delete(a0); } }}, {key: 'updateParticipantPoppedOut', value: function(a0, a1) { var poppedOutParticipants = this.poppedOutParticipants; if (a1) { poppedOutParticipants.add(a0); } else { poppedOutParticipants.delete(a0); } }}, {key: '_getEmbeddedActivities', value: value_39565}, {key: '_getParticipantsForEmbeddedActivities', value: function() { var env0_0 = this; return this._getEmbeddedActivities().map(_fun39568); }}, {key: '_getParticipantsForUser', value: value_39569}]); function ChannelRTCParticipants(a0) { // fn#39545, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4788:1031, offset: 0x010e4c76, size: 181 bytes, params: 2, frame: 15 var environment; const value = environment.__proto__; env1_3(this, ChannelRTCParticipants); this.participants = {}; this.lastSpoke = {}; let Set = global.Set; const value3 = Object.create(Set.prototype, {constructor: {value: Set}}); let set = new Set(); this.guildRingingUsers = set instanceof Object ? set : value3; Set = global.Set; const value5 = Object.create(Set.prototype, {constructor: {value: Set}}); set = new Set(); this.poppedOutParticipants = set instanceof Object ? set : value5; const SecondaryIndexMap = (SecondaryIndexMapModule).SecondaryIndexMap; this.participantByIndex = new SecondaryIndexMap(_fun39546, sortKey); this.channelId = a0; function _fun39546(a0) { // fn#39546, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4788:1259, offset: 0x010e4d2b, size: 345 bytes, params: 2, frame: 14 var voiceState; const items2 = []; let type = a0.type; let USER = ParticipantTypes.USER; let r2 = type === USER && a0.speaking; if (r2) { items2.push(env2_20.SPEAKING); } type = a0.type; USER = ParticipantTypes.USER; if (type !== USER) { if (isStreamParticipant(a0)) { items2.push(env2_20.STREAM); r2 = a0.type === ParticipantTypes.HIDDEN_STREAM || a0.streamId == null; r2 = !r2 ? a0.isPoppedOut : r2; if (!r2) { items2.push(env2_20.FILTERED); } } } else { voiceState = a0.voiceState; if (voiceState == null) { if (isStreamParticipant(a0)) { items2.push(env2_20.STREAM); r2 = a0.type === ParticipantTypes.HIDDEN_STREAM || a0.streamId == null; r2 = !r2 ? a0.isPoppedOut : r2; if (!r2) { items2.push(env2_20.FILTERED); } } } else if (voiceState.selfVideo) { items2.push(env2_20.VIDEO); if (!(a0.localVideoDisabled || a0.isPoppedOut)) { items2.push(env2_20.FILTERED); } } else if (isStreamParticipant(a0)) { items2.push(env2_20.STREAM); r2 = a0.type === ParticipantTypes.HIDDEN_STREAM || a0.streamId == null; r2 = !r2 ? a0.isPoppedOut : r2; if (!r2) { items2.push(env2_20.FILTERED); } } } type = a0.type; const ACTIVITY = ParticipantTypes.ACTIVITY; if (type === ACTIVITY) { items2.push(env2_20.ACTIVITY); } if (!('isPoppedOut' in a0 && a0.isPoppedOut)) { items2.push(env2_20.NOT_POPPED_OUT); } return items2; } } function value_39550() { // fn#39550, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4788:1933, offset: 0x010e4ec8, size: 427 bytes, params: 1, frame: 21 var r10; var environment; var r3; var call; var Set; var Object; var keys; var voiceStateStoreBinding; var set; var add; var authenticationStoreBinding; var items2; var applicationStreamingStoreBinding; const value = environment.__proto__; const channel = ChannelStore.getChannel(this.channelId); if (channel == null) { return false; } const type = channel.type; const GUILD_TEXT = ChannelTypes.GUILD_TEXT; if (type === GUILD_TEXT) { return false; } const callStoreBinding = CallStore; const getCall = callStoreBinding.getCall; this.call = Reflect.apply(getCall, callStoreBinding, [this.channelId]); if (channel.isPrivate()) { call = this.call; if (call == null) { return false; } call = this.call; if (call.unavailable) { return false; } Set = global.Set; if (channel.isGuildVocalOrThread()) { Object = global.Object; keys = Object.keys; voiceStateStoreBinding = VoiceStateStore; r3 = Reflect.apply(keys, Object, [voiceStateStoreBinding.getVoiceStatesForChannel(channel.id)]); r10 = voiceStateStoreBinding; } else { r3 = channel.recipients; } set = new Set(); add = set.add; authenticationStoreBinding = AuthenticationStore; Reflect.apply(add, set, [authenticationStoreBinding.getId()]); if (this.guildRingingUsers.size > 0) { Set = global.Set; items2 = []; arraySpread(items2, this.guildRingingUsers, arraySpread(items2, set, 0, r10), r10); set = new Set(); } else { r3 = set; } applicationStreamingStoreBinding = ApplicationStreamingStore; applicationStreamingStoreBinding.getAllActiveStreamsForChannel(this.channelId).forEach(_fun39551); this.participantByIndex.clear(); this.participants = {}; r3.forEach(_fun39552); } else { Set = global.Set; if (channel.isGuildVocalOrThread()) { Object = global.Object; keys = Object.keys; voiceStateStoreBinding = VoiceStateStore; r3 = Reflect.apply(keys, Object, [voiceStateStoreBinding.getVoiceStatesForChannel(channel.id)]); r10 = voiceStateStoreBinding; } else { r3 = channel.recipients; } set = new Set(); add = set.add; authenticationStoreBinding = AuthenticationStore; Reflect.apply(add, set, [authenticationStoreBinding.getId()]); if (this.guildRingingUsers.size > 0) { Set = global.Set; items2 = []; arraySpread(items2, this.guildRingingUsers, arraySpread(items2, set, 0, r10), r10); set = new Set(); } else { r3 = set; } applicationStreamingStoreBinding = ApplicationStreamingStore; applicationStreamingStoreBinding.getAllActiveStreamsForChannel(this.channelId).forEach(_fun39551); this.participantByIndex.clear(); this.participants = {}; r3.forEach(_fun39552); } this.updateEmbeddedActivities(); return true; function _fun39551({ownerId}) { // fn#39551, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4788:2383, offset: 0x010e5073, size: 28 bytes, params: 2, frame: 11 return env0_1.add(ownerId); } function _fun39552(a0) { // fn#39552, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4788:2473, offset: 0x010e508f, size: 23 bytes, params: 2, frame: 11 return env0_0.updateParticipant(a0); } } function value_39555() { // fn#39555, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4788:2761, offset: 0x010e50e0, size: 34 bytes, params: 1, frame: 11 const size = this.size; const value = environment.__proto__; const ACTIVITY = env1_20.ACTIVITY; return Reflect.apply(size, this, [ACTIVITY]) > 0; } function value_39556(a0) { // fn#39556, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4788:2836, offset: 0x010e5102, size: 128 bytes, params: 2, frame: 17 const property = this.participants[a0]; const r2 = a0 === '__EMBEDDED_ACTIVITIES__' ? this._getParticipantsForEmbeddedActivities() : this._getParticipantsForUser(a0); let r0 = property != null || r2.length !== 0; if (r0) { if (property != null) { property.forEach(_fun39557); } r2.forEach(_fun39558); this.participants[a0] = r2; r0 = true; } return r0; function _fun39557({id}) { // fn#39557, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4788:3012, offset: 0x010e5182, size: 35 bytes, params: 2, frame: 11 env0_0.participantByIndex.delete(id); } function _fun39558(a0) { // fn#39558, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4788:3067, offset: 0x010e51a5, size: 36 bytes, params: 2, frame: 13 const participantByIndex = env0_0.participantByIndex; participantByIndex.set(a0.id, a0); } } function value_39559(a0) { // fn#39559, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4788:3178, offset: 0x010e51c9, size: 68 bytes, params: 2, frame: 15 const env0_1 = a0; const r1 = this.participants[a0]?.reduce(_fun39560, false); return r1 != null && r1; function _fun39560(a0, a1) { // fn#39560, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4788:3262, offset: 0x010e520d, size: 292 bytes, params: 3, frame: 20 var r0; var value3; var moduleValue; var getIsSpeaking; var object; var binding; var value5; var value6; var isSoundSharing2; var participantByIndex; var get; var id; var value7; var lastSpoke; var Date; var set; const value = a0; const type = a1.type; const USER = ParticipantTypes.USER; if (type === USER) { value3 = undefined; moduleValue = require(4612) /* metro dependency 4612: useIsSpeaking */; getIsSpeaking = moduleValue.getIsSpeaking; object = {}; binding = env0_1; object.userId = binding; value5 = true; object.checkIsMuted = value5; value6 = Reflect.apply(getIsSpeaking, moduleValue, [object]); isSoundSharing2 = SpeakingStore.isSoundSharing(binding); participantByIndex = env0_0.participantByIndex; get = participantByIndex.get; id = a1.id; value7 = Reflect.apply(get, participantByIndex, [id]); if ((value7 == null ? value3 : value7.type) !== ParticipantTypes.USER) { if (value6) { lastSpoke = env0_0.lastSpoke; binding = env0_1; Date = global.Date; lastSpoke[binding] = Date.now(); } binding = env0_0; participantByIndex = binding.participantByIndex; set = participantByIndex.set; id = a1.id; object = {}; copyDataProperties(object, a1, value6); object['speaking'] = value6; lastSpoke = binding.lastSpoke; object['lastSpoke'] = lastSpoke[env0_1]; object['soundsharing'] = isSoundSharing2; Reflect.apply(set, participantByIndex, [id, object]); r0 = value5; } else if (value7.speaking !== value6) { if (value6) { lastSpoke = env0_0.lastSpoke; binding = env0_1; Date = global.Date; lastSpoke[binding] = Date.now(); } binding = env0_0; participantByIndex = binding.participantByIndex; set = participantByIndex.set; id = a1.id; object = {}; copyDataProperties(object, a1, value6); object['speaking'] = value6; lastSpoke = binding.lastSpoke; object['lastSpoke'] = lastSpoke[env0_1]; object['soundsharing'] = isSoundSharing2; Reflect.apply(set, participantByIndex, [id, object]); r0 = value5; } else if (value7.soundsharing === isSoundSharing2) { r0 = value; } else { if (value6) { lastSpoke = env0_0.lastSpoke; binding = env0_1; Date = global.Date; lastSpoke[binding] = Date.now(); } binding = env0_0; participantByIndex = binding.participantByIndex; set = participantByIndex.set; id = a1.id; object = {}; copyDataProperties(object, a1, value6); object['speaking'] = value6; lastSpoke = binding.lastSpoke; object['lastSpoke'] = lastSpoke[env0_1]; object['soundsharing'] = isSoundSharing2; Reflect.apply(set, participantByIndex, [id, object]); r0 = value5; } return r0; } return value; } } function value_39561(a0, a1, a2) { // fn#39561, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4788:3675, offset: 0x010e5331, size: 78 bytes, params: 4, frame: 15 const env0_1 = a1; const env0_2 = a2; const r1 = this.participants[a0]?.reduce(_fun39562, false); return r1 != null && r1; function _fun39562(a0, a1) { // fn#39562, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4788:3763, offset: 0x010e537f, size: 99 bytes, params: 3, frame: 17 var r0; var participantByIndex; var set; var id; var object; const value = a0; const type = a1.type; const STREAM = ParticipantTypes.STREAM; if (type !== STREAM) { r0 = value; } else { participantByIndex = env0_0.participantByIndex; set = participantByIndex.set; id = a1.id; object = {}; copyDataProperties(object, a1, undefined); object['maxResolution'] = require; object['maxFrameRate'] = importDefault; Reflect.apply(set, participantByIndex, [id, object]); r0 = true; } return r0; } } function value_39565() { // fn#39565, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4788:4161, offset: 0x010e543a, size: 122 bytes, params: 1, frame: 17 var environment; var r0; var uniqBy; var items2; var value4; let value = environment.__proto__; const embeddedActivitiesStoreBinding = EmbeddedActivitiesStore; const embeddedActivitiesForChannel = embeddedActivitiesStoreBinding.getEmbeddedActivitiesForChannel(this.channelId); const selfEmbeddedActivityForChannel = embeddedActivitiesStoreBinding.getSelfEmbeddedActivityForChannel(this.channelId); if (selfEmbeddedActivityForChannel == null) { r0 = embeddedActivitiesForChannel; } else { value = require(22) /* metro dependency 22 */; uniqBy = value.uniqBy; items2 = []; value4 = arraySpread(items2, embeddedActivitiesForChannel, 0, embeddedActivitiesForChannel); items2[value4] = selfEmbeddedActivityForChannel; value4 + 1; value = Reflect.apply(uniqBy, value, [items2, function(a0) { return a0.compositeInstanceId; }]); r0 = value; } return r0; } function value_39567() { // fn#39567, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4788:4405, offset: 0x010e54bf, size: 38 bytes, params: 1, frame: 11 return this._getEmbeddedActivities().map(_fun39568); function _fun39568(a0, a1) { // fn#39568, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4788:4458, offset: 0x010e54e5, size: 210 bytes, params: 3, frame: 18 var r3; const object = {}; let value = environment.__proto__.__proto__; const ACTIVITY = ParticipantTypes.ACTIVITY; object.type = ACTIVITY; const getEmbeddedActivityParticipantIdBinding = getEmbeddedActivityParticipantId; const value2 = undefined; object.id = getEmbeddedActivityParticipantIdBinding({applicationId: a0.applicationId, instanceId: a0.compositeInstanceId}); object.applicationId = a0.applicationId; const PLAYING = ActivityTypes.PLAYING; object.activityType = PLAYING; object.activityUrl = a0.url; const participants = a0.participants; const value3 = null; const r7 = value3 != participants ? participants : []; const items2 = []; arraySpread(items2, r7, 0, r7); object.participants = items2; value = ChannelStore.getChannel(env0_0.channelId); if (value3 == value) { r3 = value2; } else { value = value.getGuildId(); r3 = value; } object.guildId = value3 != r3 ? r3 : value3; object.sortKey = a1.toString(); return object; } } function value_39569(a0) { // fn#39569, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4788:4870, offset: 0x010e55b7, size: 1005 bytes, params: 2, frame: 28 var r8; var r2; var r6; var r12; var type; var r14; var selfVideo; var has; var object; var videoStreamStoreBinding; var getUserStreamData; var id; var property; var defaultImport; var mediaEngineStoreBinding; var isLocalVideoDisabled; var poppedOutParticipants; var value20; var participant; var ownerId; var authenticationStoreBinding; var STREAM; var object4; var object5; const items2 = []; let value = environment.__proto__; const user = UserStore.getUser(a0); const value3 = null; if (value3 != user) { var voiceStateStoreBinding = VoiceStateStore; var voiceStateForChannel = voiceStateStoreBinding.getVoiceStateForChannel(this.channelId, a0); var voicePlatformForChannel = voiceStateStoreBinding.getVoicePlatformForChannel(this.channelId, a0); var channel = ChannelStore.getChannel(this.channelId); var value7 = undefined; r8 = value3 == channel ? value7 : channel.getGuildId(); var call = this.call; r2 = value3 == call || value3 == call.ringing ? value7 : call.ringing.includes(a0); r2 = !r2 ? this.guildRingingUsers.has(a0) : r2; var r5 = value3 != r2 && r2; if (value3 != voiceStateForChannel || r5) { object = {}; object.type = ParticipantTypes.USER; videoStreamStoreBinding = VideoStreamStore; copyDataProperties(object, videoStreamStoreBinding.getUserStreamData(a0, r8), undefined); object['user'] = user; id = user.id; object['id'] = id; object['voiceState'] = voiceStateForChannel; object['voicePlatform'] = voicePlatformForChannel; object['speaking'] = (require(4612) /* metro dependency 4612: useIsSpeaking */).getIsSpeaking({userId: a0, checkIsMuted: true}); property = this.lastSpoke[a0]; object['lastSpoke'] = value3 != property ? property : 0; object['soundsharing'] = SpeakingStore.isSoundSharing(a0); object['ringing'] = r5; defaultImport = importDefault(4617) /* metro dependency 4617: NicknameUtils */; object['userNick'] = defaultImport.getName(r8, this.channelId, user); object['userAvatarDecoration'] = (require(4618) /* metro dependency 4618: useAvatarDecoration */).getAvatarDecoration(user, r8); mediaEngineStoreBinding = MediaEngineStore; isLocalVideoDisabled = mediaEngineStoreBinding.isLocalVideoDisabled; id = user.id; object['localVideoDisabled'] = Reflect.apply(isLocalVideoDisabled, mediaEngineStoreBinding, [id]); poppedOutParticipants = this.poppedOutParticipants; has = poppedOutParticipants.has; id = user.id; object['isPoppedOut'] = Reflect.apply(has, poppedOutParticipants, [id]); items2.push(object); } var streamForUser = ApplicationStreamingStore.getStreamForUser(a0, r8); r5 = value3 != streamForUser ? streamForUser : ApplicationStreamingStore.getActiveStreamForUser(a0, r8); if (value3 != r5) { if (r5.channelId === this.channelId) { value20 = (require(4285) /* metro dependency 4285: StreamKeyUtils */).encodeStreamKey(r5); participant = this.getParticipant(value20); ownerId = r5.ownerId; authenticationStoreBinding = AuthenticationStore; r12 = ownerId === authenticationStoreBinding.getId() && ApplicationStreamingStore.isSelfStreamHidden(this.channelId); type = value3 == participant ? value7 : participant.type; STREAM = ParticipantTypes.STREAM; if (type !== STREAM) { r6 = value3; } else { if (value3 != participant.maxResolution) { object4 = {}; copyDataProperties(object4, participant.maxResolution, undefined); r14 = object4; } else { r14 = value7; } r6 = {maxResolution: r14, maxFrameRate: participant.maxFrameRate}; } object5 = {}; videoStreamStoreBinding = VideoStreamStore; getUserStreamData = videoStreamStoreBinding.getUserStreamData; STREAM = MediaEngineContextTypes.STREAM; copyDataProperties(object5, Reflect.apply(getUserStreamData, videoStreamStoreBinding, [a0, r8, STREAM]), undefined); copyDataProperties(object5, r6, undefined); r12 = r12 ? ParticipantTypes.HIDDEN_STREAM : ParticipantTypes.STREAM; object5['type'] = r12; object5['id'] = value20; selfVideo = value3 == voiceStateForChannel ? value7 : voiceStateForChannel.selfVideo; object5['userVideo'] = value3 != selfVideo && selfVideo; object5['user'] = user; value = importDefault(4617) /* metro dependency 4617: NicknameUtils */; value = value.getName(r8, this.channelId, user); object5['userNick'] = value; object5['stream'] = r5; value = this.poppedOutParticipants.has(value20); object5['isPoppedOut'] = value; items2.push(object5); } } } return items2; } } } function areParticipantsEqual(a0, a1) { // fn#39571, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4788:6625, offset: 0x010e59c7, size: 168 bytes, params: 3, frame: 14 var r1; var r2; var r3; var r4; var r5; var r8; var item3; var value3; var item5; var value5; let iterator = a0[Symbol.iterator](); const iterator2 = iterator.next; const value = undefined; let item2 = Reflect.apply(iterator2, iterator, []); let item = item2.value; item2 = item2.done ? undefined : iterator; const value2 = item2 === value; if (value2) { } if (value2) { r1 = item2; r2 = value2; r3 = value; } else { item3 = Reflect.apply(iterator2, item2, []); item = item3.value; item3 = item3.done ? undefined : item2; value3 = item3 === value; if (value3) { r1 = item3; r2 = value3; r3 = value; } else { r1 = item3; r2 = value3; r3 = item; } } if (!r2) { r1.return(); } iterator = a1[Symbol.iterator](); const iterator3 = iterator.next; let item4 = Reflect.apply(iterator3, iterator, []); item = item4.value; item4 = item4.done ? undefined : iterator; const value4 = item4 === value; if (value4) { } if (value4) { r4 = item4; r5 = value4; r8 = value; } else { item5 = Reflect.apply(iterator3, item4, []); item = item5.value; item5 = item5.done ? undefined : item4; value5 = item5 === value; if (value5) { r4 = item5; r5 = value5; r8 = value; } else { r4 = item5; r5 = value5; r8 = item; } } if (!r5) { r4.return(); } return r3 === r8; } global.__d(_fun39541, 4610, [6, 7, 1378, 4492, 1226, 4258, 1379, 4259, 4607, 1878, 4609, 4297, 4299, 661, 4291, 4611, 3780, 4612, 22, 4617, 4618, 4285, 2]) /* metro module 4610, dependencies: [6, 7, 1378, 4492, 1226, 4258, 1379, 4259, 4607, 1878, 4609, 4297, 4299, 661, 4291, 4611, 3780, 4612, 22, 4617, 4618, 4285, 2] */;