decord/source/modules/voice_overlay/native/MobileVoiceOverlayLifecycleManager.android.tsx
2026-07-28 08:39:19 +00:00

568 lines
22 KiB
TypeScript

// Module ID: 13559
// Function ID: 104131
// Name: _isNativeReflectConstruct
// Dependencies: [15, 17, 18, 6, 7, 1348, 1908, 1838, 4212, 3793, 4237, 3802, 4987, 1850, 4181, 10742, 653, 13560, 13561, 13562, 13563, 7676, 12822, 13564, 13565, 7661, 1212, 13566, 10761, 4029, 6024, 4355, 5009, 675, 4359, 63, 4565, 2]
// Module 13559 (_isNativeReflectConstruct)
import _isNativeReflectConstruct from "_isNativeReflectConstruct";
import closure_4 from "registerAsset";
import closure_5 from "registerAsset";
import closure_6 from "_isNativeReflectConstruct";
import _createForOfIteratorHelperLoose from "_createForOfIteratorHelperLoose";
import closure_8 from "_isNativeReflectConstruct";
import { GUILD_VOCAL_CHANNELS_KEY } from "_isNativeReflectConstruct";
import closure_10 from "_createForOfIteratorHelperLoose";
import importDefaultResult from "_isNativeReflectConstruct";
import closure_12 from "_isNativeReflectConstruct";
import importDefaultResult1 from "_isNativeReflectConstruct";
import closure_14 from "_isNativeReflectConstruct";
import closure_15 from "_isNativeReflectConstruct";
import closure_16 from "_isNativeReflectConstruct";
import importDefaultResult2 from "_isNativeReflectConstruct";
import closure_18 from "_isNativeReflectConstruct";
import ME from "ME";
import registerAsset from "registerAsset";
import registerAsset from "registerAsset";
import registerAsset from "registerAsset";
import registerAsset from "registerAsset";
import registerAsset from "registerAsset";
import registerAsset from "registerAsset";
import registerAsset from "registerAsset";
import registerAsset from "registerAsset";
import registerAsset from "registerAsset";
import { intl } from "getSystemLocale";
import { intl as intl2 } from "getSystemLocale";
import { intl as intl3 } from "getSystemLocale";
import { intl as intl4 } from "getSystemLocale";
import { intl as intl5 } from "getSystemLocale";
import { intl as intl6 } from "getSystemLocale";
import { intl as intl7 } from "getSystemLocale";
import { intl as intl8 } from "getSystemLocale";
import { intl as intl9 } from "getSystemLocale";
import { intl as intl10 } from "getSystemLocale";
import { intl as intl11 } from "getSystemLocale";
import tmp17 from "LifecycleManager";
let closure_19;
let closure_20;
const require = arg1;
function _isNativeReflectConstruct() {
let closure_0 = !valueOf.call(Reflect.construct(Boolean, [], () => {
}));
function _isNativeReflectConstruct() {
return closure_0;
}
const result = _isNativeReflectConstruct();
}
function _createForOfIteratorHelperLoose(iterable) {
let closure_0 = iterable;
iterable = "undefined" !== typeof Symbol;
if (iterable) {
const _Symbol = Symbol;
iterable = iterable[Symbol.iterator];
}
if (!iterable) {
iterable = iterable[Symbol.iterator];
}
if (iterable) {
const iter = iterable.call(iterable);
const next = iter.next;
return next.bind(iter);
} else {
const _Array = Array;
let tmp = iterable;
if (!Array.isArray(iterable)) {
let tmp2;
if (iterable) {
if ("string" === typeof iterable) {
tmp2 = _arrayLikeToArray(iterable, undefined);
} else {
const toString = {}.toString;
const substr = toString.call(iterable).slice(8, -1);
let name = substr;
if (tmp3) {
name = iterable.constructor.name;
}
if ("Map" !== name) {
if ("Set" !== name) {
if ("Arguments" === name) {
let arr = _arrayLikeToArray(iterable, undefined);
} else {
let obj = /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/;
}
}
tmp2 = arr;
}
const _Array2 = Array;
arr = Array.from(iterable);
const callResult = toString.call(iterable);
tmp3 = "Object" === substr && iterable.constructor;
}
}
tmp = tmp2;
if (!tmp2) {
const _TypeError = TypeError;
const typeError = new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
throw typeError;
}
}
if (tmp) {
closure_0 = tmp;
}
let c1 = 0;
return () => {
if (closure_1 >= length.length) {
let obj = { done: true };
} else {
obj = { done: false };
closure_1 = tmp3 + 1;
obj.value = length[+closure_1];
}
return obj;
};
}
}
function _arrayLikeToArray(arg0, arg1) {
let length;
if (tmp) {
length = arg0.length;
}
const ArrayResult = Array(length);
for (let num = 0; num < length; num = num + 1) {
ArrayResult[num] = arg0[num];
}
return ArrayResult;
}
({ AnalyticEvents: closure_19, Permissions: closure_20 } = ME);
let items = [importDefaultResult2, importDefaultResult1, importDefaultResult];
let closure_22 = { DISABLED: 0, [0]: "DISABLED", NOT_SHOWING: 1, [1]: "NOT_SHOWING", WAITING_FOR_SERVICE: 2, [2]: "WAITING_FOR_SERVICE", SHOWING: 3, [3]: "SHOWING" };
let obj = {};
obj.useSpeaker = intl.string(require("getSystemLocale").t.CVxXDM);
obj.mute = intl2.string(require("getSystemLocale").t.w4m945);
obj.disconnectFromVoice = intl3.string(require("getSystemLocale").t["/lEZpt"]);
obj.getInvite = intl4.string(require("getSystemLocale").t.JYzIWe);
obj.switchChannels = intl5.string(require("getSystemLocale").t.zJvWqU);
obj.openDiscord = intl6.string(require("getSystemLocale").t["G/Ez6p"]);
obj.inviteLinkCopied = intl7.string(require("getSystemLocale").t.OhctG7);
obj.channelSelect = intl8.string(require("getSystemLocale").t.r2ptsz);
obj.closeWindow = intl9.string(require("getSystemLocale").t.gaifwY);
obj.searchChannels = intl10.string(require("getSystemLocale").t.wM7uRI);
obj.noResults = intl11.string(require("getSystemLocale").t.wk3qsA);
let tmp15 = (() => {
class MobileVoiceOverlayManager {
constructor() {
self = this;
tmp = outer1_6(this, self);
this.currentVoiceChannelId = null;
this.trashedVoiceChannelId = null;
this.overlayState = outer1_22.DISABLED;
this.channelSelectorResults = [];
this.layoutTrashedSubscription = null;
this.channelQueryUpdateSubscription = null;
this.isBatchedBridgeInitialized = false;
this.handleMobileVoiceOverlayStoreUpdate = () => {
if (outer2_18.getEnabled()) {
obj.handleOverlayEnable();
} else {
const result = obj.unsubscribeFromVoiceStateStoreUpdates();
const result1 = obj.unsubscribeFromNativeEvents();
obj.overlayState = outer2_22.DISABLED;
if (obj.isOverlayShowing()) {
if (null != outer2_1(outer2_2[27])) {
outer2_1(outer2_2[27]).hideOverlay();
const obj2 = outer2_1(outer2_2[27]);
}
}
}
};
this.handleOverlayEnable = () => {
function handleEnableFail() {
outer3_1(outer3_2[28]).setEnabled(false);
handleEnableFail.overlayState = outer3_22.DISABLED;
}
if (null != outer2_1(outer2_2[27])) {
const obj = outer2_1(outer2_2[27]);
const enableOverlayResult = outer2_1(outer2_2[27]).enableOverlay();
outer2_1(outer2_2[27]).enableOverlay().then((arg0) => {
if (arg0) {
const result = handleEnableFail.subscribeToVoiceStateStoreUpdates();
const result1 = handleEnableFail.subscribeToNativeEvents();
handleEnableFail.overlayState = outer3_22.NOT_SHOWING;
} else {
handleEnableFail();
}
}).catch(() => {
handleEnableFail();
});
const nextPromise = outer2_1(outer2_2[27]).enableOverlay().then((arg0) => {
if (arg0) {
const result = handleEnableFail.subscribeToVoiceStateStoreUpdates();
const result1 = handleEnableFail.subscribeToNativeEvents();
handleEnableFail.overlayState = outer3_22.NOT_SHOWING;
} else {
handleEnableFail();
}
});
}
};
this.subscribeToVoiceStateStoreUpdates = () => {
if (!self.isSubscribedToVoiceStateStoreUpdates()) {
const item = outer2_21.forEach((addChangeListener) => {
addChangeListener.addChangeListener(outer1_0.handleOverlayUIStoreUpdate);
});
}
};
this.unsubscribeFromVoiceStateStoreUpdates = () => {
if (self.isSubscribedToVoiceStateStoreUpdates()) {
const item = outer2_21.forEach((removeChangeListener) => {
removeChangeListener.removeChangeListener(outer1_0.handleOverlayUIStoreUpdate);
});
}
};
this.isSubscribedToVoiceStateStoreUpdates = () => null != outer2_21.find((_changeCallbacks) => _changeCallbacks._changeCallbacks.has(outer1_0.handleOverlayUIStoreUpdate));
this.subscribeToNativeEvents = () => {
if (obj.isFabric()) {
self.layoutTrashedSubscription = outer2_1(outer2_2[27]).onLayoutTrashed(self.handleLayoutTrashed);
const obj2 = outer2_1(outer2_2[27]);
self.channelQueryUpdateSubscription = outer2_1(outer2_2[27]).onChannelQueryUpdate(self.handleChannelQueryUpdate);
const obj3 = outer2_1(outer2_2[27]);
}
};
this.unsubscribeFromNativeEvents = () => {
if (obj.isFabric()) {
const layoutTrashedSubscription = self.layoutTrashedSubscription;
if (null != layoutTrashedSubscription) {
layoutTrashedSubscription.remove();
}
const channelQueryUpdateSubscription = self.channelQueryUpdateSubscription;
if (null != channelQueryUpdateSubscription) {
channelQueryUpdateSubscription.remove();
}
}
};
this.handleOverlayUIStoreUpdate = () => {
if (self.overlayState !== outer2_22.DISABLED) {
const currentVoiceChannelId = self.getVoiceConnectedGuildAndChannel().currentVoiceChannelId;
if (currentVoiceChannelId !== self.currentVoiceChannelId) {
self.currentVoiceChannelId = currentVoiceChannelId;
self.trashedVoiceChannelId = null;
}
if (null != currentVoiceChannelId) {
if (currentVoiceChannelId !== self.trashedVoiceChannelId) {
const overlayState = self.overlayState;
if (outer2_22.WAITING_FOR_SERVICE !== overlayState) {
if (outer2_22.NOT_SHOWING === overlayState) {
const result = outer2_1(outer2_2[30]).isForegroundServiceRunning((arg0) => {
if (arg0) {
obj.showOverlay();
} else {
obj.overlayState = outer3_22.NOT_SHOWING;
}
});
self.overlayState = outer2_22.WAITING_FOR_SERVICE;
} else if (outer2_22.SHOWING === overlayState) {
self.updateOverlayUI();
} else {
const overlayState2 = self.overlayState;
}
}
}
}
if (self.isOverlayShowing()) {
self.hideOverlay();
}
}
};
this.updateOverlayUI = () => {
let currentGuildId;
let currentVoiceChannelId;
const currentUser = outer2_16.getCurrentUser();
let id;
if (null != currentUser) {
id = currentUser.id;
}
if (null != id) {
const voiceConnectedGuildAndChannel = self.getVoiceConnectedGuildAndChannel();
({ currentGuildId, currentVoiceChannelId } = voiceConnectedGuildAndChannel);
const channel = outer2_8.getChannel(currentVoiceChannelId);
if (null != currentVoiceChannelId) {
if (null != channel) {
const overlayUser = self.getOverlayUser(id);
if (null != overlayUser) {
const _Object = Object;
const keys = Object.keys(outer2_17.getVoiceStatesForChannel(currentVoiceChannelId));
let tmp5 = overlayUser;
if (!overlayUser.speaking) {
const tmp4 = outer2_27(keys);
let iter = tmp4();
tmp5 = null;
if (!iter.done) {
while (true) {
let tmp6 = self;
let overlayUser1 = self.getOverlayUser(iter.value);
if (null == overlayUser1) {
let iter2 = tmp4();
iter = iter2;
tmp5 = null;
if (iter2.done) {
break;
}
} else {
tmp5 = overlayUser1;
if (overlayUser1.speaking) {
break;
}
}
break;
}
}
}
if (null == tmp5) {
tmp5 = overlayUser;
}
const items = [tmp5];
if (tmp5.userId !== overlayUser.userId) {
items.push(overlayUser);
}
let num = 0;
if (0 < keys.length) {
while (true) {
let tmp10 = keys[num];
let tmp11 = tmp9;
if (tmp10 !== id) {
let userId;
if (null != tmp5) {
userId = tmp5.userId;
}
let tmp13 = tmp5;
tmp11 = tmp9;
if (tmp10 !== userId) {
let tmp14 = self;
let overlayUser2 = self.getOverlayUser(tmp10);
let tmp16 = tmp5;
tmp11 = overlayUser2;
if (null != overlayUser2) {
let arr = items.push(overlayUser2);
let tmp18 = tmp5;
tmp11 = overlayUser2;
if (items.length >= 3) {
break;
}
}
break;
}
}
num = num + 1;
tmp9 = tmp11;
if (num >= keys.length) {
break;
}
}
}
if (self.overlayState !== outer2_22.SHOWING) {
const result = self.refreshChannelSelectorResults("");
}
self.currentVoiceChannelId = currentVoiceChannelId;
if (null != outer2_1(outer2_2[27])) {
let obj = outer2_1(outer2_2[27]);
obj = { users: items, channelName: MobileVoiceOverlayManager(outer2_2[31]).computeChannelName(channel, outer2_16, outer2_14) };
const guild = outer2_10.getGuild(currentGuildId);
let name;
if (null != guild) {
name = guild.name;
}
let str2 = "";
if (null != name) {
str2 = name;
}
obj.guildName = str2;
obj.guildId = currentGuildId;
obj.channelId = currentVoiceChannelId;
obj.extraUsers = keys.length - items.length;
obj.deafened = outer2_11.isSelfDeaf();
obj.muted = outer2_11.isSelfMute();
obj.connectionQuality = outer2_13.getQuality();
obj.canGenerateInvite = outer2_12.can(outer2_20.CREATE_INSTANT_INVITE, channel);
obj.channelSelectorResults = self.channelSelectorResults;
obj.setData(obj);
const obj3 = MobileVoiceOverlayManager(outer2_2[31]);
}
}
}
}
}
};
this.getVoiceConnectedGuildAndChannel = () => {
const obj = {};
const guildId = outer2_13.getGuildId();
let tmp2 = null;
if (null != guildId) {
tmp2 = guildId;
}
obj.currentGuildId = tmp2;
const channelId = outer2_13.getChannelId();
let tmp4 = null;
if (null != channelId) {
tmp4 = channelId;
}
obj.currentVoiceChannelId = tmp4;
return obj;
};
this.refreshChannelSelectorResults = (query) => {
let currentGuildId = null;
if (0 === query.length) {
currentGuildId = self.getVoiceConnectedGuildAndChannel().currentGuildId;
}
let obj = outer2_1(outer2_2[32]);
obj = {
query,
guildId: currentGuildId,
limit: 15,
fuzzy: true,
filter(id) {
return id.id !== outer1_0.currentVoiceChannelId && !id.isGuildStageVoice();
},
type: outer2_9,
allowEmptyQueries: true
};
self.channelSelectorResults = obj.queryChannels(obj).map((record) => {
record = record.record;
const obj = { channelId: record.id, guildId: record.guild_id, channelName: MobileVoiceOverlayManager(outer3_2[31]).computeChannelName(record, outer3_16, outer3_14) };
const guild = outer3_10.getGuild(record.guild_id);
let name;
if (null != guild) {
name = guild.name;
}
let str = "";
let str2 = "";
if (null != name) {
str2 = name;
}
obj.guildName = str2;
const channel = outer3_8.getChannel(record.parent_id);
if (null != channel) {
str = MobileVoiceOverlayManager(outer3_2[31]).computeChannelName(channel, outer3_16, outer3_14);
const obj3 = MobileVoiceOverlayManager(outer3_2[31]);
}
obj.categoryName = str;
return obj;
});
};
this.showOverlay = () => {
const voiceConnectedGuildAndChannel = self.getVoiceConnectedGuildAndChannel();
const channel = outer2_8.getChannel(voiceConnectedGuildAndChannel.currentVoiceChannelId);
const rTCConnectionId = outer2_13.getRTCConnectionId();
let obj = outer2_1(outer2_2[33]);
obj = { type: "voice", rtc_connection_id: rTCConnectionId };
const merged = Object.assign(MobileVoiceOverlayManager(outer2_2[34]).collectChannelAnalyticsMetadata(channel));
const obj3 = MobileVoiceOverlayManager(outer2_2[34]);
const merged1 = Object.assign(MobileVoiceOverlayManager(outer2_2[34]).collectGuildAnalyticsMetadata(voiceConnectedGuildAndChannel.currentGuildId));
obj.track(outer2_19.MOBILE_OVERLAY_OPENED, obj);
if (null != outer2_1(outer2_2[27])) {
outer2_1(outer2_2[27]).showOverlay(outer2_23);
const obj5 = outer2_1(outer2_2[27]);
}
self.updateOverlayUI();
self.overlayState = outer2_22.SHOWING;
};
this.hideOverlay = () => {
const rTCConnectionId = outer2_13.getRTCConnectionId();
outer2_1(outer2_2[33]).track(outer2_19.MOBILE_OVERLAY_CLOSED, { type: "voice", rtc_connection_id: rTCConnectionId });
const obj = outer2_1(outer2_2[33]);
outer2_1(outer2_2[33]).track(outer2_19.MOBILE_OVERLAY_CLOSED, {});
if (null != outer2_1(outer2_2[27])) {
outer2_1(outer2_2[27]).hideOverlay();
const obj3 = outer2_1(outer2_2[27]);
}
self.overlayState = outer2_22.NOT_SHOWING;
};
this.isOverlayShowing = () => {
let tmp = self.overlayState === outer2_22.SHOWING;
if (!tmp) {
tmp = self.overlayState === outer2_22.WAITING_FOR_SERVICE;
}
return tmp;
};
this.getOverlayUser = (userId) => {
const user = outer2_16.getUser(userId);
if (null == user) {
return null;
} else {
const obj = { userId, avatar: user.avatar, speaking: outer2_15.isSpeaking(userId), discriminator: user.discriminator };
return obj;
}
};
this.handleLayoutTrashed = () => {
self.trashedVoiceChannelId = self.currentVoiceChannelId;
const result = self.handleOverlayUIStoreUpdate();
};
this.handleChannelQueryUpdate = (arg0) => {
const result = self.refreshChannelSelectorResults(arg0);
const result1 = self.handleOverlayUIStoreUpdate();
};
return;
}
}
let obj = {
key: "initialize",
value() {
const self = this;
const obj = MobileVoiceOverlayManager(outer1_2[29]);
if (!tmp) {
const prototype = outer1_25.prototype;
const tmp8 = new outer1_25(self);
const result = outer1_1(outer1_2[35]).registerCallableModule("MobileVoiceOverlayManager", tmp8);
self.isBatchedBridgeInitialized = true;
const obj2 = outer1_1(outer1_2[35]);
}
if (outer1_18.getEnabled()) {
self.handleOverlayEnable();
}
outer1_18.addChangeListener(self.handleMobileVoiceOverlayStoreUpdate);
}
};
let items = [obj, ];
obj = {
key: "terminate",
value() {
outer1_18.removeChangeListener(this.handleMobileVoiceOverlayStoreUpdate);
const result = this.unsubscribeFromVoiceStateStoreUpdates();
const result1 = this.unsubscribeFromNativeEvents();
}
};
items[1] = obj;
return callback2(MobileVoiceOverlayManager, items);
})();
tmp15 = new tmp15();
let closure_24 = tmp15;
let closure_25 = (() => {
class NativeCallableInterface {
constructor(arg0) {
tmp = outer1_6(this, NativeCallableInterface);
this.manager = arg0;
return;
}
}
let obj = {
key: "onLayoutTrashed",
value() {
const manager = this.manager;
manager.handleLayoutTrashed();
}
};
const items = [obj, ];
obj = {
key: "onChannelQueryUpdate",
value(arg0) {
const manager = this.manager;
const result = manager.handleChannelQueryUpdate(arg0);
}
};
items[1] = obj;
return callback2(NativeCallableInterface, items);
})();
tmp17 = new tmp17();
let result = require("_inherits").fileFinishedImporting("modules/voice_overlay/native/MobileVoiceOverlayLifecycleManager.android.tsx");
export default tmp17;