UNPKG

react-native-device-info

Version:
1,057 lines (956 loc) 41.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.syncUniqueId = syncUniqueId; exports.getMacAddress = getMacAddress; exports.getMacAddressSync = getMacAddressSync; exports.getReadableVersion = getReadableVersion; exports.hasNotch = hasNotch; exports.getTotalDiskCapacityOld = getTotalDiskCapacityOld; exports.getTotalDiskCapacityOldSync = getTotalDiskCapacityOldSync; exports.getFreeDiskStorageOld = getFreeDiskStorageOld; exports.getFreeDiskStorageOldSync = getFreeDiskStorageOldSync; exports.isLandscape = isLandscape; exports.isLandscapeSync = isLandscapeSync; exports.hasSystemFeature = hasSystemFeature; exports.hasSystemFeatureSync = hasSystemFeatureSync; exports.isLowBatteryLevel = isLowBatteryLevel; exports.getDeviceToken = getDeviceToken; exports.useBatteryLevel = useBatteryLevel; exports.useBatteryLevelIsLow = useBatteryLevelIsLow; exports.usePowerState = usePowerState; exports.useIsHeadphonesConnected = useIsHeadphonesConnected; exports.useFirstInstallTime = useFirstInstallTime; exports.useDeviceName = useDeviceName; exports.useHasSystemFeature = useHasSystemFeature; exports.useIsEmulator = useIsEmulator; exports.useManufacturer = useManufacturer; exports.useBrightness = useBrightness; exports.isAirplaneModeSync = exports.isAirplaneMode = exports.isBatteryChargingSync = exports.isBatteryCharging = exports.getPowerStateSync = exports.getPowerState = exports.getBatteryLevelSync = exports.getBatteryLevel = exports.getFreeDiskStorageSync = exports.getFreeDiskStorage = exports.getTotalDiskCapacitySync = exports.getTotalDiskCapacity = exports.getMaxMemorySync = exports.getMaxMemory = exports.getTotalMemorySync = exports.getTotalMemory = exports.getCarrierSync = exports.getCarrier = exports.getPhoneNumberSync = exports.getPhoneNumber = exports.getLastUpdateTimeSync = exports.getLastUpdateTime = exports.getInstallReferrerSync = exports.getInstallReferrer = exports.getFirstInstallTimeSync = exports.getFirstInstallTime = exports.hasHmsSync = exports.hasHms = exports.hasGmsSync = exports.hasGms = exports.isPinOrFingerprintSetSync = exports.isPinOrFingerprintSet = exports.isTablet = exports.isEmulatorSync = exports.isEmulator = exports.getIncrementalSync = exports.getIncremental = exports.getCodenameSync = exports.getCodename = exports.getSecurityPatchSync = exports.getSecurityPatch = exports.getPreviewSdkIntSync = exports.getPreviewSdkInt = exports.getBaseOsSync = exports.getBaseOs = exports.getTypeSync = exports.getType = exports.getTagsSync = exports.getTags = exports.getProductSync = exports.getProduct = exports.getHostSync = exports.getHost = exports.getHardwareSync = exports.getHardware = exports.getFingerprintSync = exports.getFingerprint = exports.getDisplaySync = exports.getDisplay = exports.getDeviceSync = exports.getDevice = exports.getBootloaderSync = exports.getBootloader = exports.getFontScaleSync = exports.getFontScale = exports.getUserAgentSync = exports.getUserAgent = exports.getUsedMemorySync = exports.getUsedMemory = exports.getDeviceNameSync = exports.getDeviceName = exports.getVersion = exports.getBuildNumber = exports.getApplicationName = exports.getInstallerPackageNameSync = exports.getInstallerPackageName = exports.getBundleId = exports.getApiLevelSync = exports.getApiLevel = exports.getBuildIdSync = exports.getBuildId = exports.getSystemVersion = exports.getSystemName = exports.getBrand = exports.getModel = exports.getManufacturerSync = exports.getManufacturer = exports.getDeviceId = exports.isCameraPresentSync = exports.isCameraPresent = exports.getIpAddressSync = exports.getIpAddress = exports.getAndroidIdSync = exports.getAndroidId = exports.getSerialNumberSync = exports.getSerialNumber = exports.getInstanceIdSync = exports.getInstanceId = exports.getUniqueIdSync = exports.getUniqueId = void 0; exports.default = exports.getBrightnessSync = exports.getBrightness = exports.getAvailableLocationProvidersSync = exports.getAvailableLocationProviders = exports.isTabletMode = exports.isKeyboardConnectedSync = exports.isKeyboardConnected = exports.isMouseConnectedSync = exports.isMouseConnected = exports.isHeadphonesConnectedSync = exports.isHeadphonesConnected = exports.isLocationEnabledSync = exports.isLocationEnabled = exports.getSystemAvailableFeaturesSync = exports.getSystemAvailableFeatures = exports.supported64BitAbisSync = exports.supported64BitAbis = exports.supported32BitAbisSync = exports.supported32BitAbis = exports.supportedAbisSync = exports.supportedAbis = exports.getDeviceTypeSync = exports.getDeviceType = void 0; var _react = require("react"); var _reactNative = require("react-native"); var _asyncHookWrappers = require("./internal/asyncHookWrappers"); var _devicesWithNotch = _interopRequireDefault(require("./internal/devicesWithNotch")); var _nativeInterface = _interopRequireDefault(require("./internal/nativeInterface")); var _supportedPlatformInfo = require("./internal/supported-platform-info"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const [getUniqueId, getUniqueIdSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'uniqueId', supportedPlatforms: ['android', 'ios', 'windows'], getter: () => _nativeInterface.default.getUniqueId(), syncGetter: () => _nativeInterface.default.getUniqueIdSync(), defaultValue: 'unknown' }); exports.getUniqueIdSync = getUniqueIdSync; exports.getUniqueId = getUniqueId; let uniqueId; async function syncUniqueId() { if (_reactNative.Platform.OS === 'ios') { uniqueId = await _nativeInterface.default.syncUniqueId(); } else { uniqueId = await getUniqueId(); } return uniqueId; } const [getInstanceId, getInstanceIdSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'instanceId', supportedPlatforms: ['android'], getter: () => _nativeInterface.default.getInstanceId(), syncGetter: () => _nativeInterface.default.getInstanceIdSync(), defaultValue: 'unknown' }); exports.getInstanceIdSync = getInstanceIdSync; exports.getInstanceId = getInstanceId; const [getSerialNumber, getSerialNumberSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'serialNumber', supportedPlatforms: ['android', 'windows'], getter: () => _nativeInterface.default.getSerialNumber(), syncGetter: () => _nativeInterface.default.getSerialNumberSync(), defaultValue: 'unknown' }); exports.getSerialNumberSync = getSerialNumberSync; exports.getSerialNumber = getSerialNumber; const [getAndroidId, getAndroidIdSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'androidId', supportedPlatforms: ['android'], getter: () => _nativeInterface.default.getAndroidId(), syncGetter: () => _nativeInterface.default.getAndroidIdSync(), defaultValue: 'unknown' }); exports.getAndroidIdSync = getAndroidIdSync; exports.getAndroidId = getAndroidId; const [getIpAddress, getIpAddressSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ supportedPlatforms: ['android', 'ios', 'windows'], getter: () => _nativeInterface.default.getIpAddress(), syncGetter: () => _nativeInterface.default.getIpAddressSync(), defaultValue: 'unknown' }); exports.getIpAddressSync = getIpAddressSync; exports.getIpAddress = getIpAddress; const [isCameraPresent, isCameraPresentSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ supportedPlatforms: ['android', 'windows', 'web'], getter: () => _nativeInterface.default.isCameraPresent(), syncGetter: () => _nativeInterface.default.isCameraPresentSync(), defaultValue: false }); exports.isCameraPresentSync = isCameraPresentSync; exports.isCameraPresent = isCameraPresent; async function getMacAddress() { if (_reactNative.Platform.OS === 'android') { return _nativeInterface.default.getMacAddress(); } else if (_reactNative.Platform.OS === 'ios') { return '02:00:00:00:00:00'; } return 'unknown'; } function getMacAddressSync() { if (_reactNative.Platform.OS === 'android') { return _nativeInterface.default.getMacAddressSync(); } else if (_reactNative.Platform.OS === 'ios') { return '02:00:00:00:00:00'; } return 'unknown'; } const getDeviceId = () => (0, _supportedPlatformInfo.getSupportedPlatformInfoSync)({ defaultValue: 'unknown', memoKey: 'deviceId', getter: () => _nativeInterface.default.deviceId, supportedPlatforms: ['android', 'ios', 'windows'] }); exports.getDeviceId = getDeviceId; const [getManufacturer, getManufacturerSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'manufacturer', supportedPlatforms: ['android', 'ios', 'windows'], getter: () => _reactNative.Platform.OS == 'ios' ? Promise.resolve('Apple') : _nativeInterface.default.getSystemManufacturer(), syncGetter: () => _reactNative.Platform.OS == 'ios' ? 'Apple' : _nativeInterface.default.getSystemManufacturerSync(), defaultValue: 'unknown' }); exports.getManufacturerSync = getManufacturerSync; exports.getManufacturer = getManufacturer; const getModel = () => (0, _supportedPlatformInfo.getSupportedPlatformInfoSync)({ memoKey: 'model', defaultValue: 'unknown', supportedPlatforms: ['ios', 'android', 'windows'], getter: () => _nativeInterface.default.model }); exports.getModel = getModel; const getBrand = () => (0, _supportedPlatformInfo.getSupportedPlatformInfoSync)({ memoKey: 'brand', supportedPlatforms: ['android', 'ios', 'windows'], defaultValue: 'unknown', getter: () => _nativeInterface.default.brand }); exports.getBrand = getBrand; const getSystemName = () => (0, _supportedPlatformInfo.getSupportedPlatformInfoSync)({ defaultValue: 'unknown', supportedPlatforms: ['ios', 'android', 'windows'], memoKey: 'systemName', getter: () => _reactNative.Platform.select({ ios: _nativeInterface.default.systemName, android: 'Android', windows: 'Windows', default: 'unknown' }) }); exports.getSystemName = getSystemName; const getSystemVersion = () => (0, _supportedPlatformInfo.getSupportedPlatformInfoSync)({ defaultValue: 'unknown', getter: () => _nativeInterface.default.systemVersion, supportedPlatforms: ['android', 'ios', 'windows'], memoKey: 'systemVersion' }); exports.getSystemVersion = getSystemVersion; const [getBuildId, getBuildIdSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'buildId', supportedPlatforms: ['android', 'ios', 'windows'], getter: () => _nativeInterface.default.getBuildId(), syncGetter: () => _nativeInterface.default.getBuildIdSync(), defaultValue: 'unknown' }); exports.getBuildIdSync = getBuildIdSync; exports.getBuildId = getBuildId; const [getApiLevel, getApiLevelSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'apiLevel', supportedPlatforms: ['android'], getter: () => _nativeInterface.default.getApiLevel(), syncGetter: () => _nativeInterface.default.getApiLevelSync(), defaultValue: -1 }); exports.getApiLevelSync = getApiLevelSync; exports.getApiLevel = getApiLevel; const getBundleId = () => (0, _supportedPlatformInfo.getSupportedPlatformInfoSync)({ memoKey: 'bundleId', supportedPlatforms: ['android', 'ios', 'windows'], defaultValue: 'unknown', getter: () => _nativeInterface.default.bundleId }); exports.getBundleId = getBundleId; const [getInstallerPackageName, getInstallerPackageNameSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'installerPackageName', supportedPlatforms: ['android', 'windows', 'ios'], getter: () => _nativeInterface.default.getInstallerPackageName(), syncGetter: () => _nativeInterface.default.getInstallerPackageNameSync(), defaultValue: 'unknown' }); exports.getInstallerPackageNameSync = getInstallerPackageNameSync; exports.getInstallerPackageName = getInstallerPackageName; const getApplicationName = () => (0, _supportedPlatformInfo.getSupportedPlatformInfoSync)({ memoKey: 'appName', defaultValue: 'unknown', getter: () => _nativeInterface.default.appName, supportedPlatforms: ['android', 'ios', 'windows'] }); exports.getApplicationName = getApplicationName; const getBuildNumber = () => (0, _supportedPlatformInfo.getSupportedPlatformInfoSync)({ memoKey: 'buildNumber', supportedPlatforms: ['android', 'ios', 'windows'], getter: () => _nativeInterface.default.buildNumber, defaultValue: 'unknown' }); exports.getBuildNumber = getBuildNumber; const getVersion = () => (0, _supportedPlatformInfo.getSupportedPlatformInfoSync)({ memoKey: 'version', defaultValue: 'unknown', supportedPlatforms: ['android', 'ios', 'windows'], getter: () => _nativeInterface.default.appVersion }); exports.getVersion = getVersion; function getReadableVersion() { return getVersion() + '.' + getBuildNumber(); } const [getDeviceName, getDeviceNameSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ supportedPlatforms: ['android', 'ios', 'windows'], getter: () => _nativeInterface.default.getDeviceName(), syncGetter: () => _nativeInterface.default.getDeviceNameSync(), defaultValue: 'unknown' }); exports.getDeviceNameSync = getDeviceNameSync; exports.getDeviceName = getDeviceName; const [getUsedMemory, getUsedMemorySync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ supportedPlatforms: ['android', 'ios', 'windows', 'web'], getter: () => _nativeInterface.default.getUsedMemory(), syncGetter: () => _nativeInterface.default.getUsedMemorySync(), defaultValue: -1 }); exports.getUsedMemorySync = getUsedMemorySync; exports.getUsedMemory = getUsedMemory; const getUserAgent = () => (0, _supportedPlatformInfo.getSupportedPlatformInfoAsync)({ memoKey: 'userAgent', defaultValue: 'unknown', supportedPlatforms: ['android', 'ios', 'web'], getter: () => _nativeInterface.default.getUserAgent() }); exports.getUserAgent = getUserAgent; const getUserAgentSync = () => (0, _supportedPlatformInfo.getSupportedPlatformInfoSync)({ memoKey: 'userAgent', defaultValue: 'unknown', supportedPlatforms: ['android', 'web'], getter: () => _nativeInterface.default.getUserAgentSync() }); exports.getUserAgentSync = getUserAgentSync; const [getFontScale, getFontScaleSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ supportedPlatforms: ['android', 'ios', 'windows'], getter: () => _nativeInterface.default.getFontScale(), syncGetter: () => _nativeInterface.default.getFontScaleSync(), defaultValue: -1 }); exports.getFontScaleSync = getFontScaleSync; exports.getFontScale = getFontScale; const [getBootloader, getBootloaderSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'bootloader', supportedPlatforms: ['android'], getter: () => _nativeInterface.default.getBootloader(), syncGetter: () => _nativeInterface.default.getBootloaderSync(), defaultValue: 'unknown' }); exports.getBootloaderSync = getBootloaderSync; exports.getBootloader = getBootloader; const [getDevice, getDeviceSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ getter: () => _nativeInterface.default.getDevice(), syncGetter: () => _nativeInterface.default.getDeviceSync(), defaultValue: 'unknown', memoKey: 'device', supportedPlatforms: ['android'] }); exports.getDeviceSync = getDeviceSync; exports.getDevice = getDevice; const [getDisplay, getDisplaySync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'display', supportedPlatforms: ['android'], getter: () => _nativeInterface.default.getDisplay(), syncGetter: () => _nativeInterface.default.getDisplaySync(), defaultValue: 'unknown' }); exports.getDisplaySync = getDisplaySync; exports.getDisplay = getDisplay; const [getFingerprint, getFingerprintSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'fingerprint', supportedPlatforms: ['android'], getter: () => _nativeInterface.default.getFingerprint(), syncGetter: () => _nativeInterface.default.getFingerprintSync(), defaultValue: 'unknown' }); exports.getFingerprintSync = getFingerprintSync; exports.getFingerprint = getFingerprint; const [getHardware, getHardwareSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'hardware', supportedPlatforms: ['android'], getter: () => _nativeInterface.default.getHardware(), syncGetter: () => _nativeInterface.default.getHardwareSync(), defaultValue: 'unknown' }); exports.getHardwareSync = getHardwareSync; exports.getHardware = getHardware; const [getHost, getHostSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'host', supportedPlatforms: ['android'], getter: () => _nativeInterface.default.getHost(), syncGetter: () => _nativeInterface.default.getHostSync(), defaultValue: 'unknown' }); exports.getHostSync = getHostSync; exports.getHost = getHost; const [getProduct, getProductSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'product', supportedPlatforms: ['android'], getter: () => _nativeInterface.default.getProduct(), syncGetter: () => _nativeInterface.default.getProductSync(), defaultValue: 'unknown' }); exports.getProductSync = getProductSync; exports.getProduct = getProduct; const [getTags, getTagsSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'tags', supportedPlatforms: ['android'], getter: () => _nativeInterface.default.getTags(), syncGetter: () => _nativeInterface.default.getTagsSync(), defaultValue: 'unknown' }); exports.getTagsSync = getTagsSync; exports.getTags = getTags; const [getType, getTypeSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'type', supportedPlatforms: ['android'], getter: () => _nativeInterface.default.getType(), syncGetter: () => _nativeInterface.default.getTypeSync(), defaultValue: 'unknown' }); exports.getTypeSync = getTypeSync; exports.getType = getType; const [getBaseOs, getBaseOsSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'baseOs', supportedPlatforms: ['android', 'web', 'windows'], getter: () => _nativeInterface.default.getBaseOs(), syncGetter: () => _nativeInterface.default.getBaseOsSync(), defaultValue: 'unknown' }); exports.getBaseOsSync = getBaseOsSync; exports.getBaseOs = getBaseOs; const [getPreviewSdkInt, getPreviewSdkIntSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'previewSdkInt', supportedPlatforms: ['android'], getter: () => _nativeInterface.default.getPreviewSdkInt(), syncGetter: () => _nativeInterface.default.getPreviewSdkIntSync(), defaultValue: -1 }); exports.getPreviewSdkIntSync = getPreviewSdkIntSync; exports.getPreviewSdkInt = getPreviewSdkInt; const [getSecurityPatch, getSecurityPatchSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'securityPatch', supportedPlatforms: ['android'], getter: () => _nativeInterface.default.getSecurityPatch(), syncGetter: () => _nativeInterface.default.getSecurityPatchSync(), defaultValue: 'unknown' }); exports.getSecurityPatchSync = getSecurityPatchSync; exports.getSecurityPatch = getSecurityPatch; const [getCodename, getCodenameSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'codeName', supportedPlatforms: ['android'], getter: () => _nativeInterface.default.getCodename(), syncGetter: () => _nativeInterface.default.getCodenameSync(), defaultValue: 'unknown' }); exports.getCodenameSync = getCodenameSync; exports.getCodename = getCodename; const [getIncremental, getIncrementalSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'incremental', supportedPlatforms: ['android'], getter: () => _nativeInterface.default.getIncremental(), syncGetter: () => _nativeInterface.default.getIncrementalSync(), defaultValue: 'unknown' }); exports.getIncrementalSync = getIncrementalSync; exports.getIncremental = getIncremental; const [isEmulator, isEmulatorSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'emulator', supportedPlatforms: ['android', 'ios', 'windows'], getter: () => _nativeInterface.default.isEmulator(), syncGetter: () => _nativeInterface.default.isEmulatorSync(), defaultValue: false }); exports.isEmulatorSync = isEmulatorSync; exports.isEmulator = isEmulator; const isTablet = () => (0, _supportedPlatformInfo.getSupportedPlatformInfoSync)({ defaultValue: false, supportedPlatforms: ['android', 'ios', 'windows'], memoKey: 'tablet', getter: () => _nativeInterface.default.isTablet }); exports.isTablet = isTablet; const [isPinOrFingerprintSet, isPinOrFingerprintSetSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ supportedPlatforms: ['android', 'ios', 'windows'], getter: () => _nativeInterface.default.isPinOrFingerprintSet(), syncGetter: () => _nativeInterface.default.isPinOrFingerprintSetSync(), defaultValue: false }); exports.isPinOrFingerprintSetSync = isPinOrFingerprintSetSync; exports.isPinOrFingerprintSet = isPinOrFingerprintSet; let notch; function hasNotch() { if (notch === undefined) { let _brand = getBrand(); let _model = getModel(); notch = _devicesWithNotch.default.findIndex(item => item.brand.toLowerCase() === _brand.toLowerCase() && item.model.toLowerCase() === _model.toLowerCase()) !== -1; } return notch; } const [hasGms, hasGmsSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ supportedPlatforms: ['android'], getter: () => _nativeInterface.default.hasGms(), syncGetter: () => _nativeInterface.default.hasGmsSync(), defaultValue: false }); exports.hasGmsSync = hasGmsSync; exports.hasGms = hasGms; const [hasHms, hasHmsSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ supportedPlatforms: ['android'], getter: () => _nativeInterface.default.hasHms(), syncGetter: () => _nativeInterface.default.hasHmsSync(), defaultValue: false }); exports.hasHmsSync = hasHmsSync; exports.hasHms = hasHms; const [getFirstInstallTime, getFirstInstallTimeSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'firstInstallTime', supportedPlatforms: ['android', 'windows'], getter: () => _nativeInterface.default.getFirstInstallTime(), syncGetter: () => _nativeInterface.default.getFirstInstallTimeSync(), defaultValue: -1 }); exports.getFirstInstallTimeSync = getFirstInstallTimeSync; exports.getFirstInstallTime = getFirstInstallTime; const [getInstallReferrer, getInstallReferrerSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'installReferrer', supportedPlatforms: ['android', 'windows', 'web'], getter: () => _nativeInterface.default.getInstallReferrer(), syncGetter: () => _nativeInterface.default.getInstallReferrerSync(), defaultValue: 'unknown' }); exports.getInstallReferrerSync = getInstallReferrerSync; exports.getInstallReferrer = getInstallReferrer; const [getLastUpdateTime, getLastUpdateTimeSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'lastUpdateTime', supportedPlatforms: ['android'], getter: () => _nativeInterface.default.getLastUpdateTime(), syncGetter: () => _nativeInterface.default.getLastUpdateTimeSync(), defaultValue: -1 }); exports.getLastUpdateTimeSync = getLastUpdateTimeSync; exports.getLastUpdateTime = getLastUpdateTime; const [getPhoneNumber, getPhoneNumberSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ supportedPlatforms: ['android'], getter: () => _nativeInterface.default.getPhoneNumber(), syncGetter: () => _nativeInterface.default.getPhoneNumberSync(), defaultValue: 'unknown' }); exports.getPhoneNumberSync = getPhoneNumberSync; exports.getPhoneNumber = getPhoneNumber; const [getCarrier, getCarrierSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ supportedPlatforms: ['android', 'ios'], getter: () => _nativeInterface.default.getCarrier(), syncGetter: () => _nativeInterface.default.getCarrierSync(), defaultValue: 'unknown' }); exports.getCarrierSync = getCarrierSync; exports.getCarrier = getCarrier; const [getTotalMemory, getTotalMemorySync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'totalMemory', supportedPlatforms: ['android', 'ios', 'windows', 'web'], getter: () => _nativeInterface.default.getTotalMemory(), syncGetter: () => _nativeInterface.default.getTotalMemorySync(), defaultValue: -1 }); exports.getTotalMemorySync = getTotalMemorySync; exports.getTotalMemory = getTotalMemory; const [getMaxMemory, getMaxMemorySync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: 'maxMemory', supportedPlatforms: ['android', 'windows', 'web'], getter: () => _nativeInterface.default.getMaxMemory(), syncGetter: () => _nativeInterface.default.getMaxMemorySync(), defaultValue: -1 }); exports.getMaxMemorySync = getMaxMemorySync; exports.getMaxMemory = getMaxMemory; const [getTotalDiskCapacity, getTotalDiskCapacitySync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ supportedPlatforms: ['android', 'ios', 'windows', 'web'], getter: () => _nativeInterface.default.getTotalDiskCapacity(), syncGetter: () => _nativeInterface.default.getTotalDiskCapacitySync(), defaultValue: -1 }); exports.getTotalDiskCapacitySync = getTotalDiskCapacitySync; exports.getTotalDiskCapacity = getTotalDiskCapacity; async function getTotalDiskCapacityOld() { if (_reactNative.Platform.OS === 'android') { return _nativeInterface.default.getTotalDiskCapacityOld(); } if (_reactNative.Platform.OS === 'ios' || _reactNative.Platform.OS === 'windows' || _reactNative.Platform.OS === 'web') { return getTotalDiskCapacity(); } return -1; } function getTotalDiskCapacityOldSync() { if (_reactNative.Platform.OS === 'android') { return _nativeInterface.default.getTotalDiskCapacityOldSync(); } if (_reactNative.Platform.OS === 'ios' || _reactNative.Platform.OS === 'windows' || _reactNative.Platform.OS === 'web') { return getTotalDiskCapacitySync(); } return -1; } const [getFreeDiskStorage, getFreeDiskStorageSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ supportedPlatforms: ['android', 'ios', 'windows', 'web'], getter: () => _nativeInterface.default.getFreeDiskStorage(), syncGetter: () => _nativeInterface.default.getFreeDiskStorageSync(), defaultValue: -1 }); exports.getFreeDiskStorageSync = getFreeDiskStorageSync; exports.getFreeDiskStorage = getFreeDiskStorage; async function getFreeDiskStorageOld() { if (_reactNative.Platform.OS === 'android') { return _nativeInterface.default.getFreeDiskStorageOld(); } if (_reactNative.Platform.OS === 'ios' || _reactNative.Platform.OS === 'windows' || _reactNative.Platform.OS === 'web') { return getFreeDiskStorage(); } return -1; } function getFreeDiskStorageOldSync() { if (_reactNative.Platform.OS === 'android') { return _nativeInterface.default.getFreeDiskStorageOldSync(); } if (_reactNative.Platform.OS === 'ios' || _reactNative.Platform.OS === 'windows' || _reactNative.Platform.OS === 'web') { return getFreeDiskStorageSync(); } return -1; } const [getBatteryLevel, getBatteryLevelSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ supportedPlatforms: ['android', 'ios', 'windows', 'web'], getter: () => _nativeInterface.default.getBatteryLevel(), syncGetter: () => _nativeInterface.default.getBatteryLevelSync(), defaultValue: -1 }); exports.getBatteryLevelSync = getBatteryLevelSync; exports.getBatteryLevel = getBatteryLevel; const [getPowerState, getPowerStateSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ supportedPlatforms: ['ios', 'android', 'windows', 'web'], getter: () => _nativeInterface.default.getPowerState(), syncGetter: () => _nativeInterface.default.getPowerStateSync(), defaultValue: {} }); exports.getPowerStateSync = getPowerStateSync; exports.getPowerState = getPowerState; const [isBatteryCharging, isBatteryChargingSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ supportedPlatforms: ['android', 'ios', 'windows', 'web'], getter: () => _nativeInterface.default.isBatteryCharging(), syncGetter: () => _nativeInterface.default.isBatteryChargingSync(), defaultValue: false }); exports.isBatteryChargingSync = isBatteryChargingSync; exports.isBatteryCharging = isBatteryCharging; async function isLandscape() { return Promise.resolve(isLandscapeSync()); } function isLandscapeSync() { const { height, width } = _reactNative.Dimensions.get('window'); return width >= height; } const [isAirplaneMode, isAirplaneModeSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ supportedPlatforms: ['android', 'web'], getter: () => _nativeInterface.default.isAirplaneMode(), syncGetter: () => _nativeInterface.default.isAirplaneModeSync(), defaultValue: false }); exports.isAirplaneModeSync = isAirplaneModeSync; exports.isAirplaneMode = isAirplaneMode; const getDeviceType = () => { return (0, _supportedPlatformInfo.getSupportedPlatformInfoSync)({ memoKey: 'deviceType', supportedPlatforms: ['android', 'ios', 'windows'], defaultValue: 'unknown', getter: () => _nativeInterface.default.deviceType }); }; exports.getDeviceType = getDeviceType; const getDeviceTypeSync = () => { return (0, _supportedPlatformInfo.getSupportedPlatformInfoSync)({ memoKey: 'deviceType', supportedPlatforms: ['android', 'ios', 'windows'], defaultValue: 'unknown', getter: () => _nativeInterface.default.deviceType }); }; exports.getDeviceTypeSync = getDeviceTypeSync; const [supportedAbis, supportedAbisSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: '_supportedAbis', supportedPlatforms: ['android', 'ios', 'windows'], getter: () => _nativeInterface.default.getSupportedAbis(), syncGetter: () => _nativeInterface.default.getSupportedAbisSync(), defaultValue: [] }); exports.supportedAbisSync = supportedAbisSync; exports.supportedAbis = supportedAbis; const [supported32BitAbis, supported32BitAbisSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: '_supported32BitAbis', supportedPlatforms: ['android'], getter: () => _nativeInterface.default.getSupported32BitAbis(), syncGetter: () => _nativeInterface.default.getSupported32BitAbisSync(), defaultValue: [] }); exports.supported32BitAbisSync = supported32BitAbisSync; exports.supported32BitAbis = supported32BitAbis; const [supported64BitAbis, supported64BitAbisSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ memoKey: '_supported64BitAbis', supportedPlatforms: ['android'], getter: () => _nativeInterface.default.getSupported64BitAbis(), syncGetter: () => _nativeInterface.default.getSupported64BitAbisSync(), defaultValue: [] }); exports.supported64BitAbisSync = supported64BitAbisSync; exports.supported64BitAbis = supported64BitAbis; async function hasSystemFeature(feature) { if (_reactNative.Platform.OS === 'android') { return _nativeInterface.default.hasSystemFeature(feature); } return false; } function hasSystemFeatureSync(feature) { if (_reactNative.Platform.OS === 'android') { return _nativeInterface.default.hasSystemFeatureSync(feature); } return false; } function isLowBatteryLevel(level) { if (_reactNative.Platform.OS === 'android') { return level < 0.15; } return level < 0.2; } const [getSystemAvailableFeatures, getSystemAvailableFeaturesSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ supportedPlatforms: ['android'], getter: () => _nativeInterface.default.getSystemAvailableFeatures(), syncGetter: () => _nativeInterface.default.getSystemAvailableFeaturesSync(), defaultValue: [] }); exports.getSystemAvailableFeaturesSync = getSystemAvailableFeaturesSync; exports.getSystemAvailableFeatures = getSystemAvailableFeatures; const [isLocationEnabled, isLocationEnabledSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ supportedPlatforms: ['android', 'ios', 'web'], getter: () => _nativeInterface.default.isLocationEnabled(), syncGetter: () => _nativeInterface.default.isLocationEnabledSync(), defaultValue: false }); exports.isLocationEnabledSync = isLocationEnabledSync; exports.isLocationEnabled = isLocationEnabled; const [isHeadphonesConnected, isHeadphonesConnectedSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ supportedPlatforms: ['android', 'ios'], getter: () => _nativeInterface.default.isHeadphonesConnected(), syncGetter: () => _nativeInterface.default.isHeadphonesConnectedSync(), defaultValue: false }); exports.isHeadphonesConnectedSync = isHeadphonesConnectedSync; exports.isHeadphonesConnected = isHeadphonesConnected; const [isMouseConnected, isMouseConnectedSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ supportedPlatforms: ['windows'], getter: () => _nativeInterface.default.isMouseConnected(), syncGetter: () => _nativeInterface.default.isMouseConnectedSync(), defaultValue: false }); exports.isMouseConnectedSync = isMouseConnectedSync; exports.isMouseConnected = isMouseConnected; const [isKeyboardConnected, isKeyboardConnectedSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ supportedPlatforms: ['windows'], getter: () => _nativeInterface.default.isKeyboardConnected(), syncGetter: () => _nativeInterface.default.isKeyboardConnectedSync(), defaultValue: false }); exports.isKeyboardConnectedSync = isKeyboardConnectedSync; exports.isKeyboardConnected = isKeyboardConnected; const isTabletMode = () => (0, _supportedPlatformInfo.getSupportedPlatformInfoAsync)({ supportedPlatforms: ['windows'], getter: () => _nativeInterface.default.isTabletMode(), defaultValue: false }); exports.isTabletMode = isTabletMode; const [getAvailableLocationProviders, getAvailableLocationProvidersSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ supportedPlatforms: ['android', 'ios'], getter: () => _nativeInterface.default.getAvailableLocationProviders(), syncGetter: () => _nativeInterface.default.getAvailableLocationProvidersSync(), defaultValue: {} }); exports.getAvailableLocationProvidersSync = getAvailableLocationProvidersSync; exports.getAvailableLocationProviders = getAvailableLocationProviders; const [getBrightness, getBrightnessSync] = (0, _supportedPlatformInfo.getSupportedPlatformInfoFunctions)({ supportedPlatforms: ['ios'], getter: () => _nativeInterface.default.getBrightness(), syncGetter: () => _nativeInterface.default.getBrightnessSync(), defaultValue: -1 }); exports.getBrightnessSync = getBrightnessSync; exports.getBrightness = getBrightness; async function getDeviceToken() { if (_reactNative.Platform.OS === 'ios') { return _nativeInterface.default.getDeviceToken(); } return 'unknown'; } const deviceInfoEmitter = new _reactNative.NativeEventEmitter(_reactNative.NativeModules.RNDeviceInfo); function useBatteryLevel() { const [batteryLevel, setBatteryLevel] = (0, _react.useState)(null); (0, _react.useEffect)(() => { const setInitialValue = async () => { const initialValue = await getBatteryLevel(); setBatteryLevel(initialValue); }; const onChange = level => { setBatteryLevel(level); }; setInitialValue(); const subscription = deviceInfoEmitter.addListener('RNDeviceInfo_batteryLevelDidChange', onChange); return () => subscription.remove(); }, []); return batteryLevel; } function useBatteryLevelIsLow() { const [batteryLevelIsLow, setBatteryLevelIsLow] = (0, _react.useState)(null); (0, _react.useEffect)(() => { const setInitialValue = async () => { const initialValue = await getBatteryLevel(); isLowBatteryLevel(initialValue) && setBatteryLevelIsLow(initialValue); }; setInitialValue(); const onChange = level => { setBatteryLevelIsLow(level); }; const subscription = deviceInfoEmitter.addListener('RNDeviceInfo_batteryLevelIsLow', onChange); return () => subscription.remove(); }, []); return batteryLevelIsLow; } function usePowerState() { const [powerState, setPowerState] = (0, _react.useState)({}); (0, _react.useEffect)(() => { const setInitialValue = async () => { const initialValue = await getPowerState(); setPowerState(initialValue); }; const onChange = state => { setPowerState(state); }; setInitialValue(); const subscription = deviceInfoEmitter.addListener('RNDeviceInfo_powerStateDidChange', onChange); return () => subscription.remove(); }, []); return powerState; } function useIsHeadphonesConnected() { return (0, _asyncHookWrappers.useOnEvent)('RNDeviceInfo_headphoneConnectionDidChange', isHeadphonesConnected, false); } function useFirstInstallTime() { return (0, _asyncHookWrappers.useOnMount)(getFirstInstallTime, -1); } function useDeviceName() { return (0, _asyncHookWrappers.useOnMount)(getDeviceName, 'unknown'); } function useHasSystemFeature(feature) { const asyncGetter = (0, _react.useCallback)(() => hasSystemFeature(feature), [feature]); return (0, _asyncHookWrappers.useOnMount)(asyncGetter, false); } function useIsEmulator() { return (0, _asyncHookWrappers.useOnMount)(isEmulator, false); } function useManufacturer() { return (0, _asyncHookWrappers.useOnMount)(getManufacturer, 'unknown'); } function useBrightness() { const [brightness, setBrightness] = (0, _react.useState)(null); (0, _react.useEffect)(() => { const setInitialValue = async () => { const initialValue = await getBrightness(); setBrightness(initialValue); }; const onChange = value => { setBrightness(value); }; setInitialValue(); const subscription = deviceInfoEmitter.addListener('RNDeviceInfo_brightnessDidChange', onChange); return () => subscription.remove(); }, []); return brightness; } const deviceInfoModule = { getAndroidId, getAndroidIdSync, getApiLevel, getApiLevelSync, getApplicationName, getAvailableLocationProviders, getAvailableLocationProvidersSync, getBaseOs, getBaseOsSync, getBatteryLevel, getBatteryLevelSync, getBootloader, getBootloaderSync, getBrand, getBuildId, getBuildIdSync, getBuildNumber, getBundleId, getCarrier, getCarrierSync, getCodename, getCodenameSync, getDevice, getDeviceId, getDeviceName, getDeviceNameSync, getDeviceSync, getDeviceToken, getDeviceType, getDisplay, getDisplaySync, getFingerprint, getFingerprintSync, getFirstInstallTime, getFirstInstallTimeSync, getFontScale, getFontScaleSync, getFreeDiskStorage, getFreeDiskStorageOld, getFreeDiskStorageSync, getFreeDiskStorageOldSync, getHardware, getHardwareSync, getHost, getHostSync, getIncremental, getIncrementalSync, getInstallerPackageName, getInstallerPackageNameSync, getInstallReferrer, getInstallReferrerSync, getInstanceId, getInstanceIdSync, getIpAddress, getIpAddressSync, getLastUpdateTime, getLastUpdateTimeSync, getMacAddress, getMacAddressSync, getManufacturer, getManufacturerSync, getMaxMemory, getMaxMemorySync, getModel, getPhoneNumber, getPhoneNumberSync, getPowerState, getPowerStateSync, getPreviewSdkInt, getPreviewSdkIntSync, getProduct, getProductSync, getReadableVersion, getSecurityPatch, getSecurityPatchSync, getSerialNumber, getSerialNumberSync, getSystemAvailableFeatures, getSystemAvailableFeaturesSync, getSystemName, getSystemVersion, getTags, getTagsSync, getTotalDiskCapacity, getTotalDiskCapacityOld, getTotalDiskCapacitySync, getTotalDiskCapacityOldSync, getTotalMemory, getTotalMemorySync, getType, getTypeSync, getUniqueId, getUniqueIdSync, getUsedMemory, getUsedMemorySync, getUserAgent, getUserAgentSync, getVersion, getBrightness, getBrightnessSync, hasGms, hasGmsSync, hasHms, hasHmsSync, hasNotch, hasSystemFeature, hasSystemFeatureSync, isAirplaneMode, isAirplaneModeSync, isBatteryCharging, isBatteryChargingSync, isCameraPresent, isCameraPresentSync, isEmulator, isEmulatorSync, isHeadphonesConnected, isHeadphonesConnectedSync, isLandscape, isLandscapeSync, isLocationEnabled, isLocationEnabledSync, isPinOrFingerprintSet, isPinOrFingerprintSetSync, isMouseConnected, isMouseConnectedSync, isKeyboardConnected, isKeyboardConnectedSync, isTabletMode, isTablet, supported32BitAbis, supported32BitAbisSync, supported64BitAbis, supported64BitAbisSync, supportedAbis, supportedAbisSync, syncUniqueId, useBatteryLevel, useBatteryLevelIsLow, useDeviceName, useFirstInstallTime, useHasSystemFeature, useIsEmulator, usePowerState, useManufacturer, useIsHeadphonesConnected, useBrightness }; var _default = deviceInfoModule; exports.default = _default; //# sourceMappingURL=index.js.map