Files
discord-decomp/modules/native_permissions/NativePermissionManager.tsx
T
2026-11-01 12:12:55 +02:00

31 lines
1.1 KiB
TypeScript

// Metro module 4733 (f4734).
import { NativePermissionTypes } from "./NativePermissionConstants";
import { InputModes } from "../../Constants";
import LifecycleManager from "../../lib/LifecycleManager";
import { isDesktop, isMac } from "../../utils/PlatformUtils";
import { ProcessArgs } from "../../utils/ProcessArgs";
import Dispatcher from "../../Dispatcher";
import * as _NativePermissionUtils from "./NativePermissionUtils";
class NativePermissionManager extends LifecycleManager {
isEnabled() {
return isDesktop() && isMac() && !ProcessArgs.isDiscordTestSet();
}
_initialize() {
if (this.isEnabled()) {
Dispatcher.subscribe("AUDIO_SET_MODE", this.handleAudioSetMode);
}
}
_terminate() {
if (this.isEnabled()) {
Dispatcher.unsubscribe("AUDIO_SET_MODE", this.handleAudioSetMode);
}
}
handleAudioSetMode(a0) {
if (a0.mode === InputModes.PUSH_TO_TALK) {
_NativePermissionUtils.default.requestPermission(NativePermissionTypes.INPUT_MONITORING);
}
}
}
const nativePermissionManager = new NativePermissionManager();
export default nativePermissionManager;