Skip to content

Commit f8c426a

Browse files
authored
Merge pull request #45 from klippa-app/development
Development > Master
2 parents 39544f7 + f21d888 commit f8c426a

File tree

11 files changed

+118
-41
lines changed

11 files changed

+118
-41
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
strategy:
4141
fail-fast: false
4242
matrix:
43-
os: [macos-13]
43+
os: [macos-15]
4444
steps:
4545
- uses: actions/checkout@v2
4646
- uses: actions/setup-java@v1

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
## 0.2.14
2+
3+
* Bump Android to 0.7.12
4+
* Bump iOS to 0.6.4
5+
* Added `allowCameraOnNFCTask`, `exitOnRetryThresholdReached` and `nfcTimeoutThreshold` to `IdentityBuilder`.
6+
17
## 0.2.13
28

39
* Bump Android to 0.7.11

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,24 @@ To configure how often a user can attempt a task before the contact support butt
186186
```dart
187187
identityBuilder.retryThreshold = 1;
188188
```
189+
To configure if the SDK should quit instead of showing the support button you can set the following:
190+
```dart
191+
identityBuilder.exitOnRetryThresholdReached = true;
192+
```
193+
194+
### Allow Camera On NFC Task
195+
196+
To configure whether a user can skip NFC and use OCR instead.
197+
```dart
198+
identityBuilder.allowCameraOnNFCTask = true;
199+
```
200+
201+
### NFC Timeout Threshold
202+
203+
To configure how long the NFC detecting stays active you can set a timeout.
204+
```dart
205+
identityBuilder.nfcTimeoutThreshold = 5.0;
206+
```
189207

190208
### Language
191209

android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,6 @@ android {
6969

7070
dependencies {
7171
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
72-
def klippaIdentityVerificationVersion = project.hasProperty('klippaIdentityVerificationVersion') ? project.klippaIdentityVerificationVersion : "0.7.11"
72+
def klippaIdentityVerificationVersion = project.hasProperty('klippaIdentityVerificationVersion') ? project.klippaIdentityVerificationVersion : "0.7.12"
7373
implementation "com.klippa:identity_verification:$klippaIdentityVerificationVersion"
7474
}

android/src/main/kotlin/com/klippa/identity_verification/klippa_identity_verification_sdk/KlippaIdentityVerificationSdkPlugin.kt

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,18 @@ class KlippaIdentityVerificationSdkPlugin : FlutterPlugin, MethodCallHandler, Ac
141141
identitySession.retryThreshold = retryThreshold
142142
}
143143

144+
call.argument<Double>("NfcTimeoutThreshold")?.let { nfcTimeoutThreshold ->
145+
identitySession.nfcTimeoutThreshold = nfcTimeoutThreshold
146+
}
147+
148+
call.argument<Boolean>("AllowCameraOnNFCTask")?.let { allowCameraOnNFCTask ->
149+
identitySession.allowCameraOnNFCTask = allowCameraOnNFCTask
150+
}
151+
152+
call.argument<Boolean>("ExitOnRetryThresholdReached")?.let { exitOnRetryThresholdReached ->
153+
identitySession.exitOnRetryThresholdReached = exitOnRetryThresholdReached
154+
}
155+
144156
val intent = identitySession.getIntent(activity)
145157
resultHandler = result
146158
activity.startActivityForResult(intent, REQUEST_CODE)
@@ -177,7 +189,9 @@ class KlippaIdentityVerificationSdkPlugin : FlutterPlugin, MethodCallHandler, Ac
177189
IdentitySessionResultCode.DEVICE_NFC_DISABLED,
178190
IdentitySessionResultCode.TAKING_PHOTO_FAILED,
179191
IdentitySessionResultCode.UNKNOWN_ERROR,
180-
IdentitySessionResultCode.INCORRECT_SESSION_SETUP -> identityVerificationCanceled(mappedResultCode.message())
192+
IdentitySessionResultCode.INCORRECT_SESSION_SETUP,
193+
IdentitySessionResultCode.ALLOW_PICTURE_FALLBACK_DISABLED,
194+
IdentitySessionResultCode.RETRY_LIMIT_REACHED -> identityVerificationCanceled(mappedResultCode.message())
181195
}
182196

183197
return true

example/ios/Runner.xcodeproj/project.pbxproj

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -9,24 +9,24 @@
99
/* Begin PBXBuildFile section */
1010
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
1111
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
12-
5D68064C33EC95D915B56E13 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DB9067BC56822A46D3A92665 /* Pods_Runner.framework */; };
1312
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
1413
905C478025554A7100106A33 /* KlippaIdentityVerification.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 905C477F25554A7100106A33 /* KlippaIdentityVerification.xcframework */; };
1514
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
1615
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
1716
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
17+
EDC811C2EC4F9FA06DC4C5B7 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EFAAD64FA968EAAEE0C119E0 /* Pods_Runner.framework */; };
1818
/* End PBXBuildFile section */
1919

2020
/* Begin PBXFileReference section */
21+
13C27A86687E5C239201756E /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
2122
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
2223
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
24+
2FAC5DEF20FE521586BC3081 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
2325
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
2426
4A6948D82D018BCC00089CF0 /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = "<group>"; };
25-
6D0B49640ECC799CB7C3844F /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
2627
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
2728
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
2829
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
29-
7F20B48587D6CB8B5DABF0B2 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
3030
905C477F25554A7100106A33 /* KlippaIdentityVerification.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = KlippaIdentityVerification.xcframework; path = "Pods/Klippa-Identity-Verification/KlippaIdentityVerification.xcframework"; sourceTree = "<group>"; };
3131
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
3232
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
@@ -35,8 +35,8 @@
3535
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
3636
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
3737
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
38-
9E50C2824AF5C311E0A6D978 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
39-
DB9067BC56822A46D3A92665 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
38+
E200A18C74797E1C4043E60A /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
39+
EFAAD64FA968EAAEE0C119E0 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
4040
/* End PBXFileReference section */
4141

4242
/* Begin PBXFrameworksBuildPhase section */
@@ -45,7 +45,7 @@
4545
buildActionMask = 2147483647;
4646
files = (
4747
905C478025554A7100106A33 /* KlippaIdentityVerification.xcframework in Frameworks */,
48-
5D68064C33EC95D915B56E13 /* Pods_Runner.framework in Frameworks */,
48+
EDC811C2EC4F9FA06DC4C5B7 /* Pods_Runner.framework in Frameworks */,
4949
);
5050
runOnlyForDeploymentPostprocessing = 0;
5151
};
@@ -56,7 +56,7 @@
5656
isa = PBXGroup;
5757
children = (
5858
905C477F25554A7100106A33 /* KlippaIdentityVerification.xcframework */,
59-
DB9067BC56822A46D3A92665 /* Pods_Runner.framework */,
59+
EFAAD64FA968EAAEE0C119E0 /* Pods_Runner.framework */,
6060
);
6161
name = Frameworks;
6262
sourceTree = "<group>";
@@ -110,9 +110,9 @@
110110
C39B3574C306087E5F5946A5 /* Pods */ = {
111111
isa = PBXGroup;
112112
children = (
113-
6D0B49640ECC799CB7C3844F /* Pods-Runner.debug.xcconfig */,
114-
7F20B48587D6CB8B5DABF0B2 /* Pods-Runner.release.xcconfig */,
115-
9E50C2824AF5C311E0A6D978 /* Pods-Runner.profile.xcconfig */,
113+
13C27A86687E5C239201756E /* Pods-Runner.debug.xcconfig */,
114+
2FAC5DEF20FE521586BC3081 /* Pods-Runner.release.xcconfig */,
115+
E200A18C74797E1C4043E60A /* Pods-Runner.profile.xcconfig */,
116116
);
117117
path = Pods;
118118
sourceTree = "<group>";
@@ -124,14 +124,14 @@
124124
isa = PBXNativeTarget;
125125
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
126126
buildPhases = (
127-
51CD7BDEDF9B2B6212879DFB /* [CP] Check Pods Manifest.lock */,
127+
FCDDB368174EEF8C0DB34520 /* [CP] Check Pods Manifest.lock */,
128128
9740EEB61CF901F6004384FC /* Run Script */,
129129
97C146EA1CF9000F007C117D /* Sources */,
130130
97C146EB1CF9000F007C117D /* Frameworks */,
131131
97C146EC1CF9000F007C117D /* Resources */,
132132
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
133-
F1241E6A83E306EBCDFC8441 /* [CP] Embed Pods Frameworks */,
134-
462768B22CF9FDB0297459D4 /* [CP] Copy Pods Resources */,
133+
AC92FC26F6D8DAFD052729D1 /* [CP] Embed Pods Frameworks */,
134+
813F5B163A41EF4FE9B197E7 /* [CP] Copy Pods Resources */,
135135
);
136136
buildRules = (
137137
);
@@ -206,7 +206,7 @@
206206
shellPath = /bin/sh;
207207
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin\n";
208208
};
209-
462768B22CF9FDB0297459D4 /* [CP] Copy Pods Resources */ = {
209+
813F5B163A41EF4FE9B197E7 /* [CP] Copy Pods Resources */ = {
210210
isa = PBXShellScriptBuildPhase;
211211
buildActionMask = 2147483647;
212212
files = (
@@ -223,58 +223,58 @@
223223
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
224224
showEnvVarsInLog = 0;
225225
};
226-
51CD7BDEDF9B2B6212879DFB /* [CP] Check Pods Manifest.lock */ = {
226+
9740EEB61CF901F6004384FC /* Run Script */ = {
227227
isa = PBXShellScriptBuildPhase;
228+
alwaysOutOfDate = 1;
228229
buildActionMask = 2147483647;
229230
files = (
230231
);
231-
inputFileListPaths = (
232-
);
233232
inputPaths = (
234-
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
235-
"${PODS_ROOT}/Manifest.lock",
236-
);
237-
name = "[CP] Check Pods Manifest.lock";
238-
outputFileListPaths = (
239233
);
234+
name = "Run Script";
240235
outputPaths = (
241-
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
242236
);
243237
runOnlyForDeploymentPostprocessing = 0;
244238
shellPath = /bin/sh;
245-
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
246-
showEnvVarsInLog = 0;
239+
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
247240
};
248-
9740EEB61CF901F6004384FC /* Run Script */ = {
241+
AC92FC26F6D8DAFD052729D1 /* [CP] Embed Pods Frameworks */ = {
249242
isa = PBXShellScriptBuildPhase;
250-
alwaysOutOfDate = 1;
251243
buildActionMask = 2147483647;
252244
files = (
253245
);
254-
inputPaths = (
246+
inputFileListPaths = (
247+
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
255248
);
256-
name = "Run Script";
257-
outputPaths = (
249+
name = "[CP] Embed Pods Frameworks";
250+
outputFileListPaths = (
251+
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
258252
);
259253
runOnlyForDeploymentPostprocessing = 0;
260254
shellPath = /bin/sh;
261-
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
255+
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
256+
showEnvVarsInLog = 0;
262257
};
263-
F1241E6A83E306EBCDFC8441 /* [CP] Embed Pods Frameworks */ = {
258+
FCDDB368174EEF8C0DB34520 /* [CP] Check Pods Manifest.lock */ = {
264259
isa = PBXShellScriptBuildPhase;
265260
buildActionMask = 2147483647;
266261
files = (
267262
);
268263
inputFileListPaths = (
269-
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
270264
);
271-
name = "[CP] Embed Pods Frameworks";
265+
inputPaths = (
266+
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
267+
"${PODS_ROOT}/Manifest.lock",
268+
);
269+
name = "[CP] Check Pods Manifest.lock";
272270
outputFileListPaths = (
273-
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
271+
);
272+
outputPaths = (
273+
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
274274
);
275275
runOnlyForDeploymentPostprocessing = 0;
276276
shellPath = /bin/sh;
277-
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
277+
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
278278
showEnvVarsInLog = 0;
279279
};
280280
/* End PBXShellScriptBuildPhase section */

example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
ignoresPersistentStateOnLaunch = "NO"
4949
debugDocumentVersioning = "YES"
5050
debugServiceExtension = "internal"
51+
enableGPUValidationMode = "1"
5152
allowLocationSimulation = "YES">
5253
<BuildableProductRunnable
5354
runnableDebuggingMode = "0">

ios/Classes/SwiftKlippaIdentityVerificationSdkPlugin.swift

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,18 @@ public class SwiftKlippaIdentityVerificationSdkPlugin: NSObject, FlutterPlugin,
122122
if let retryThreshold = builderArgs["RetryThreshold"] as? Int {
123123
builder.retryThreshold = retryThreshold
124124
}
125+
126+
if let allowCameraOnNFCTask = builderArgs["AllowCameraOnNFCTask"] as? Bool {
127+
builder.allowCameraOnNFCTask = allowCameraOnNFCTask
128+
}
129+
130+
if let exitOnRetryThresholdReached = builderArgs["ExitOnRetryThresholdReached"] as? Bool {
131+
builder.exitOnRetryThresholdReached = exitOnRetryThresholdReached
132+
}
133+
134+
if let nfcTimeoutThreshold = builderArgs["NfcTimeoutThreshold"] as? Double {
135+
builder.nfcTimeoutThreshold = nfcTimeoutThreshold
136+
}
125137

126138
resultHandler = result
127139
let viewController = builder.build()
@@ -152,6 +164,10 @@ public class SwiftKlippaIdentityVerificationSdkPlugin: NSObject, FlutterPlugin,
152164
return "No internet connection"
153165
case KlippaError.NfcNotSupported:
154166
return "NFC not supported"
167+
case KlippaError.AllowPictureFallbackDisabled:
168+
return "Allow Picture Fallback Disabled"
169+
case KlippaError.RetryLimitReached:
170+
return "Retry Limit Reached"
155171
}
156172
}()
157173

ios/sdk_version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.6.3
1+
0.6.5

lib/klippa_identity_verification_sdk.dart

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,15 @@ class IdentityBuilder {
7575
/// The threshold the user can attempt a task before a contact support button is shown.
7676
int? retryThreshold;
7777

78+
/// Whether the SDK shows an additional button on the NFC screen to use OCR instead.
79+
bool? allowCameraOnNFCTask;
80+
81+
/// Whether the SDK quits instead of showing a contact support button when the `retryThreshold` was reached.
82+
bool? exitOnRetryThresholdReached;
83+
84+
// The threshold of the NFC document detection, if not document is detected within the time period the detection stops.
85+
double? nfcTimeoutThreshold;
86+
7887
/// Overwrite the fonts object with [newFonts] for the builder.
7988
setFonts(KIVFonts newFonts) {
8089
this.fonts = newFonts;
@@ -198,6 +207,19 @@ class KlippaIdentityVerificationSdk {
198207
parameters["RetryThreshold"] = builder.retryThreshold;
199208
}
200209

210+
if (builder.allowCameraOnNFCTask != null) {
211+
parameters["AllowCameraOnNFCTask"] = builder.allowCameraOnNFCTask;
212+
}
213+
214+
if (builder.exitOnRetryThresholdReached != null) {
215+
parameters["ExitOnRetryThresholdReached"] =
216+
builder.exitOnRetryThresholdReached;
217+
}
218+
219+
if (builder.nfcTimeoutThreshold != null) {
220+
parameters["NfcTimeoutThreshold"] = builder.nfcTimeoutThreshold;
221+
}
222+
201223
final Map startSessionResult =
202224
await _channel.invokeMethod('startSession', parameters);
203225
return startSessionResult;

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: klippa_identity_verification_sdk
22
description: Allows you to do identity verification with the Klippa Identity Verification SDK from Flutter apps.
3-
version: 0.2.13
3+
version: 0.2.14
44
homepage: https://github.com/klippa-app/flutter-klippa-identity-verification-sdk
55

66
environment:

0 commit comments

Comments
 (0)