580 lines
24 KiB
TypeScript
580 lines
24 KiB
TypeScript
/* Metro module 11778; source: modules/voice_messages/native/VoiceMessageUtils.tsx; dependencies: [5, 4259, 11527, 11528, 661, 3, 11779, 206, 22, 4406, 683, 4081, 477, 2] */
|
|
import Module00005 from '../../../by-id/module-00005.js'; /* Metro dependency 5 */
|
|
import Module00022 from '../../../by-id/module-00022.js'; /* Metro dependency 22 */
|
|
import Module00206 from '../../../by-id/module-00206.js'; /* Metro dependency 206 */
|
|
import MediaEngineStore from '../../../stores/MediaEngineStore.tsx'; /* Metro dependency 4259 */
|
|
import * as FileImportTrackerModule from '../../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */
|
|
import * as ConstantsModule from '../../../Constants.tsx'; /* Metro dependency 661 */
|
|
import * as MediaEngineModule from '../../../external/discord_common/js/packages/media-engine/index.tsx'; /* Metro dependency 4406 */
|
|
import * as VoiceMessagesUIStoreModule from './VoiceMessagesUIStore.tsx'; /* Metro dependency 11527 */
|
|
|
|
function _fun90221(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#90221, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11964:6, offset: 0x02030f70, size: 528 bytes, params: 8, frame: 21
|
|
const env0_0 = require;
|
|
const generateBase64EncodedWaveform2 = generateBase64EncodedWaveform;
|
|
const closure2 = function() {
|
|
return _stopAndCacheAudioRecording.apply(this, arguments);
|
|
};
|
|
const Object = global.Object;
|
|
Object.defineProperty(exports, '__esModule', {value: true});
|
|
let value = VoiceMessagesUIStoreModule;
|
|
const env0_5 = value.addVoiceMessageWave;
|
|
const env0_6 = value.resetVoiceMessageState;
|
|
const env0_7 = value.setSavedVoiceMessageUploadData;
|
|
const env0_8 = value.setVoiceMessageRecordingId;
|
|
const env0_9 = value.setVoiceMessageRecordingState;
|
|
const env0_10 = value.setVoiceMessageStartTimeMillis;
|
|
const env0_11 = value.useVoiceMessagesUIStore;
|
|
const env0_12 = value.VoiceMessageRecordingStatus;
|
|
value = require(11528) /* metro dependency 11528: VoiceMessageConstants */;
|
|
const env0_13 = value.WAVEFORM_WAVE_MAX_VALUE;
|
|
const env0_14 = value.VOICE_RECORDING_MIN_DB;
|
|
const env0_15 = value.VOICE_RECORDING_MAX_DB;
|
|
const env0_16 = value.WAVEFORM_MAX_SAMPLES;
|
|
const env0_17 = value.VOICE_RECORDING_MAX_DURATION_MILLIS;
|
|
value = importDefault(3) /* metro dependency 3: Logger */;
|
|
value = new value('VoiceMessages');
|
|
const env0_21 = (Module00022).throttle(_fun90239, 100);
|
|
(FileImportTrackerModule).fileFinishedImporting('modules/voice_messages/native/VoiceMessageUtils.tsx');
|
|
exports.generateBase64EncodedWaveform = generateBase64EncodedWaveform2;
|
|
exports.startAudioRecording = function() {
|
|
return _startAudioRecording.apply(this, arguments);
|
|
};
|
|
exports.endAudioRecording = function() {
|
|
return _endAudioRecording.apply(this, arguments);
|
|
};
|
|
exports.stopAndCacheAudioRecording = closure2;
|
|
exports.emitVoiceMessageRecorded = emitVoiceMessageRecorded;
|
|
exports.triggerHaptic = function() {
|
|
var moduleValue = require(dependencyMap[11]);
|
|
var triggerHapticFeedback = moduleValue.triggerHapticFeedback;
|
|
var isAndroid = require(dependencyMap[12]).isAndroid();
|
|
var HapticFeedbackTypes = require(dependencyMap[11]).HapticFeedbackTypes;
|
|
Reflect.apply(triggerHapticFeedback, moduleValue,
|
|
[isAndroid ? HapticFeedbackTypes.IMPACT_LIGHT : HapticFeedbackTypes.IMPACT_MEDIUM]);
|
|
};
|
|
function generateBase64EncodedWaveform(a0) { // fn#90222, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11964:595, offset: 0x02031180, size: 135 bytes, params: 2, frame: 16
|
|
var r3;
|
|
let value = a0;
|
|
if (value.length <= WAVEFORM_MAX_SAMPLES) {
|
|
r3 = value;
|
|
} else {
|
|
value = (importDefault(11779) /* metro dependency 11779: downsampleWaveform */)(value, WAVEFORM_MAX_SAMPLES);
|
|
r3 = value;
|
|
}
|
|
value = r3.map(function(a0) {
|
|
var Math = global.Math;
|
|
return Math.min(a0, WAVEFORM_WAVE_MAX_VALUE);
|
|
});
|
|
const defaultImport = Module00206;
|
|
const fromByteArray = defaultImport.fromByteArray;
|
|
const Uint8Array = global.Uint8Array;
|
|
const value3 = Object.create(Uint8Array.prototype, {constructor: {value: Uint8Array}});
|
|
const uint8Array = new Uint8Array(value);
|
|
return Reflect.apply(fromByteArray, defaultImport, [uint8Array instanceof Object ? uint8Array : value3]);
|
|
}
|
|
|
|
function _startAudioRecording() { // fn#90224, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11964:990, offset: 0x02031226, size: 50 bytes, params: 1, frame: 14
|
|
return Module00005(_fun90226).apply(this, arguments);
|
|
function* _fun90226(a0) { // fn#90226, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11964:1053, offset: 0x02031263, size: 405 bytes, params: 2, frame: 21
|
|
var performance;
|
|
var now;
|
|
var value4;
|
|
var value5;
|
|
var startLocalAudioRecording;
|
|
var object;
|
|
var getEchoCancellation;
|
|
var value6;
|
|
var getNoiseSuppression;
|
|
var value7;
|
|
var object2;
|
|
var getAutomaticGainControl;
|
|
var value8;
|
|
var getNoiseCancellation;
|
|
var value9;
|
|
var value10;
|
|
var value11;
|
|
var value12;
|
|
var value13;
|
|
var value14;
|
|
var log;
|
|
var binding2;
|
|
var getState;
|
|
var value15;
|
|
var recordingId;
|
|
var value16;
|
|
var binding3;
|
|
var STARTED;
|
|
var Date;
|
|
var value17;
|
|
var error;
|
|
if (true) {
|
|
value = environment.__proto__.__proto__;
|
|
var binding = env2_9;
|
|
var REQUESTED = env2_12.REQUESTED;
|
|
binding(REQUESTED);
|
|
env2_8(a0);
|
|
var mediaEngine = env2_4.getMediaEngine();
|
|
var on = mediaEngine.on;
|
|
var MediaEngineEvent = env2_0(env2_2[9]).MediaEngineEvent;
|
|
var VoiceActivity = MediaEngineEvent.VoiceActivity;
|
|
Reflect.apply(on, mediaEngine, [VoiceActivity, env2_21]);
|
|
try {
|
|
performance = global.performance;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
now = performance.now;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
value4 = Reflect.apply(now, performance, []);
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
binding = env2_4;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
getMediaEngine = binding.getMediaEngine;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
value5 = Reflect.apply(getMediaEngine, binding, []);
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
startLocalAudioRecording = value5.startLocalAudioRecording;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
object = {};
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
binding = env2_4;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
getEchoCancellation = binding.getEchoCancellation;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
value6 = Reflect.apply(getEchoCancellation, binding, []);
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
object.echoCancellation = value6;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
object.echoCancellationPreEcho = false;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
binding = env2_4;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
getNoiseSuppression = binding.getNoiseSuppression;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
value7 = Reflect.apply(getNoiseSuppression, binding, []);
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
object.noiseSuppression = value7;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
object2 = {};
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
binding = env2_4;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
getAutomaticGainControl = binding.getAutomaticGainControl;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
value8 = Reflect.apply(getAutomaticGainControl, binding, []);
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
object2.enabled = value8;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
object.automaticGainControlConfig = object2;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
binding = env2_4;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
getNoiseCancellation = binding.getNoiseCancellation;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
value9 = Reflect.apply(getNoiseCancellation, binding, []);
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
object.noiseCancellation = value9;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
value10 = Reflect.apply(startLocalAudioRecording, value5, [object]);
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
yield value10;
|
|
try {
|
|
value11 = undefined;
|
|
value12 = false;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
if (value12) {
|
|
return value11;
|
|
}
|
|
try {
|
|
performance = global.performance;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
now = performance.now;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
value13 = Reflect.apply(now, performance, []);
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
value14 = value13 - value4;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
env2_19 = value14;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
binding = env2_20;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
log = binding.log;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
binding2 = env2_19;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
Reflect.apply(log, binding, ['Voice message audio startup latency:', binding2]);
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
binding = env2_11;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
getState = binding.getState;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
value15 = Reflect.apply(getState, binding, []);
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
recordingId = value15.recordingId;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
value16 = recordingId !== a0;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
if (!value16) {
|
|
try {
|
|
binding = env2_9;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
binding3 = env2_12;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
STARTED = binding3.STARTED;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
binding(STARTED);
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
binding = env2_10;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
Date = global.Date;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
now = Date.now;
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
value17 = Reflect.apply(now, Date, []);
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
try {
|
|
binding(value17);
|
|
} catch (error) {
|
|
env2_24();
|
|
throw error;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
function resetAudioRecording() { // fn#90227, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11964:1657, offset: 0x020313f8, size: 77 bytes, params: 1, frame: 15
|
|
const mediaEngine = MediaEngineStore.getMediaEngine();
|
|
const removeListener = mediaEngine.removeListener;
|
|
const MediaEngineEvent = (MediaEngineModule).MediaEngineEvent;
|
|
const VoiceActivity = MediaEngineEvent.VoiceActivity;
|
|
Reflect.apply(removeListener, mediaEngine, [VoiceActivity, env0_21]);
|
|
resetVoiceMessageState();
|
|
}
|
|
|
|
function stopAndGetAudioRecording() { // fn#90228, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11964:1768, offset: 0x02031445, size: 114 bytes, params: 1, frame: 14
|
|
setVoiceMessageRecordingId(null);
|
|
setVoiceMessageRecordingState(null);
|
|
const generateBase64EncodedWaveformBinding = generateBase64EncodedWaveform;
|
|
const getState = useVoiceMessagesUIStore.getState;
|
|
const waveform = Reflect.apply(getState, useVoiceMessagesUIStore, []).waveform;
|
|
const env0_0 = generateBase64EncodedWaveformBinding(waveform.map(function(a0) {
|
|
var iterator = a0[Symbol.iterator]();
|
|
var item2 = iterator.next();
|
|
var item = item2.value;
|
|
item2 = item2.done ? undefined : iterator;
|
|
var value = undefined;
|
|
var value2 = item2 === value;
|
|
var r0 = value2 ? value : item;
|
|
if (!value2) {
|
|
item2.return();
|
|
}
|
|
return r0;
|
|
}));
|
|
const Promise = global.Promise;
|
|
let value = Object.create(Promise.prototype, {constructor: {value: Promise}});
|
|
const promise = new Promise(_fun90230);
|
|
return promise instanceof Object ? promise : value;
|
|
function _fun90230(a0) { // fn#90230, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11964:1915, offset: 0x020314b7, size: 48 bytes, params: 2, frame: 11
|
|
var environment;
|
|
const env0_0 = a0;
|
|
const value = environment.__proto__;
|
|
MediaEngineStore.getMediaEngine().stopLocalAudioRecording(_fun90231);
|
|
function _fun90231(a0, a1) { // fn#90231, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11964:1963, offset: 0x020314e7, size: 56 bytes, params: 3, frame: 12
|
|
env0_0({filename: a0, durationSecs: a1 / 1000, waveform: env1_0});
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
function _endAudioRecording() { // fn#90232, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11964:2023, offset: 0x0203151f, size: 50 bytes, params: 1, frame: 14
|
|
return Module00005(_fun90234).apply(this, arguments);
|
|
function* _fun90234() { // fn#90234, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11964:2082, offset: 0x0203155c, size: 166 bytes, params: 1, frame: 14
|
|
var r4;
|
|
var startTimeMillis;
|
|
if (false) {
|
|
return undefined;
|
|
}
|
|
value = environment.__proto__.__proto__;
|
|
let binding = env2_11;
|
|
const state = binding.getState();
|
|
const savedVoiceMessageUploadData = state.savedVoiceMessageUploadData;
|
|
if (savedVoiceMessageUploadData == null && state.recordingStatus === env2_12.REQUESTED) {
|
|
env2_25();
|
|
r4 = {'filename': '', 'durationSecs': 0, 'waveform': ''};
|
|
} else {
|
|
r4 = savedVoiceMessageUploadData;
|
|
}
|
|
if (r4 != null) {
|
|
binding = env2_11;
|
|
startTimeMillis = binding.getState().startTimeMillis;
|
|
} else {
|
|
yield env2_25();
|
|
var value6 = undefined;
|
|
if (false) {
|
|
return value6;
|
|
}
|
|
r4 = value6;
|
|
binding = env2_11;
|
|
startTimeMillis = binding.getState().startTimeMillis;
|
|
}
|
|
env2_24();
|
|
return {data: r4, startTimeMillis: startTimeMillis};
|
|
}
|
|
|
|
}
|
|
|
|
function _stopAndCacheAudioRecording() { // fn#90236, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11964:2517, offset: 0x02031602, size: 50 bytes, params: 1, frame: 14
|
|
return Module00005(_fun90238).apply(this, arguments);
|
|
function* _fun90238() { // fn#90238, original name: ?anon_0_, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11964:2594, offset: 0x0203163f, size: 110 bytes, params: 1, frame: 18
|
|
if (true) {
|
|
value = environment.__proto__.__proto__;
|
|
yield env2_25();
|
|
var value3 = undefined;
|
|
if (false) {
|
|
return value3;
|
|
}
|
|
var mediaEngine = env2_4.getMediaEngine();
|
|
var removeListener = mediaEngine.removeListener;
|
|
var MediaEngineEvent = env2_0(env2_2[9]).MediaEngineEvent;
|
|
var VoiceActivity = MediaEngineEvent.VoiceActivity;
|
|
Reflect.apply(removeListener, mediaEngine, [VoiceActivity, env2_21]);
|
|
env2_7(value3);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
function _fun90239(a0) { // fn#90239, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11964:808, offset: 0x020316ad, size: 134 bytes, params: 2, frame: 16
|
|
const state = useVoiceMessagesUIStore.getState();
|
|
if (state.startTimeMillis != null) {
|
|
addVoiceMessageWave(WAVEFORM_WAVE_MAX_VALUE * ((a0 - VOICE_RECORDING_MIN_DB) / (VOICE_RECORDING_MAX_DB - VOICE_RECORDING_MIN_DB)));
|
|
if (state.savedVoiceMessageUploadData == null && global.performance.now() - state.startTimeMillis >= VOICE_RECORDING_MAX_DURATION_MILLIS) {
|
|
stopAndCacheAudioRecording();
|
|
}
|
|
}
|
|
}
|
|
|
|
function emitVoiceMessageRecorded(a0, a1, a2) { // fn#90242, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:11964:3190, offset: 0x02031733, size: 123 bytes, params: 4, frame: 17
|
|
var defaultImport;
|
|
var track;
|
|
var VOICE_MESSAGE_RECORDED;
|
|
var object;
|
|
if (a2 != null) {
|
|
defaultImport = importDefault(683) /* metro dependency 683: AnalyticsUtils */;
|
|
track = defaultImport.track;
|
|
VOICE_MESSAGE_RECORDED = AnalyticEvents.VOICE_MESSAGE_RECORDED;
|
|
object = {recording_start_timestamp: a2};
|
|
object.recording_stop_timestamp = global.Date.now();
|
|
object.duration_secs = a1;
|
|
object.result = a0;
|
|
object.initialize_secs = env0_19;
|
|
Reflect.apply(track, defaultImport, [VOICE_MESSAGE_RECORDED, object]);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
global.__d(_fun90221, 11778, [5, 4259, 11527, 11528, 661, 3, 11779, 206, 22, 4406, 683, 4081, 477,
|
|
2]) /* metro module 11778, dependencies: [5, 4259, 11527, 11528, 661, 3, 11779, 206, 22, 4406, 683, 4081, 477, 2] */;
|