Android SDK

Set up Evrotrust SDK

There are two options for environment:

  • ENVIRONMENT_TEST
  • ENVIRONMENT_PROD

Start process

EvrotrustSDK.getInstance(this).setupSDK(applicationNumber, this, EvrotrustConstants.ENVIRONMENT_TEST, this);

Receive result

@Override 
public void evrotrustSetupSDKResult(EvrotrustSDKSetupResult result) { 
	switch (result.getStatus()) { 
		case ERROR_INPUT: 
			break; 
		case OK: 
			boolean SDKSetUp = result.isSetUp(); 
			boolean hasNewVersion = result.hasNewVersion(); 
			boolean isInMaintenance = result.isInMaintenance(); 
			break; 
	} 
}

Check whether the SDK is set up

Start process

boolean SDKSetUp = EvrotrustSDK.getInstance(this).isSDKSetUp(); 

Setup device with Evrotrust profile

The parameter EXTRA_SHOULD_SKIP_CONTACT_INFORMATION can be used to skip the screens where the user adds contact information (phone and email) to his Evrotrust account.

All the parameters starting with EXTRA_USER_INFORMATION_FOR_CHECK are optional. They are used for precheck to determinate whether the user has Evrotrust profile or not. COUNTRY_CODE is needed and used only if DATA_TYPE is IDENTIFICATION_NUMBER.

There are two parameters for country code, but only one has to be provided:

  • COUNTRY_CODE2 – for 2 letter code
  • COUNTRY_CODE3 – for 3 letter code

Start process

Intent intent = new Intent(this, EvrotrustActivity.class); 
intent.putExtra(EvrotrustConstants.EXTRA_ACTIVITY_TYPE, EvrotrustConstants.SETUP_PROFILE); 
intent.putExtra(EvrotrustConstants.EXTRA_IS_ACTING_AS_REGISTRATION_AUTHORITY, false); // always has to be false 
intent.putExtra(EvrotrustConstants.EXTRA_SECURITY_CONTEXT, "8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92"); // optional parameter 
intent.putExtra(EvrotrustConstants.EXTRA_SHOULD_SKIP_CONTACT_INFORMATION, false); // optional parameter 
intent.putExtra(EvrotrustConstants.EXTRA_USER_INFORMATION_FOR_CHECK_DATA_TYPE, 
EvrotrustConstants.USER_TYPE_IDENTIFICATION_NUMBER); 
intent.putExtra(EvrotrustConstants.EXTRA_USER_INFORMATION_FOR_CHECK_DATA_VALUE, "7204141595"); 
intent.putExtra(EvrotrustConstants.EXTRA_USER_INFORMATION_FOR_CHECK_COUNTRY_CODE3, "BGR"); // country code by ISO 3166 
startActivityForResult(intent, EvrotrustConstants.REQUEST_CODE_SETUP_PROFILE); 

Receive result

if (requestCode == EvrotrustConstants.REQUEST_CODE_SETUP_PROFILE) { 
    EvrotrustSetupProfileResult result = data.getParcelableExtra(EvrotrustConstants.SETUP_PROFILE_RESULT); 
    switch (result.getStatus()) { 
        case SDK_NOT_SET_UP: 
            break;  
 
        case ERROR_INPUT: 
            break;  
 
        case USER_CANCELED: 
            break; 
 
        case OK: 
            if (result.isUserSetUp()) { 
                String securityContext = result.getSecurityContext(); 
                String pinCode = result.getPinCode(); 
                String personalIdentificationNumber = result.getPersonalIdentificationNumber(); 
                String countryCode2 = result.getCountryCode2(); // 2 letter country code by ISO 3166 
                String countryCode3 = result.getCountryCode3(); // 3 letter country code by ISO 3166 
                String phone = result.getPhone(); 
                String firstName = result.getFirstName();  
                String middleName = result.getMiddleName(); 
                String lastName = result.getLastName(); 
                String firstLatinName = result.getFirstLatinName(); 
                String middleLatinName = result.getMiddleLatinName(); 
                String lastLatinName = result.getLastLatinName(); 
                boolean isIdentified = result.isIdentified(); 
                boolean isSupervised = result.isSupervised(); 
                boolean isReadyToSign = result.isReadyToSign(); 
                boolean isRejected = result.isRejected(); 
                EvrotrustConstants.IdentificationRejectReason rejectReason = result.getRejectReason(); 
            } 
            break; 
    } 
} 

If new profile has to be created the user will be automatically identified. The partner is acting as registration authority for Evrotrust.

The parameter EXTRA_SHOULD_SKIP_CONTACT_INFORMATION can be used to skip the screens where the user adds contact information (phone and email) to his Evrotrust account. This screens are opened only if the provided phone and email cannot be automatically added to the user account.

There are two parameters for country code, but only one has to be provided: COUNTRY_CODE2 – for 2 letter code COUNTRY_CODE3 – for 3 letter code

Start process

Intent intent = new Intent(this, EvrotrustActivity.class); 
intent.putExtra(EvrotrustConstants.EXTRA_ACTIVITY_TYPE, EvrotrustConstants.SETUP_PROFILE); 
intent.putExtra(EvrotrustConstants.EXTRA_IS_ACTING_AS_REGISTRATION_AUTHORITY, true); // always has to be true 
intent.putExtra(EvrotrustConstants.EXTRA_SECURITY_CONTEXT, "8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92"); 
intent.putExtra(EvrotrustConstants.EXTRA_IDENTIFICATION_TRANSACTION_ID, "123456789012"); 
intent.putExtra(EvrotrustConstants.EXTRA_PERSONAL_IDENTIFICATION_NUMBER, "7204141595"); // required for countries that have identification number 
intent.putExtra(EvrotrustConstants.EXTRA_COUNTRY_CODE3, "BGR"); // country code by ISO 3166 
intent.putExtra(EvrotrustConstants.EXTRA_DOCUMENT_TYPE, EvrotrustConstants.DOCUMENT_TYPE_ID); 
intent.putExtra(EvrotrustConstants.EXTRA_DOCUMENT_NUMBER, "636417733"); 
intent.putExtra(EvrotrustConstants.EXTRA_PHONE_NUMBER, "+359888778877");
 
intent.putExtra(EvrotrustConstants.EXTRA_EMAIL_ADDRESS, "[email protected]"); // optional parameter
  
intent.putExtra(EvrotrustConstants.EXTRA_SHOULD_SKIP_CONTACT_INFORMATION, false); // optional parameter 
startActivityForResult(intent, EvrotrustConstants.REQUEST_CODE_SETUP_PROFILE);

Receive result

if (requestCode == EvrotrustConstants.REQUEST_CODE_SETUP_PROFILE) { 
    EvrotrustSetupProfileResult result = data.getParcelableExtra(EvrotrustConstants.SETUP_PROFILE_RESULT); 
    switch (result.getStatus()) { 
        case SDK_NOT_SET_UP: 
            break;  
 
        case ERROR_INPUT: 
            break; 
 
        case USER_CANCELED: 
            break; 
 
        case OK: 
            if (result.isUserSetUp()) { 
                String securityContext = result.getSecurityContext(); 
                String personalIdentificationNumber = result.getPersonalIdentificationNumber(); 
                String countryCode = result.getCountryCode2(); // 2 letter country code by ISO 3166 
                String countryCode = result.getCountryCode3(); // 3 letter country code by ISO 3166 
                String phone = result.getPhone(); 
                String firstName = result.getFirstName();  
                String middleName = result.getMiddleName(); 
                String lastName = result.getLastName(); 
                String firstLatinName = result.getFirstLatinName(); 
                String middleLatinName = result.getMiddleLatinName(); 
                String lastLatinName = result.getLastLatinName(); 
                boolean isIdentified = result.isIdentified(); 
                boolean isSupervised = result.isSupervised(); 
                boolean isReadyToSign = result.isReadyToSign(); 
                boolean isRejected = result.isRejected(); 
                EvrotrustConstants.IdentificationRejectReason rejectReason = result.getRejectReason(); 
            } 
            break; 
    } 
}

Check for user status

Start process

EvrotrustSDK.getInstance(this).checkUserStatus(this, this); 

Receive result

@Override 
public void еvrotrustCheckUserStatusResult(EvrotrustCheckUserStatusResult result) { 
    switch (result.getStatus()) { 
        case SDK_NOT_SET_UP: 
            break; 
 
        case USER_NOT_SET_UP: 
            break; 
 
        case OK: 
            boolean successfulCheck = result.isSuccessfulCheck(); 
            if (successfulCheck) { 
                boolean isIdentified = result.isIdentified(); 
                boolean isSupervised = result.isSupervised(); 
                boolean isReadyToSign = result.isReadyToSign(); 
                boolean isRejected = result.isRejected(); 
                boolean hasConfirmedPhone = result.hasConfirmedPhone(); 
                boolean hasConfirmedEmail = result.hasConfirmedEmail(); 
                EvrotrustConstants.IdentificationRejectReason rejectReason = result.getRejectReason(); 
            } 
            break; 
    } 
} 

Subscribe for user status changes

It is possible only if the identification or supervising of the user is in progress. The result will be sent via request /user/identification/status of the Vendor callback API.

Start process

EvrotrustSDK.getInstance(this).subscribeForUserStatusCallback(this, "https://example.com", "8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92", this);

Receive result

@Override 
public void evrotrustSubscribeForUserStatusCallbackResult(EvrotrustSubscribeForUserStatusCallbackResult result) { 
    switch (result.getStatus()) { 
        case SDK_NOT_SET_UP: 
        break;
        case ERROR_INPUT: 
            break; 
 
        case USER_NOT_SET_UP: 
            break; 
 
        case OK: 
            boolean successful = result.isSuccessful(); 
            if (successful) { 
                boolean isSubscribed = result.isSubscribed(); 
                boolean isIdentified = result.isIdentified(); 
                boolean isSupervised = result.isSupervised(); 
                boolean isReadyToSign = result.isReadyToSign(); 
                boolean isRejected = result.isRejected(); 
                EvrotrustConstants.IdentificationRejectReason rejectReason = result.getRejectReason(); 
            } 
            break; 
    } 
} 

Edit user profile

Start process

Intent intent = new Intent(this, EvrotrustActivity.class); 
intent.putExtra(EvrotrustConstants.EXTRA_ACTIVITY_TYPE, EvrotrustConstants.EDIT_PERSONAL_DATA); 
intent.putExtra(EvrotrustConstants.EXTRA_SECURITY_CONTEXT, "8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92"); 
startActivityForResult(intent, EvrotrustConstants.REQUEST_CODE_EDIT_PERSONAL_DATA); 

Receive result

if (requestCode == EvrotrustConstants.REQUEST_CODE_EDIT_PERSONAL_DATA) { 
    EvrotrustEditPersonalDataResult result = data.getParcelableExtra(EvrotrustConstants.EDIT_PERSONAL_DATA__RESULT); 
    switch (result.getStatus()) { 
        case SDK_NOT_SET_UP: 
            break;  
 
        case ERROR_INPUT: 
            break; 
 
        case USER_NOT_SET_UP: 
            break;  
 
        case USER_CANCELED: 
            break; 
 
        case OK: 
            boolean editPersonalData = result.isEditPersonalData(); 
            if (editPersonalData) { 
                boolean isIdentified = result.isIdentified(); 
                boolean isSupervised = result.isSupervised(); 
                boolean isReadyToSign = result.isReadyToSign(); 
                boolean isRejected = result.isRejected(); 
                EvrotrustConstants.IdentificationRejectReason rejectReason = result.getRejectReason(); 
            } 
            break; 
    } 
} 

Open group of documents

Start process

Intent intent = new Intent(this, EvrotrustActivity.class); 
intent.putExtra(EvrotrustConstants.EXTRA_ACTIVITY_TYPE, EvrotrustConstants.OPEN_GROUP_DOCUMENTS); 
intent.putExtra(EvrotrustConstants.EXTRA_SECURITY_CONTEXT, "8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92"); 
intent.putExtra(EvrotrustConstants.EXTRA_TRANSACTION_ID, "123456789012"); 
startActivityForResult(intent, EvrotrustConstants.REQUEST_CODE_OPEN_GROUP_DOCUMENTS); 

Receive result

if (requestCode == EvrotrustConstants.REQUEST_CODE_OPEN_GROUP_DOCUMENTS) { 
    EvrotrustOpenGroupDocumentsResult result = 
data.getParcelableExtra(EvrotrustConstants.OPEN_GROUP_DOCUMENTS_RESULT); 
    switch (result.getStatus()) { 
        case SDK_NOT_SET_UP: 
            break;  
        case ERROR_INPUT: 
            break; 
 
        case USER_CANCELED: 
            break; 
 
        case USER_NOT_SET_UP: 
            break; 
 
        case OK: 
            EvrotrustConstants.UserDecision userDecision = result.getUserDecision(); // Approved, Rejected, No Choice 
            break; 
    } 
} 

Open single document

Start process

Intent intent = new Intent(this, EvrotrustActivity.class); 
intent.putExtra(EvrotrustConstants.EXTRA_ACTIVITY_TYPE, EvrotrustConstants.OPEN_SINGLE_DOCUMENT); 
intent.putExtra(EvrotrustConstants.EXTRA_SECURITY_CONTEXT, "8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92"); 
intent.putExtra(EvrotrustConstants.EXTRA_TRANSACTION_ID, "123456789012"); 
startActivityForResult(intent, EvrotrustConstants.REQUEST_CODE_OPEN_SINGLE_DOCUMENT);

Receive result

if (requestCode == EvrotrustConstants.REQUEST_CODE_OPEN_SINGLE_DOCUMENT) { 
    EvrotrustOpenSingleDocumentResult result = 
data.getParcelableExtra(EvrotrustConstants.OPEN_SINGLE_DOCUMENT_RESULT); 
    switch (result.getStatus()) { 
        case SDK_NOT_SET_UP: 
            break; 
 
        case ERROR_INPUT: 
            break; 
 
        case USER_CANCELED: 
            break; 
 
        case USER_NOT_SET_UP: 
            break; 
 
        case OK: 
            EvrotrustConstants.UserDecision userDecision = result.getUserDecision(); // Approved, Rejected, No Choice 
            break; 
    } 
} 

Check for user set up on the device

Start process

EvrotrustSDK.getInstance(this).isUserSetUp(this, this); 

Receive result

@Override 
public void evrotrustUserSetUpResult(EvrotrustUserSetUpResult result) { 
    switch (result.getStatus()) { 
        case SDK_NOT_SET_UP: 
            break; 
 
        case OK: 
            boolean userSetUp = result.isUserSetUp(); 
            break; 
    } 
} 

Check for user set up online

Start process

EvrotrustSDK.getInstance(this).isUserSetUpOnline(this, this);

Receive result

@Override 
public void evrotrustUserSetUpOnlineResult(EvrotrustUserSetUpOnlineResult result) { 
    switch (result.getStatus()) { 
        case SDK_NOT_SET_UP: 
            break; 
 
        case OK: 
            boolean successfulCheck = result.isSuccessfulCheck(); 
            if (successfulCheck) { 
                boolean userSetUp = result.isUserSetUp(); 
            } 
            break; 
    } 
} 

Change the security context of the user

Start process

EvrotrustSDK.getInstance(this).changeSecurityContext(securityContext, newSecurityContext, this, this);

Receive result

@Override 
public void evrotrustChangeSecurityContextResult(EvrotrustChangeSecurityContextResult result) { 
    switch (result.getStatus()) { 
        case SDK_NOT_SET_UP: 
            break; 
 
        case ERROR_INPUT: 
            break; 
 
        case USER_NOT_SET_UP: 
            break; 
 
        case OK: 
            boolean changed = result.isSecurityContextChanged(); 
            break; 
    } 
} 

Open settings screens

This method returns result only if the SDK is not set up.

Start process

Intent intent = new Intent(this, EvrotrustActivity.class); 
intent.putExtra(EvrotrustConstants.EXTRA_ACTIVITY_TYPE, EvrotrustConstants.SETTINGS); 
intent.putExtra(EvrotrustConstants.EXTRA_SECURITY_CONTEXT, "8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92"); 
startActivity(intent); 

Receive result

if (requestCode == EvrotrustConstants.REQUEST_CODE_SETTINGS) { 
    EvrotrustSettingsResult result = data.getParcelableExtra(EvrotrustConstants.SETTINGS_RESULT); 
    switch (result.getStatus()) { 
        case SDK_NOT_SET_UP: 
            break;  
    } 
} 

Identity verification process

This process verifies the identity of the user and returns its data like names, personal identification number, ID/Passport document number etc. Evrotrust account will not be created.

If parameter EXTRA_PERSONAL_IDENTIFICATION_NUMBER is sent, the personal identification number from the scanned document will be compared to it.

If parameter EXTRA_DOCUMENT_TYPE is sent, the document type from the scanned document will be compared to it.

If parameter EXTRA_COUNTRY_CODE2 or EXTRA_COUNTRY_CODE3 is sent, the issuing country of the scanned document will be compared to it.

There are two parameters for country code, but only one has to be provided: COUNTRY_CODE2 – for 2 letter code COUNTRY_CODE3 – for 3 letter code

Parameters EXTRA_RETURN_* specify which user data to be returned at the end of the process. If all of them are false, all data will be returned.

The user pictures and video can be requested via EXTRA_RETURN_PICTURES and received using Evrotrust Vendor API.

Start process

Intent intent = new Intent(this, EvrotrustActivity.class); 
intent.putExtra(EvrotrustConstants.EXTRA_ACTIVITY_TYPE, EvrotrustConstants.ONETIME_IDENTIFICATION); 
intent.putExtra(EvrotrustConstants.EXTRA_VENDOR_NUMBER, "1a2b3c4d5e6f"); // The vendor number is provided by Evrotrust 
intent.putExtra(EvrotrustConstants.EXTRA_EXTERNAL_REFERENCE_ID, "abc-123-def-456"); // String parameter, provided by the vendor and returned at the end. Max length 32. 
intent.putExtra(EvrotrustConstants.EXTRA_SCENARIO, EvrotrustConstants.ONETIME_SCENARIO_BASIC); // Possible values: ONETIME_SCENARIO_BASIC and ONETIME_SCENARIO_ENHANCED 
intent.putExtra(EvrotrustConstants.EXTRA_URL_CALLBACK, "https://example-endpoint.com"); // It is used only for ENHANCED scenario 
intent.putExtra(EvrotrustConstants.EXTRA_PERSONAL_IDENTIFICATION_NUMBER, "7204141595"); //optional  
intent.putExtra(EvrotrustConstants.EXTRA_DOCUMENT_TYPE, EvrotrustConstants.DOCUMENT_TYPE_ID); //optional 
intent.putExtra(EvrotrustConstants.EXTRA_COUNTRY_CODE3, "BGR"); // optional, country code by ISO 3166  
intent.putExtra(EvrotrustConstants.EXTRA_RETURN_NAMES, true); 
intent.putExtra(EvrotrustConstants.EXTRA_RETURN_LATIN_NAMES, true); 
intent.putExtra(EvrotrustConstants.EXTRA_RETURN_IDENTIFICATION_NUMBER, true); 
intent.putExtra(EvrotrustConstants.EXTRA_RETURN_DOCUMENT_NUMBER, true);  
intent.putExtra(EvrotrustConstants.EXTRA_RETURN_DOCUMENT_TYPE, true); 
intent.putExtra(EvrotrustConstants.EXTRA_RETURN_DOCUMENT_COUNTRY, true); 
intent.putExtra(EvrotrustConstants.EXTRA_RETURN_DOCUMENT_VALID_DATE, true);  
intent.putExtra(EvrotrustConstants.EXTRA_RETURN_DOCUMENT_ISSUE_DATE, true);  
intent.putExtra(EvrotrustConstants.EXTRA_RETURN_DOCUMENT_ISSUER_NAME, true); 
intent.putExtra(EvrotrustConstants.EXTRA_RETURN_DATE_OF_BIRTH, true);  
intent.putExtra(EvrotrustConstants.EXTRA_RETURN_PLACE_OF_BIRTH, true);  
intent.putExtra(EvrotrustConstants.EXTRA_RETURN_ADDRESS, true);  
intent.putExtra(EvrotrustConstants.EXTRA_RETURN_NATIONALITY, true);  
intent.putExtra(EvrotrustConstants.EXTRA_RETURN_SEX, true); 
intent.putExtra(EvrotrustConstants.EXTRA_RETURN_PICTURES, true); 
startActivityForResult(intent, EvrotrustConstants.REQUEST_CODE_ONETIME_IDENTIFICATION); 

Receive result

if (requestCode == EvrotrustConstants.REQUEST_CODE_ONETIME_IDENTIFICATION) { 
    EvrotrustOnetimeIdentificationResult result = 
data.getParcelableExtra(EvrotrustConstants.ONETIME_IDENTIFICATION_RESULT); 
    switch (result.getStatus()) { 
        case SDK_NOT_SET_UP: 
            break; 
 
        case ERROR_INPUT: 
            break; 
 
        case OK: 
            String externalReferenceID = result.getExternalReferenceID(); 
            String referenceID = result.getReferenceID(); 
            float personPresence = result.getPersonPresence(); 
            EvrotrustConstants.FaceScanResult liveness = result.getLiveness(); 
            EvrotrustConstants.FaceScanResult faceMatch = result.getFaceMatch(); 
            if (result.getOnetimeIdentificationStatus() == EvrotrustConstants.OnetimeIdentificationStatus.SUCCESS) { 
                String firstName = result.getFirstName(); 
                String middleName = result.getMiddleName(); 
                String lastName = result.getLastName(); 
                String firstNameLatin = result.getFirstNameLatin(); 
                String middleNameLatin = result.getMiddleNameLatin(); 
                String lastNameLatin = result.getLastNameLatin(); 
                String identificationNumber = result.getIdentificationNumber(); 
                String documentNumber = result.getDocumentNumber(); 
                EvrotrustConstants.DocumentType documentType = result.getDocumentType(); 
                String documentCountryCode2 = result.getDocumentCountryCode2(); // 2 letter country code by ISO 3166 
                String documentCountryCode3 = result.getDocumentCountryCode3(); // 3 letter country code by ISO 3166 
                long documentValidDate = result.getDocumentValidDate(); 
                long documentIssueDate = result.getDocumentIssueDate(); 
                String documentIssuerName = result.getDocumentIssuerName(); 
                long dateOfBirth = result.getDateOfBirth(); 
                String placeOfBirth = result.getPlaceOfBirth(); 
                String address = result.getAddress(); 
                String district = result.getDistrict(); 
                String municipality = result.getMunicipality(); 
                String settlement = result.getSettlement(); 
                String location = result.getLocation(); 
                String buildingNumber = result.getBuildingNumber(); 
                String entrance = result.getEntrance(); 
                String floor = result.getFloor(); 
                String apartment = result.getApartment(); 
                String nationality = result.getNationality(); 
                String nationalityCode = result.getNationalityCode(); 
                EvrotrustConstants.SexType sex = result.getSex(); 
                SourceUserData firstNameSource = result.getFirstNameSource(); 
                SourceUserData middleNameSource = result.getMiddleNameSource(); 
                SourceUserData lastNameSource = result.getLastNameSource(); 
                SourceUserData firstNameLatinSource = result.getFirstNameLatinSource(); 
                SourceUserData middleNameLatinSource = result.getMiddleNameLatinSource(); 
                SourceUserData lastNameLatinSource = result.getLastNameLatinSource(); 
                SourceUserData identificationNumberSource = result.getIdentificationNumberSource(); 
                SourceUserData documentNumberSource = result.getDocumentNumberSource(); 
                SourceUserData documentTypeSource = result.getDocumentTypeSource(); 
                SourceUserData documentCountryCodeSource = result.getDocumentCountryCodeSource(); 
                SourceUserData documentValidDateSource = result.getDocumentValidDateSource(); 
                SourceUserData documentIssueDateSource = result.getDocumentIssueDateSource(); 
                SourceUserData documentIssuerNameSource = result.getDocumentIssuerNameSource(); 
                SourceUserData dateOfBirthSource = result.getDateOfBirthSource(); 
                SourceUserData placeOfBirthSource = result.getPlaceOfBirthSource(); 
                SourceUserData addressSource = result.getAddressSource(); 
                SourceUserData nationalitySource = result.getNationalitySource(); 
                SourceUserData sexSource = result.getSexSource(); 
            } else if (result.getOnetimeIdentificationStatus() == 
EvrotrustConstants.OnetimeIdentificationStatus.UNSUCCESS) { 
                EvrotrustConstants.OnetimeIdentificationUnsuccessReason reason = 
result.getOneIdentificationUnsuccessReason(); 
            } else { // WAITING_SUPERVISING 
                // The result will be sent via request /onetimeidentification/status of the Vendor callback API. 
            } 
            break; 
    } 
} 

UI customizations

Evrotrust SDK allows the developers to customize the UI by setting different colors, images and main font. Every parameter in the customization is optional and if not set the default value for that parameter will be used. The colors need to be placed in the resource file colors.xml.

  • evrotrustMainColor1 is used mainly on button backgrounds and navigation bar.
  • evrotrustMainColor2 is used mainly on button titles and icons.
  • evrotrustMainColor3 is used mainly on title labels.
  • evrotrustBackgroundColor1 is the main background color of the screens.
  • evrotrustBackgroundColor2 is used for background color of EditText controls.
  • evrotrustBackgroundColor3 is used for background color of the screens where there is ListView.
  • evrotrustHintTextColor is used on EditText’s hint text.
  • evrotrustTextColor1 is used mainly for the text color in all text fields and most of the labels.
  • evrotrustTextColor2 is used for button titles and labels where the background is evrotrustMainColor1.
  • The images are used in the corresponding screens. The recommended size for scanInstructionsImage is 350x273 and for the other images is 100x100. These sizes are for mdpi / 1x.
  • whiteEvrotrustLogo determines the color of the Evrotrust logo. Set true for white and false for black logo.
  • nightMode determines the night mode of the SDK.
  • The main font of the Evrotrust SDK can be change by providing the name of the font file. This file has to be placed in the assets folder of your module.
<color name="evrotrustMainColor1">#3ecc25</color> 
<color name="evrotrustMainColor2">#2552cc</color> 
<color name="evrotrustMainColor3">#c6cc25</color> 
<color name="evrotrustBackgroundColor1">#0F0F0F</color> 
<color name="evrotrustBackgroundColor2">#232323</color> 
<color name="evrotrustBackgroundColor3">#323232</color> 
<color name="evrotrustTextColor1">#FFFFFF</color>. 
<color name="evrotrustTextColor2">#303030</color> 
<color name="evrotrustHintTextColor">#C8C8C8</color>
EvrotrustCustomization customization = new EvrotrustCustomization(); 
customization.getImageCustomization().contactsTitleImage = R.mipmap.image_placeholder;
customization.getImageCustomization().documentsTitleImage = R.mipmap.image_placeholder; 
customization.getImageCustomization().scanInstructionsImage = R.mipmap.image_placeholder; 
customization.getImageCustomization().setWhiteEvrotrustLogo(true); 
customization.setNightMode(EvrotrustConstants.NightMode.MODE_NIGHT_NO); // MODE_NIGHT_NO, MODE_NIGHT_YES, MODE_NIGHT_FOLLOW_SYSTEM 
customization.fontName = "FontFile.ttf"; 
EvrotrustSDK.getInstance(this).setCustomization(customization);

Change localizations

Evrotrust SDK supports the following languages – English, Bulgarian, German, Hungarian, Albanian, Macedonian, French, Italian and Romanian. Each package of the SDK comes with a folder “Localizations” in which the localization files are located. If some of the default localizations need to be changed, include them in the appropriate resource file strings.xml and then replace their value.

The preferred language of the application has to be changed in order to change the language of Evrotrust SDK. For example: AppCompatDelegate.setApplicationLocales(LocaleListCompat.forLanguageTags("en"));