Files
discord-decomp/sources/modules/activities/EmbeddedActivitiesManager.tsx
T
2026-07-28 01:06:53 +03:00

1427 lines
83 KiB
TypeScript

/* Metro module 8097; source: modules/activities/EmbeddedActivitiesManager.tsx; dependencies: [6, 7, 15, 17, 18, 5, 4606, 1383, 1226, 1379, 4294, 1934, 1878, 8098, 1378, 661, 8049, 477, 507, 3774, 8099, 8093, 683, 8064, 8100, 8101, 7712, 491, 1861, 7866, 8102, 8067, 8103, 6772, 7858, 1244, 8105, 7860, 8106, 9472, 1909, 6789, 1239, 694, 4561, 2] */
import Module00005 from '../../by-id/module-00005.js'; /* Metro dependency 5 */
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 Dispatcher from '../../Dispatcher.tsx'; /* Metro dependency 694 */
import AuthenticationStore from '../../stores/AuthenticationStore.tsx'; /* Metro dependency 1226 */
import EmbeddedActivitiesStore from './EmbeddedActivitiesStore.tsx'; /* Metro dependency 1378 */
import ChannelStore from '../../stores/ChannelStore.tsx'; /* Metro dependency 1379 */
import UserStore from '../../stores/UserStore.tsx'; /* Metro dependency 1878 */
import SelectedChannelStore from '../../stores/SelectedChannelStore.tsx'; /* Metro dependency 1934 */
import RTCConnectionStore from '../../stores/RTCConnectionStore.tsx'; /* Metro dependency 4294 */
import ChannelRTCStore from '../calls/ChannelRTCStore.tsx'; /* Metro dependency 4606 */
import ActivityShelfStore from './ActivityShelfStore.tsx'; /* Metro dependency 8098 */
import * as FileImportTrackerModule from '../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */
import * as ConstantsModule from '../../Constants.tsx'; /* Metro dependency 661 */
import * as ComponentDispatchUtilsModule from '../../utils/ComponentDispatchUtils.tsx'; /* Metro dependency 1239 */
import * as ChannelRecordModule from '../../records/ChannelRecord.tsx'; /* Metro dependency 1383 */
import * as ServerModule from '../../flow/Server.tsx'; /* Metro dependency 1909 */
import * as LeaveCurrentFrameModule from './utils/leaveCurrentFrame.tsx'; /* Metro dependency 8064 */
import * as TryLaunchAsFrameModule from './utils/tryLaunchAsFrame.tsx'; /* Metro dependency 8100 */
import * as PendingFrameLaunchModule from './utils/pendingFrameLaunch.tsx'; /* Metro dependency 8101 */
function _fun64888(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#64888, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:6, offset: 0x01bb80de, size: 579 bytes, params: 8, frame: 19
let env0_0 = require;
const _arrayLikeToArray_64891 = 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 clearAwaitingAnalyticsContextAsync = function(a0, a1) {
var env0_0 = a0;
var env0_1 = a1;
global.setTimeout(_fun64899, 2000);
};
const handleActivityClose = function() {
return _handleActivityClose.apply(this, arguments);
};
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = ConstantsModule;
const env0_18 = value.AnalyticEvents;
const env0_19 = value.RPCCloseCodes;
const env0_20 = value.Endpoints;
const env0_21 = value.RTCConnectionStates;
const env0_22 = value.ComponentActions;
const env0_23 = {};
const env0_24 = {};
const env0_25 = {};
value = importDefault(4561) /* metro dependency 4561: LifecycleManager */;
value = _fun64908(value);
(FileImportTrackerModule).fileFinishedImporting('modules/activities/EmbeddedActivitiesManager.tsx');
exports.default = value;
exports.trackFrameSessionStart = trackFrameSessionStart;
exports.getActiveAnalyticsSessionIDs = getActiveAnalyticsSessionIDs;
exports.trackFrameSessionEnd = trackFrameSessionEnd;
function _createForOfIteratorHelperLoose_64889(a0, a1) { // fn#64889, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:390, offset: 0x01bb8321, 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 _fun64890;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_64891(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_64891(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_64891(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun64890;
}
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 _fun64890() { // fn#64890, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:961, 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 _isNativeReflectConstruct_64892() { // fn#64892, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:1300, offset: 0x01bb8493, 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_64892_isNativeReflectConstruct = function() {
return !!result;
})();
}
function getShelfItemTrackingProperties(a0) { // fn#64895, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:1512, offset: 0x01bb84f1, size: 110 bytes, params: 2, frame: 16
var release_phase;
var activity;
var client_platform_config;
var defaultImport;
var moduleValue;
const value = undefined;
if (a0 == null) {
release_phase = value;
} else {
activity = a0.activity;
if (activity == null) {
release_phase = value;
} else {
client_platform_config = activity.client_platform_config;
defaultImport = importDefault(8049) /* metro dependency 8049: getPlatform */;
moduleValue = require(477) /* metro dependency 477: PlatformUtils */;
release_phase = client_platform_config[defaultImport(moduleValue.getOS())].release_phase;
}
}
return {releasePhase: release_phase};
}
function setAwaitingAnalyticsContext({applicationId, nonce, locations, source}) { // fn#64896, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:1687, offset: 0x01bb855f, size: 72 bytes, params: 2, frame: 7
let r0 = locations != null || source != null;
if (r0) {
env0_24[applicationId] = {nonce: nonce, locations: locations, source: source};
r0 = true;
}
return r0;
}
function clearAwaitingAnalyticsContextImmediate(a0, a1) { // fn#64897, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:1839, offset: 0x01bb85a7, size: 47 bytes, params: 3, frame: 5
const property = env0_24[a0];
if (property != null) {
if (property.nonce === a1) {
delete env0_24[a0];
return property;
}
}
}
function clearAwaitingAnalyticsContextAsync(a0, a1) { // fn#64898, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:1948, offset: 0x01bb85d6, size: 45 bytes, params: 3, frame: 13
const env0_0 = a0;
const env0_1 = a1;
global.setTimeout(_fun64899, 2000);
function _fun64899() { // fn#64899, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:2009, offset: 0x01bb8603, size: 28 bytes, params: 1, frame: 13
return clearAwaitingAnalyticsContextImmediate(env0_0, require);
}
}
function handleActivityLaunchStart({applicationId, nonce, analyticsLocations, source}) { // fn#64900, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:2063, offset: 0x01bb861f, size: 75 bytes, params: 2, frame: 14
setAwaitingAnalyticsContext({applicationId: applicationId, nonce: nonce, locations: analyticsLocations,
source: source ?? undefined});
}
function _handleActivityClose() { // fn#64902, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:2327, offset: 0x01bb866a, size: 48 bytes, params: 1, frame: 14
return Module00005(_fun64904).apply(this, arguments);
async function _fun64904({applicationId, location, instanceId}) { // fn#64904, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:2390, offset: 0x01bb86ac, size: 743 bytes, params: 2, frame: 34
var HTTP;
var post;
var object;
var property;
var binding2;
var embeddedActivityLocationChannelId;
var embeddedActivityLocationGuildId;
var channel;
var currentUser;
var shelfActivities;
var binding3;
var value20;
var releasePhase;
var rawThermalState;
var value23;
var track;
var ACTIVITY_SESSION_LEFT;
var mediaSessionIds;
var activityUserSessionId;
var kind;
var value24;
var ACTIVITY_IFRAME_UNMOUNT;
if (false) {
return undefined;
}
value = undefined;
await value;
if (false) {
return undefined;
}
let binding = env2_17;
const embeddedActivityDurationMs = binding.getEmbeddedActivityDurationMs(location.id, applicationId);
const sessionId = env2_11.getSessionId();
if (instanceId != null && sessionId != null) {
binding = env2_0;
HTTP = binding(env2_2[18]).HTTP;
post = HTTP.post;
binding = env2_20;
await Reflect.apply(post, HTTP, [{url: binding.ACTIVITY_LEAVE(applicationId, location.id, instanceId),
body: {session_id: sessionId}, retries: 2, rejectWithError: false}]);
if (false) {
return undefined;
}
property = env2_23[applicationId];
binding = env2_0;
binding2 = env2_2;
embeddedActivityLocationChannelId = binding(binding2[19]).getEmbeddedActivityLocationChannelId(location);
embeddedActivityLocationGuildId = binding(binding2[19]).getEmbeddedActivityLocationGuildId(location);
binding = env2_12;
channel = binding.getChannel(embeddedActivityLocationChannelId);
binding = env2_15;
currentUser = binding.getCurrentUser();
} else {
property = env2_23[applicationId];
binding = env2_0;
binding2 = env2_2;
embeddedActivityLocationChannelId = binding(binding2[19]).getEmbeddedActivityLocationChannelId(location);
embeddedActivityLocationGuildId = binding(binding2[19]).getEmbeddedActivityLocationGuildId(location);
channel = env2_12.getChannel(embeddedActivityLocationChannelId);
currentUser = env2_15.getCurrentUser();
}
if (property != null) {
if (currentUser != null) {
if (property.connectedSince == null) {
binding = env2_17;
shelfActivities = binding.getShelfActivities(embeddedActivityLocationGuildId);
binding = env2_1;
binding3 = env2_2;
value20 = binding(binding3[20])({applicationId: applicationId, activityConfigs: shelfActivities});
releasePhase = env2_30(value20).releasePhase;
rawThermalState = binding(binding3[21]).getRawThermalState();
value23 = binding(binding3[22]);
track = value23.track;
ACTIVITY_SESSION_LEFT = env2_18.ACTIVITY_SESSION_LEFT;
object = {channel_id: embeddedActivityLocationChannelId, guild_id: embeddedActivityLocationGuildId};
mediaSessionIds = property.mediaSessionIds;
object.media_session_id = mediaSessionIds[0];
object.activity_session_id = property.activitySessionId;
object.application_id = applicationId;
object.duration_ms = embeddedActivityDurationMs;
object.user_premium_tier = currentUser.premiumType;
object.raw_thermal_state = rawThermalState;
object.release_phase = releasePhase;
object.shelf_rank = value20 == null || value20.activity == null ? value : value20.activity.shelf_rank;
activityUserSessionId = property.activityUserSessionId;
object.activity_user_session_id = activityUserSessionId;
object.channel_type = channel == null ? value : channel.type;
mediaSessionIds = property.mediaSessionIds;
object.media_session_ids = mediaSessionIds;
kind = location.kind;
object.embedded_activity_location_kind = kind;
Reflect.apply(track, value23, [ACTIVITY_SESSION_LEFT, object]);
binding = env2_1;
value24 = binding(env2_2[22]);
track = value24.track;
ACTIVITY_IFRAME_UNMOUNT = env2_18.ACTIVITY_IFRAME_UNMOUNT;
mediaSessionIds = property.mediaSessionIds;
activityUserSessionId = property.activityUserSessionId;
kind = location.kind;
Reflect.apply(track, value24, [ACTIVITY_IFRAME_UNMOUNT, {channel_id: embeddedActivityLocationChannelId,
guild_id: embeddedActivityLocationGuildId, application_id: applicationId,
instance_ids: property.launchId != null ? [property.launchId] : value,
media_session_ids: mediaSessionIds,
activity_user_session_id: activityUserSessionId, raw_thermal_state: rawThermalState,
duration_ms: embeddedActivityDurationMs, embedded_activity_location_kind: kind}]);
delete env2_23[applicationId];
}
}
}
return value;
}
}
function handleOpenEmbeddedActivity({applicationId, isFirstActivityInChannel, isStart, participants, embeddedActivity, location, inviterUserId}) { // fn#64905, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:3790, offset: 0x01bb8993, size: 1413 bytes, params: 2, frame: 38
var r8;
var r9;
var r11;
var r19;
var r24;
var locations;
var r25;
var shelf_rank;
var type;
var value3;
var embeddedActivityLocationChannelId;
var embeddedActivityLocationGuildId;
var channel;
var defaultImport;
var value9;
var mediaSessionId;
var compositeInstanceId;
var value14;
var value15;
var currentUser;
var shelfActivities;
var activityShelfStoreBinding;
var shelfOrder;
var value19;
var value20;
var releasePhase;
var rawThermalState;
var launchId;
var property;
var moduleValue6;
var defaultImport4;
var track;
var ACTIVITY_SESSION_JOINED;
var value24;
var kind;
var defaultImport5;
var ACTIVITY_IFRAME_MOUNT;
var stashPendingFrameLaunch;
var value;
(LeaveCurrentFrameModule).leaveCurrentFrame();
const tryLaunchAsFrame = TryLaunchAsFrameModule.tryLaunchAsFrame;
let object = {applicationId: applicationId};
if (Reflect.apply(tryLaunchAsFrame, TryLaunchAsFrameModule, [object])) {
value = require(8101) /* metro dependency 8101: pendingFrameLaunch */;
stashPendingFrameLaunch = value.stashPendingFrameLaunch;
object = {isStart: isStart, inviterUserId: inviterUserId};
object.channelId = (require(3774) /* metro dependency 3774: embeddedActivityLocationUtils */).getEmbeddedActivityLocationChannelId(location);
object.guildId = (require(3774) /* metro dependency 3774: embeddedActivityLocationUtils */).getEmbeddedActivityLocationGuildId(location);
object.locationKind = location.kind;
object.launchId = embeddedActivity.launchId;
object.compositeInstanceId = embeddedActivity.compositeInstanceId;
object.activitiesInfraVersion = 'location' in embeddedActivity ? 2 : 1;
Reflect.apply(stashPendingFrameLaunch, value, [applicationId, object]);
} else {
var env0_1 = AuthenticationStore.getId();
value3 = participants.find(_fun64906);
embeddedActivityLocationChannelId = (require(3774) /* metro dependency 3774: embeddedActivityLocationUtils */).getEmbeddedActivityLocationChannelId(location);
embeddedActivityLocationGuildId = (require(3774) /* metro dependency 3774: embeddedActivityLocationUtils */).getEmbeddedActivityLocationGuildId(location);
channel = ChannelStore.getChannel(embeddedActivityLocationChannelId);
r8 = isStart && channel != null;
r8 = r8 && channel.isPrivate();
r8 = r8 && isFirstActivityInChannel;
r8 = r8 && value3 == null;
if (r8) {
defaultImport = importDefault(7712) /* metro dependency 7712: ChannelRTCActionCreators */;
defaultImport.selectParticipant(channel.id, null);
}
value9 = null;
if (value9 != value3) {
mediaSessionId = RTCConnectionStore.getMediaSessionId();
compositeInstanceId = embeddedActivity.compositeInstanceId;
r9 = value9 == mediaSessionId && (value9 == channel ? undefined : channel.isVocal()) === true;
r9 = r9 && (value9 == channel ? undefined : channel.isPrivate()) === false;
if (value9 != compositeInstanceId) {
if (!r9) {
value14 = (require(491) /* metro dependency 491 */).v4();
value15 = 1;
r11 = 'location' in embeddedActivity ? 2 : value15;
currentUser = UserStore.getCurrentUser();
if (value9 != currentUser) {
shelfActivities = EmbeddedActivitiesStore.getShelfActivities(embeddedActivityLocationGuildId);
activityShelfStoreBinding = ActivityShelfStore;
shelfOrder = activityShelfStoreBinding.getState().shelfOrder;
value19 = (importDefault(8099) /* metro dependency 8099: getShelfItemData */)({applicationId: applicationId,
activityConfigs: shelfActivities});
value20 = value15 + shelfOrder.findIndex(function(a0) {
return a0 === applicationId;
});
releasePhase = getShelfItemTrackingProperties(value19).releasePhase;
rawThermalState = (importDefault(8093) /* metro dependency 8093: ThermalUtilsNative */).getRawThermalState();
r19 = value9 != mediaSessionId ? [mediaSessionId] : [];
launchId = embeddedActivity.launchId;
env0_23[applicationId] = {activitySessionId: compositeInstanceId,
activityUserSessionId: value14,
launchId: launchId, mediaSessionIds: r19, activitiesInfraVersion: r11};
property = env0_24[applicationId];
moduleValue6 = require(1861) /* metro dependency 1861: StringUtils */;
r24 = moduleValue6.isNullOrEmpty(value3.nonce) || value3.nonce === (value9 == property ? undefined : property.nonce) ? property : undefined;
defaultImport4 = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
track = defaultImport4.track;
ACTIVITY_SESSION_JOINED = AnalyticEvents.ACTIVITY_SESSION_JOINED;
object = {channel_id: embeddedActivityLocationChannelId,
guild_id: embeddedActivityLocationGuildId,
media_session_id: r19[0], activity_session_id: compositeInstanceId,
application_id: applicationId};
locations = value9 == r24 ? undefined : r24.locations;
object.location_stack = locations;
object.user_premium_tier = currentUser.premiumType;
object.raw_thermal_state = rawThermalState;
r25 = value9 != channel ? ChannelRTCStore.getUserParticipantCount(channel.id) : value9;
object.n_participants = r25;
object.is_activity_start = isStart;
object.release_phase = releasePhase;
shelf_rank = value9 == value19 || value9 == value19.activity ? undefined : value19.activity.shelf_rank;
object.shelf_rank = shelf_rank;
value24 = value20 > 0;
r25 = value24 ? value20 : value9;
object.shelf_sorted_rank = r25;
object.activity_user_session_id = value14;
type = value9 == channel ? undefined : channel.type;
object.channel_type = type;
object.source = value9 == r24 ? undefined : r24.source;
r25 = value9 != channel ? (require(7866) /* metro dependency 7866: CommandPermissionContext */).computeCommandContextType(channel,
applicationId) : value9;
object.command_context_type = r25;
object.invite_inviter_id = inviterUserId;
object.interaction_id = value9 == r24 ? undefined : r24.interactionId;
kind = location.kind;
object.embedded_activity_location_kind = kind;
Reflect.apply(track, defaultImport4, [ACTIVITY_SESSION_JOINED, object]);
defaultImport5 = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
track = defaultImport5.track;
ACTIVITY_IFRAME_MOUNT = AnalyticEvents.ACTIVITY_IFRAME_MOUNT;
locations = value9 == r24 ? undefined : r24.locations;
type = value9 == channel ? undefined : channel.type;
launchId = embeddedActivity.launchId;
shelf_rank = value9 == value19 || value9 == value19.activity ? undefined : value19.activity.shelf_rank;
kind = location.kind;
Reflect.apply(track, defaultImport5, [ACTIVITY_IFRAME_MOUNT, {location_stack: locations,
channel_id: embeddedActivityLocationChannelId, channel_type: type,
guild_id: embeddedActivityLocationGuildId,
application_id: applicationId, instance_id: launchId, initial_media_session_id: r19[0],
activity_user_session_id: value14, raw_thermal_state: rawThermalState,
is_activity_start: isStart,
shelf_rank: shelf_rank, shelf_sorted_rank: value24 ? value20 : value9,
activities_infra_version: r11,
embedded_activity_location_kind: kind}]);
}
}
}
}
}
function _fun64906({userId}) { // fn#64906, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:4390, offset: 0x01bb8f18, size: 21 bytes, params: 2, frame: 2
return userId === env0_1;
}
}
function _fun64908(a0) { // fn#64908, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:6439, offset: 0x01bb8f2d, size: 91 bytes, params: 2, frame: 16
const EmbeddedActivitiesManager2 = EmbeddedActivitiesManager;
Inherits(EmbeddedActivitiesManager2, a0);
return CreateClass(EmbeddedActivitiesManager2, [{key: '_initialize', value: value_64935}, {key: '_terminate',
value: value_64936}]);
function EmbeddedActivitiesManager(a0) { // fn#64909, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:6451, offset: 0x01bb8f88, size: 316 bytes, params: 2, frame: 20
var r0;
var Reflect;
let value = copyRestArgs(0, undefined);
let binding = env1_3;
binding(this, EmbeddedActivitiesManager);
const items2 = [];
arraySpread(items2, value, 0, items2);
value = env1_6(EmbeddedActivitiesManager);
binding = env1_5;
if (_isNativeReflectConstruct_64892()) {
Reflect = global.Reflect;
value = Reflect.construct(value, items2, env1_6(this).constructor);
r0 = value;
} else {
value = value.apply(this, items2);
r0 = value;
}
value = binding(this, r0);
value.handleSelectedChannelUpdate = handleSelectedChannelUpdate;
value.handleActivityWebViewRelease = handleActivityWebViewRelease;
value.handleActivityLaunchSuccess = handleActivityLaunchSuccess;
value.handleActivityLaunchFail = _fun64914();
value.handleActivityLaunchCancel = function({nonce, applicationId}) {
clearAwaitingAnalyticsContextImmediate(applicationId, nonce);
};
value.superHandleRPCDisconnect = superHandleRPCDisconnect;
value.handleCallDelete = handleCallDelete;
value.handleRTCConnectionState = handleRTCConnectionState;
value.handleCallEnded = handleCallEnded;
value.handleDeferredOpen = _fun64923();
value.handleGuildDelete = handleGuildDelete_64928;
value.handleChannelDelete = handleChannelDelete_64930;
value.handleInteractionQueue = handleInteractionQueue;
value.handleInteractionCreate = handleInteractionCreate;
value.handleInteractionSuccess = handleInteractionSuccess;
value.handleInteractionFailure = handleInteractionFailure_64934;
return value;
function handleSelectedChannelUpdate() { // fn#64910, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:6742, owner: EmbeddedActivitiesManager.handleSelectedChannelUpdate, offset: 0x01bb90c4, size: 271 bytes, params: 1, frame: 24
var r6;
var r5;
var value9;
var location;
var applicationId;
var moduleValue;
var embeddedActivityLocationChannelId;
var value11;
var value12;
var value13;
var binding;
var value14;
var embeddedActivitiesForChannel;
const voiceChannelId = SelectedChannelStore.getVoiceChannelId();
const _createForOfIteratorHelperLoose_64889Binding = _createForOfIteratorHelperLoose_64889;
const value4 = EmbeddedActivitiesStore.getSelfEmbeddedActivities().values();
const value5 = undefined;
const value6 = _createForOfIteratorHelperLoose_64889Binding(value4);
const value7 = value6();
let done = value7.done;
if (!done) {
r6 = value7;
while (true) {
value9 = r6.value;
location = value9.location;
applicationId = value9.applicationId;
moduleValue = require(3774) /* metro dependency 3774: embeddedActivityLocationUtils */;
embeddedActivityLocationChannelId = moduleValue.getEmbeddedActivityLocationChannelId(location);
value11 = embeddedActivityLocationChannelId != null;
if (value11) {
value12 = (importDefault(8102) /* metro dependency 8102: isVoiceEmbeddedActivity */)(embeddedActivityLocationChannelId);
r5 = value12;
} else {
r5 = value11;
}
if (!r5) {
continue;
}
value13 = embeddedActivityLocationChannelId !== voiceChannelId;
r5 = value13;
if (!r5) {
continue;
}
binding = id;
binding.leaveActivity({location: location, applicationId: applicationId});
value14 = value6();
done = value14.done;
if (done) {
break;
}
r6 = value14;
continue;
}
}
if (voiceChannelId != null) {
embeddedActivitiesForChannel = EmbeddedActivitiesStore.getEmbeddedActivitiesForChannel(voiceChannelId);
var id = AuthenticationStore.getId();
embeddedActivitiesForChannel.forEach(_fun64911);
}
env2_26 = voiceChannelId ?? value5;
return value5;
function _fun64911(a0) { // fn#64911, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:7121, offset: 0x01bb91d3, size: 186 bytes, params: 2, frame: 14
var moduleValue;
var selfEmbeddedActivityForChannel;
const userIds = a0.userIds;
if (userIds.has(env0_0)) {
value = environment.__proto__.__proto__.__proto__;
moduleValue = require(3774) /* metro dependency 3774: embeddedActivityLocationUtils */;
selfEmbeddedActivityForChannel = EmbeddedActivitiesStore.getSelfEmbeddedActivityForChannel(moduleValue.getEmbeddedActivityLocationChannelId(a0.location));
if (selfEmbeddedActivityForChannel == null) {
value = environment.__proto__;
env1_0.leaveActivity({location: a0.location, applicationId: a0.applicationId});
} else if (env3_26 == null) {
value = environment.__proto__;
env1_0.hidePIPEmbed({location: selfEmbeddedActivityForChannel.location,
applicationId: selfEmbeddedActivityForChannel.applicationId});
}
}
}
}
function handleActivityWebViewRelease() { // fn#64912, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:7461, owner: EmbeddedActivitiesManager.handleActivityWebViewRelease, offset: 0x01bb928d, size: 21 bytes, params: 1, frame: 9
env0_0.releaseWebView();
}
function handleActivityLaunchSuccess({nonce, applicationId}) { // fn#64913, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:7516, owner: EmbeddedActivitiesManager.handleActivityLaunchSuccess, offset: 0x01bb92a2, size: 83 bytes, params: 2, frame: 14
let value = environment.__proto__.__proto__;
clearAwaitingAnalyticsContextAsync(applicationId, nonce);
value = require(8067) /* metro dependency 8067: getURLForApplication */;
if (value.isUsingDevShelfActivityUrlOverride()) {
env0_0.showDevShelfOverrideEnabled();
}
}
function _fun64914() { // fn#64914, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:7694, offset: 0x01bb92f5, size: 32 bytes, params: 1, frame: 12
const env0_0 = env2_8(_fun64916);
return _fun64917;
async function _fun64916({error, nonce, channelId, guildId, applicationId, isStart, locationKind}) { // fn#64916, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:7714, offset: 0x01bb9327, size: 384 bytes, params: 2, frame: 27
if (false) {
return undefined;
}
value = undefined;
await value;
if (false) {
return undefined;
}
const value6 = env4_32(applicationId, nonce);
let binding = env4_0;
const value7 = binding(env4_2[32]);
const getActivityLaunchErrorInfo = value7.getActivityLaunchErrorInfo;
await Reflect.apply(getActivityLaunchErrorInfo, value7, [error, applicationId]);
if (false) {
return undefined;
}
EmbeddedActivitiesManager.showLaunchErrorModal(undefined.message);
const channel = env4_12.getChannel(channelId);
binding = env4_1;
const binding2 = env4_2;
const rawThermalState = binding(binding2[21]).getRawThermalState();
const value14 = binding(binding2[22]);
const track = value14.track;
const ACTIVITY_SESSION_JOIN_FAILED = env4_18.ACTIVITY_SESSION_JOIN_FAILED;
const object = {channel_id: channelId};
object.guild_id = guildId ?? (channel == null ? value : channel.getGuildId());
object.application_id = applicationId;
object.raw_thermal_state = rawThermalState;
object.is_activity_start = isStart;
object.channel_type = channel == null ? value : channel.type;
object.location_stack = value6 == null ? value : value6.locations;
object.error_type = undefined.errorType;
object.error_status = undefined.errorStatus;
object.error_code = undefined.errorCode;
object.source = value6 == null ? value : value6.source;
object.embedded_activity_location_kind = locationKind;
Reflect.apply(track, value14, [ACTIVITY_SESSION_JOIN_FAILED, object]);
return value;
}
function _fun64917() { // fn#64917, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:8387, offset: 0x00c3945f, size: 30 bytes, params: 1, frame: 13
return env0_0.apply(this, arguments);
}
}
function superHandleRPCDisconnect({reason, application}) { // fn#64919, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:8564, owner: EmbeddedActivitiesManager.superHandleRPCDisconnect, offset: 0x01bb94c6, size: 255 bytes, params: 2, frame: 20
var r5;
var value;
var value4;
var value5;
var done;
var value7;
var applicationId;
var location;
var binding;
var value8;
var defaultImport;
const id = application.id;
if (id != null) {
if (reason != null) {
value = environment.__proto__.__proto__;
value4 = _createForOfIteratorHelperLoose_64889(EmbeddedActivitiesStore.getSelfEmbeddedActivities().values());
value5 = value4();
done = value5.done;
if (!done) {
r5 = value5;
while (true) {
value7 = r5.value;
applicationId = value7.applicationId;
location = value7.location;
if (applicationId === id) {
binding = env0_0;
binding.leaveActivity({location: location, applicationId: id});
}
value8 = value4();
done = value8.done;
if (done) {
break;
}
r5 = value8;
continue;
}
}
if (reason.code !== RPCCloseCodes.CLOSE_NORMAL) {
defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
defaultImport.track(AnalyticEvents.ACTIVITY_CLOSED_RPC_ERROR, {rpc_close_code: reason.code,
rpc_message: reason.message, application_id: id});
env0_0.showErrorModal(reason, id);
}
}
}
}
function handleCallDelete({channelId}) { // fn#64920, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:9000, owner: EmbeddedActivitiesManager.handleCallDelete, offset: 0x01bb95c5, size: 63 bytes, params: 2, frame: 12
let value = environment.__proto__.__proto__;
value = SelectedChannelStore.getVoiceChannelId();
if (value != null && value === channelId) {
env0_0.handleCallEnded(channelId);
}
}
function handleRTCConnectionState(a0) { // fn#64921, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:9111, owner: EmbeddedActivitiesManager.handleRTCConnectionState, offset: 0x01bb9604, size: 52 bytes, params: 2, frame: 11
const state = a0.state;
const DISCONNECTED = RTCConnectionStates.DISCONNECTED;
if (state === DISCONNECTED) {
env0_0.handleCallEnded(a0.channelId);
}
}
function handleCallEnded(a0) { // fn#64922, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:9203, owner: EmbeddedActivitiesManager.handleCallEnded, offset: 0x01bb9638, size: 69 bytes, params: 2, frame: 13
let value = environment.__proto__.__proto__;
value = EmbeddedActivitiesStore.getSelfEmbeddedActivityForChannel(a0);
if (value != null) {
env0_0.leaveActivity({location: value.location, applicationId: value.applicationId});
}
}
function _fun64923() { // fn#64923, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:9352, offset: 0x01bb967d, size: 32 bytes, params: 1, frame: 12
const env0_0 = env2_8(_fun64925);
return _fun64927;
async function _fun64925({channelId, applicationId, analyticsLocations, commandOrigin, inviterUserId}) { // fn#64925, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:9372, offset: 0x01bb96af, size: 949 bytes, params: 2, frame: 29
var environment;
var r17;
var size;
var selfEmbeddedActivityForChannel;
var value8;
var value9;
var value11;
var value12;
var showLaunchErrorModal;
var binding2;
var intl;
var value14;
var binding3;
var value16;
var fetchShelf;
var value17;
var activityConfigs;
var applications;
var value20;
var value21;
var value23;
var value25;
var value26;
var value30;
if (false) {
return undefined;
}
value = undefined;
await value;
if (false) {
return undefined;
}
let binding = env4_12;
const channel = binding.getChannel(channelId);
if (value !== channel) {
if (Reflect.apply(env4_10.has, binding, [channel == null ? value : channel.type])) {
binding = env4_14;
if (binding.getVoiceChannelId() !== channelId) {
return value;
}
binding = env4_17;
selfEmbeddedActivityForChannel = binding.getSelfEmbeddedActivityForChannel(channelId);
applicationId = selfEmbeddedActivityForChannel == null ? value : selfEmbeddedActivityForChannel.applicationId;
if (applicationId === applicationId) {
return value;
}
binding = env4_1;
value8 = binding(env4_2[33]);
await value8.fetchApplication(applicationId);
value9 = undefined;
if (false) {
return value9;
}
binding = env4_0;
value11 = binding(env4_2[34]);
if (value11.getIsActivitiesEnabledForCurrentPlatform()) {
binding = env4_1;
if (binding(env4_2[36])(value9 == null || value9.embedded_activity_config == null ? value : value9.embedded_activity_config.supported_platforms)) {
r17 = (channel == null ? value : channel.getGuildId()) ?? value;
binding = env4_0;
value16 = binding(env4_2[37]);
fetchShelf = value16.fetchShelf;
await Reflect.apply(fetchShelf, value16, [{guildId: r17}]);
value17 = undefined;
if (false) {
return value17;
}
activityConfigs = value17.activityConfigs;
applications = value17.applications;
binding = env4_1;
if (binding(env4_2[20])({applicationId: applicationId, activityConfigs: activityConfigs,
applications: applications}) != null) {
binding = env4_17;
value25 = binding.getEmbeddedActivitiesForChannel(channelId).find(function({applicationId}) {
return applicationId === applicationId;
});
size = value25 == null ? value : value25.userIds.size;
value26 = 0;
if ((size ?? value26) > value26) {
value30 = env4_0(env4_2[38]);
await value30.maybeJoinEmbeddedActivity({channelId: channelId, applicationId: applicationId,
launchId: value25 == null ? value : value25.launchId, inputApplication: null,
analyticsLocations: analyticsLocations, inviterUserId: inviterUserId});
return value;
}
binding = env4_1;
await binding(env4_2[39])({targetApplicationId: applicationId, channelId: channelId,
analyticsLocations: analyticsLocations, commandOrigin: commandOrigin,
inviterUserId: inviterUserId});
return value;
}
binding = env4_0;
value20 = binding(env4_2[37]);
fetchShelf = value20.fetchShelf;
await Reflect.apply(fetchShelf, value20, [{guildId: r17, force: true}]);
value21 = undefined;
if (false) {
return value21;
}
binding = env4_1;
value23 = binding(env4_2[20]);
activityConfigs = value21.activityConfigs;
applications = value21.applications;
value23({applicationId: applicationId, activityConfigs: activityConfigs,
applications: applications});
binding = env4_17;
value25 = binding.getEmbeddedActivitiesForChannel(channelId).find(_fun64926);
size = value25 == null ? value : value25.userIds.size;
value26 = 0;
if ((size ?? value26) > value26) {
value30 = env4_0(env4_2[38]);
await value30.maybeJoinEmbeddedActivity({channelId: channelId, applicationId: applicationId,
launchId: value25 == null ? value : value25.launchId, inputApplication: null,
analyticsLocations: analyticsLocations, inviterUserId: inviterUserId});
return value;
}
binding = env4_1;
await binding(env4_2[39])({targetApplicationId: applicationId, channelId: channelId,
analyticsLocations: analyticsLocations, commandOrigin: commandOrigin,
inviterUserId: inviterUserId});
return value;
}
value14 = environment.__proto__.__proto__;
showLaunchErrorModal = EmbeddedActivitiesManager.showLaunchErrorModal;
binding = env4_0;
binding3 = env4_2;
intl = binding(binding3[35]).intl;
Reflect.apply(showLaunchErrorModal, EmbeddedActivitiesManager,
[intl.string(binding(binding3[35]).t.uGDCcw)]);
return value;
}
value12 = environment.__proto__.__proto__;
showLaunchErrorModal = EmbeddedActivitiesManager.showLaunchErrorModal;
binding = env4_0;
binding2 = env4_2;
intl = binding(binding2[35]).intl;
Reflect.apply(showLaunchErrorModal, EmbeddedActivitiesManager,
[intl.string(binding(binding2[35]).t.UXoQTp)]);
return value;
}
selfEmbeddedActivityForChannel = env4_17.getSelfEmbeddedActivityForChannel(channelId);
applicationId = selfEmbeddedActivityForChannel == null ? value : selfEmbeddedActivityForChannel.applicationId;
if (applicationId === applicationId) {
return value;
}
value8 = env4_1(env4_2[33]);
await value8.fetchApplication(applicationId);
value9 = undefined;
if (false) {
return value9;
}
value11 = env4_0(env4_2[34]);
if (value11.getIsActivitiesEnabledForCurrentPlatform()) {
binding = env4_1;
if (binding(env4_2[36])(value9 == null || value9.embedded_activity_config == null ? value : value9.embedded_activity_config.supported_platforms)) {
r17 = (channel == null ? value : channel.getGuildId()) ?? value;
binding = env4_0;
value16 = binding(env4_2[37]);
fetchShelf = value16.fetchShelf;
await Reflect.apply(fetchShelf, value16, [{guildId: r17}]);
value17 = undefined;
if (false) {
return value17;
}
activityConfigs = value17.activityConfigs;
applications = value17.applications;
binding = env4_1;
if (binding(env4_2[20])({applicationId: applicationId, activityConfigs: activityConfigs,
applications: applications}) != null) {
binding = env4_17;
value25 = binding.getEmbeddedActivitiesForChannel(channelId).find(function({applicationId}) {
return applicationId === applicationId;
});
size = value25 == null ? value : value25.userIds.size;
value26 = 0;
if ((size ?? value26) > value26) {
value30 = env4_0(env4_2[38]);
await value30.maybeJoinEmbeddedActivity({channelId: channelId, applicationId: applicationId,
launchId: value25 == null ? value : value25.launchId, inputApplication: null,
analyticsLocations: analyticsLocations, inviterUserId: inviterUserId});
return value;
}
binding = env4_1;
await binding(env4_2[39])({targetApplicationId: applicationId, channelId: channelId,
analyticsLocations: analyticsLocations, commandOrigin: commandOrigin,
inviterUserId: inviterUserId});
return value;
}
binding = env4_0;
value20 = binding(env4_2[37]);
fetchShelf = value20.fetchShelf;
await Reflect.apply(fetchShelf, value20, [{guildId: r17, force: true}]);
value21 = undefined;
if (false) {
return value21;
}
binding = env4_1;
value23 = binding(env4_2[20]);
activityConfigs = value21.activityConfigs;
applications = value21.applications;
value23({applicationId: applicationId, activityConfigs: activityConfigs, applications: applications});
binding = env4_17;
value25 = binding.getEmbeddedActivitiesForChannel(channelId).find(_fun64926);
size = value25 == null ? value : value25.userIds.size;
value26 = 0;
if ((size ?? value26) > value26) {
value30 = env4_0(env4_2[38]);
await value30.maybeJoinEmbeddedActivity({channelId: channelId, applicationId: applicationId,
launchId: value25 == null ? value : value25.launchId, inputApplication: null,
analyticsLocations: analyticsLocations, inviterUserId: inviterUserId});
return value;
}
binding = env4_1;
await binding(env4_2[39])({targetApplicationId: applicationId, channelId: channelId,
analyticsLocations: analyticsLocations, commandOrigin: commandOrigin,
inviterUserId: inviterUserId});
return value;
}
value14 = environment.__proto__.__proto__;
showLaunchErrorModal = EmbeddedActivitiesManager.showLaunchErrorModal;
binding = env4_0;
binding3 = env4_2;
intl = binding(binding3[35]).intl;
Reflect.apply(showLaunchErrorModal, EmbeddedActivitiesManager,
[intl.string(binding(binding3[35]).t.uGDCcw)]);
return value;
}
showLaunchErrorModal = EmbeddedActivitiesManager.showLaunchErrorModal;
binding = env4_0;
binding2 = env4_2;
intl = binding(binding2[35]).intl;
Reflect.apply(showLaunchErrorModal, EmbeddedActivitiesManager, [intl.string(binding(binding2[35]).t.UXoQTp)]);
}
return value;
function _fun64926({applicationId}) { // fn#64926, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:10240, offset: 0x01198930, size: 21 bytes, params: 2, frame: 2
return applicationId === applicationId;
}
}
function _fun64927() { // fn#64927, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:10739, offset: 0x00c3945f, size: 30 bytes, params: 1, frame: 13
return env0_0.apply(this, arguments);
}
}
function EmbeddedActivitiesManagerHandleGuildDelete({guild}) { // fn#64928, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:10805, owner: EmbeddedActivitiesManager.handleGuildDelete, offset: 0x01bb9a64, size: 50 bytes, params: 2, frame: 11
var environment;
const value = environment.__proto__.__proto__;
EmbeddedActivitiesStore.getSelfEmbeddedActivities().forEach(_fun64929);
function _fun64929({location, applicationId}) { // fn#64929, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:10862, offset: 0x01bb9a96, size: 95 bytes, params: 2, frame: 14
var binding;
let value = environment.__proto__.__proto__.__proto__;
value = require(3774) /* metro dependency 3774: embeddedActivityLocationUtils */;
value = value.getEmbeddedActivityLocationGuildId(location);
if (guild.id === value) {
value = environment.__proto__;
binding = env1_0;
binding.leaveActivity({location: location, applicationId: applicationId});
}
}
}
function EmbeddedActivitiesManagerHandleChannelDelete({channel}) { // fn#64930, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:11031, owner: EmbeddedActivitiesManager.handleChannelDelete, offset: 0x01bb9af5, size: 79 bytes, params: 2, frame: 13
let value = environment.__proto__.__proto__;
value = EmbeddedActivitiesStore.getSelfEmbeddedActivityForChannel(channel.id);
if (value != null) {
env0_0.leaveActivity({location: value.location, applicationId: value.applicationId});
}
}
function handleInteractionQueue({nonce, data}) { // fn#64931, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:11199, owner: EmbeddedActivitiesManager.handleInteractionQueue, offset: 0x01bb9b44, size: 331 bytes, params: 2, frame: 16
var r6;
const InteractionTypes = (ServerModule).InteractionTypes;
var object;
var setAwaitingAnalyticsContextBinding;
if (env2_24[data.applicationId] == null) {
r6 = data.interactionType === InteractionTypes.APPLICATION_COMMAND ? [(importDefault(6789) /* metro dependency 6789: AnalyticsLocation */).INTERACTION_APPLICATION_COMMAND] : data.interactionType === InteractionTypes.MESSAGE_COMPONENT ? [(importDefault(6789) /* metro dependency 6789: AnalyticsLocation */).INTERACTION_MESSAGE_COMPONENT] : data.interactionType !== InteractionTypes.MODAL_SUBMIT ? undefined : [(importDefault(6789) /* metro dependency 6789: AnalyticsLocation */).INTERACTION_MODAL_SUBMIT];
setAwaitingAnalyticsContextBinding = setAwaitingAnalyticsContext;
object = {};
object.applicationId = data.applicationId;
object.nonce = nonce;
object.locations = r6;
if (setAwaitingAnalyticsContextBinding(object)) {
env2_25[nonce] = data.applicationId;
}
}
}
function handleInteractionCreate({nonce, interactionId}) { // fn#64932, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:11707, owner: EmbeddedActivitiesManager.handleInteractionCreate, offset: 0x01bb9c8f, size: 58 bytes, params: 2, frame: 5
var value;
var property;
if (nonce != null) {
value = environment.__proto__.__proto__;
property = env2_25[nonce];
if (property != null) {
property = env2_24[property];
if (property != null) {
property.interactionId = interactionId;
}
}
}
}
function handleInteractionSuccess({nonce}) { // fn#64933, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:11842, owner: EmbeddedActivitiesManager.handleInteractionSuccess, offset: 0x01bb9cc9, size: 54 bytes, params: 2, frame: 13
var value;
var property;
if (nonce != null) {
value = environment.__proto__.__proto__;
property = env2_25[nonce];
if (property != null) {
delete env2_25[nonce];
clearAwaitingAnalyticsContextAsync(property, nonce);
}
}
}
function EmbeddedActivitiesManagerHandleInteractionFailure({nonce}) { // fn#64934, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:11971, owner: EmbeddedActivitiesManager.handleInteractionFailure, offset: 0x01bb9cff, size: 54 bytes, params: 2, frame: 13
var value;
var property;
if (nonce != null) {
value = environment.__proto__.__proto__;
property = env2_25[nonce];
if (property != null) {
delete env2_25[nonce];
clearAwaitingAnalyticsContextImmediate(property, nonce);
}
}
}
}
function value_64935() { // fn#64935, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:12171, offset: 0x01bb9d35, size: 596 bytes, params: 1, frame: 20
let value = environment.__proto__;
const selectedChannelStoreBinding = SelectedChannelStore;
selectedChannelStoreBinding.addChangeListener(this.handleSelectedChannelUpdate);
const ComponentDispatch = (ComponentDispatchUtilsModule).ComponentDispatch;
let subscribe = ComponentDispatch.subscribe;
const RELEASE_ACTIVITY_WEB_VIEW = ComponentActions.RELEASE_ACTIVITY_WEB_VIEW;
Reflect.apply(subscribe, ComponentDispatch, [RELEASE_ACTIVITY_WEB_VIEW, this.handleActivityWebViewRelease]);
subscribe = ComponentDispatch.subscribe;
const OPEN_EMBEDDED_ACTIVITY = ComponentActions.OPEN_EMBEDDED_ACTIVITY;
Reflect.apply(subscribe, ComponentDispatch, [OPEN_EMBEDDED_ACTIVITY, handleOpenEmbeddedActivity]);
const defaultImport = Dispatcher;
defaultImport.subscribe('EMBEDDED_ACTIVITY_LAUNCH_START', handleActivityLaunchStart);
const defaultImport2 = defaultImport;
defaultImport2.subscribe('EMBEDDED_ACTIVITY_LAUNCH_SUCCESS', this.handleActivityLaunchSuccess);
const defaultImport3 = defaultImport;
defaultImport3.subscribe('EMBEDDED_ACTIVITY_LAUNCH_FAIL', this.handleActivityLaunchFail);
const defaultImport4 = defaultImport;
defaultImport4.subscribe('EMBEDDED_ACTIVITY_LAUNCH_CANCEL', this.handleActivityLaunchCancel);
const defaultImport5 = defaultImport;
defaultImport5.subscribe('EMBEDDED_ACTIVITY_CLOSE', handleActivityClose);
value = defaultImport;
value.subscribe('EMBEDDED_ACTIVITY_DEFERRED_OPEN', this.handleDeferredOpen);
value = defaultImport;
value.subscribe('RPC_APP_DISCONNECTED', this.handleRPCDisconnect);
value = defaultImport;
value.subscribe('CALL_DELETE', this.handleCallDelete);
value = defaultImport;
value.subscribe('RTC_CONNECTION_STATE', this.handleRTCConnectionState);
value = defaultImport;
value.subscribe('GUILD_DELETE', this.handleGuildDelete);
value = defaultImport;
value.subscribe('CHANNEL_DELETE', this.handleChannelDelete);
value = defaultImport;
value.subscribe('INTERACTION_QUEUE', this.handleInteractionQueue);
value = defaultImport;
value.subscribe('INTERACTION_CREATE', this.handleInteractionCreate);
value = defaultImport;
value.subscribe('INTERACTION_SUCCESS', this.handleInteractionSuccess);
value = defaultImport;
value.subscribe('INTERACTION_FAILURE', this.handleInteractionFailure);
}
function value_64936() { // fn#64936, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:13532, offset: 0x01bb9f89, size: 596 bytes, params: 1, frame: 20
let value = environment.__proto__;
const selectedChannelStoreBinding = SelectedChannelStore;
selectedChannelStoreBinding.removeChangeListener(this.handleSelectedChannelUpdate);
const ComponentDispatch = (ComponentDispatchUtilsModule).ComponentDispatch;
let unsubscribe = ComponentDispatch.unsubscribe;
const RELEASE_ACTIVITY_WEB_VIEW = ComponentActions.RELEASE_ACTIVITY_WEB_VIEW;
Reflect.apply(unsubscribe, ComponentDispatch, [RELEASE_ACTIVITY_WEB_VIEW, this.handleActivityWebViewRelease]);
unsubscribe = ComponentDispatch.unsubscribe;
const OPEN_EMBEDDED_ACTIVITY = ComponentActions.OPEN_EMBEDDED_ACTIVITY;
Reflect.apply(unsubscribe, ComponentDispatch, [OPEN_EMBEDDED_ACTIVITY, handleOpenEmbeddedActivity]);
const defaultImport = Dispatcher;
defaultImport.unsubscribe('EMBEDDED_ACTIVITY_LAUNCH_START', handleActivityLaunchStart);
const defaultImport2 = defaultImport;
defaultImport2.unsubscribe('EMBEDDED_ACTIVITY_LAUNCH_SUCCESS', this.handleActivityLaunchSuccess);
const defaultImport3 = defaultImport;
defaultImport3.unsubscribe('EMBEDDED_ACTIVITY_LAUNCH_FAIL', this.handleActivityLaunchFail);
const defaultImport4 = defaultImport;
defaultImport4.unsubscribe('EMBEDDED_ACTIVITY_LAUNCH_CANCEL', this.handleActivityLaunchCancel);
const defaultImport5 = defaultImport;
defaultImport5.unsubscribe('EMBEDDED_ACTIVITY_CLOSE', handleActivityClose);
value = defaultImport;
value.unsubscribe('EMBEDDED_ACTIVITY_DEFERRED_OPEN', this.handleDeferredOpen);
value = defaultImport;
value.unsubscribe('RPC_APP_DISCONNECTED', this.handleRPCDisconnect);
value = defaultImport;
value.unsubscribe('CALL_DELETE', this.handleCallDelete);
value = defaultImport;
value.unsubscribe('RTC_CONNECTION_STATE', this.handleRTCConnectionState);
value = defaultImport;
value.unsubscribe('GUILD_DELETE', this.handleGuildDelete);
value = defaultImport;
value.unsubscribe('CHANNEL_DELETE', this.handleChannelDelete);
value = defaultImport;
value.unsubscribe('INTERACTION_QUEUE', this.handleInteractionQueue);
value = defaultImport;
value.unsubscribe('INTERACTION_CREATE', this.handleInteractionCreate);
value = defaultImport;
value.unsubscribe('INTERACTION_SUCCESS', this.handleInteractionSuccess);
value = defaultImport;
value.unsubscribe('INTERACTION_FAILURE', this.handleInteractionFailure);
}
}
function trackFrameSessionStart(a0) { // fn#64937, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:15042, offset: 0x01bba1dd, size: 910 bytes, params: 2, frame: 38
var r20;
var r15;
var locations;
var r25;
var shelf_rank;
var type;
var isStart;
var inviterUserId;
var channelId;
var guildId;
var locationKind;
var launchId;
var compositeInstanceId;
var activitiesInfraVersion;
var currentUser;
var mediaSessionId;
var object;
var value8;
var binding;
var shelfActivities;
var activityShelfStoreBinding;
var shelfOrder;
var value10;
var value11;
var releasePhase;
var rawThermalState;
var property;
var defaultImport3;
var track;
var ACTIVITY_SESSION_JOINED;
var value14;
var defaultImport4;
var ACTIVITY_IFRAME_MOUNT;
const env0_0 = a0;
const value2 = undefined;
const value3 = (PendingFrameLaunchModule).consumePendingFrameLaunch(a0);
const value4 = null;
if (value4 != value3) {
isStart = value3.isStart;
inviterUserId = value3.inviterUserId;
channelId = value3.channelId;
guildId = value3.guildId;
locationKind = value3.locationKind;
launchId = value3.launchId;
compositeInstanceId = value3.compositeInstanceId;
activitiesInfraVersion = value3.activitiesInfraVersion;
currentUser = UserStore.getCurrentUser();
if (value4 != currentUser) {
r20 = value4 != channelId ? ChannelStore.getChannel(channelId) : value4;
mediaSessionId = RTCConnectionStore.getMediaSessionId();
r15 = value4 != mediaSessionId ? [mediaSessionId] : [];
value8 = (require(491) /* metro dependency 491 */).v4();
binding = env0_23;
object = {activitySessionId: compositeInstanceId, activityUserSessionId: value8, launchId: launchId,
mediaSessionIds: r15, activitiesInfraVersion: activitiesInfraVersion};
object.connectedSince = global.Date.now();
object.frameChannelId = channelId;
object.frameGuildId = guildId;
object.frameLocationKind = locationKind;
binding[a0] = object;
shelfActivities = EmbeddedActivitiesStore.getShelfActivities(guildId);
activityShelfStoreBinding = ActivityShelfStore;
shelfOrder = activityShelfStoreBinding.getState().shelfOrder;
value10 = (importDefault(8099) /* metro dependency 8099: getShelfItemData */)({applicationId: a0,
activityConfigs: shelfActivities});
value11 = 1 + shelfOrder.findIndex(_fun64938);
releasePhase = getShelfItemTrackingProperties(value10).releasePhase;
rawThermalState = (importDefault(8093) /* metro dependency 8093: ThermalUtilsNative */).getRawThermalState();
property = env0_24[a0];
defaultImport3 = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
track = defaultImport3.track;
ACTIVITY_SESSION_JOINED = AnalyticEvents.ACTIVITY_SESSION_JOINED;
object = {channel_id: channelId, guild_id: guildId, media_session_id: r15[0],
activity_session_id: compositeInstanceId, application_id: a0};
locations = value4 == property ? value2 : property.locations;
object.location_stack = locations;
object.user_premium_tier = currentUser.premiumType;
object.raw_thermal_state = rawThermalState;
r25 = value4 != r20 ? ChannelRTCStore.getUserParticipantCount(r20.id) : value4;
object.n_participants = r25;
object.is_activity_start = isStart;
object.release_phase = releasePhase;
shelf_rank = value4 == value10 || value4 == value10.activity ? value2 : value10.activity.shelf_rank;
object.shelf_rank = shelf_rank;
value14 = value11 > 0;
r25 = value14 ? value11 : value4;
object.shelf_sorted_rank = r25;
object.activity_user_session_id = value8;
type = value4 == r20 ? value2 : r20.type;
object.channel_type = type;
object.source = value4 == property ? value2 : property.source;
r25 = value4 != r20 ? (require(7866) /* metro dependency 7866: CommandPermissionContext */).computeCommandContextType(r20,
a0) : value4;
object.command_context_type = r25;
object.invite_inviter_id = inviterUserId;
object.interaction_id = value4 == property ? value2 : property.interactionId;
object.embedded_activity_location_kind = locationKind;
Reflect.apply(track, defaultImport3, [ACTIVITY_SESSION_JOINED, object]);
defaultImport4 = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
track = defaultImport4.track;
ACTIVITY_IFRAME_MOUNT = AnalyticEvents.ACTIVITY_IFRAME_MOUNT;
locations = value4 == property ? value2 : property.locations;
type = value4 == r20 ? value2 : r20.type;
shelf_rank = value4 == value10 || value4 == value10.activity ? value2 : value10.activity.shelf_rank;
Reflect.apply(track, defaultImport4, [ACTIVITY_IFRAME_MOUNT, {location_stack: locations,
channel_id: channelId,
channel_type: type, guild_id: guildId, application_id: a0, instance_id: launchId,
initial_media_session_id: r15[0], activity_user_session_id: value8, raw_thermal_state: rawThermalState,
is_activity_start: isStart, shelf_rank: shelf_rank, shelf_sorted_rank: value14 ? value11 : value4,
activities_infra_version: activitiesInfraVersion, embedded_activity_location_kind: locationKind}]);
}
}
return value2;
function _fun64938(a0) { // fn#64938, offset: 0x00fcba1c, size: 16 bytes, params: 2, frame: 2
return a0 === env0_0;
}
}
function getActiveAnalyticsSessionIDs(a0) { // fn#64939, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:16942, offset: 0x01706c71, size: 16 bytes, params: 2, frame: 2
return env0_23[a0];
}
function trackFrameSessionEnd(a0) { // fn#64940, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:8282:17020, offset: 0x01bba56b, size: 576 bytes, params: 2, frame: 29
var r12;
var r10;
var r15;
var r7;
var frameChannelId;
var frameGuildId;
var shelfActivities;
var value6;
var object;
var value7;
var releasePhase;
var rawThermalState;
var defaultImport3;
var track;
var ACTIVITY_SESSION_LEFT;
var mediaSessionIds;
var activityUserSessionId;
var frameLocationKind;
var defaultImport4;
var ACTIVITY_IFRAME_UNMOUNT;
const property = env0_23[a0];
const currentUser = UserStore.getCurrentUser();
const value3 = null;
if (value3 != property) {
if (value3 != currentUser) {
frameChannelId = property.frameChannelId;
r12 = value3 != frameChannelId ? frameChannelId : value3;
frameGuildId = property.frameGuildId;
r10 = value3 != frameGuildId ? frameGuildId : value3;
r15 = value3 != r12 ? ChannelStore.getChannel(r12) : value3;
shelfActivities = EmbeddedActivitiesStore.getShelfActivities(r10);
value6 = undefined;
value7 = (importDefault(8099) /* metro dependency 8099: getShelfItemData */)({applicationId: a0,
activityConfigs: shelfActivities});
releasePhase = getShelfItemTrackingProperties(value7).releasePhase;
rawThermalState = (importDefault(8093) /* metro dependency 8093: ThermalUtilsNative */).getRawThermalState();
r7 = value3 != property.connectedSince ? global.Date.now() - property.connectedSince : value3;
defaultImport3 = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
track = defaultImport3.track;
ACTIVITY_SESSION_LEFT = AnalyticEvents.ACTIVITY_SESSION_LEFT;
object = {channel_id: r12, guild_id: r10};
mediaSessionIds = property.mediaSessionIds;
object.media_session_id = mediaSessionIds[0];
object.activity_session_id = property.activitySessionId;
object.application_id = a0;
object.duration_ms = r7;
object.user_premium_tier = currentUser.premiumType;
object.raw_thermal_state = rawThermalState;
object.release_phase = releasePhase;
object.shelf_rank = value3 == value7 || value3 == value7.activity ? value6 : value7.activity.shelf_rank;
activityUserSessionId = property.activityUserSessionId;
object.activity_user_session_id = activityUserSessionId;
object.channel_type = value3 == r15 ? value6 : r15.type;
mediaSessionIds = property.mediaSessionIds;
object.media_session_ids = mediaSessionIds;
frameLocationKind = property.frameLocationKind;
object.embedded_activity_location_kind = frameLocationKind;
Reflect.apply(track, defaultImport3, [ACTIVITY_SESSION_LEFT, object]);
defaultImport4 = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
track = defaultImport4.track;
ACTIVITY_IFRAME_UNMOUNT = AnalyticEvents.ACTIVITY_IFRAME_UNMOUNT;
mediaSessionIds = property.mediaSessionIds;
activityUserSessionId = property.activityUserSessionId;
frameLocationKind = property.frameLocationKind;
Reflect.apply(track, defaultImport4, [ACTIVITY_IFRAME_UNMOUNT, {channel_id: r12, guild_id: r10,
application_id: a0,
instance_ids: value3 != property.launchId ? [property.launchId] : value6,
media_session_ids: mediaSessionIds,
activity_user_session_id: activityUserSessionId, raw_thermal_state: rawThermalState, duration_ms: r7,
embedded_activity_location_kind: frameLocationKind}]);
delete env0_23[a0];
}
}
}
}
global.__d(_fun64888, 8097, [6, 7, 15, 17, 18, 5, 4606, 1383, 1226, 1379, 4294, 1934, 1878, 8098, 1378, 661, 8049,
477, 507, 3774, 8099, 8093, 683, 8064, 8100, 8101, 7712, 491, 1861, 7866, 8102, 8067, 8103, 6772, 7858, 1244,
8105, 7860, 8106, 9472, 1909, 6789, 1239, 694, 4561,
2]) /* metro module 8097, dependencies: [6, 7, 15, 17, 18, 5, 4606, 1383, 1226, 1379, 4294, 1934, 1878, 8098, 1378, 661, 8049, 477, 507, 3774, 8099, 8093, 683, 8064, 8100, 8101, 7712, 491, 1861, 7866, 8102, 8067, 8103, 6772, 7858, 1244, 8105, 7860, 8106, 9472, 1909, 6789, 1239, 694, 4561, 2] */;