diff --git a/android/src/main/java/io/twentysixty/rn/eidreader/EIdReader.kt b/android/src/main/java/io/twentysixty/rn/eidreader/EIdReader.kt index 5666faf..2318553 100644 --- a/android/src/main/java/io/twentysixty/rn/eidreader/EIdReader.kt +++ b/android/src/main/java/io/twentysixty/rn/eidreader/EIdReader.kt @@ -123,7 +123,7 @@ class EIdReader(context: Context) { if (allFaceImageInfos.isNotEmpty()) { val faceImageInfo = allFaceImageInfos.iterator().next() val image = bitmapUtil.getImage(faceImageInfo.imageInputStream, faceImageInfo.imageLength,faceImageInfo.mimeType) - nfcResult.originalFacePhoto = image + nfcResult.originalFacePhoto = image.base64 } if (includeRawData) { dataGroupData["DG2"] = Base64.encodeToString(dg2File.encoded, Base64.NO_WRAP) @@ -135,6 +135,6 @@ class EIdReader(context: Context) { val sodFile = sodIn.readBytes() dataGroupData["SOD"] = Base64.encodeToString(sodFile, Base64.NO_WRAP) } - return EIdReadResult("OK", nfcResult, dataGroupData) + return EIdReadResult("OK", null, nfcResult, dataGroupData) } } diff --git a/android/src/main/java/io/twentysixty/rn/eidreader/EIdReaderModule.kt b/android/src/main/java/io/twentysixty/rn/eidreader/EIdReaderModule.kt index a14f689..7cc60c8 100644 --- a/android/src/main/java/io/twentysixty/rn/eidreader/EIdReaderModule.kt +++ b/android/src/main/java/io/twentysixty/rn/eidreader/EIdReaderModule.kt @@ -27,6 +27,7 @@ import com.facebook.react.bridge.ReactMethod import com.facebook.react.bridge.ReadableMap import com.facebook.react.modules.core.DeviceEventManagerModule import io.twentysixty.rn.eidreader.dto.MrzInfo +import io.twentysixty.rn.eidreader.dto.EIdReadResult import io.twentysixty.rn.eidreader.utils.BitmapUtil import io.twentysixty.rn.eidreader.utils.JsonToReactMap import io.twentysixty.rn.eidreader.utils.serializeToMap @@ -210,7 +211,14 @@ class EIdReaderModule(reactContext: ReactApplicationContext) : _dialog?.setMessage(message) }) stopReading(false) - _promise?.reject(e) + stopReading() + + val result = EIdReadResult("Error", null, null) + result.errorMsg = e.message + + val map = result.serializeToMap() + val reactMap = jsonToReactMap.convertJsonToMap(JSONObject(map)) + _promise?.resolve(reactMap) } @ReactMethod diff --git a/android/src/main/java/io/twentysixty/rn/eidreader/dto/EIdData.kt b/android/src/main/java/io/twentysixty/rn/eidreader/dto/EIdData.kt index 3de159b..a8b95ac 100644 --- a/android/src/main/java/io/twentysixty/rn/eidreader/dto/EIdData.kt +++ b/android/src/main/java/io/twentysixty/rn/eidreader/dto/EIdData.kt @@ -11,5 +11,5 @@ data class EIdData( var lastName: String? = null, var mrz: String? = null, var nationality: String? = null, - var originalFacePhoto: NfcImage? = null, + var originalFacePhoto: String? = null, ) diff --git a/android/src/main/java/io/twentysixty/rn/eidreader/dto/EIdReadResult.kt b/android/src/main/java/io/twentysixty/rn/eidreader/dto/EIdReadResult.kt index 6c79f5e..0af8341 100644 --- a/android/src/main/java/io/twentysixty/rn/eidreader/dto/EIdReadResult.kt +++ b/android/src/main/java/io/twentysixty/rn/eidreader/dto/EIdReadResult.kt @@ -2,6 +2,7 @@ package io.twentysixty.rn.eidreader.dto data class EIdReadResult( var status: String, + var errorMsg: String? = null, var data: EIdData? = null, var dataGroupsBase64: MutableMap? = null, ) diff --git a/android/src/main/java/io/twentysixty/rn/eidreader/utils/BitmapUtil.kt b/android/src/main/java/io/twentysixty/rn/eidreader/utils/BitmapUtil.kt index 03395d3..b22774e 100644 --- a/android/src/main/java/io/twentysixty/rn/eidreader/utils/BitmapUtil.kt +++ b/android/src/main/java/io/twentysixty/rn/eidreader/utils/BitmapUtil.kt @@ -31,7 +31,7 @@ class BitmapUtil(private val context: Context) { val inputStream: InputStream = ByteArrayInputStream(buffer, 0, imageLength) val bitmapImage = decodeImage(mimeType, inputStream) image.bitmap = bitmapImage - val base64Image = Base64.encodeToString(buffer, Base64.DEFAULT) + val base64Image = Base64.encodeToString(buffer, Base64.NO_WRAP) image.base64 = base64Image return image } diff --git a/src/index.tsx b/src/index.tsx index 0ae7832..6dccd43 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -49,6 +49,7 @@ export type EidReadStatus = 'OK' | 'Error' | 'Canceled'; export type EIdReadResult = { status: EidReadStatus; + errorMsg?: string; data: { birthDate?: string; placeOfBirth?: string;