@@ -15,12 +15,13 @@ import com.regula.facesdk.callback.DetectFacesCompletion
1515import com.regula.facesdk.callback.FaceCaptureCallback
1616import com.regula.facesdk.callback.FaceCaptureNotificationCallback
1717import com.regula.facesdk.callback.FaceInitializationCompletion
18- import com.regula.facesdk.callback.ICameraSwitchCallback
1918import com.regula.facesdk.callback.LivenessCallback
2019import com.regula.facesdk.callback.LivenessNotificationCallback
2120import com.regula.facesdk.callback.MatchFaceCallback
22- import com.regula.facesdk.callback.NotificationCallback
2321import com.regula.facesdk.callback.PersonDBCallback
22+ import com.regula.facesdk.configuration.InitializationBleDeviceConfiguration
23+ import com.regula.facesdk.enums.InitErrorCode
24+ import com.regula.facesdk.exception.InitException
2425import com.regula.facesdk.listener.NetworkInterceptorListener
2526import com.regula.facesdk.model.LivenessNotification
2627import com.regula.facesdk.model.results.matchfaces.MatchFacesSimilarityThresholdSplit
@@ -149,9 +150,16 @@ fun setCustomization(config: JSONObject) = setCustomization(Instance().customiza
149150
150151fun isInitialized (callback : Callback ) = callback(Instance ().isInitialized)
151152
152- fun initialize (callback : Callback , config : JSONObject ? ) = config?.let {
153- Instance ().initialize(context, initConfigFromJSON(it), initCompletion(callback))
154- } ? : Instance ().initialize(context, initCompletion(callback))
153+ @SuppressLint(" MissingPermission" )
154+ fun initialize (callback : Callback , config : JSONObject ? ) =
155+ if (config == null )
156+ Instance ().initialize(context, initCompletion(callback))
157+ else if (config.getBooleanOrNull(" useBleDevice" ) != true )
158+ Instance ().initialize(context, initConfigFromJSON(config), initCompletion(callback))
159+ else
160+ getBleWrapper()?.let {
161+ Instance ().initialize(context, InitializationBleDeviceConfiguration (it), initCompletion(callback))
162+ } ? : callback(generateInitCompletion(false , InitException (InitErrorCode .LICENSE_IS_NULL )))
155163
156164fun deinitialize () = Instance ().deinitialize()
157165
@@ -187,11 +195,13 @@ fun stopLiveness() = Instance().stopLivenessProcessing(context)
187195
188196fun matchFaces (callback : Callback , request : JSONObject , config : JSONObject ? ) = config?.let {
189197 Instance ().matchFaces(
198+ context,
190199 matchFacesRequestFromJSON(request),
191200 matchFacesConfigFromJSON(it),
192201 matchFacesCompletion(callback)
193202 )
194203} ? : Instance ().matchFaces(
204+ context,
195205 matchFacesRequestFromJSON(request),
196206 matchFacesCompletion(callback)
197207)
@@ -203,55 +213,58 @@ fun splitComparedFaces(callback: Callback, faces: JSONArray, similarity: Double)
203213}
204214
205215fun detectFaces (callback : Callback , request : JSONObject ) = Instance ().detectFaces(
216+ context,
206217 detectFacesRequestFromJSON(request),
207218 detectFacesCompletion(callback)
208219)
209220
221+ val db get() = Instance ().personDatabase(context)!!
222+
210223fun createPerson (
211224 callback : Callback ,
212225 name : String ,
213226 groupIds : JSONArray ? ,
214227 metadata : JSONObject ?
215- ) = Instance ().personDatabase() .createPerson(
228+ ) = db .createPerson(
216229 name,
217230 metadata,
218231 groupIds.toArray(),
219232 databaseItemCompletion(callback, ::generatePerson)
220233)
221234
222235fun updatePerson (callback : Callback , personJson : JSONObject ) =
223- Instance ().personDatabase() .getPerson(idFromJSON(personJson), object : PersonDBCallback <Person ?> {
224- override fun onSuccess (person : Person ? ) = Instance ().personDatabase() .updatePerson(
236+ db .getPerson(idFromJSON(personJson), object : PersonDBCallback <Person ?> {
237+ override fun onSuccess (person : Person ? ) = db .updatePerson(
225238 updatePersonFromJSON(person!! , personJson),
226239 databaseItemCompletion(callback, null )
227240 )
228241
229242 override fun onFailure (error : String ) = callback(generatePersonDBResponse(null , error))
230243 })
231244
232- fun deletePerson (callback : Callback , personId : String ) = Instance ().personDatabase() .deletePerson(
245+ fun deletePerson (callback : Callback , personId : String ) = db .deletePerson(
233246 personId,
234247 databaseItemCompletion(callback, null )
235248)
236249
237- fun getPerson (callback : Callback , personId : String ) = Instance ().personDatabase() .getPerson(
250+ fun getPerson (callback : Callback , personId : String ) = db .getPerson(
238251 personId,
239252 databaseItemCompletion(callback, ::generatePerson)
240253)
241254
242- fun addPersonImage (callback : Callback , personId : String , image : JSONObject ) = Instance ().personDatabase() .addPersonImage(
255+ fun addPersonImage (callback : Callback , personId : String , image : JSONObject ) = db .addPersonImage(
243256 personId,
244257 imageUploadFromJSON(image),
245258 databaseItemCompletion(callback, ::generatePersonImage)
246259)
247260
248- fun deletePersonImage (callback : Callback , personId : String , imageId : String ) = Instance ().personDatabase() .deletePersonImage(
261+ fun deletePersonImage (callback : Callback , personId : String , imageId : String ) = db .deletePersonImage(
249262 personId,
250263 imageId,
251264 databaseItemCompletion(callback, null )
252265)
253266
254- fun getPersonImage (callback : Callback , personId : String , imageId : String ) = Instance ().personDatabase() .getPersonImageById(
267+ fun getPersonImage (callback : Callback , personId : String , imageId : String ) = db .getPersonImageById(
255268 personId,
256269 imageId,
257270 object : PersonDBCallback <ByteArray > {
@@ -260,7 +273,7 @@ fun getPersonImage(callback: Callback, personId: String, imageId: String) = Inst
260273 }
261274)
262275
263- fun getPersonImages (callback : Callback , personId : String ) = Instance ().personDatabase() .getPersonImages(
276+ fun getPersonImages (callback : Callback , personId : String ) = db .getPersonImages(
264277 personId,
265278 databasePageCompletion(callback, ::generatePersonImage)
266279)
@@ -270,22 +283,22 @@ fun getPersonImagesForPage(
270283 personId : String ,
271284 page : Int ,
272285 size : Int
273- ) = Instance ().personDatabase() .getPersonImagesForPage(
286+ ) = db .getPersonImagesForPage(
274287 personId,
275288 page,
276289 size,
277290 databasePageCompletion(callback, ::generatePersonImage)
278291)
279292
280- fun createGroup (callback : Callback , name : String , metadata : JSONObject ? ) = Instance ().personDatabase() .createGroup(
293+ fun createGroup (callback : Callback , name : String , metadata : JSONObject ? ) = db .createGroup(
281294 name,
282295 metadata,
283296 databaseItemCompletion(callback, ::generatePersonGroup)
284297)
285298
286299fun updateGroup (callback : Callback , groupJson : JSONObject ) =
287- Instance ().personDatabase() .getGroup(idFromJSON(groupJson), object : PersonDBCallback <PersonGroup ?> {
288- override fun onSuccess (group : PersonGroup ? ) = Instance ().personDatabase() .updateGroup(
300+ db .getGroup(idFromJSON(groupJson), object : PersonDBCallback <PersonGroup ?> {
301+ override fun onSuccess (group : PersonGroup ? ) = db .updateGroup(
289302 updatePersonGroupFromJSON(group!! , groupJson),
290303 databaseItemCompletion(callback, null )
291304 )
@@ -294,32 +307,31 @@ fun updateGroup(callback: Callback, groupJson: JSONObject) =
294307 })
295308
296309fun editPersonsInGroup (callback : Callback , groupId : String , editGroupPersonsRequest : JSONObject ) =
297- Instance ().personDatabase() .editPersonsInGroup(
310+ db .editPersonsInGroup(
298311 groupId,
299312 editGroupPersonsRequestFromJSON(editGroupPersonsRequest),
300313 databaseItemCompletion(callback, null )
301314 )
302315
303- fun deleteGroup (callback : Callback , groupId : String ) = Instance ().personDatabase() .deleteGroup(
316+ fun deleteGroup (callback : Callback , groupId : String ) = db .deleteGroup(
304317 groupId,
305318 databaseItemCompletion(callback, null )
306319)
307320
308- fun getGroup (callback : Callback , groupId : String ) = Instance ().personDatabase() .getGroup(
321+ fun getGroup (callback : Callback , groupId : String ) = db .getGroup(
309322 groupId,
310323 databaseItemCompletion(callback, ::generatePersonGroup)
311324)
312325
313- fun getGroups (callback : Callback ) =
314- Instance ().personDatabase().getGroups(databasePageCompletion(callback, ::generatePersonGroup))
326+ fun getGroups (callback : Callback ) = db.getGroups(databasePageCompletion(callback, ::generatePersonGroup))
315327
316- fun getGroupsForPage (callback : Callback , page : Int , size : Int ) = Instance ().personDatabase() .getGroupsForPage(
328+ fun getGroupsForPage (callback : Callback , page : Int , size : Int ) = db .getGroupsForPage(
317329 page,
318330 size,
319331 databasePageCompletion(callback, ::generatePersonGroup)
320332)
321333
322- fun getPersonGroups (callback : Callback , personId : String ) = Instance ().personDatabase() .getPersonGroups(
334+ fun getPersonGroups (callback : Callback , personId : String ) = db .getPersonGroups(
323335 personId,
324336 databasePageCompletion(callback, ::generatePersonGroup)
325337)
@@ -329,14 +341,14 @@ fun getPersonGroupsForPage(
329341 personId : String ,
330342 page : Int ,
331343 size : Int
332- ) = Instance ().personDatabase() .getPersonGroupsForPage(
344+ ) = db .getPersonGroupsForPage(
333345 personId,
334346 page,
335347 size,
336348 databasePageCompletion(callback, ::generatePersonGroup)
337349)
338350
339- fun getPersonsInGroup (callback : Callback , groupId : String ) = Instance ().personDatabase() .getPersonsInGroup(
351+ fun getPersonsInGroup (callback : Callback , groupId : String ) = db .getPersonsInGroup(
340352 groupId,
341353 databasePageCompletion(callback, ::generatePerson)
342354)
@@ -346,14 +358,14 @@ fun getPersonsInGroupForPage(
346358 groupId : String ,
347359 page : Int ,
348360 size : Int
349- ) = Instance ().personDatabase() .getPersonsInGroupForPage(
361+ ) = db .getPersonsInGroupForPage(
350362 groupId,
351363 page,
352364 size,
353365 databasePageCompletion(callback, ::generatePerson)
354366)
355367
356- fun searchPerson (callback : Callback , searchPersonRequest : JSONObject ) = Instance ().personDatabase() .searchPerson(
368+ fun searchPerson (callback : Callback , searchPersonRequest : JSONObject ) = db .searchPerson(
357369 searchPersonRequestFromJSON(searchPersonRequest),
358370 object : PersonDBCallback <List <SearchPerson >> {
359371 override fun onSuccess (data : List <SearchPerson >? ) = callback(generatePersonDBResponse(data.toJsonNullable(::generateSearchPerson)!! , null ))
@@ -418,4 +430,4 @@ fun <T : DbBaseItem?> databasePageCompletion(callback: Callback, toJson: (T?) ->
418430
419431// Weak references
420432var localizationCallbacks: LocalizationCallbacks ? = null
421- var networkInterceptorListener: NetworkInterceptorListener ? = null
433+ var networkInterceptorListener: NetworkInterceptorListener ? = null
0 commit comments