BlueWallet/class/biometrics.js
Marcos Rodriguez 56dbded6db REL: Version bump
OPS: Version bump
2019-09-27 20:13:57 -04:00

53 lines
1.5 KiB
JavaScript

import Biometrics from 'react-native-biometrics';
const BlueApp = require('../BlueApp');
export default class Biometric {
static STORAGEKEY = 'Biometrics';
static async isDeviceBiometricCapable() {
const isDeviceBiometricCapable = await Biometric.biometricType();
if (typeof isDeviceBiometricCapable === 'string') {
return isDeviceBiometricCapable;
}
Biometric.setBiometricUseEnabled(false);
return false;
}
static async biometricType() {
return Biometrics.isSensorAvailable();
}
static async isBiometricUseEnabled() {
try {
const enabledBiometrics = await BlueApp.getItem(Biometric.STORAGEKEY);
return !!enabledBiometrics;
} catch (_e) {
await BlueApp.setItem(Biometric.STORAGEKEY, '');
return !!'';
}
}
static async isBiometricUseCapableAndEnabled() {
const isBiometricUseEnabled = await Biometric.isBiometricUseEnabled();
const isDeviceBiometricCapable = await Biometric.isDeviceBiometricCapable();
return !!isBiometricUseEnabled && isDeviceBiometricCapable;
}
static async setBiometricUseEnabled(value) {
await BlueApp.setItem(Biometric.STORAGEKEY, value === true ? '1' : '');
}
static async unlockWithBiometrics() {
const isDeviceBiometricCapable = await Biometric.isDeviceBiometricCapable();
if (isDeviceBiometricCapable) {
try {
await Biometrics.simplePrompt('Please confirm your identity.');
return true;
} catch (_e) {
return false;
}
}
return false;
}
}