UNPKG

react-native-volume-manager

Version:

React Native module which adds the ability to change the system volume on iOS and Android, listen to volume changes and supress the native volume UI to build your own volume slider or UX.

141 lines (138 loc) 3.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.addSilentListener = exports.addRingerListener = exports.VolumeManager = void 0; exports.addVolumeListener = addVolumeListener; exports.checkDndAccess = checkDndAccess; exports.default = void 0; exports.enable = enable; exports.enableInSilenceMode = enableInSilenceMode; exports.getRingerMode = getRingerMode; exports.getVolume = getVolume; exports.removeRingerListener = exports.isAndroidDeviceSilent = void 0; exports.requestDndAccess = requestDndAccess; exports.setActive = setActive; exports.setCategory = setCategory; exports.setMode = setMode; exports.setNativeSilenceCheckInterval = void 0; exports.setRingerMode = setRingerMode; exports.setVolume = setVolume; exports.showNativeVolumeUI = showNativeVolumeUI; // Track if warning has been shown let hasWarned = false; // Helper function to show warning only in development const warnOnWeb = () => { if (__DEV__ && !hasWarned) { console.warn('react-native-volume-manager is not functional on the web. While the package exports no-op methods for web usage, allowing you to include it without any issues, these methods have no actual effect. This warning is only visible in development mode.'); hasWarned = true; } }; const noopEmitterSubscription = { remove: () => { // noop } }; // Base volume result for web platform const defaultVolumeResult = { volume: 1 }; async function getRingerMode() { warnOnWeb(); return undefined; } async function setRingerMode(_mode) { warnOnWeb(); return undefined; } async function enable(_enabled = true, _async = true) { warnOnWeb(); return undefined; } async function setActive(_value = true, _async = true) { warnOnWeb(); return undefined; } async function setCategory(_value, _mixWithOthers = false) { warnOnWeb(); return undefined; } async function setMode(_value) { warnOnWeb(); return undefined; } async function enableInSilenceMode(_enabled = true) { warnOnWeb(); return undefined; } async function checkDndAccess() { warnOnWeb(); return undefined; } async function requestDndAccess() { warnOnWeb(); return undefined; } async function getVolume() { warnOnWeb(); return defaultVolumeResult; } async function setVolume(_value, _config = {}) { warnOnWeb(); return undefined; } async function showNativeVolumeUI(_config) { warnOnWeb(); return undefined; } function addVolumeListener(_callback) { warnOnWeb(); return noopEmitterSubscription; } const addSilentListener = _callback => { warnOnWeb(); return noopEmitterSubscription; }; exports.addSilentListener = addSilentListener; const setNativeSilenceCheckInterval = _value => { warnOnWeb(); // noop }; exports.setNativeSilenceCheckInterval = setNativeSilenceCheckInterval; const isAndroidDeviceSilent = () => { warnOnWeb(); return Promise.resolve(null); }; exports.isAndroidDeviceSilent = isAndroidDeviceSilent; const addRingerListener = _callback => { warnOnWeb(); return noopEmitterSubscription; }; exports.addRingerListener = addRingerListener; const removeRingerListener = _listener => { warnOnWeb(); // noop }; exports.removeRingerListener = removeRingerListener; const VolumeManager = exports.VolumeManager = { addVolumeListener, getVolume, setVolume, showNativeVolumeUI, isAndroidDeviceSilent, addSilentListener, addRingerListener, removeRingerListener, setNativeSilenceCheckInterval, getRingerMode, setRingerMode, checkDndAccess, requestDndAccess, enable, setActive, setCategory, setMode, enableInSilenceMode }; var _default = exports.default = VolumeManager; //# sourceMappingURL=module.web.js.map