react-native-unit-components
Version:
Unit React Native components
40 lines (32 loc) • 1.14 kB
text/typescript
import { TurboModule, TurboModuleRegistry } from 'react-native';
enum UNJailbrokeState {
Unknown,
Jailbroke,
NotJailbroke
}
interface Spec extends TurboModule {
isDeviceJailbroke(): boolean
}
const UNSecurityHelper = TurboModuleRegistry.getEnforcing<Spec>('UNSecurityHelperModule');
class UNSecurityManagerHelper {
static deviceJailbrokeState: UNJailbrokeState = UNJailbrokeState.Unknown;
static async isDeviceJailbroke(): Promise<boolean> {
if (this.deviceJailbrokeState !== UNJailbrokeState.Unknown) {
return this.isCurrentStatusIsJailbroke();
}
const result: boolean = await UNSecurityHelper.isDeviceJailbroke();
UNSecurityManagerHelper.deviceJailbrokeState = result ? UNJailbrokeState.Jailbroke : UNJailbrokeState.NotJailbroke;
return result;
}
private static isCurrentStatusIsJailbroke = (): boolean => {
switch (this.deviceJailbrokeState) {
case UNJailbrokeState.Unknown:
return false;
case UNJailbrokeState.Jailbroke:
return true;
case UNJailbrokeState.NotJailbroke:
return false;
}
};
}
export default UNSecurityManagerHelper;