diff --git a/app/android/app/build.gradle b/app/android/app/build.gradle index b132b6c04..f711fe723 100644 --- a/app/android/app/build.gradle +++ b/app/android/app/build.gradle @@ -86,7 +86,7 @@ android { applicationId "com.proofofpassportapp" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 69 + versionCode 70 versionName "2.5.3" externalNativeBuild { cmake { diff --git a/app/android/react-native-passport-reader/android/build.gradle b/app/android/react-native-passport-reader/android/build.gradle index fccb0c795..99bf472eb 100644 --- a/app/android/react-native-passport-reader/android/build.gradle +++ b/app/android/react-native-passport-reader/android/build.gradle @@ -34,7 +34,8 @@ dependencies { implementation 'com.google.android.material:material:1.7.0' implementation 'androidx.core:core-ktx:1.9.0' implementation 'com.wdullaer:materialdatetimepicker:3.5.2' - implementation 'org.jmrtd:jmrtd:0.7.42' // getting different errors whether it's 18 or 40 // 23 <== this works + implementation 'org.jmrtd:jmrtd:0.8.1' + // implementation 'org.jmrtd:jmrtd:0.7.42' // getting different errors whether it's 18 or 40 // 23 <== this works // implementation files('../../../../../jmrtd-0.7.18-sources/target/jmrtd-0.7.18.jar') // implementation files('../../app/libs/jmrtd-0.7.18.jar') implementation 'net.sf.scuba:scuba-sc-android:0.0.18' diff --git a/app/src/screens/passport/NFCMethodSelectionScreen.tsx b/app/src/screens/passport/NFCMethodSelectionScreen.tsx index d6bb41709..8f6b8440d 100644 --- a/app/src/screens/passport/NFCMethodSelectionScreen.tsx +++ b/app/src/screens/passport/NFCMethodSelectionScreen.tsx @@ -42,7 +42,7 @@ const NFC_METHODS = [ label: 'CAN Authentication', description: 'Use Card Access Number (CAN) for authentication. Enter your CAN below.', - platform: ['ios'], + platform: ['ios', 'android'], params: { useCan: true }, }, { diff --git a/app/src/types/react-native-passport-reader.d.ts b/app/src/types/react-native-passport-reader.d.ts index 47633995a..aa668e6f5 100644 --- a/app/src/types/react-native-passport-reader.d.ts +++ b/app/src/types/react-native-passport-reader.d.ts @@ -3,11 +3,14 @@ declare module 'react-native-passport-reader' { documentNumber: string; dateOfBirth: string; dateOfExpiry: string; + canNumber: string; + useCan: boolean; quality?: number; } interface PassportReader { configure(token: string): void; + reset(): void; scan(options: ScanOptions): Promise<{ mrz: string; eContent: string; diff --git a/app/src/utils/nfcScanner.ts b/app/src/utils/nfcScanner.ts index d2ddd8830..75803b344 100644 --- a/app/src/utils/nfcScanner.ts +++ b/app/src/utils/nfcScanner.ts @@ -34,10 +34,13 @@ export const scan = async (inputs: Inputs) => { }; const scanAndroid = async (inputs: Inputs) => { + PassportReader.reset(); return await PassportReader.scan({ documentNumber: inputs.passportNumber, dateOfBirth: inputs.dateOfBirth, dateOfExpiry: inputs.dateOfExpiry, + canNumber: inputs.canNumber ?? '', + useCan: inputs.useCan ?? false, }); };