Commit 53d75f1e authored by Gant Laborde's avatar Gant Laborde Committed by GitHub

Merge pull request #157 from kacynMedallia/security-callback

Change PIN/Fingerprint check from constant to callback
parents 4d812f2d f87253f4
This diff is collapsed.
......@@ -163,12 +163,6 @@ RCT_EXPORT_MODULE()
return [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad;
}
- (bool) isPinOrFingerprintSet
{
LAContext *context = [[LAContext alloc] init];
return ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthentication error:nil]);
}
- (NSDictionary *)constantsToExport
{
UIDevice *currentDevice = [UIDevice currentDevice];
......@@ -193,8 +187,14 @@ RCT_EXPORT_MODULE()
@"timezone": self.timezone,
@"isEmulator": @(self.isEmulator),
@"isTablet": @(self.isTablet),
@"isPinOrFingerprintSet": @(self.isPinOrFingerprintSet),
};
}
RCT_EXPORT_METHOD(isPinOrFingerprintSet:(RCTResponseSenderBlock)callback)
{
LAContext *context = [[LAContext alloc] init];
BOOL isPinOrFingerprintSet = ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthentication error:nil]);
callback(@[[NSNumber numberWithBool:isPinOrFingerprintSet]]);
}
@end
......@@ -13,6 +13,8 @@ import com.google.android.gms.iid.InstanceID;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.Callback;
import java.util.HashMap;
import java.util.Locale;
......@@ -71,9 +73,10 @@ public class RNDeviceModule extends ReactContextBaseJavaModule {
return layout == Configuration.SCREENLAYOUT_SIZE_LARGE || layout == Configuration.SCREENLAYOUT_SIZE_XLARGE;
}
private Boolean isPinOrFingerprintSet() {
@ReactMethod
public void isPinOrFingerprintSet(Callback callback) {
KeyguardManager keyguardManager = (KeyguardManager) this.reactContext.getSystemService(Context.KEYGUARD_SERVICE); //api 16+
return keyguardManager.isKeyguardSecure();
callback.invoke(keyguardManager.isKeyguardSecure());
}
@Override
......@@ -99,7 +102,7 @@ public class RNDeviceModule extends ReactContextBaseJavaModule {
try {
BluetoothAdapter myDevice = BluetoothAdapter.getDefaultAdapter();
if(mDevice!=null){
if(myDevice!=null){
deviceName = myDevice.getName();
}
} catch(Exception e) {
......@@ -122,7 +125,6 @@ public class RNDeviceModule extends ReactContextBaseJavaModule {
constants.put("timezone", TimeZone.getDefault().getID());
constants.put("isEmulator", this.isEmulator());
constants.put("isTablet", this.isTablet());
constants.put("isPinOrFingerprintSet", this.isPinOrFingerprintSet());
return constants;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment