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
JavaScript
;
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