UNPKG

react-native-unit-components

Version:

Unit React Native components

40 lines (32 loc) 1.14 kB
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;