/* Metro module 12500; source: modules/gateway/BasicWorkScheduler.tsx; dependencies: [6, 7, 12498, 3, 12501, 44, 2] */ import ClassCallCheck from '../../by-id/module-00006-ClassCallCheck.js'; /* Metro dependency 6 */ import CreateClass from '../../by-id/module-00007-CreateClass.js'; /* Metro dependency 7 */ import Module00044 from '../../by-id/module-00044.js'; /* Metro dependency 44 */ import * as FileImportTrackerModule from '../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */ import * as DispatcherWorkConstantsModule from './DispatcherWorkConstants.tsx'; /* Metro dependency 12498 */ import * as WorkSchedulerTelemetryModule from './WorkSchedulerTelemetry.tsx'; /* Metro dependency 12501 */ function _fun95220(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#95220, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12690:6, offset: 0x02135b8a, size: 232 bytes, params: 8, frame: 19 const env0_0 = require; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); let value = DispatcherWorkConstantsModule; const env0_5 = value.MAX_DISPATCHER_FLUSH_DEADLINE_TRIES; const env0_6 = value.DISPATCHER_STANDARD_TIMEOUT_MS; const env0_7 = value.DISPATCHER_IDEAL_TIME_LIMIT_MS; const env0_8 = value.DISPATCHER_LONG_TIMEOUT_MS; value = importDefault(3) /* metro dependency 3: Logger */; value = new value('DispatcherWorkScheduler'); value = _fun95221(); (FileImportTrackerModule).fileFinishedImporting('modules/gateway/BasicWorkScheduler.tsx'); exports.BasicWorkScheduler = value; function _fun95221() { // fn#95221, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12690:311, offset: 0x02135c72, size: 346 bytes, params: 1, frame: 15 return CreateClass(BasicWorkScheduler, [{key: '_trackAppBackgrounded', value: value_95223}, {key: '_queueIdleCallback', value: function() { var Error = global.Error; throw new Error('Not implemented'); }}, {key: '_clearIdleCallback', value: function() { var Error = global.Error; throw new Error('Not implemented'); }}, {key: '_hasExceededMaxConsecutiveFlushes', get: function() { return this._consecutiveFlushesBeforeQueueEmpty >= MAX_DISPATCHER_FLUSH_DEADLINE_TRIES; }}, {key: '_processWorkCallback', value: value_95227}, {key: 'markCriticalWorkScheduled', value: function() { this._criticalWorkScheduled = true; if (this._flushIdleHandler != null) { this._clearIdleCallback(); this._processWorkCallback(); } }}, {key: 'toggleRequestIdleCallback', value: function(a0) { this._enableRequestIdleCallback = a0; if (!a0 && this.hasWorkScheduled) { this._clearIdleCallback(); this._processWorkCallback(); } }}, {key: 'isBackgrounded', get: function() { return this._isBackgrounded; }}, {key: 'hasWorkScheduled', get: function() { return this._flushTimeoutHandler != null || this._flushIdleHandler != null; }}, {key: 'isRequestIdleCallbackEnabled', get: function() { return this._enableRequestIdleCallback; }}, {key: 'clearWorkTimeout', value: function() { if (this._flushTimeoutHandler != null) { global.clearTimeout(this._flushTimeoutHandler); this._flushTimeoutHandler = null; } this._clearIdleCallback(); this._nextDispatchTimeout = DISPATCHER_STANDARD_TIMEOUT_MS; this._workCallbackFn = null; }}, {key: 'requestWorkTimeout', value: value_95234}]); function BasicWorkScheduler() { // fn#95222, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12690:332, offset: 0x02135dcc, size: 149 bytes, params: 1, frame: 15 env1_3(this, BasicWorkScheduler); this._flushTimeoutHandler = null; this._flushIdleHandler = null; this._nextDispatchTimeout = DISPATCHER_STANDARD_TIMEOUT_MS; this._workCallbackFn = null; this._consecutiveFlushesBeforeQueueEmpty = 0; this._isBackgrounded = false; this._enableRequestIdleCallback = true; this._criticalWorkScheduled = false; const WorkSchedulerTelemetry = (WorkSchedulerTelemetryModule).WorkSchedulerTelemetry; const value3 = Object.create(WorkSchedulerTelemetry.prototype, {constructor: {value: WorkSchedulerTelemetry}}); const workSchedulerTelemetry = new WorkSchedulerTelemetry(); this.telemetry = workSchedulerTelemetry instanceof Object ? workSchedulerTelemetry : value3; this._logger = env1_9; } function value_95223(a0) { // fn#95223, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12690:739, offset: 0x02135e61, size: 107 bytes, params: 2, frame: 14 var telemetry; var track; var value; if (this._isBackgrounded !== a0) { this._isBackgrounded = a0; if (this._isBackgrounded && this.hasWorkScheduled) { telemetry = this.telemetry; track = telemetry.track; value = environment.__proto__; Reflect.apply(track, telemetry, [(require(12501) /* metro dependency 12501: WorkSchedulerTelemetry */).WorkSchedulerTelemetryEvent.SKIP_IDLE_CALLBACK_DUE_TO_BACKGROUNDED]); this._processWorkCallback(); } } } function value_95227(a0) { // fn#95227, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12690:1279, offset: 0x02135f06, size: 417 bytes, params: 2, frame: 19 var value; var _consecutiveFlushesBeforeQueueEmpty; var telemetry; const WorkSchedulerTelemetryMeasurement = (require(12501) /* metro dependency 12501: WorkSchedulerTelemetry */).WorkSchedulerTelemetryMeasurement; if (this._workCallbackFn != null) { if (this._hasExceededMaxConsecutiveFlushes) { value = environment.__proto__; env1_9.log('Unable to fully flush work queue after max retries, skipping future deadline.'); this._workCallbackFn(); this.clearWorkTimeout(); telemetry = this.telemetry; telemetry.measure(WorkSchedulerTelemetryMeasurement.COUNT_FLUSH_BEFORE_QUEUE_EMPTY, this._consecutiveFlushesBeforeQueueEmpty); telemetry = this.telemetry; telemetry.track((require(12501) /* metro dependency 12501: WorkSchedulerTelemetry */).WorkSchedulerTelemetryEvent.EXCEEDED_MAX_CONSECUTIVE_FLUSHES); this._consecutiveFlushesBeforeQueueEmpty = 0; this._nextDispatchTimeout = DISPATCHER_LONG_TIMEOUT_MS; return undefined; } var performance = global.performance; value = performance.now(); var value2 = this._workCallbackFn(a0); performance = global.performance; var value3 = performance.now(); this.clearWorkTimeout(); value = value3 - value; this._nextDispatchTimeout = value > DISPATCHER_IDEAL_TIME_LIMIT_MS ? DISPATCHER_LONG_TIMEOUT_MS : DISPATCHER_STANDARD_TIMEOUT_MS; _consecutiveFlushesBeforeQueueEmpty = this._consecutiveFlushesBeforeQueueEmpty; if (value2) { if (_consecutiveFlushesBeforeQueueEmpty > 0) { telemetry = this.telemetry; telemetry.measure(WorkSchedulerTelemetryMeasurement.COUNT_FLUSH_BEFORE_QUEUE_EMPTY, global.parseInt('' + this._consecutiveFlushesBeforeQueueEmpty)); } this._consecutiveFlushesBeforeQueueEmpty = 0; this._criticalWorkScheduled = false; } else { this._consecutiveFlushesBeforeQueueEmpty = _consecutiveFlushesBeforeQueueEmpty + 1; } } } function value_95234(a0) { // fn#95234, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12690:3132, offset: 0x02136188, size: 202 bytes, params: 2, frame: 19 var environment; var telemetry; var time; let value = a1; const r3 = value !== undefined ? value : false; this._workCallbackFn = a0; if (!this.hasWorkScheduled) { telemetry = this.telemetry; time = telemetry.time; value = environment.__proto__; Reflect.apply(time, telemetry, [(require(12501) /* metro dependency 12501: WorkSchedulerTelemetry */).WorkSchedulerTelemetryTiming.TIME_TO_QUEUE_EMPTY]); if (this._nextDispatchTimeout === DISPATCHER_LONG_TIMEOUT_MS) { telemetry = this.telemetry; telemetry.track((require(12501) /* metro dependency 12501: WorkSchedulerTelemetry */).WorkSchedulerTelemetryEvent.LONGER_DISPATCH); } if (r3) { this._queueIdleCallback(); } else { this._flushTimeoutHandler = global.setTimeout(_fun95235, this._nextDispatchTimeout); } } function _fun95235() { // fn#95235, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:12690:3445, offset: 0x02136252, size: 141 bytes, params: 1, frame: 16 var telemetry; const defaultImport = Module00044; let binding = env0_0; defaultImport(binding._workCallbackFn != null, 'Work callback should be set'); const _isBackgrounded = binding._isBackgrounded; binding = env0_0; if (_isBackgrounded) { telemetry = binding.telemetry; telemetry.track((require(12501) /* metro dependency 12501: WorkSchedulerTelemetry */).WorkSchedulerTelemetryEvent.SKIP_IDLE_CALLBACK_DUE_TO_BACKGROUNDED); return binding._processWorkCallback(); } binding._queueIdleCallback(); } } } } global.__d(_fun95220, 12500, [6, 7, 12498, 3, 12501, 44, 2]) /* metro module 12500, dependencies: [6, 7, 12498, 3, 12501, 44, 2] */;