Initial commit

This commit is contained in:
janisslsm committed 2026-07-27 16:20:00 +03:00
commit af3b49f756
16065 files changed
+2938410

No files matched your search

@@ -0,0 +1,750 @@
/* Metro module 13079; source: modules/media/native/MediaPlayerManager.tsx; dependencies: [6, 7, 15, 17, 18, 27, 1378, 7710, 1379, 4814, 3784, 7030, 661, 8044, 13080, 482, 3, 629, 690, 4008, 694, 477, 628, 7067, 10915, 4561, 2] */
function _fun99904(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#99904, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:6, offset: 0x021d8da4, size: 554 bytes, params: 8, frame: 20
let env0_0 = require;
const closure = function(a0) {
if (a0.duration <= 0) {
return undefined;
}
return a0.duration - a0.time <= PLAYBACK_COMPLETION_DETECTION_TOLERANCE;
};
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(6) /* metro dependency 6 */;
const env0_4 = importDefault(7) /* metro dependency 7 */;
const env0_5 = importDefault(15) /* metro dependency 15 */;
const env0_6 = importDefault(17) /* metro dependency 17 */;
const env0_7 = importDefault(18) /* metro dependency 18 */;
let value = require(27) /* metro dependency 27 */;
const env0_8 = value.NativeEventEmitter;
const env0_9 = value.NativeModules;
const embeddedActivitiesStore = importDefault(1378) /* metro dependency 1378: EmbeddedActivitiesStore */;
const voicePanelStore = importDefault(7710) /* metro dependency 7710: VoicePanelStore */;
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
const messageStore = importDefault(4814) /* metro dependency 4814: MessageStore */;
const permissionStore = importDefault(3784) /* metro dependency 3784: PermissionStore */;
const appStateStore = importDefault(7030) /* metro dependency 7030: AppStateStore */;
const env0_16 = (require(661) /* metro dependency 661: Constants */).AppStates;
const env0_17 = (require(8044) /* metro dependency 8044: ActivityPanelConstants */).ActivityPanelModes;
value = require(13080) /* metro dependency 13080: MediaPlaybackPanelConstants */;
const env0_18 = value.PLAYBACK_COMPLETION_DETECTION_TOLERANCE;
const env0_19 = value.PLAYBACK_PROGRESS_UPDATE_INTERVAL;
const env0_20 = (require(482) /* metro dependency 482: Constants */).Permissions;
value = importDefault(3) /* metro dependency 3: Logger */;
value = new value('MediaPlayerManager');
value = require(629) /* metro dependency 629 */;
value = value.create(function(a0) {
var env0_0 = a0;
return {'activeMediaPlayerSource': null, 'mediaSourceMessage': null, 'canAccessMedia': true, 'isPlaying': false,
'wasPipClosedByUser': false, 'progress': null, 'rate': 0, 'showPip': false,
activeMediaPlayerSource: undefined,
mediaSourceMessage: undefined, progress: undefined, closePip: _fun99910,
displayedMediaItemIdsPerChannel: {},
currentlyDisplayedChannelId: undefined};
});
const value6 = new _fun99912(importDefault(4561) /* metro dependency 4561: LifecycleManager */)();
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/media/native/MediaPlayerManager.tsx');
exports.default = value6;
exports.useMediaPlayerManagerStore = value;
exports.isPlaybackComplete = closure;
}
function _isNativeReflectConstruct_99905() { // fn#99905, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:430, offset: 0x021d8fce, 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_99905_isNativeReflectConstruct = function() {
return !!result;
})();
}
function _fun99909(a0) { // fn#99909, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:684, offset: 0x021d905e, size: 69 bytes, params: 2, frame: 4
const env0_0 = a0;
return {'activeMediaPlayerSource': null, 'mediaSourceMessage': null, 'canAccessMedia': true, 'isPlaying': false,
'wasPipClosedByUser': false, 'progress': null, 'rate': 0, 'showPip': false, activeMediaPlayerSource: undefined,
mediaSourceMessage: undefined, progress: undefined, closePip: closePip, displayedMediaItemIdsPerChannel: {},
currentlyDisplayedChannelId: undefined};
}
function _fun99912(a0) { // fn#99912, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:1056, offset: 0x021d90eb, size: 478 bytes, params: 2, frame: 16
const closure = MediaPlayerManager;
env0_7(closure, a0);
return env0_4(closure, [{key: '_initialize', value: value_99914}, {key: 'updateMediaPermissions',
value: value_99916}, {key: '_terminate', value: value_99918}, {key: 'pauseCurrentPlayer', value: function() {
var MediaPlayerManager = NativeModules.MediaPlayerManager;
MediaPlayerManager.pauseCurrentPlayer();
}}, {key: 'playCurrentPlayer', value: function() {
var MediaPlayerManager = NativeModules.MediaPlayerManager;
MediaPlayerManager.playCurrentPlayer();
}}, {key: 'userDidClosePip', value: value_99922}, {key: 'pauseAndClosePip', value: value_99924},
{key: 'handleVoicePanelStateUpdated', value: value_99926}, {key: 'handleEmbeddedActivitiesUpdated',
value: function() {
if (EmbeddedActivitiesStore.getActivityPanelMode() === ActivityPanelModes.PIP) {
this.pauseAndClosePip();
}
}}, {key: 'handleMediaPlayerPlaybackRateChanged', value: value_99928},
{key: 'handleMediaPlayerPlaybackProgressUpdated', value: value_99930},
{key: 'handleMediaPlayerPlaybackSourceChanged', value: value_99932}, {key: 'getOrFetchMediaSourceMessage',
value: value_99934}, {key: 'handleMediaSourceMessageUpdated', value: value_99938},
{key: 'handleMediaPlayerViewWillAppear', value: value_99940}, {key: 'handleMediaPlayerViewDidDisappear',
value: value_99942}, {key: 'updateDisplayState', value: value_99945}]);
}
function closePip() { // fn#99910, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:842, offset: 0x021d90a3, size: 47 bytes, params: 1, frame: 12
var environment;
const value = environment.__proto__;
(require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun99911);
}
function MediaPlayerManager() { // fn#99913, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:1068, offset: 0x021d92c9, size: 328 bytes, params: 1, frame: 19
let value = environment.__proto__;
env1_3(this, MediaPlayerManager);
const value3 = env1_6(MediaPlayerManager);
value = env1_5(this, _isNativeReflectConstruct_99905() ? global.Reflect.construct(value3, [],
env1_6(this).constructor) : value3.apply(this, undefined));
value.subscriptions = [];
value.voicePanelStoreUnsubscribe = undefined;
value.showPipUnsubscribe = undefined;
value.pauseAndClosePip = value.pauseAndClosePip.bind(value);
value.handleVoicePanelStateUpdated = value.handleVoicePanelStateUpdated.bind(value);
value.handleEmbeddedActivitiesUpdated = value.handleEmbeddedActivitiesUpdated.bind(value);
value.handleMediaPlayerPlaybackRateChanged = value.handleMediaPlayerPlaybackRateChanged.bind(value);
value.handleMediaPlayerPlaybackSourceChanged = value.handleMediaPlayerPlaybackSourceChanged.bind(value);
value.handleMediaPlayerViewWillAppear = value.handleMediaPlayerViewWillAppear.bind(value);
value.handleMediaPlayerViewDidDisappear = value.handleMediaPlayerViewDidDisappear.bind(value);
value.updateDisplayState = value.updateDisplayState.bind(value);
value.updateMediaPermissions = value.updateMediaPermissions.bind(value);
return value;
}
function value_99914() { // fn#99914, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:2092, offset: 0x021d9411, size: 484 bytes, params: 1, frame: 17
var binding;
let MediaPlayerManager = NativeModules.MediaPlayerManager;
const nativeEventEmitter = new NativeEventEmitter(MediaPlayerManager);
this.subscriptions = [nativeEventEmitter.addListener('MediaPlayerPlaybackSourceChanged',
this.handleMediaPlayerPlaybackSourceChanged),
nativeEventEmitter.addListener('MediaPlayerPlaybackProgressUpdated',
this.handleMediaPlayerPlaybackProgressUpdated), nativeEventEmitter.addListener('MediaPlayerPlaybackRateChanged',
this.handleMediaPlayerPlaybackRateChanged), nativeEventEmitter.addListener('MediaPlayerViewWillAppear',
this.handleMediaPlayerViewWillAppear), nativeEventEmitter.addListener('MediaPlayerViewDidDisappear',
this.handleMediaPlayerViewDidDisappear)];
MediaPlayerManager = NativeModules.MediaPlayerManager;
MediaPlayerManager.subscribeToPlaybackEvents();
const rootNavigationRef = (require(4008) /* metro dependency 4008: RootNavigationRefNative */).getRootNavigationRef();
if (rootNavigationRef != null) {
rootNavigationRef.addListener('state', this.updateDisplayState);
}
let subscribe = VoicePanelStore.subscribe;
this.voicePanelStoreUnsubscribe = Reflect.apply(subscribe, VoicePanelStore, [this.handleVoicePanelStateUpdated]);
EmbeddedActivitiesStore.addChangeListener(this.handleEmbeddedActivitiesUpdated);
ChannelStore.addChangeListener(this.updateMediaPermissions);
PermissionStore.addChangeListener(this.updateMediaPermissions);
const defaultImport = importDefault(694) /* metro dependency 694: Dispatcher */;
subscribe = defaultImport.subscribe;
const userDidClosePip = this.userDidClosePip;
Reflect.apply(subscribe, defaultImport, ['LOGOUT', userDidClosePip]);
const platformUtilsModule = require(477) /* metro dependency 477: PlatformUtils */;
if (platformUtilsModule.isIOS()) {
binding = env1_22;
this.showPipUnsubscribe = binding.subscribe(_fun99915);
}
env1_21.verbose('Initialized and subscribed to playback events');
}
function value_99916() { // fn#99916, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:3364, offset: 0x021d968b, size: 54 bytes, params: 1, frame: 12
var environment;
const value = environment.__proto__;
(require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun99917);
}
function value_99918() { // fn#99918, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:3677, offset: 0x021d9777, size: 248 bytes, params: 1, frame: 17
var environment;
this.subscriptions.forEach(function(a0) {
return a0.remove();
});
this.subscriptions = [];
let value = environment.__proto__;
const rootNavigationRef = (require(4008) /* metro dependency 4008: RootNavigationRefNative */).getRootNavigationRef();
if (rootNavigationRef != null) {
rootNavigationRef.removeListener('state', this.updateDisplayState);
}
const voicePanelStoreUnsubscribe = this.voicePanelStoreUnsubscribe;
if (voicePanelStoreUnsubscribe != null) {
voicePanelStoreUnsubscribe.call(this);
}
const showPipUnsubscribe = this.showPipUnsubscribe;
if (showPipUnsubscribe != null) {
showPipUnsubscribe.call(this);
}
EmbeddedActivitiesStore.removeChangeListener(this.handleEmbeddedActivitiesUpdated);
ChannelStore.removeChangeListener(this.updateMediaPermissions);
PermissionStore.removeChangeListener(this.updateMediaPermissions);
value = importDefault(694) /* metro dependency 694: Dispatcher */;
const unsubscribe = value.unsubscribe;
const userDidClosePip = this.userDidClosePip;
Reflect.apply(unsubscribe, value, ['LOGOUT', userDidClosePip]);
}
function value_99922() { // fn#99922, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:4381, offset: 0x021d98a5, size: 47 bytes, params: 1, frame: 12
var environment;
const value = environment.__proto__;
(require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun99923);
}
function value_99924() { // fn#99924, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:4500, offset: 0x021d98f6, size: 54 bytes, params: 1, frame: 12
var environment;
const value = environment.__proto__;
(require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun99925);
}
function value_99926() { // fn#99926, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:4659, offset: 0x021d9961, size: 67 bytes, params: 1, frame: 11
let value = environment.__proto__;
value = VoicePanelStore.getState();
if (value.isVoicePanelFullscreen() || value.voicePanelsPIP.size > 0) {
this.pauseAndClosePip();
}
}
function value_99928({source, rate}) { // fn#99928, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:4936, offset: 0x021d99d4, size: 76 bytes, params: 2, frame: 12
var environment;
const value = environment.__proto__;
(require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun99929);
}
function value_99930({source, time, duration}) { // fn#99930, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:5507, offset: 0x021d9b74, size: 78 bytes, params: 2, frame: 12
var environment;
const value = environment.__proto__;
(require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun99931);
}
function value_99932({source}) { // fn#99932, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:6010, offset: 0x021d9cf8, size: 66 bytes, params: 2, frame: 12
var environment;
const value = environment.__proto__;
(require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun99933);
}
function value_99934({channelId, messageId, assetUrl}) { // fn#99934, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:6503, offset: 0x021d9e4e, size: 190 bytes, params: 2, frame: 18
var environment;
if (messageId != null) {
if (channelId == null) {
return undefined;
}
var value = environment.__proto__;
var message = MessageStore.getMessage(channelId, messageId);
if (message != null) {
return message;
}
if (assetUrl == null) {
value = importDefault(7067) /* metro dependency 7067: MessageActionCreators */;
value = value.fetchMessage({channelId: channelId, messageId: messageId});
value.then(_fun99937);
return undefined;
}
var value5 = MessageStore.getMessages(channelId).toArray().find(function(a0) {
var value = a0.getContentMessage();
return value == null || value.attachments == null ? undefined : value.attachments.some(_fun99936);
});
if (value5 != null) {
return value5;
}
value = importDefault(7067) /* metro dependency 7067: MessageActionCreators */;
value = value.fetchMessage({channelId: channelId, messageId: messageId});
value.then(_fun99937);
}
}
function value_99938(a0) { // fn#99938, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:6962, offset: 0x021d9f7f, size: 54 bytes, params: 2, frame: 12
var environment;
const env0_0 = a0;
const value = environment.__proto__;
(require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun99939);
}
function value_99940({mediaItemIds, channelId}) { // fn#99940, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:7167, offset: 0x021da00a, size: 76 bytes, params: 2, frame: 12
var environment;
const value = environment.__proto__;
(require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun99941);
}
function value_99942({mediaItemIds, channelId}) { // fn#99942, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:7465, offset: 0x021da0ec, size: 76 bytes, params: 2, frame: 12
var environment;
const value = environment.__proto__;
(require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun99943);
}
function value_99945() { // fn#99945, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:7795, offset: 0x021da1fe, size: 47 bytes, params: 1, frame: 12
var environment;
const value = environment.__proto__;
(require(690) /* metro dependency 690: ReactBatchUpdatesNative */).batchUpdates(_fun99946);
}
function _fun99911() { // fn#99911, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:870, offset: 0x021d90d2, size: 25 bytes, params: 1, frame: 11
return env1_0({showPip: false});
}
function _fun99915(a0, a1) { // fn#99915, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:3086, offset: 0x021d95f5, size: 150 bytes, params: 3, frame: 11
var r0;
var value;
if (a1.showPip) {
if (a0.showPip) {
value = a1.rate !== 0;
r0 = value && a0.rate === 0;
r0 = r0 && !a0.showPip;
if (r0) {
value = environment.__proto__.__proto__;
value = AppStateStore.getState() === AppStates.ACTIVE;
r0 = value;
}
if (r0) {
value = environment.__proto__.__proto__;
NativeModules.MediaPlayerManager.clearNowPlayingInfo();
}
} else {
value = environment.__proto__.__proto__;
NativeModules.MediaPlayerManager.clearNowPlayingInfo();
}
} else {
value = a1.rate !== 0;
r0 = value && a0.rate === 0;
r0 = r0 && !a0.showPip;
if (r0) {
value = environment.__proto__.__proto__;
value = AppStateStore.getState() === AppStates.ACTIVE;
r0 = value;
}
if (r0) {
value = environment.__proto__.__proto__;
NativeModules.MediaPlayerManager.clearNowPlayingInfo();
}
}
}
function _fun99917() { // fn#99917, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:3398, offset: 0x021d96c1, size: 182 bytes, params: 1, frame: 17
let binding = env2_22;
const getState = binding.getState;
const activeMediaPlayerSource = Reflect.apply(getState, binding, []).activeMediaPlayerSource;
const getChannel = ChannelStore.getChannel;
const value2 = null;
const value3 = undefined;
const channelId = value2 == activeMediaPlayerSource ? value3 : activeMediaPlayerSource.channelId;
const value4 = Reflect.apply(getChannel, ChannelStore, [value2 != channelId ? channelId : value2]);
if (value2 == value4) {
env2_22.setState({canAccessMedia: true});
} else if (value4.isPrivate()) {
env2_22.setState({canAccessMedia: true});
} else if (PermissionStore.can(Permissions.VIEW_CHANNEL, value4)) {
env2_22.setState({canAccessMedia: true});
} else {
binding = env2_22;
binding.setState({canAccessMedia: false});
binding = env0_0;
binding.pauseCurrentPlayer();
}
return value3;
}
function _fun99923() { // fn#99923, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:4415, offset: 0x021d98d4, size: 34 bytes, params: 1, frame: 11
return env2_22.setState({'wasPipClosedByUser': true, 'showPip': false});
}
function _fun99925() { // fn#99925, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:4534, offset: 0x021d992c, size: 53 bytes, params: 1, frame: 11
env0_0.pauseCurrentPlayer();
env2_22.setState({'wasPipClosedByUser': true, 'showPip': false});
}
function _fun99929() { // fn#99929, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:4987, offset: 0x021d9a20, size: 340 bytes, params: 1, frame: 21
var value2;
var setState;
if (source == null) {
value2 = environment.__proto__.__proto__;
env2_22.setState({'rate': 0, 'isPlaying': false});
}
let binding = env2_21;
const verbose = binding.verbose;
let rateBinding = rate;
sourceBinding = source;
const value4 = undefined;
Reflect.apply(verbose, binding,
['Playback rate changed to ' + rateBinding + ': ' + (sourceBinding == null ? value4 : source.id)]);
const state = env2_22.getState();
if ((importDefault(628) /* metro dependency 628: shallowEqual */)(state.activeMediaPlayerSource,
source ?? value4)) {
binding = env2_22;
setState = binding.setState;
rateBinding = rate;
Reflect.apply(setState, binding, [{rate: rateBinding, isPlaying: rateBinding !== 0,
wasPipClosedByUser: !(state.isPlaying === false && rate > 0) && state.wasPipClosedByUser}]);
binding = env0_0;
binding.updateDisplayState();
} else {
binding = env0_0;
var handleMediaPlayerPlaybackSourceChanged = binding.handleMediaPlayerPlaybackSourceChanged;
sourceBinding = source;
Reflect.apply(handleMediaPlayerPlaybackSourceChanged, binding, [{source: sourceBinding}]);
binding.handleMediaPlayerPlaybackRateChanged({source: sourceBinding, rate: rate});
}
return value4;
}
function _fun99931() { // fn#99931, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:5569, offset: 0x021d9bc2, size: 310 bytes, params: 1, frame: 19
var r4;
var r2;
var currentlyDisplayedChannelId;
var durationBinding;
var object2;
var timeBinding;
var isPlaybackComplete2;
var progress;
let binding = env2_22;
const state = binding.getState();
const value3 = undefined;
if ((importDefault(628) /* metro dependency 628: shallowEqual */)(state.activeMediaPlayerSource,
source ?? value3)) {
currentlyDisplayedChannelId = state.currentlyDisplayedChannelId;
if (state.showPip) {
durationBinding = duration;
if (durationBinding > 0) {
object2 = {};
timeBinding = time;
object2.time = timeBinding;
durationBinding = duration;
object2.duration = durationBinding;
isPlaybackComplete2 = isPlaybackComplete({time: timeBinding, duration: durationBinding});
object2.isCompleted = isPlaybackComplete2 != null && isPlaybackComplete2;
r4 = object2;
} else {
r4 = value3;
}
progress = state.progress;
r2 = progress != null && r4 != null;
r2 = r2 && global.Math.abs(r4.time - progress.time) < PLAYBACK_PROGRESS_UPDATE_INTERVAL;
r2 = r2 && r4.time !== r4.duration;
if (!r2) {
binding = env2_22;
binding.setState({progress: r4});
}
} else if (currentlyDisplayedChannelId != null) {
if (currentlyDisplayedChannelId === (source == null ? value3 : source.channelId)) {
durationBinding = duration;
if (durationBinding > 0) {
object2 = {};
timeBinding = time;
object2.time = timeBinding;
durationBinding = duration;
object2.duration = durationBinding;
isPlaybackComplete2 = isPlaybackComplete({time: timeBinding, duration: durationBinding});
object2.isCompleted = isPlaybackComplete2 != null && isPlaybackComplete2;
r4 = object2;
} else {
r4 = value3;
}
progress = state.progress;
r2 = progress != null && r4 != null;
r2 = r2 && global.Math.abs(r4.time - progress.time) < PLAYBACK_PROGRESS_UPDATE_INTERVAL;
r2 = r2 && r4.time !== r4.duration;
if (!r2) {
binding = env2_22;
binding.setState({progress: r4});
}
}
}
}
return value3;
}
function _fun99933() { // fn#99933, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:6054, offset: 0x021d9d3a, size: 276 bytes, params: 1, frame: 19
const value = environment.__proto__.__proto__;
let binding = env2_22;
const state = binding.getState();
binding = env2_21;
const verbose = binding.verbose;
const sourceBinding = source;
const value4 = undefined;
Reflect.apply(verbose, binding, ['Playback source changed: ' + (sourceBinding == null ? value4 : source.id)]);
if (!(importDefault(628) /* metro dependency 628: shallowEqual */)(state.activeMediaPlayerSource ?? value4,
source ?? value4)) {
binding = env2_22;
binding.setState({'activeMediaPlayerSource': null, 'mediaSourceMessage': null, 'progress': null, 'rate': 0,
'isPlaying': false, 'wasPipClosedByUser': false, activeMediaPlayerSource: source ?? value4,
mediaSourceMessage: source != null ? env0_0.getOrFetchMediaSourceMessage(source) : value4,
progress: value4});
binding = env0_0;
binding.updateMediaPermissions();
binding.updateDisplayState();
}
return value4;
}
function _fun99935(a0) { // fn#99935, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:6676, offset: 0x021d9f0c, size: 61 bytes, params: 2, frame: 13
const contentMessage = a0.getContentMessage();
return contentMessage == null || contentMessage.attachments == null ? undefined : contentMessage.attachments.some(function({url}) {
return url === assetUrl;
});
}
function _fun99937(a0) { // fn#99937, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:6858, offset: 0x021d9f5e, size: 33 bytes, params: 2, frame: 11
if (a0 != null) {
env0_0.handleMediaSourceMessageUpdated(a0);
}
}
function _fun99939() { // fn#99939, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:6997, offset: 0x021d9fb5, size: 85 bytes, params: 1, frame: 13
let binding = env2_22;
const getState = binding.getState;
const activeMediaPlayerSource = Reflect.apply(getState, binding, []).activeMediaPlayerSource;
const value2 = undefined;
if ((activeMediaPlayerSource == null ? value2 : activeMediaPlayerSource.messageId) === env0_0.id) {
binding = env2_22;
binding.setState({mediaSourceMessage: env0_0});
}
return value2;
}
function _fun99941() { // fn#99941, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:7229, offset: 0x021da056, size: 150 bytes, params: 1, frame: 17
let binding = env2_22;
const getState = binding.getState;
const displayedMediaItemIdsPerChannel = Reflect.apply(getState, binding, []).displayedMediaItemIdsPerChannel;
const r6 = displayedMediaItemIdsPerChannel[channelId] ?? [];
const Set = global.Set;
const items = [];
arraySpread(items, mediaItemIds, arraySpread(items, r6, 0, r6), r6);
const value4 = Object.create(Set.prototype, {constructor: {value: Set}});
const set = new Set(items);
displayedMediaItemIdsPerChannel[channelId] = set instanceof Object ? set : value4;
binding = env2_22;
binding.setState({displayedMediaItemIdsPerChannel: displayedMediaItemIdsPerChannel});
env0_0.updateDisplayState();
}
function _fun99943() { // fn#99943, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:7527, offset: 0x021da138, size: 198 bytes, params: 1, frame: 18
var r2;
var set;
let binding = env2_22;
const getState = binding.getState;
const displayedMediaItemIdsPerChannel = Reflect.apply(getState, binding, []).displayedMediaItemIdsPerChannel;
const Set = global.Set;
const property = displayedMediaItemIdsPerChannel[channelId];
if (property != null) {
r2 = property;
} else {
set = new global.Set();
}
const items = [];
arraySpread(items, r2, 0, items);
set = new Set(items.filter(function(a0) {
return !mediaItemIds.includes(a0);
}));
if (set.size === 0) {
delete displayedMediaItemIdsPerChannel[channelId];
} else {
displayedMediaItemIdsPerChannel[channelId] = set;
}
binding = env2_22;
binding.setState({displayedMediaItemIdsPerChannel: displayedMediaItemIdsPerChannel});
env0_0.updateDisplayState();
}
function _fun99946() { // fn#99946, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13269:7829, offset: 0x021da22d, size: 384 bytes, params: 1, frame: 22
var r4;
var r2;
var r7;
var r8;
var value3;
var value4;
var moduleValue;
var getFocusedChannelId;
var value5;
var properties;
var properties2;
var properties3;
var propertyName;
var propertyName2;
var setState;
var property;
var has;
let value = environment.__proto__.__proto__;
let binding = env2_22;
const state = binding.getState();
const displayedMediaItemIdsPerChannel = state.displayedMediaItemIdsPerChannel;
const currentlyDisplayedChannelId = state.currentlyDisplayedChannelId;
const activeMediaPlayerSource = state.activeMediaPlayerSource;
reducibleJoin2: while (true) {
if (activeMediaPlayerSource !== undefined) {
r4 = activeMediaPlayerSource;
break reducibleJoin2;
}
r4 = {};
break reducibleJoin2;
}
const id = r4.id;
const wasPipClosedByUser = state.wasPipClosedByUser;
const progress = state.progress;
const isPlaying = state.isPlaying;
if (wasPipClosedByUser) {
env2_22.setState({showPip: false});
} else {
reducibleJoin25: while (true) {
reducibleJoin15: while (true) {
if (isPlaying) {
reducibleJoin9: while (true) {
if (isPlaying) {
r7 = isPlaying;
break reducibleJoin9;
}
value3 = progress != null;
reducibleJoin8: while (true) {
if (value3) {
value4 = !isPlaybackComplete(progress);
r2 = value4;
break reducibleJoin8;
}
r2 = value3;
break reducibleJoin8;
}
r7 = r2;
break reducibleJoin9;
}
moduleValue = require(10915) /* metro dependency 10915: isChannelFocusedNative */;
getFocusedChannelId = moduleValue.getFocusedChannelId;
value5 = Reflect.apply(getFocusedChannelId, moduleValue, []);
if (value5 == null) {
break reducibleJoin15;
}
if (currentlyDisplayedChannelId === value5) {
break reducibleJoin15;
}
properties = Object.keys(displayedMediaItemIdsPerChannel);
properties2 = 0;
properties3 = properties.length;
if (properties === undefined) {
break reducibleJoin15;
}
r8 = properties2;
reducibleLoop12: while (true) {
propertyName = properties[r8];
propertyName2 = r8 + 1;
if (propertyName === undefined) {
break reducibleJoin15;
}
if (propertyName === value5) {
r8 = propertyName2;
continue reducibleLoop12;
}
delete displayedMediaItemIdsPerChannel[propertyName];
r8 = propertyName2;
continue reducibleLoop12;
}
} else {
if (!state.showPip) {
break reducibleJoin25;
}
reducibleJoin9: while (true) {
if (isPlaying) {
r7 = isPlaying;
break reducibleJoin9;
}
value3 = progress != null;
reducibleJoin8: while (true) {
if (value3) {
value4 = !isPlaybackComplete(progress);
r2 = value4;
break reducibleJoin8;
}
r2 = value3;
break reducibleJoin8;
}
r7 = r2;
break reducibleJoin9;
}
moduleValue = require(10915) /* metro dependency 10915: isChannelFocusedNative */;
getFocusedChannelId = moduleValue.getFocusedChannelId;
value5 = Reflect.apply(getFocusedChannelId, moduleValue, []);
if (value5 == null) {
break reducibleJoin15;
}
if (currentlyDisplayedChannelId === value5) {
break reducibleJoin15;
}
properties = Object.keys(displayedMediaItemIdsPerChannel);
properties2 = 0;
properties3 = properties.length;
if (properties === undefined) {
break reducibleJoin15;
}
r8 = properties2;
reducibleLoop12: while (true) {
propertyName = properties[r8];
propertyName2 = r8 + 1;
if (propertyName === undefined) {
break reducibleJoin15;
}
if (propertyName === value5) {
r8 = propertyName2;
continue reducibleLoop12;
}
delete displayedMediaItemIdsPerChannel[propertyName];
r8 = propertyName2;
continue reducibleLoop12;
}
}
}
if (id != null) {
if (value5 != null) {
property = displayedMediaItemIdsPerChannel[value5];
if (property != null) {
binding = env2_22;
setState = binding.setState;
reducibleJoin23: while (true) {
if (r7) {
has = property.has;
value = !Reflect.apply(has, property, [id]);
r7 = value;
break reducibleJoin23;
}
break reducibleJoin23;
}
Reflect.apply(setState, binding, [{showPip: r7, currentlyDisplayedChannelId: value5,
displayedMediaItemIdsPerChannel: displayedMediaItemIdsPerChannel}]);
break reducibleJoin25;
}
binding = env2_22;
setState = binding.setState;
Reflect.apply(setState, binding, [{showPip: r7, currentlyDisplayedChannelId: value5,
displayedMediaItemIdsPerChannel: displayedMediaItemIdsPerChannel}]);
break reducibleJoin25;
}
binding = env2_22;
setState = binding.setState;
Reflect.apply(setState, binding, [{showPip: r7, currentlyDisplayedChannelId: value5,
displayedMediaItemIdsPerChannel: displayedMediaItemIdsPerChannel}]);
break reducibleJoin25;
}
binding = env2_22;
setState = binding.setState;
Reflect.apply(setState, binding, [{showPip: r7, currentlyDisplayedChannelId: value5,
displayedMediaItemIdsPerChannel: displayedMediaItemIdsPerChannel}]);
break reducibleJoin25;
}
}
}