Files
discord-decomp/sources/modules/quests/managers/QuestProgressManager.tsx
T
2026-07-27 16:20:00 +03:00

1116 lines
52 KiB
TypeScript

/* Metro module 16218; source: modules/quests/managers/QuestProgressManager.tsx; dependencies: [57, 5, 6, 7, 15, 17, 18, 1378, 8065, 4266, 4492, 4267, 4300, 7093, 15385, 6528, 672, 7099, 7091, 9511, 9524, 6529, 9484, 6531, 7120, 4484, 4483, 6535, 7116, 4285, 1360, 4482, 7114, 4860, 2] */
function _fun125360(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#125360, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:6, offset: 0x025d60ea, size: 584 bytes, params: 8, frame: 20
const env0_0 = require;
const _arrayLikeToArray_125366 = 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 Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
importDefault(57) /* metro dependency 57 */;
const env0_3 = importDefault(5) /* metro dependency 5 */;
const env0_4 = importDefault(6) /* metro dependency 6 */;
const env0_5 = importDefault(7) /* metro dependency 7 */;
const env0_6 = importDefault(15) /* metro dependency 15 */;
const env0_7 = importDefault(17) /* metro dependency 17 */;
const env0_8 = importDefault(18) /* metro dependency 18 */;
const embeddedActivitiesStore = importDefault(1378) /* metro dependency 1378: EmbeddedActivitiesStore */;
const framesStore = importDefault(8065) /* metro dependency 8065: FramesStore */;
const runningGameStoreNative = importDefault(4266) /* metro dependency 4266: RunningGameStoreNative */;
const applicationStreamingStore = importDefault(4492) /* metro dependency 4492: ApplicationStreamingStore */;
const detectableGameStore = importDefault(4267) /* metro dependency 4267: DetectableGameStore */;
const sortedVoiceStateStore = importDefault(4300) /* metro dependency 4300: SortedVoiceStateStore */;
const questStore = importDefault(7093) /* metro dependency 7093: QuestStore */;
const unenrolledActivityQuestStore = importDefault(15385) /* metro dependency 15385: UnenrolledActivityQuestStore */;
let value = require(6528) /* metro dependency 6528: QuestConstants */;
const env0_17 = value.DISCORD_APPLICATION_ID;
const QuestsExperimentLocations = value.QuestsExperimentLocations;
let Millis = (importDefault(672) /* metro dependency 672: Durations */).Millis;
const MINUTE = Millis.MINUTE;
const env0_19 = 1 * MINUTE;
Millis = (importDefault(672) /* metro dependency 672: Durations */).Millis;
const SECOND = Millis.SECOND;
const env0_20 = 1 * SECOND;
value = require(7099) /* metro dependency 7099: getQuestLogger */;
const getQuestLogger = value.getQuestLogger;
const QUESTS_MANAGER = QuestsExperimentLocations.QUESTS_MANAGER;
const env0_21 = Reflect.apply(getQuestLogger, value, [{location: QUESTS_MANAGER}]);
value = importDefault(4860) /* metro dependency 4860: AutomaticLifecycleManager */;
value = _fun125372(value);
value = new value();
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/quests/managers/QuestProgressManager.tsx');
exports.default = value;
}
function _isNativeReflectConstruct_125361() { // fn#125361, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:322, offset: 0x025d6332, size: 98 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_125361_isNativeReflectConstruct = function() {
return !!result;
})();
}
function _createForOfIteratorHelperLoose_125364(a0, a1) { // fn#125364, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:515, offset: 0x025d6394, size: 372 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 _fun125365;
}
value = undefined;
if (a0) {
if (typeof a0 === 'string') {
value = _arrayLikeToArray_125366(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_125366(a0, value);
r6 = value;
} else {
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
if (regexp.test(r9)) {
value = _arrayLikeToArray_125366(a0, value);
r6 = value;
} else {
r6 = value;
}
}
r5 = r6;
}
} else {
r5 = value;
}
if (r5) {
if (r5) {
}
return _fun125365;
}
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 isQuestProgressable(a0) { // fn#125367, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:1539, offset: 0x025d6508, size: 101 bytes, params: 2, frame: 12
let value = require(7091) /* metro dependency 7091: QuestDataUtils */;
value = value.isQuestExpired(a0);
return !value && a0.userStatus != null && a0.userStatus.enrolledAt != null && a0.userStatus.completedAt == null;
}
function handleEmbeddedActivityLaunchSuccess(a0) { // fn#125368, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:1689, offset: 0x025d656d, size: 359 bytes, params: 2, frame: 20
var r4;
var value4;
var config;
var features;
var includes;
var QuestVariants;
var MOBILE_ACTIVITY_QUEST;
var value5;
var enrollInQuest;
var id;
const QuestContent = (require(6531) /* metro dependency 6531: QuestTypes */).QuestContent;
var RUNNING_ACTIVITY;
let value = environment;
const getState = UnenrolledActivityQuestStore.getState;
const autoEnroll = Reflect.apply(getState, UnenrolledActivityQuestStore, []).autoEnroll;
const DesktopActivityQuestHeaderExperiment = (require(9511) /* metro dependency 9511: experiments */).DesktopActivityQuestHeaderExperiment;
const getConfig = DesktopActivityQuestHeaderExperiment.getConfig;
let object2 = {};
const QUEST_ACTIVITY_HEADER = QuestsExperimentLocations.QUEST_ACTIVITY_HEADER;
object2.location = QUEST_ACTIVITY_HEADER;
Reflect.apply(getConfig, DesktopActivityQuestHeaderExperiment, [object2]).enabled;
const quests = QuestStore.quests;
const _createForOfIteratorHelperLoose_125364Binding = _createForOfIteratorHelperLoose_125364;
const questMatchingUtilsModule = require(9524) /* metro dependency 9524: QuestMatchingUtils */;
const getEligibleQuestsForApplicationId = questMatchingUtilsModule.getEligibleQuestsForApplicationId;
const value2 = _createForOfIteratorHelperLoose_125364Binding(Reflect.apply(getEligibleQuestsForApplicationId,
questMatchingUtilsModule, [quests, a0]));
const value3 = value2();
let done = value3.done;
if (!done) {
r4 = value3;
reducibleLoop1: while (true) {
value4 = r4.value;
if (autoEnroll) {
config = value4.config;
features = config.features;
includes = features.includes;
QuestVariants = (require(6529) /* metro dependency 6529: QuestVariants */).QuestVariants;
MOBILE_ACTIVITY_QUEST = QuestVariants.MOBILE_ACTIVITY_QUEST;
reducibleJoin3: while (true) {
if (Reflect.apply(includes, features, [MOBILE_ACTIVITY_QUEST])) {
value = require(9484) /* metro dependency 9484: QuestActionCreators */;
enrollInQuest = value.enrollInQuest;
id = value4.id;
object2 = {};
RUNNING_ACTIVITY = QuestContent.RUNNING_ACTIVITY;
object2.questContent = RUNNING_ACTIVITY;
object2.questContentCTA = (require(7120) /* metro dependency 7120: AnalyticsTypes */).QuestContentCTA.START_QUEST;
RUNNING_ACTIVITY = QuestContent.RUNNING_ACTIVITY;
object2.sourceQuestContent = RUNNING_ACTIVITY;
return Reflect.apply(enrollInQuest, value, [id, object2]);
}
break reducibleJoin3;
}
}
value5 = value2();
done = value5.done;
if (done) {
return undefined;
}
r4 = value5;
continue reducibleLoop1;
}
}
}
function isQuestRobloxRelated(a0, a1) { // fn#125369, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:2287, offset: 0x025d66d4, size: 79 bytes, params: 3, frame: 14
var r1;
var r0;
let value = a1 != null;
if (value) {
value = a0.some(function(a0) {
var ROBLOX_APPLICATION_ID = require(dependencyMap[25]).ROBLOX_APPLICATION_ID;
return a0 === ROBLOX_APPLICATION_ID;
});
if (value) {
value = require(4483) /* metro dependency 4483: RobloxSubgameUtils */;
value = value.isRobloxSubgame(a1);
r1 = value;
} else {
r1 = value;
}
r0 = r1;
} else {
r0 = value;
}
return r0;
}
function manualHeartbeatInitializationQuest(a0) { // fn#125371, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:2419, offset: 0x025d674b, size: 73 bytes, params: 2, frame: 14
return a0 != null && a0.config.features.includes((require(6529) /* metro dependency 6529: QuestVariants */).QuestVariants.MANUAL_HEARTBEAT_INITIALIZATION);
}
function _fun125372(a0) { // fn#125372, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:2572, offset: 0x025d6794, size: 180 bytes, params: 2, frame: 16
const closure = QuestProgressManager;
env0_8(closure, a0);
return env0_5(closure, [{key: 'syncHeartbeats', value: function(a0, a1, a2) {
}}, {key: 'getActivelyProgressingQuests', value: value_125402}, {key: 'getActivelyProgressingPlayOnDesktopQuests',
value: value_125403}, {key: 'getActivelyProgressingStreamOnDesktopQuests', value: value_125406},
{key: 'getActivelyProgressingActivityQuests', value: value_125407}]);
}
function QuestProgressManager(a0) { // fn#125373, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:2584, offset: 0x025d6848, size: 608 bytes, params: 2, frame: 22
var r0;
var Reflect;
let value = copyRestArgs(0, undefined);
let binding = env1_4;
binding(this, QuestProgressManager);
let object = [];
arraySpread(object, value, 0, undefined);
value = env1_7(QuestProgressManager);
binding = env1_6;
if (_isNativeReflectConstruct_125361()) {
Reflect = global.Reflect;
value = Reflect.construct(value, object, env1_7(this).constructor);
r0 = value;
} else {
value = value.apply(this, object);
r0 = value;
}
value = binding(this, r0);
object = {};
const FirstPartyQuestTaskTypes = (require(6535) /* metro dependency 6535: FirstPartyQuestTaskTypes */).FirstPartyQuestTaskTypes;
const PLAY_ON_DESKTOP = FirstPartyQuestTaskTypes.PLAY_ON_DESKTOP;
let Map = global.Map;
const value4 = Object.create(Map.prototype, {constructor: {value: Map}});
let map = new Map();
object[PLAY_ON_DESKTOP] = map instanceof Object ? map : value4;
const STREAM_ON_DESKTOP = FirstPartyQuestTaskTypes.STREAM_ON_DESKTOP;
Map = global.Map;
const value6 = Object.create(Map.prototype, {constructor: {value: Map}});
map = new Map();
object[STREAM_ON_DESKTOP] = map instanceof Object ? map : value6;
let PLAY_ACTIVITY = FirstPartyQuestTaskTypes.PLAY_ACTIVITY;
Map = global.Map;
const value8 = Object.create(Map.prototype, {constructor: {value: Map}});
map = new Map();
object[PLAY_ACTIVITY] = map instanceof Object ? map : value8;
value.heartbeats = object;
value.calculateHeartbeatDurationMs = calculateHeartbeatDurationMs;
value.initiateHeartbeat = initiateHeartbeat;
value.terminateHeartbeat = terminateHeartbeat;
value.handleSendHeartbeatSuccess = handleSendHeartbeatSuccess;
value.handleSendHeartbeatFailure = handleSendHeartbeatFailure;
object = {QUESTS_FETCH_CURRENT_QUESTS_SUCCESS: QUESTS_FETCH_CURRENT_QUESTS_SUCCESS_125380,
QUESTS_ENROLL_SUCCESS: QUESTS_ENROLL_SUCCESS_125381};
var handleSendHeartbeatSuccess = value.handleSendHeartbeatSuccess;
object.QUESTS_SEND_HEARTBEAT_SUCCESS = handleSendHeartbeatSuccess;
var handleSendHeartbeatFailure = value.handleSendHeartbeatFailure;
object.QUESTS_SEND_HEARTBEAT_FAILURE = handleSendHeartbeatFailure;
object.QUESTS_PREVIEW_UPDATE_SUCCESS = QUESTS_PREVIEW_UPDATE_SUCCESS_125383;
object.RUNNING_GAMES_CHANGE = RUNNING_GAMES_CHANGE_125384;
object.RUNNING_NON_GAMES_CHANGE = RUNNING_NON_GAMES_CHANGE;
object.STREAM_START = STREAM_START_125386;
object.STREAM_CREATE = STREAM_CREATE_125387;
object.STREAM_CLOSE = STREAM_CLOSE_125388;
object.PASSIVE_UPDATE_V2 = PASSIVE_UPDATE_V2_125389;
object.VOICE_STATE_UPDATES = VOICE_STATE_UPDATES_125390;
object.EMBEDDED_ACTIVITY_LAUNCH_SUCCESS = function({applicationId}) {
handleEmbeddedActivityLaunchSuccess(applicationId);
};
const env0_1 = env1_3(_fun125393);
object.FRAME_LAUNCH = FRAME_LAUNCH_125395;
object.FRAME_STOP = FRAME_STOP_125396;
object.EMBEDDED_ACTIVITY_UPDATE_V2 = EMBEDDED_ACTIVITY_UPDATE_V2_125397;
object.QUEST_APPLICATION_START_TIMER = function({questId}) {
var binding = questId;
var PLAY_ACTIVITY = require(dependencyMap[27]).FirstPartyQuestTaskTypes.PLAY_ACTIVITY;
binding.syncHeartbeats([PLAY_ACTIVITY], 'QUEST_APPLICATION_START_TIMER', _fun125400);
};
value.actions = object;
return value;
}
function value_125402(a0) { // fn#125402, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:8330, offset: 0x025d762d, size: 191 bytes, params: 2, frame: 15
const value = environment.__proto__;
const FirstPartyQuestTaskTypes = (require(6535) /* metro dependency 6535: FirstPartyQuestTaskTypes */).FirstPartyQuestTaskTypes;
const PLAY_ON_DESKTOP = FirstPartyQuestTaskTypes.PLAY_ON_DESKTOP;
if (PLAY_ON_DESKTOP === a0) {
return this.getActivelyProgressingPlayOnDesktopQuests();
}
const STREAM_ON_DESKTOP = FirstPartyQuestTaskTypes.STREAM_ON_DESKTOP;
if (STREAM_ON_DESKTOP === a0) {
return this.getActivelyProgressingStreamOnDesktopQuests();
}
const PLAY_ACTIVITY = FirstPartyQuestTaskTypes.PLAY_ACTIVITY;
if (PLAY_ACTIVITY === a0) {
return this.getActivelyProgressingActivityQuests();
}
(require(1360) /* metro dependency 1360: GlobalUtils */).assertNever(a0);
}
function value_125403() { // fn#125403, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:8776, offset: 0x025d76ec, size: 480 bytes, params: 1, frame: 30
var r11;
var id;
var r6;
var r4;
var value8;
var isLauncher;
var getOverrideForGame;
var value9;
var distributor;
var findGame;
var game;
var value10;
var value13;
var value14;
var value17;
const Map = global.Map;
const map = new Map();
const runningGames = RunningGameStoreNative.getRunningGames();
const runningNonGames = RunningGameStoreNative.getRunningNonGames();
const env0_1 = QuestStore.quests;
let binding = env1_21;
let log = binding.log;
Reflect.apply(log, binding, ['~ getActivelyProgressingPlayOnDesktopQuestIds -> Running games: ', runningGames,
'Running non-games: ', runningNonGames]);
const object2 = {};
const _createForOfIteratorHelperLoose_125364Binding = _createForOfIteratorHelperLoose_125364;
const value5 = undefined;
const value6 = _createForOfIteratorHelperLoose_125364Binding(runningGames);
const value7 = value6();
let done = value7.done;
if (!done) {
r11 = value7;
reducibleLoop1: while (true) {
value8 = r11.value;
isLauncher = value8.isLauncher;
reducibleJoin10: while (true) {
if (isLauncher) {
break reducibleJoin10;
}
id = value8.id;
if (id == null) {
getOverrideForGame = RunningGameStoreNative.getOverrideForGame;
value9 = Reflect.apply(getOverrideForGame, RunningGameStoreNative, [value8]);
distributor = value8.distributor;
if (distributor == null) {
if (value9 != null) {
break reducibleJoin10;
}
}
findGame = DetectableGameStore.findGame;
game = Reflect.apply(findGame, DetectableGameStore, [value8]);
reducibleJoin8: while (true) {
if (game == null) {
id = value5;
break reducibleJoin8;
}
id = game.id;
break reducibleJoin8;
}
if (id == null) {
break reducibleJoin10;
}
id = game.id;
object2[id] = value8;
break reducibleJoin10;
}
id = value8.id;
object2[id] = value8;
break reducibleJoin10;
}
value10 = value6();
done = value10.done;
if (done) {
break reducibleLoop1;
}
r11 = value10;
continue reducibleLoop1;
}
}
const value11 = _createForOfIteratorHelperLoose_125364(runningNonGames);
const value12 = value11();
done = value12.done;
if (!done) {
r6 = value12;
reducibleLoop12: while (true) {
value13 = r6.value;
id = value13.id;
reducibleJoin14: while (true) {
if (id == null) {
break reducibleJoin14;
}
id = value13.id;
object2[id] = value13;
break reducibleJoin14;
}
value14 = value11();
done = value14.done;
if (done) {
break reducibleLoop12;
}
r6 = value14;
continue reducibleLoop12;
}
}
const closure = value_125403_loop;
const Object = global.Object;
const value15 = Object.keys(object2);
let length = value15.length;
const value16 = 0;
if (value16 < length) {
r4 = value16;
reducibleLoop16: while (true) {
closure(value15[r4]);
value17 = typeof r4 === 'bigint' ? r4 + 1n : +r4 + 1;
length = value15.length;
if (value17 < length) {
r4 = value17;
continue reducibleLoop16;
}
break reducibleLoop16;
}
}
binding = env1_21;
log = binding.log;
const Array = global.Array;
Reflect.apply(log, binding, ['~ getActivelyProgressingPlayOnDesktopQuestIds -> Actively progressing questIds: ',
Array.from(map.keys())]);
return map;
}
function value_125406() { // fn#125406, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:10066, offset: 0x025d7a29, size: 334 bytes, params: 1, frame: 22
var r4;
var r11;
var value9;
var moduleValue;
var streamingApplicationId;
var isQuestProgressable2;
var value11;
var set;
var id2;
var value12;
const Map = global.Map;
const map = new Map();
const currentUserActiveStream = ApplicationStreamingStore.getCurrentUserActiveStream();
if (currentUserActiveStream != null) {
if (SortedVoiceStateStore.countVoiceStatesForChannel(currentUserActiveStream.channelId) < 2) {
return map;
}
var streamerActiveStreamMetadata = ApplicationStreamingStore.getStreamerActiveStreamMetadata();
if (streamerActiveStreamMetadata == null) {
return map;
}
var binding = env1_21;
var log = binding.log;
Reflect.apply(log, binding, ['~ getActivelyProgressingStreamOnDesktopQuestIds -> Active stream metadata: ',
streamerActiveStreamMetadata]);
var id = streamerActiveStreamMetadata.id;
if (id == null) {
return map;
}
var value7 = _createForOfIteratorHelperLoose_125364(QuestStore.quests.values());
var value8 = value7();
var done = value8.done;
if (!done) {
r4 = value8;
while (true) {
value9 = r4.value;
moduleValue = require(7116) /* metro dependency 7116: QuestTaskUtils */;
streamingApplicationId = moduleValue.getStreamingApplicationId(value9);
isQuestProgressable2 = isQuestProgressable(value9);
if (isQuestProgressable2) {
value11 = streamingApplicationId != null;
r11 = value11;
} else {
r11 = isQuestProgressable2;
}
if (!r11) {
continue;
}
if (streamingApplicationId !== id) {
continue;
}
set = map.set;
id2 = value9.id;
Reflect.apply(set, map, [id2, {applicationId: id}]);
value12 = value7();
done = value12.done;
if (done) {
break;
}
r4 = value12;
continue;
}
}
binding = env1_21;
log = binding.log;
var Array = global.Array;
Reflect.apply(log, binding,
['~ getActivelyProgressingStreamOnDesktopQuestIds -> Actively progressing questIds: ',
Array.from(map.keys())]);
}
return map;
}
function value_125407() { // fn#125407, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:10804, offset: 0x025d7b77, size: 538 bytes, params: 1, frame: 29
var r8;
var r12;
var r3;
var r4;
var value11;
var values;
var value12;
var value13;
var value14;
var moduleValue;
var playActivityApplicationId;
var isQuestProgressable2;
var value16;
var id;
var value17;
var value18;
var value21;
var isQuestProgressable3;
var moduleValue2;
var isPlayAnyActivityQuest2;
var value22;
const Map = global.Map;
const map = new Map();
const selfEmbeddedActivities = EmbeddedActivitiesStore.getSelfEmbeddedActivities();
const connectedFrame = FramesStore.getConnectedFrame();
const Set = global.Set;
let set = new Set(selfEmbeddedActivities.keys());
if (connectedFrame != null) {
set.add(connectedFrame.applicationId);
}
let binding = env1_21;
let log = binding.log;
let Array = global.Array;
Reflect.apply(log, binding, ['~ getActivelyProgressingActivityQuestIds -> Running activity applicationIds: ',
Array.from(set)]);
if (set.size !== 0) {
var quests = QuestStore.quests;
var value9 = _createForOfIteratorHelperLoose_125364(set);
var value10 = value9();
var done = value10.done;
if (!done) {
r8 = value10;
while (true) {
value11 = r8.value;
_createForOfIteratorHelperLoose_125364Binding = _createForOfIteratorHelperLoose_125364;
values = quests.values;
value12 = _createForOfIteratorHelperLoose_125364Binding(Reflect.apply(values, quests, []));
value13 = value12();
done = value13.done;
if (!done) {
r12 = value13;
while (true) {
value14 = r12.value;
moduleValue = require(7116) /* metro dependency 7116: QuestTaskUtils */;
playActivityApplicationId = moduleValue.getPlayActivityApplicationId(value14);
isQuestProgressable2 = isQuestProgressable(value14);
if (isQuestProgressable2) {
value16 = playActivityApplicationId != null;
r3 = value16;
} else {
r3 = isQuestProgressable2;
}
if (!r3) {
continue;
}
if (playActivityApplicationId !== value11) {
continue;
}
set = map.set;
id = value14.id;
Reflect.apply(set, map, [id, {applicationId: value11}]);
value17 = value12();
done = value17.done;
if (done) {
break;
}
r12 = value17;
continue;
}
}
value18 = value9();
done = value18.done;
if (done) {
break;
}
r8 = value18;
continue;
}
}
var value19 = _createForOfIteratorHelperLoose_125364(quests.values());
var value20 = value19();
done = value20.done;
if (!done) {
r4 = value20;
while (true) {
value21 = r4.value;
isQuestProgressable3 = isQuestProgressable(value21);
if (isQuestProgressable3) {
moduleValue2 = require(7114) /* metro dependency 7114: QuestUtils */;
isPlayAnyActivityQuest2 = moduleValue2.isPlayAnyActivityQuest(value21);
r8 = isPlayAnyActivityQuest2;
} else {
r8 = isQuestProgressable3;
}
if (!r8) {
continue;
}
set = map.set;
id = value21.id;
Reflect.apply(set, map, [id, {applicationId: DISCORD_APPLICATION_ID}]);
value22 = value19();
done = value22.done;
if (done) {
break;
}
r4 = value22;
continue;
}
}
binding = env1_21;
log = binding.log;
Array = global.Array;
Reflect.apply(log, binding, ['~ getActivelyProgressingActivityQuestIds -> Actively progressing questIds: ',
Array.from(map.keys())]);
}
return map;
}
function calculateHeartbeatDurationMs(a0) { // fn#125374, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:3061, owner: QuestProgressManager.calculateHeartbeatDurationMs, offset: 0x025d6aa8, size: 218 bytes, params: 2, frame: 17
const value = environment.__proto__.__proto__;
const value2 = QuestStore.quests.get(a0);
if (value2 == null) {
return env2_19;
}
if (value2.config == null) {
return env2_19;
}
const userStatus = value2.userStatus;
if (userStatus == null) {
return env2_19;
}
const questTaskUtilsModule = require(7116) /* metro dependency 7116: QuestTaskUtils */;
const getQuestTaskDetails = questTaskUtilsModule.getQuestTaskDetails;
const FirstPartyQuestTaskTypesSets = (require(6535) /* metro dependency 6535: FirstPartyQuestTaskTypes */).FirstPartyQuestTaskTypesSets;
const DESKTOP = FirstPartyQuestTaskTypesSets.DESKTOP;
const {progressSeconds, targetSeconds} = Reflect.apply(getQuestTaskDetails, questTaskUtilsModule, [value2, DESKTOP]);
const Math = global.Math;
const max = Math.max;
const value4 = targetSeconds - progressSeconds;
const Millis = (importDefault(672) /* metro dependency 672: Durations */).Millis;
const SECOND = Millis.SECOND;
const value5 = Reflect.apply(max, Math, [0, value4 * SECOND]);
return value5 <= env2_19 ? value5 + env2_20 : env2_19;
}
function initiateHeartbeat(a0, a1, a2) { // fn#125375, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:3349, owner: QuestProgressManager.initiateHeartbeat, offset: 0x025d6b82, size: 161 bytes, params: 4, frame: 15
var closure;
const env0_0 = a0;
const env0_1 = a1;
const env0_2 = a2;
if (env0_0.heartbeats[a1].has(a0)) {
env2_21.log('~ initiateHeartbeat -> Heartbeat already initiated for questId: ' + a0);
} else {
closure = maybeSendHeartbeat;
env2_21.log('~ initiateHeartbeat -> Initiating heartbeat for Quest ' + a0);
closure();
}
}
function terminateHeartbeat(a0, a1) { // fn#125377, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:4870, owner: QuestProgressManager.terminateHeartbeat, offset: 0x025d6ef7, size: 240 bytes, params: 3, frame: 19
var value3;
const property = env0_0.heartbeats[a1];
const value = environment.__proto__.__proto__;
const quests = QuestStore.quests;
const value2 = property.get(a0);
if (value2 != null) {
env2_21.log('~ terminateHeartbeat -> Terminating heartbeat for questId: ' + a0);
global.window.clearTimeout(value2);
property.delete(a0);
value3 = quests.get(a0);
if (value3 != null && isQuestProgressable(value3)) {
env2_21.log('~ terminateHeartbeat -> Sending terminal heartbeat for questId: ' + a0);
(require(9484) /* metro dependency 9484: QuestActionCreators */).sendHeartbeat({questId: a0,
terminal: true});
}
}
}
function handleSendHeartbeatSuccess({questId, userStatus}) { // fn#125378, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:5250, owner: QuestProgressManager.handleSendHeartbeatSuccess, offset: 0x025d6fe7, size: 199 bytes, params: 2, frame: 18
var r1;
var Object;
var keys;
var heartbeats;
var value2;
var length;
var value3;
var property;
var terminateHeartbeat;
var value4;
let binding = env2_21;
let log = binding.log;
let HermesInternal = global.HermesInternal;
Reflect.apply(log, binding, ['~ handleSendHeartbeatSuccess -> Heartbeat succeeded for questId: ' + questId + ')']);
reducibleJoin3: while (true) {
if (userStatus.completedAt == null) {
break reducibleJoin3;
}
binding = env2_21;
log = binding.log;
HermesInternal = global.HermesInternal;
concat = HermesInternal.concat;
Reflect.apply(log, binding,
['~ handleSendHeartbeatSuccess -> Quest ' + questId + ' completed, terminating any heartbeats for it']);
Object = global.Object;
keys = Object.keys;
value = environment;
heartbeats = env0_0.heartbeats;
value2 = Reflect.apply(keys, Object, [heartbeats]);
length = value2.length;
value3 = 0;
if (!(value3 < length)) {
break reducibleJoin3;
}
r1 = value3;
reducibleLoop2: while (true) {
property = value2[r1];
binding = env0_0;
terminateHeartbeat = binding.terminateHeartbeat;
Reflect.apply(terminateHeartbeat, binding, [questId, property]);
value4 = typeof r1 === 'bigint' ? r1 + 1n : +r1 + 1;
length = value2.length;
if (value4 < length) {
r1 = value4;
continue reducibleLoop2;
}
break reducibleJoin3;
}
}
}
function handleSendHeartbeatFailure({questId}) { // fn#125379, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:5605, owner: QuestProgressManager.handleSendHeartbeatFailure, offset: 0x025d70ae, size: 55 bytes, params: 2, frame: 13
env2_21.log('~ handleSendHeartbeatFailure -> Heartbeat failed for questId: ' + questId);
}
function QuestProgressManagerQUESTS_FETCH_CURRENT_QUESTS_SUCCESS() { // fn#125380, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:5745, owner: QuestProgressManager.QUESTS_FETCH_CURRENT_QUESTS_SUCCESS, offset: 0x025d70e5, size: 95 bytes, params: 1, frame: 17
const binding = env0_0;
const syncHeartbeats = binding.syncHeartbeats;
const {PLAY_ON_DESKTOP,
STREAM_ON_DESKTOP} = (require(6535) /* metro dependency 6535: FirstPartyQuestTaskTypes */).FirstPartyQuestTaskTypes;
return Reflect.apply(syncHeartbeats, binding, [[PLAY_ON_DESKTOP, STREAM_ON_DESKTOP],
'QUESTS_FETCH_CURRENT_QUESTS_SUCCESS']);
}
function QuestProgressManagerQUESTS_ENROLL_SUCCESS() { // fn#125381, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:5933, owner: QuestProgressManager.QUESTS_ENROLL_SUCCESS, offset: 0x025d7144, size: 130 bytes, params: 1, frame: 18
const binding = env0_0;
const syncHeartbeats = binding.syncHeartbeats;
const {PLAY_ON_DESKTOP, STREAM_ON_DESKTOP,
PLAY_ACTIVITY} = (require(6535) /* metro dependency 6535: FirstPartyQuestTaskTypes */).FirstPartyQuestTaskTypes;
return Reflect.apply(syncHeartbeats, binding, [[PLAY_ON_DESKTOP, STREAM_ON_DESKTOP, PLAY_ACTIVITY],
'QUESTS_ENROLL_SUCCESS', function(a0) {
return !manualHeartbeatInitializationQuest(a0);
}]);
}
function QuestProgressManagerQUESTS_PREVIEW_UPDATE_SUCCESS() { // fn#125383, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:6326, owner: QuestProgressManager.QUESTS_PREVIEW_UPDATE_SUCCESS, offset: 0x025d71dc, size: 120 bytes, params: 1, frame: 17
const binding = env0_0;
const syncHeartbeats = binding.syncHeartbeats;
const {PLAY_ON_DESKTOP, STREAM_ON_DESKTOP,
PLAY_ACTIVITY} = (require(6535) /* metro dependency 6535: FirstPartyQuestTaskTypes */).FirstPartyQuestTaskTypes;
return Reflect.apply(syncHeartbeats, binding, [[PLAY_ON_DESKTOP, STREAM_ON_DESKTOP, PLAY_ACTIVITY],
'QUESTS_PREVIEW_UPDATE_SUCCESS']);
}
function QuestProgressManagerRUNNING_GAMES_CHANGE() { // fn#125384, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:6556, owner: QuestProgressManager.RUNNING_GAMES_CHANGE, offset: 0x025d7254, size: 70 bytes, params: 1, frame: 14
const binding = env0_0;
const syncHeartbeats = binding.syncHeartbeats;
const FirstPartyQuestTaskTypes = (require(6535) /* metro dependency 6535: FirstPartyQuestTaskTypes */).FirstPartyQuestTaskTypes;
const PLAY_ON_DESKTOP = FirstPartyQuestTaskTypes.PLAY_ON_DESKTOP;
return Reflect.apply(syncHeartbeats, binding, [[PLAY_ON_DESKTOP], 'RUNNING_GAMES_CHANGE']);
}
function RUNNING_NON_GAMES_CHANGE() { // fn#125385, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:6679, owner: QuestProgressManager.RUNNING_NON_GAMES_CHANGE, offset: 0x025d729a, size: 70 bytes, params: 1, frame: 14
const binding = env0_0;
const syncHeartbeats = binding.syncHeartbeats;
const FirstPartyQuestTaskTypes = (require(6535) /* metro dependency 6535: FirstPartyQuestTaskTypes */).FirstPartyQuestTaskTypes;
const PLAY_ON_DESKTOP = FirstPartyQuestTaskTypes.PLAY_ON_DESKTOP;
return Reflect.apply(syncHeartbeats, binding, [[PLAY_ON_DESKTOP], 'RUNNING_NON_GAMES_CHANGE']);
}
function QuestProgressManagerSTREAM_START() { // fn#125386, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:6794, owner: QuestProgressManager.STREAM_START, offset: 0x025d72e0, size: 70 bytes, params: 1, frame: 14
const binding = env0_0;
const syncHeartbeats = binding.syncHeartbeats;
const FirstPartyQuestTaskTypes = (require(6535) /* metro dependency 6535: FirstPartyQuestTaskTypes */).FirstPartyQuestTaskTypes;
const STREAM_ON_DESKTOP = FirstPartyQuestTaskTypes.STREAM_ON_DESKTOP;
return Reflect.apply(syncHeartbeats, binding, [[STREAM_ON_DESKTOP], 'STREAM_START']);
}
function QuestProgressManagerSTREAM_CREATE() { // fn#125387, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:6900, owner: QuestProgressManager.STREAM_CREATE, offset: 0x025d7326, size: 70 bytes, params: 1, frame: 14
const binding = env0_0;
const syncHeartbeats = binding.syncHeartbeats;
const FirstPartyQuestTaskTypes = (require(6535) /* metro dependency 6535: FirstPartyQuestTaskTypes */).FirstPartyQuestTaskTypes;
const STREAM_ON_DESKTOP = FirstPartyQuestTaskTypes.STREAM_ON_DESKTOP;
return Reflect.apply(syncHeartbeats, binding, [[STREAM_ON_DESKTOP], 'STREAM_CREATE']);
}
function QuestProgressManagerSTREAM_CLOSE() { // fn#125388, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:7006, owner: QuestProgressManager.STREAM_CLOSE, offset: 0x025d736c, size: 70 bytes, params: 1, frame: 14
const binding = env0_0;
const syncHeartbeats = binding.syncHeartbeats;
const FirstPartyQuestTaskTypes = (require(6535) /* metro dependency 6535: FirstPartyQuestTaskTypes */).FirstPartyQuestTaskTypes;
const STREAM_ON_DESKTOP = FirstPartyQuestTaskTypes.STREAM_ON_DESKTOP;
return Reflect.apply(syncHeartbeats, binding, [[STREAM_ON_DESKTOP], 'STREAM_CLOSE']);
}
function QuestProgressManagerPASSIVE_UPDATE_V2() { // fn#125389, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:7116, owner: QuestProgressManager.PASSIVE_UPDATE_V2, offset: 0x025d73b2, size: 70 bytes, params: 1, frame: 14
const binding = env0_0;
const syncHeartbeats = binding.syncHeartbeats;
const FirstPartyQuestTaskTypes = (require(6535) /* metro dependency 6535: FirstPartyQuestTaskTypes */).FirstPartyQuestTaskTypes;
const STREAM_ON_DESKTOP = FirstPartyQuestTaskTypes.STREAM_ON_DESKTOP;
return Reflect.apply(syncHeartbeats, binding, [[STREAM_ON_DESKTOP], 'PASSIVE_UPDATE_V2']);
}
function QuestProgressManagerVOICE_STATE_UPDATES() { // fn#125390, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:7233, owner: QuestProgressManager.VOICE_STATE_UPDATES, offset: 0x025d73f8, size: 70 bytes, params: 1, frame: 14
const binding = env0_0;
const syncHeartbeats = binding.syncHeartbeats;
const FirstPartyQuestTaskTypes = (require(6535) /* metro dependency 6535: FirstPartyQuestTaskTypes */).FirstPartyQuestTaskTypes;
const STREAM_ON_DESKTOP = FirstPartyQuestTaskTypes.STREAM_ON_DESKTOP;
return Reflect.apply(syncHeartbeats, binding, [[STREAM_ON_DESKTOP], 'VOICE_STATE_UPDATES']);
}
async function _fun125393({applicationId}) { // fn#125393, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:7446, offset: 0x025d746a, size: 137 bytes, params: 2, frame: 19
var environment;
if (true) {
await undefined;
if (false) {
return undefined;
}
value = environment.__proto__.__proto__.__proto__;
await env3_26(applicationId);
if (false) {
return undefined;
}
var syncHeartbeats = QuestProgressManager.syncHeartbeats;
var FirstPartyQuestTaskTypes = env3_0(env3_2[27]).FirstPartyQuestTaskTypes;
var PLAY_ACTIVITY = FirstPartyQuestTaskTypes.PLAY_ACTIVITY;
Reflect.apply(syncHeartbeats, QuestProgressManager, [[PLAY_ACTIVITY], 'FRAME_LAUNCH', _fun125394]);
}
}
function QuestProgressManagerFRAME_STOP() { // fn#125396, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:7706, owner: QuestProgressManager.FRAME_STOP, offset: 0x025d7509, size: 70 bytes, params: 1, frame: 14
const binding = env0_0;
const syncHeartbeats = binding.syncHeartbeats;
const FirstPartyQuestTaskTypes = (require(6535) /* metro dependency 6535: FirstPartyQuestTaskTypes */).FirstPartyQuestTaskTypes;
const PLAY_ACTIVITY = FirstPartyQuestTaskTypes.PLAY_ACTIVITY;
Reflect.apply(syncHeartbeats, binding, [[PLAY_ACTIVITY], 'FRAME_STOP']);
}
function QuestProgressManagerEMBEDDED_ACTIVITY_UPDATE_V2() { // fn#125397, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:7822, owner: QuestProgressManager.EMBEDDED_ACTIVITY_UPDATE_V2, offset: 0x025d754f, size: 80 bytes, params: 1, frame: 16
const binding = env0_0;
const syncHeartbeats = binding.syncHeartbeats;
const FirstPartyQuestTaskTypes = (require(6535) /* metro dependency 6535: FirstPartyQuestTaskTypes */).FirstPartyQuestTaskTypes;
const PLAY_ACTIVITY = FirstPartyQuestTaskTypes.PLAY_ACTIVITY;
Reflect.apply(syncHeartbeats, binding, [[PLAY_ACTIVITY], 'EMBEDDED_ACTIVITY_UPDATE_V2', function(a0) {
return !manualHeartbeatInitializationQuest(a0);
}]);
}
function QUEST_APPLICATION_START_TIMER({questId}) { // fn#125399, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:8001, owner: QuestProgressManager.QUEST_APPLICATION_START_TIMER, offset: 0x025d759f, size: 95 bytes, params: 2, frame: 16
const binding = questId;
const syncHeartbeats = binding.syncHeartbeats;
const FirstPartyQuestTaskTypes = (require(6535) /* metro dependency 6535: FirstPartyQuestTaskTypes */).FirstPartyQuestTaskTypes;
const PLAY_ACTIVITY = FirstPartyQuestTaskTypes.PLAY_ACTIVITY;
Reflect.apply(syncHeartbeats, binding, [[PLAY_ACTIVITY], 'QUEST_APPLICATION_START_TIMER', _fun125400]);
}
function value_125403_loop(a0) { // fn#125404, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:9328, owner: value_125403._loop, offset: 0x025d78cc, size: 349 bytes, params: 2, frame: 30
var r3;
var value6;
var moduleValue2;
var desktopApplicationIds;
var value8;
var binding;
var set;
var id;
var ROBLOX_APPLICATION_ID;
var executableFingerprint;
var value9;
const env0_0 = a0;
const property = env0_2[a0];
const gameAnalyticsUtilsModule = require(4482) /* metro dependency 4482: GameAnalyticsUtils */;
const value3 = gameAnalyticsUtilsModule.removeExecutablePathPrefix(property.exePath);
const _createForOfIteratorHelperLoose_125364Binding = _createForOfIteratorHelperLoose_125364;
const questsBinding = quests;
const value4 = _createForOfIteratorHelperLoose_125364Binding(questsBinding.values());
const value5 = value4();
let done = value5.done;
if (!done) {
r3 = value5;
while (true) {
value6 = r3.value;
moduleValue2 = require(7116) /* metro dependency 7116: QuestTaskUtils */;
desktopApplicationIds = moduleValue2.getDesktopApplicationIds(value6);
if (isQuestProgressable(value6)) {
if (desktopApplicationIds == null) {
break;
}
value8 = desktopApplicationIds.find(_fun125405);
if (value8 != null) {
binding = env0_0;
set = binding.set;
id = value6.id;
executableFingerprint = property.executableFingerprint;
Reflect.apply(set, binding, [id, {applicationId: value8, executablePath: value3,
executableFingerprint: executableFingerprint}]);
break;
}
if (isQuestRobloxRelated(desktopApplicationIds, property)) {
binding = env0_0;
set = binding.set;
id = value6.id;
ROBLOX_APPLICATION_ID = (require(4484) /* metro dependency 4484: RobloxSubgameTypes */).ROBLOX_APPLICATION_ID;
executableFingerprint = property.executableFingerprint;
Reflect.apply(set, binding, [id, {applicationId: ROBLOX_APPLICATION_ID, executablePath: value3,
executableFingerprint: executableFingerprint}]);
break;
}
break;
}
value9 = value4();
done = value9.done;
if (done) {
break;
}
r3 = value9;
continue;
}
}
}
function maybeSendHeartbeat() { // fn#125376, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:3499, owner: QuestProgressManager.initiateHeartbeat.maybeSendHeartbeat, offset: 0x025d6c23, size: 724 bytes, params: 1, frame: 24
var r8;
var r6;
var r7;
var log;
var value5;
var value6;
var value7;
var QuestHeartbeatExecutableFingerprintExperiment;
var binding3;
var currentUserActiveStream;
var value9;
var binding4;
var moduleValue3;
var calculateHeartbeatDurationMs;
var binding5;
var window;
var binding6;
let value = environment.__proto__;
let binding = env1_0;
const activelyProgressingQuests = binding.getActivelyProgressingQuests(require);
if (activelyProgressingQuests.has(env0_0)) {
value5 = activelyProgressingQuests.get(env0_0);
value6 = undefined;
r8 = (value5 == null ? value6 : value5.applicationId) ?? (importDefault == null ? value6 : importDefault.applicationId);
value7 = environment.__proto__.__proto__.__proto__;
QuestHeartbeatExecutableFingerprintExperiment = (require(9511) /* metro dependency 9511: experiments */).QuestHeartbeatExecutableFingerprintExperiment;
r6 = QuestHeartbeatExecutableFingerprintExperiment.getConfig({location: QuestsExperimentLocations.QUESTS_MANAGER}).enabled ? value5 == null ? value6 : value5.executableFingerprint : value6;
r7 = (value5 == null ? value6 : value5.executablePath) ?? (importDefault == null ? value6 : importDefault.executablePath);
if (require === (require(6535) /* metro dependency 6535: FirstPartyQuestTaskTypes */).FirstPartyQuestTaskTypes.STREAM_ON_DESKTOP) {
currentUserActiveStream = ApplicationStreamingStore.getCurrentUserActiveStream();
if (currentUserActiveStream == null) {
binding = env3_21;
log = binding.log;
binding6 = env0_0;
Reflect.apply(log, binding,
['~ initiateHeartbeat -> Attempted to beat for stream quest but no active stream, terminating heartbeat for questId: ' + binding6]);
binding = env1_0;
binding.terminateHeartbeat(binding6, require);
return value6;
}
value9 = (require(4285) /* metro dependency 4285: StreamKeyUtils */).encodeStreamKey(currentUserActiveStream);
binding = env3_21;
log = binding.log;
binding4 = env0_0;
Reflect.apply(log, binding, ['~ initiateHeartbeat -> Sending heartbeat for questId: ' + binding4]);
moduleValue3 = require(9484) /* metro dependency 9484: QuestActionCreators */;
moduleValue3.sendHeartbeat({questId: binding4, streamKey: value9, applicationId: r8, executablePath: r7,
executableFingerprint: r6});
binding = env1_0;
calculateHeartbeatDurationMs = binding.calculateHeartbeatDurationMs;
binding5 = env0_0;
value = Reflect.apply(calculateHeartbeatDurationMs, binding, [binding5]);
window = global.window;
value = window.setTimeout(maybeSendHeartbeat, value);
binding = env0_3;
binding.set(binding5, value);
return undefined;
}
binding = env3_21;
log = binding.log;
binding3 = env0_0;
Reflect.apply(log, binding, ['~ initiateHeartbeat -> Sending heartbeat for questId: ' + binding3]);
(require(9484) /* metro dependency 9484: QuestActionCreators */).sendHeartbeat({questId: binding3,
applicationId: r8, executablePath: r7, executableFingerprint: r6});
binding = env1_0;
calculateHeartbeatDurationMs = binding.calculateHeartbeatDurationMs;
binding5 = env0_0;
value = Reflect.apply(calculateHeartbeatDurationMs, binding, [binding5]);
window = global.window;
value = window.setTimeout(maybeSendHeartbeat, value);
binding = env0_3;
binding.set(binding5, value);
} else {
binding = env3_21;
log = binding.log;
var binding2 = env0_0;
Reflect.apply(log, binding,
['~ initiateHeartbeat -> Quest ' + binding2 + ' is no longer actively progressing, terminating heartbeat']);
binding = env1_0;
binding.terminateHeartbeat(binding2, require);
}
}
function _fun125394(a0) { // fn#125394, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:7604, offset: 0x025d74f3, size: 22 bytes, params: 2, frame: 11
return !env4_28(a0);
}
function _fun125400(a0) { // fn#125400, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:16426:8118, offset: 0x025d75fe, size: 47 bytes, params: 2, frame: 12
let value = a0 != null;
let r0 = value && a0.id === questId;
if (r0) {
value = environment.__proto__.__proto__.__proto__;
value = manualHeartbeatInitializationQuest(a0);
r0 = value;
}
return r0;
}