Using common verification configuration parameters for different verification methods.
If your application allows the user to authenticate via various verification methods it might be more readable to initiate the verification using
VerificationInitData is simply a structure that holds all common parameters that can be passed to a verification configuration object and additionally, it's a method used to verify the phone number.
private val initData: VerificationInitData get() = VerificationInitData( usedMethod = buttonToMethodMap[methodToggle.checkedButtonId], number = phoneInput.editText?.text.toString(), custom = customInput.editText?.text.toString(), reference = referenceInput.editText?.text.toString(), honourEarlyReject = honoursEarlyCheckbox.isChecked, acceptedLanguages = acceptedLanguagesInput?.editText?.text.toString().toLocaleList() )
In case of Android, the only method specific parameter for now is the application hash needed by the SMS method. Method specific builders have been implemented mostly for future development purposes and for usage with single verification methods.
VerificationInitData that holds parameters of configuration objects,
Verification instance properties and is designed to work together with
val verification = BasicVerificationMethodBuilder.createVerification( commonVerificationInitializationParameters = CommonVerificationInitializationParameters( globalConfig = app.globalConfig, verificationInitData = initData, initiationListener = initListener, verificationListener = this ), ///...
Download the sample application and decide which
Verification object creation suits your needs best. The Verification Sample project uses the verification-all module and VerificationSmsSample uses a method specific builder to create SMS verification instances when no other methods are needed.