Skipped 1 file(s) >100MB (GitHub limit): source/__polyfill/04xxx/module_4821.js (118.4 MB)
335 lines
12 KiB
TypeScript
335 lines
12 KiB
TypeScript
// Module ID: 12386
|
|
// Function ID: 12387
|
|
// Name: VoiceMessageUtils
|
|
// Dependencies: [5, 1908, 12090, 12091, 1074, 3, 12387, 206, 12, 4691, 1240, 4604, 1363, 2]
|
|
// Exports: emitVoiceMessageRecorded, endAudioRecording, generateBase64EncodedWaveform, startAudioRecording, triggerHaptic
|
|
|
|
// Module 12386 (VoiceMessageUtils)
|
|
import LoggerDefault from "Logger" /* 3 */;
|
|
import byteLengthDefault from "byteLength" /* 206 */;
|
|
import AnalyticsUtilsDefault from "AnalyticsUtils" /* 1240 */;
|
|
import PlatformUtils from "PlatformUtils" /* 1363 */;
|
|
import HapticUtils from "HapticUtils" /* 4604 */;
|
|
import BaseConnectionEvent from "BaseConnectionEvent" /* 4691 */;
|
|
import downsampleWaveformDefault from "downsampleWaveform" /* 12387 */;
|
|
import asyncGeneratorStep from "asyncGeneratorStep" /* 5 */;
|
|
import MediaEngineStore from "MediaEngineStore" /* 1908 */;
|
|
import apply from "module_12" /* 12 */;
|
|
|
|
require = fn;
|
|
let closure_22 = async function _startAudioRecording(arg0, value) {
|
|
if (c6 === 2) {
|
|
c6 = 3;
|
|
throw new TypeError("Generator functions may not be called on executing generators");
|
|
} else if (tmp7 === 3) {
|
|
if (arg0 === 1) {
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
const obj2 = { value, done: true };
|
|
return obj2;
|
|
} else {
|
|
return { value: "HermesInternal", done: null };
|
|
}
|
|
} else {
|
|
try {
|
|
c6 = 2;
|
|
if (0 === c5) {
|
|
if (arg0 === 1) {
|
|
c6 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c6 = 3;
|
|
const obj3 = { value, done: true };
|
|
return obj3;
|
|
} else {
|
|
closure_2 = tmp3;
|
|
closure_1 = tmp5;
|
|
closure_129_0 = closure_0;
|
|
closure_129_1 = undefined;
|
|
c19 = null;
|
|
React7(constants.REQUESTED);
|
|
React6(closure_0);
|
|
const mediaEngine = MediaEngineStore.getMediaEngine();
|
|
mediaEngine.on(BaseConnectionEvent.MediaEngineEvent.VoiceActivity, __initData2);
|
|
c4 = 1;
|
|
const _performance2 = performance;
|
|
closure_129_1 = performance.now();
|
|
const mediaEngine1 = MediaEngineStore.getMediaEngine();
|
|
const obj4 = { echoCancellation: MediaEngineStore.getEchoCancellation(), echoCancellationPreEcho: false, noiseSuppression: MediaEngineStore.getNoiseSuppression(), automaticGainControlConfig: null, noiseCancellation: null };
|
|
const obj5 = { enabled: MediaEngineStore.getAutomaticGainControl() };
|
|
obj4.automaticGainControlConfig = obj5;
|
|
obj4.noiseCancellation = MediaEngineStore.getNoiseCancellation();
|
|
c5 = 2;
|
|
c6 = 1;
|
|
const obj6 = { value: mediaEngine1.startLocalAudioRecording(obj4), done: false };
|
|
return obj6;
|
|
}
|
|
} else if (1 === tmp8) {
|
|
c4 = 0;
|
|
closure_129_2 = closure_3;
|
|
closure_130_23();
|
|
throw closure_129_2;
|
|
} else if (arg0 === 1) {
|
|
c6 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c4 = 0;
|
|
c6 = 3;
|
|
const obj = { value, done: true };
|
|
return obj;
|
|
} else {
|
|
const _performance = performance;
|
|
closure_130_19 = performance.now() - closure_129_1;
|
|
closure_130_20.log("Voice message audio startup latency:", closure_130_19);
|
|
if (closure_130_11.getState().recordingId !== closure_129_0) {
|
|
c4 = 0;
|
|
c6 = 3;
|
|
return { value: "HermesInternal", done: null };
|
|
} else {
|
|
closure_130_9(closure_130_12.STARTED);
|
|
const _Date = Date;
|
|
closure_130_10(Date.now());
|
|
c4 = 0;
|
|
c6 = 3;
|
|
return { value: "HermesInternal", done: null };
|
|
}
|
|
}
|
|
} catch (tmp22) {
|
|
closure_3 = tmp22;
|
|
if (tmp4 === c4) {
|
|
c6 = tmp2;
|
|
throw tmp22;
|
|
} else {
|
|
c5 = tmp;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
function resetAudioRecording() {
|
|
const mediaEngine = MediaEngineStore.getMediaEngine();
|
|
mediaEngine.removeListener(BaseConnectionEvent.MediaEngineEvent.VoiceActivity, closure_21);
|
|
timestampProducer();
|
|
}
|
|
function stopAndGetAudioRecording() {
|
|
closure_8(null);
|
|
closure_9(null);
|
|
let waveform = closure_11.getState().waveform;
|
|
const mapped = waveform.map((item) => {
|
|
[tmp] = item;
|
|
return tmp;
|
|
});
|
|
let arr3 = mapped;
|
|
if (mapped.length > closure_16) {
|
|
arr3 = downsampleWaveformDefault(mapped, tmp3);
|
|
}
|
|
const mapped1 = arr3.map((item) => Math.min(item, closure_1_13));
|
|
const uint8Array = new Uint8Array(mapped1);
|
|
closure_0 = byteLengthDefault.fromByteArray(uint8Array);
|
|
return new Promise((waveform) => {
|
|
mediaEngine = mediaEngine.getMediaEngine();
|
|
const result = mediaEngine.stopLocalAudioRecording((filename, arg1) => {
|
|
waveform({ filename, durationSecs: arg1 / 1000, waveform });
|
|
});
|
|
});
|
|
}
|
|
let closure_25 = async function _endAudioRecording(arg0, value) {
|
|
if (c3 === 2) {
|
|
c3 = 3;
|
|
throw new TypeError("Generator functions may not be called on executing generators");
|
|
} else if (tmp5 === 3) {
|
|
if (arg0 === 1) {
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
const obj2 = { value, done: true };
|
|
return obj2;
|
|
} else {
|
|
return { value: "HermesInternal", done: null };
|
|
}
|
|
} else {
|
|
try {
|
|
c3 = 2;
|
|
if (0 === c2) {
|
|
if (arg0 === 1) {
|
|
c3 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c3 = 3;
|
|
const obj3 = { value, done: true };
|
|
return obj3;
|
|
} else {
|
|
closure_1 = tmp2;
|
|
closure_0 = tmp3;
|
|
closure_128_0 = undefined;
|
|
let startTimeMillis;
|
|
state = state.getState();
|
|
closure_128_0 = state.savedVoiceMessageUploadData;
|
|
let tmp9 = null == closure_128_0;
|
|
if (tmp9) {
|
|
tmp9 = state.recordingStatus === constants.REQUESTED;
|
|
}
|
|
if (tmp9) {
|
|
stopAndGetAudioRecording();
|
|
closure_128_0 = { filename: "", durationSecs: 0, waveform: "" };
|
|
}
|
|
if (null == closure_128_0) {
|
|
c2 = 1;
|
|
c3 = 1;
|
|
const obj4 = { value: stopAndGetAudioRecording(), done: false };
|
|
return obj4;
|
|
} else {
|
|
startTimeMillis = closure_129_11.getState().startTimeMillis;
|
|
closure_129_23();
|
|
const obj5 = { data: closure_128_0, startTimeMillis };
|
|
c3 = 3;
|
|
}
|
|
}
|
|
} else if (arg0 === 1) {
|
|
c3 = 3;
|
|
throw value;
|
|
} else if (arg0 !== 2) {
|
|
closure_128_0 = value;
|
|
}
|
|
c3 = 3;
|
|
const obj = { value, done: true };
|
|
return obj;
|
|
} catch (tmp21) {
|
|
c3 = tmp;
|
|
throw tmp21;
|
|
}
|
|
}
|
|
};
|
|
function stopAndCacheAudioRecording() {
|
|
const self = this;
|
|
const apply = closure_27.apply;
|
|
if (typeof apply === "unknown") {
|
|
let applyArgumentsResult = HermesBuiltin.applyArguments(self);
|
|
} else {
|
|
applyArgumentsResult = apply(self, arguments);
|
|
}
|
|
return applyArgumentsResult;
|
|
}
|
|
let closure_27 = async function _stopAndCacheAudioRecording(arg0, value) {
|
|
if (c3 === 2) {
|
|
c3 = 3;
|
|
throw new TypeError("Generator functions may not be called on executing generators");
|
|
} else if (tmp5 === 3) {
|
|
if (arg0 === 1) {
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
const obj = { value, done: true };
|
|
return obj;
|
|
} else {
|
|
return { value: "HermesInternal", done: null };
|
|
}
|
|
} else {
|
|
try {
|
|
c3 = 2;
|
|
if (0 === c2) {
|
|
if (arg0 === 1) {
|
|
c3 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c3 = 3;
|
|
const obj2 = { value, done: true };
|
|
return obj2;
|
|
} else {
|
|
closure_1 = tmp2;
|
|
closure_0 = tmp3;
|
|
closure_128_0 = undefined;
|
|
c2 = 1;
|
|
c3 = 1;
|
|
const obj3 = { value: stopAndGetAudioRecording(), done: false };
|
|
return obj3;
|
|
}
|
|
} else if (arg0 === 1) {
|
|
c3 = 3;
|
|
throw value;
|
|
} else if (arg0 === 2) {
|
|
c3 = 3;
|
|
const obj4 = { value, done: true };
|
|
return obj4;
|
|
} else {
|
|
closure_128_0 = value;
|
|
const mediaEngine = closure_129_4.getMediaEngine();
|
|
mediaEngine.removeListener(closure_129_0(closure_129_2[9]).MediaEngineEvent.VoiceActivity, closure_129_21);
|
|
closure_129_7(closure_128_0);
|
|
c3 = 3;
|
|
return { value: "HermesInternal", done: null };
|
|
}
|
|
} catch (tmp18) {
|
|
c3 = tmp;
|
|
throw tmp18;
|
|
}
|
|
}
|
|
};
|
|
const VoiceMessagesUIStore = fn(12090);
|
|
({ addVoiceMessageWave: hasOwnProperty, resetVoiceMessageState: metroRequire, setSavedVoiceMessageUploadData: closure_7, setVoiceMessageRecordingId: closure_8, setVoiceMessageRecordingState: closure_9, setVoiceMessageStartTimeMillis: c10, useVoiceMessagesUIStore: closure_11, VoiceMessageRecordingStatus: closure_12 } = VoiceMessagesUIStore);
|
|
const VoiceMessageConstants = fn(12091);
|
|
({ WAVEFORM_WAVE_MAX_VALUE: map1, VOICE_RECORDING_MIN_DB: closure_14, VOICE_RECORDING_MAX_DB: closure_15, WAVEFORM_MAX_SAMPLES: closure_16, VOICE_RECORDING_MAX_DURATION_MILLIS: closure_17 } = VoiceMessageConstants);
|
|
const AnalyticEvents = fn(1074).AnalyticEvents;
|
|
let c19 = null;
|
|
let closure_20 = new LoggerDefault("VoiceMessages");
|
|
let closure_21 = apply.throttle((arg0) => {
|
|
const state = closure_1_11.getState();
|
|
if (null != state.startTimeMillis) {
|
|
hasOwnProperty(map1 * ((arg0 - closure_1_14) / (__initData - closure_1_14)));
|
|
let tmp8 = null == state.savedVoiceMessageUploadData;
|
|
if (tmp8) {
|
|
const _performance = performance;
|
|
tmp8 = performance.now() - state.startTimeMillis >= closure_1_17;
|
|
}
|
|
if (tmp8) {
|
|
stopAndCacheAudioRecording();
|
|
}
|
|
}
|
|
}, 100);
|
|
const size = fn(2);
|
|
let result = size.fileFinishedImporting("modules/voice_messages/native/VoiceMessageUtils.tsx");
|
|
|
|
export const generateBase64EncodedWaveform = function generateBase64EncodedWaveform(arg0) {
|
|
let arr = arg0;
|
|
if (arg0.length > value2) {
|
|
arr = downsampleWaveformDefault(arg0, tmp);
|
|
}
|
|
const mapped = arr.map((item) => Math.min(item, closure_1_13));
|
|
const uint8Array = new Uint8Array(mapped);
|
|
return byteLengthDefault.fromByteArray(uint8Array);
|
|
};
|
|
export const startAudioRecording = function startAudioRecording() {
|
|
const self = this;
|
|
const apply = closure_22.apply;
|
|
if (typeof apply === "unknown") {
|
|
let applyArgumentsResult = HermesBuiltin.applyArguments(self);
|
|
} else {
|
|
applyArgumentsResult = apply(self, arguments);
|
|
}
|
|
return applyArgumentsResult;
|
|
};
|
|
export const endAudioRecording = function endAudioRecording() {
|
|
const self = this;
|
|
const apply = closure_25.apply;
|
|
if (typeof apply === "unknown") {
|
|
let applyArgumentsResult = HermesBuiltin.applyArguments(self);
|
|
} else {
|
|
applyArgumentsResult = apply(self, arguments);
|
|
}
|
|
return applyArgumentsResult;
|
|
};
|
|
export { stopAndCacheAudioRecording };
|
|
export const emitVoiceMessageRecorded = function emitVoiceMessageRecorded(CANCELLED_DURATION, durationSecs, startTimeMillis) {
|
|
if (null != startTimeMillis) {
|
|
const obj2 = { recording_start_timestamp: startTimeMillis, recording_stop_timestamp: null, duration_secs: null, result: null, initialize_secs: null };
|
|
const _Date = Date;
|
|
obj2.recording_stop_timestamp = Date.now();
|
|
obj2.duration_secs = durationSecs;
|
|
obj2.result = CANCELLED_DURATION;
|
|
obj2.initialize_secs = initialize_secs;
|
|
AnalyticsUtilsDefault.track(AnalyticEvents.VOICE_MESSAGE_RECORDED, obj2);
|
|
initialize_secs = null;
|
|
}
|
|
};
|
|
export const triggerHaptic = function triggerHaptic() {
|
|
const obj = HapticUtils;
|
|
const HapticFeedbackTypes = HapticUtils.HapticFeedbackTypes;
|
|
const result = obj.triggerHapticFeedback(PlatformUtils.isAndroid() ? HapticFeedbackTypes.IMPACT_LIGHT : HapticFeedbackTypes.IMPACT_MEDIUM);
|
|
};
|