SDK Customization How-To Guide
Basic customization
One of the great features of the Incode Welcome SDK is that it enables you to customize the look & feel of the UI.
1. Apply custom theme and fonts
1.1 Main theme colors customization
Add the following colors to your colors.xml
:
<color name="onboard_sdk_colorPrimary">@color/onboard_sdk_brand_accentPrimary</color>
<color name="onboard_sdk_colorPrimaryDark">@color/onboard_sdk_brand_accentSecondary</color>
<color name="onboard_sdk_colorAccent">@color/onboard_sdk_brand_accentPrimary</color>
Note that onboard_sdk_colorPrimaryDark
is currently not used.
The following colors are used throughout the SDK to signify success/warning/failure.
By default, these are shades of green/orange/red respectively,
but you can customize them by adding the following colors to your colors.xml
:
<color name="onboard_sdk_state_destructive">#FF5C6F</color>
<color name="onboard_sdk_state_warn">#F3AB3C</color>
<color name="onboard_sdk_state_success">#0CD5A2</color>
The following near-grayscale colors are predefined in the SDK:
<color name="onboard_sdk_darkest">#000000</color>
<color name="onboard_sdk_darkIndigo">#20263D</color>
<color name="onboard_sdk_indigo">#2F2D51</color>
<color name="onboard_sdk_dark">#636670</color>
<color name="onboard_sdk_darkGray">#979797</color>
<color name="onboard_sdk_gray">#BCBCBC</color>
<color name="onboard_sdk_lightGray">#E9E9EB</color>
<color name="onboard_sdk_offWhite">#F9FAFF</color>
<color name="onboard_sdk_white">#FFFFFF</color>
To change Background colors in the SDK, add the following items to your styles.xml
:
<item name="onboard_sdk_BackgroundLight" type="color">@color/onboard_sdk_lightGray</item>
<item name="onboard_sdk_BackgroundDark" type="color">@color/onboard_sdk_darkIndigo</item>
<item name="onboard_sdk_BackgroundWindow" type="color">@color/onboard_sdk_white</item>
<item name="onboard_sdk_BackgroundWindow_Selfie" type="color">@color/onboard_sdk_white</item>
Note that the window background is white by default on the Selfie Scan screen.
This helps when taking a selfie in low-light conditions.
There are five different colors of text in the SDK.
To modify them, add the following items to your styles.xml
:
<item name="onboard_sdk_TextColorDefault" type="color">@color/onboard_sdk_darkIndigo</item>
<item name="onboard_sdk_TextColorLabel" type="color">@color/onboard_sdk_dark</item>
<item name="onboard_sdk_TextColorPlaceholder" type="color">@color/onboard_sdk_gray</item>
<item name="onboard_sdk_TextColorDisabled" type="color">@color/onboard_sdk_lightGray</item>
<item name="onboard_sdk_TextColorInverted" type="color">@color/onboard_sdk_white</item>
To change the fonts in the SDK, add the following items to your styles.xml
:
<item name="onboard_sdk_FontFamilyBold" type="font">@font/your_custom_bold_font</item>
<item name="onboard_sdk_FontFamilyRegular" type="font">@font/your_custom_regular_font</item>
1.2 Basic button customization (customize individual attributes of default buttons)
To customize corner radius of the buttons in the SDK, you can override the following dimension in your dimens.xml
:
<dimen name="onboard_sdk_btn_rounded_radius">32dp</dimen>
To change the size of the buttons, override the following dimension in your dimens.xml
:
*Note: Smaller value means bigger button (For full-width buttons, suggested value is 20dp).
<dimen name="onboard_sdk_btn_margins">80dp</dimen>
To change the colors of the buttons, override the following colors in your colors.xml
:
<!-- Button Primary -->
<color name="onboard_sdk_btn_primary_background_color">@color/onboard_sdk_colorPrimary</color>
<color name="onboard_sdk_btn_primary_border_color">@color/onboard_sdk_colorPrimary</color>
<!-- Button Primary Pressed -->
<color name="onboard_sdk_btn_primary_background_color_pressed">@color/onboard_sdk_darkIndigo</color>
<color name="onboard_sdk_btn_primary_border_color_pressed">@color/onboard_sdk_darkIndigo</color>
<!-- Button Primary Disabled -->
<color name="onboard_sdk_btn_primary_background_color_disabled">@color/onboard_sdk_IconColorDisabled</color>
<color name="onboard_sdk_btn_primary_border_color_disabled">@color/onboard_sdk_IconColorDisabled</color>
<!-- Button Secondary -->
<color name="onboard_sdk_btn_secondary_background_color">@color/onboard_sdk_white</color>
<color name="onboard_sdk_btn_secondary_border_color">@color/onboard_sdk_darkIndigo</color>
<!-- Button Secondary Pressed -->
<color name="onboard_sdk_btn_secondary_background_color_pressed">@color/onboard_sdk_darkIndigo</color>
<color name="onboard_sdk_btn_secondary_border_color_pressed">@color/onboard_sdk_darkIndigo</color>
<!-- Button Secondary Disabled -->
<color name="onboard_sdk_btn_secondary_background_color_disabled">@color/onboard_sdk_white</color>
<color name="onboard_sdk_btn_secondary_border_color_disabled">@color/onboard_sdk_IconColorDisabled</color>
<!-- Id Validation capture feedback background -->
<color name="onboard_sdk_id_capture_feedback_background_color">@color/onboard_sdk_black</color>
Other properties that can be customized (add to your styles.xml
to override):
<item name="onboard_sdk_ButtonPrimary_FontFamily" type="font">@font/onboard_sdk_FontFamilyBold</item>
<item name="onboard_sdk_ButtonPrimary_TextColor" type="color">@color/onboard_sdk_text_colors_button_primary</item>
<item name="onboard_sdk_ButtonPrimary_Background" type="drawable">@drawable/onboard_sdk_btn_primary</item>
<item name="onboard_sdk_ButtonPrimary_MaxLines" type="integer">1</item>
<item name="onboard_sdk_ButtonPrimary_BorderWidth" type="dimen">1dp</item>
<item name="onboard_sdk_ButtonSecondary_FontFamily" type="font">@font/onboard_sdk_FontFamilyBold</item>
<item name="onboard_sdk_ButtonSecondary_TextColor" type="color">@color/onboard_sdk_text_colors_button_secondary</item>
<item name="onboard_sdk_ButtonSecondary_Background" type="drawable">@drawable/onboard_sdk_btn_secondary</item>
<item name="onboard_sdk_ButtonSecondary_MaxLines" type="integer">1</item>
<item name="onboard_sdk_ButtonSecondary_BorderWidth" type="dimen">1dp</item>
<item name="onboard_sdk_ButtonText_FontFamily" type="font">@font/onboard_sdk_FontFamilyBold</item>
<item name="onboard_sdk_ButtonText_TextColor" type="color">@color/onboard_sdk_text_colors_button_text</item>
<item name="onboard_sdk_ButtonText_Background" type="drawable">@android:color/transparent</item>
<item name="onboard_sdk_ButtonText_MaxLines" type="integer">1</item>
<item name="onboard_sdk_ButtonBig_TextSize" type="dimen">20sp</item>
<item name="onboard_sdk_ButtonBig_PaddingStart" type="dimen">80sp</item>
<item name="onboard_sdk_ButtonBig_PaddingEnd" type="dimen">80sp</item>
<item name="onboard_sdk_ButtonBig_PaddingTop" type="dimen">20sp</item>
<item name="onboard_sdk_ButtonBig_PaddingBottom" type="dimen">20sp</item>
<item name="onboard_sdk_ButtonBig_TextAllCaps" type="bool">false</item>
<item name="onboard_sdk_ButtonMedium_TextSize" type="dimen">16sp</item>
<item name="onboard_sdk_ButtonMedium_PaddingStart" type="dimen">48sp</item>
<item name="onboard_sdk_ButtonMedium_PaddingEnd" type="dimen">48sp</item>
<item name="onboard_sdk_ButtonMedium_PaddingTop" type="dimen">12sp</item>
<item name="onboard_sdk_ButtonMedium_PaddingBottom" type="dimen">12sp</item>
<item name="onboard_sdk_ButtonMedium_TextAllCaps" type="bool">true</item>
<item name="onboard_sdk_ButtonSmall_TextSize" type="dimen">12sp</item>
<item name="onboard_sdk_ButtonSmall_PaddingStart" type="dimen">14sp</item>
<item name="onboard_sdk_ButtonSmall_PaddingEnd" type="dimen">14sp</item>
<item name="onboard_sdk_ButtonSmall_PaddingTop" type="dimen">12sp</item>
<item name="onboard_sdk_ButtonSmall_PaddingBottom" type="dimen">12sp</item>
<item name="onboard_sdk_ButtonSmall_TextAllCaps" type="bool">true</item>
<item name="onboard_sdk_IncodeSnackbar_Background_Color" type="color">@color/onboard_sdk_state_destructive</item>
<item name="onboard_sdk_IncodeSnackbar_Content_TextColor" type="color">@color/onboard_sdk_white</item>
<item name="onboard_sdk_IncodeSnackbar_Content_TextSize" type="dimen">14sp</item>
<item name="onboard_sdk_IncodeSnackbar_Content_FontFamily" type="font">@font/onboard_sdk_FontFamilyRegular</item>
<item name="onboard_sdk_IncodeSnackbar_Content_FontWeight" type="integer">700</item>
<item name="onboard_sdk_IncodeSnackbar_Action_TextColor" type="color">@color/onboard_sdk_white</item>
<item name="onboard_sdk_IncodeSnackbar_Action_TextSize" type="dimen">20sp</item>
<item name="onboard_sdk_IncodeSnackbar_Action_FontFamily" type="font">@font/onboard_sdk_FontFamilyRegular</item>
<item name="onboard_sdk_IncodeSnackbar_Action_FontWeight" type="integer">700</item>
1.3 Advanced button customization
If you wish to fully customize buttons, you can specify your own styles in styles.xml
.
There are three types of buttons: Primary
, Secondary
and Text
.
Each of the three types of buttons has three variants: Big
, Medium
and Small
.
You can customize common styles (onboard_sdk_ButtonPrimary
, onboard_sdk_ButtonSecondary
, onboard_sdk_ButtonText
) as well as individual variants (onboard_sdk_ButtonPrimaryBig
, etc.).
By default, medium and small variants use textAllCaps = true
.
<style name="onboard_sdk_ButtonPrimary" parent="onboard_sdk_BaseButtonPrimary">
<item name="android:background">@drawable/my_custom_background_drawable</item>
...
</style>
<style name="onboard_sdk_ButtonPrimaryBig" parent="onboard_sdk_BaseButtonPrimaryBig">
<item name="layout_constraintWidth_min">200dp</item>
...
</style>
<style name="onboard_sdk_ButtonPrimaryMedium" parent="onboard_sdk_BaseButtonPrimaryMedium">...</style>
<style name="onboard_sdk_ButtonPrimarySmall" parent="onboard_sdk_BaseButtonPrimarySmall">...</style>
<style name="onboard_sdk_ButtonSecondary" parent="onboard_sdk_BaseButtonSecondary">...</style>
<style name="onboard_sdk_ButtonSecondaryBig" parent="onboard_sdk_BaseButtonSecondaryBig">...</style>
<style name="onboard_sdk_ButtonSecondaryMedium" parent="onboard_sdk_BaseButtonSecondaryMedium">...</style>
<style name="onboard_sdk_ButtonSecondarySmall" parent="onboard_sdk_BaseButtonSecondarySmall">...</style>
<style name="onboard_sdk_ButtonText" parent="onboard_sdk_BaseButtonText">...</style>
<style name="onboard_sdk_ButtonTextBig" parent="onboard_sdk_BaseButtonTextBig">...</style>
<style name="onboard_sdk_ButtonTextMedium" parent="onboard_sdk_BaseButtonTextMedium">...</style>
<style name="onboard_sdk_ButtonTextSmall" parent="onboard_sdk_BaseButtonTextSmall">...</style>
1.4 Customization of other UI elements
To change the color of exit dialog buttons/texts, override the following colors:
<!-- Update the color of all exit dialog texts -->
<item name="onboard_sdk_ExitDialog_TextColor" type="color">@color/onboard_sdk_black</item>
<!-- Update each color individually -->
<item name="onboard_sdk_ExitDialog_TextColor_Title" type="color">@color/onboard_sdk_ExitDialog_TextColor</item>
<item name="onboard_sdk_ExitDialog_TextColor_Description" type="color">@color/onboard_sdk_ExitDialog_TextColor</item>
<item name="onboard_sdk_ExitDialog_TextColor_PositiveButton" type="color">@color/onboard_sdk_ExitDialog_TextColor</item>
<item name="onboard_sdk_ExitDialog_TextColor_NegativeButton" type="color">@color/onboard_sdk_ExitDialog_TextColor</item>
To change the exit dialog color/font of positive/negative buttons, override the following styles:
<!-- Postive Button -->
<style name="onboard_sdk_ExitDialog_PositiveButton" parent="onboard_sdk_BaseExitDialog_PositiveButton">
<item name="android:fontFamily">@font/onboard_sdk_FontFamilyRegular</item>
<item name="android:textColor">@color/onboard_sdk_ExitDialog_TextColor_PositiveButton</item>
</style>
<!-- Negative Button -->
<style name="onboard_sdk_ExitDialog_NegativeButton" parent="onboard_sdk_BaseExitDialog_NegativeButton">
<item name="android:fontFamily">@font/onboard_sdk_FontFamilyRegular</item>
<item name="android:textColor">@color/onboard_sdk_ExitDialog_TextColor_NegativeButton</item>
</style>
To customize the exit dialog, override the following style:
<style name="onboard_sdk_ExitDialog" parent="onboard_sdk_BaseExitDialog">
<!-- Exit Dialog Font -->
<item name="android:fontFamily">@font/onboard_sdk_FontFamilyRegular</item>
<!-- Exit Dialog Title text color -->
<item name="android:textColor">@color/onboard_sdk_ExitDialog_TextColor_Title</item>
<!-- Exit Dialog Description text color -->
<item name="android:textColorPrimary">@color/onboard_sdk_ExitDialog_TextColor_Description</item>
<!-- Exit Dialog Positive Button style -->
<item name="buttonBarPositiveButtonStyle">@style/onboard_sdk_ExitDialog_PositiveButton</item>
<!-- Exit Dialog Negative Button style -->
<item name="buttonBarNegativeButtonStyle">@style/onboard_sdk_ExitDialog_NegativeButton</item>
</style>
To change the color of the camera outline on the Selfie screen, override the following color:
<item name="onboard_sdk_SelfieCircleCameraOutline" type="color">@android:color/black</item>
To change the style of the progress bar that is displayed while uploading documents, override these items in your styles.xml
:
By default, the progress bar will use onboard_sdk_BackgroundLight
and onboard_sdk_colorPrimary
colors.
<item name="onboard_sdk_ProgressBar_Height" type="dimen">6dp</item>
<item name="onboard_sdk_ProgressBar_ProgressDrawable" type="drawable">@drawable/onboard_sdk_progress_bar_round</item>
Customizing the 'Need Help' screen layout:
By default, the items are arranged horizontally.
If you want the items to be arranged vertically, please add the following item to your styles.xml
:
<item name="onboard_sdk_need_help_vertical" type="bool">true</item>
To change the background for each item in Capture Failed -> Common Issues screen, override the following drawable:
@drawable/onboard_sdk_background_capture_error_item
or just override the color:
<item name="onboard_sdk_Background_CaptureErrorItem" type="color">@color/onboard_sdk_lightGray</item>
To change the background and text color of the countdown animation in the ID/Passport scan screen, override the following colors:
<item name="onboard_sdk_CountdownAnimation_BackgroundColor" type="color">@color/onboard_sdk_brand_accentPrimary</item>
<item name="onboard_sdk_CountdownAnimation_TextColor" type="color">@color/onboard_sdk_white</item>
Customizing colors and fonts should cover most use-cases.
In case you want to have finer control over UI elements' styling,
here is a complete list of customizable UI elements
(override the following styles in your styles.xml
):
<style name="onboard_sdk_Headline1" parent="onboard_sdk_BaseHeadline1">...</style>
<style name="onboard_sdk_Headline2" parent="onboard_sdk_BaseHeadline2">...</style>
<style name="onboard_sdk_Headline3" parent="onboard_sdk_BaseHeadline3">...</style>
<style name="onboard_sdk_Headline4" parent="onboard_sdk_BaseHeadline4">...</style>
<style name="onboard_sdk_InputSpecial" parent="onboard_sdk_BaseInputSpecial">...</style>
<style name="onboard_sdk_InputBig" parent="onboard_sdk_BaseInputBig">...</style>
<style name="onboard_sdk_InputSmall" parent="onboard_sdk_BaseInputSmall">...</style>
<style name="onboard_sdk_InputEditText" parent="onboard_sdk_BaseInputEditText">...</style>
<style name="onboard_sdk_InputEditTextError" parent="onboard_sdk_BaseInputEditTextError">...</style>
<style name="onboard_sdk_InputSpinner" parent="onboard_sdk_BaseInputSpinner">...</style>
<style name="onboard_sdk_BodyBig" parent="onboard_sdk_BaseBodyBig">...</style>
<style name="onboard_sdk_BodyLead" parent="onboard_sdk_BaseBodyLead">...</style>
<style name="onboard_sdk_BodyQuote" parent="onboard_sdk_BaseBodyQuote">...</style>
<style name="onboard_sdk_BodyLongText" parent="onboard_sdk_BaseBodyLongText">...</style>
<style name="onboard_sdk_LabelBig" parent="onboard_sdk_BaseLabelBig">...</style>
<style name="onboard_sdk_LabelSmall" parent="onboard_sdk_BaseLabelSmall">...</style>
<style name="onboard_sdk_ButtonPrimary" parent="onboard_sdk_BaseButtonPrimary">...</style>
<style name="onboard_sdk_ButtonPrimaryBig" parent="onboard_sdk_BaseButtonPrimaryBig">...</style>
<style name="onboard_sdk_ButtonPrimaryMedium" parent="onboard_sdk_BaseButtonPrimaryMedium">...</style>
<style name="onboard_sdk_ButtonPrimarySmall" parent="onboard_sdk_BaseButtonPrimarySmall">...</style>
<style name="onboard_sdk_ButtonSecondary" parent="onboard_sdk_BaseButtonSecondary">...</style>
<style name="onboard_sdk_ButtonSecondaryBig" parent="onboard_sdk_BaseButtonSecondaryBig">...</style>
<style name="onboard_sdk_ButtonSecondaryMedium" parent="onboard_sdk_BaseButtonSecondaryMedium">...</style>
<style name="onboard_sdk_ButtonSecondarySmall" parent="onboard_sdk_BaseButtonSecondarySmall">...</style>
<style name="onboard_sdk_ButtonText" parent="onboard_sdk_BaseButtonText">...</style>
<style name="onboard_sdk_ButtonTextBig" parent="onboard_sdk_BaseButtonTextBig">...</style>
<style name="onboard_sdk_ButtonTextMedium" parent="onboard_sdk_BaseButtonTextMedium">...</style>
<style name="onboard_sdk_ButtonTextSmall" parent="onboard_sdk_BaseButtonTextSmall">...</style>
<style name="onboard_sdk_ProgressBar" parent="onboard_sdk_BaseProgressBar">...</style>
<style name="onboard_sdk_ProgressBarIndeterminate" parent="onboard_sdk_BaseProgressBarIndeterminate">...</style>
<style name="onboard_sdk_Divider" parent="onboard_sdk_BaseDivider">...</style>
<style name="onboard_sdk_BottomSheetItem" parent="onboard_sdk_BaseBottomSheetItem">...</style>
<style name="onboard_sdk_ScanFeedbackText" parent="onboard_sdk_BaseScanFeedbackText">...</style>
<style name="onboard_sdk_ManualCaptureInstructionsText" parent="onboard_sdk_BaseManualCaptureInstructionsText">...</style>
<style name="onboard_sdk_ExitDialog_PositiveButton" parent="onboard_sdk_BaseExitDialog_PositiveButton">...</style>
<style name="onboard_sdk_ExitDialog_NegativeButton" parent="onboard_sdk_BaseExitDialog_NegativeButton">...</style>
<style name="onboard_sdk_ExitDialog" parent="onboard_sdk_BaseExitDialog">...</style>
<style name="onboard_sdk_CountdownAnimationBackground" parent="onboard_sdk_BaseCountdownAnimationBackground">...</style>
<style name="onboard_sdk_CountdownAnimationText" parent="onboard_sdk_BaseCountdownAnimationText">...</style>
<style name="onboard_sdk_IncodeSnackbar_Content" parent="onboard_sdk_IncodeSnackbar_BaseContent">...</style>
<style name="onboard_sdk_IncodeSnackbar_Action" parent="onboard_sdk_IncodeSnackbar_BaseAction">...</style>
<style name="onboard_sdk_IncodeSnackbar_Background" parent="onboard_sdk_IncodeSnackbar_BaseBackground">...</style>
Some of the UI elements have their own Styles that inherit from these General styles, but can also be customized individually:
<!-- Need Help Button (inherits from onboard_sdk_ButtonSecondarySmall) -->
<style name="onboard_sdk_ButtonNeedHelp" parent="onboard_sdk_BaseButtonNeedHelp"></style>
<!-- Need Help Manual Capture Button (inherits from onboard_sdk_ButtonTextSmall) -->
<style name="onboard_sdk_ButtonNeedHelpManualCapture" parent="onboard_sdk_BaseButtonNeedHelpManualCapture"></style>
<!-- Scan Feedback Text (inherits from onboard_sdk_Headline3) -->
<style name="onboard_sdk_ScanFeedbackText" parent="onboard_sdk_BaseScanFeedbackText"></style>
<!-- Manual Capture Instructions Text (inherits from onboard_sdk_LabelBig) -->
<style name="onboard_sdk_ManualCaptureInstructionsText" parent="onboard_sdk_BaseManualCaptureInstructionsText"></style>
2. Theme configuration
This guide explains how to use the theme configuration feature in the Welcome SDK to dynamically load styles.
This feature is useful when using multiple styles for a single 'View' (e.g. Button),
and you want to switch between them depending on the preferences of your users.
Prerequisites
Make sure you have the extensions
dependency in your build.gradle
:
implementation 'com.incode.sdk:extensions:1.1.0'
Usage
Setting a custom theme
First create your theme:
<style name="CustomTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">#00B2FD</item>
<item name="colorPrimaryDark">#2266D8</item>
<item name="colorAccent">#00B2FD</item>
<item name="android:textColor">#20263D</item>
<item name="android:windowBackground">#FFFFFF</item>
<item name="android:windowTranslucentStatus" tools:targetApi="kitkat">true</item>
<item name="android:windowContentTransitions">true</item>
</style>
Then create ThemeConfiguration
and set it through CommonConfig
:
- Java
- Kotlin
ThemeConfiguration themeConfiguration = new ThemeConfiguration.Builder()
.setCustomTheme(R.style.CustomTheme)
.build();
CommonConfig commonConfig = new CommonConfig.Builder()
.setThemeConfiguration(themeConfiguration)
.build();
IncodeWelcome.getInstance().setCommonConfig(commonConfig);
val themeConfiguration: ThemeConfiguration = ThemeConfiguration.Builder()
.setCustomTheme(R.style.CustomTheme)
.build()
val commonConfig: CommonConfig = CommonConfig.Builder()
.setThemeConfiguration(themeConfiguration)
.build()
IncodeWelcome.getInstance().setCommonConfig(commonConfig)
Setting view styles
Create your own styles in XML:
<style name="Headline1">
<item name="android:fontFamily">@font/onboard_sdk_FontFamilyBold</item>
<item name="android:textColor">#2266D8</item>
<item name="android:textSize">32sp</item>
<item name="android:maxLines">2</item>
<item name="android:lineSpacingExtra">0sp</item>
<item name="android:gravity">center_horizontal</item>
<item name="autoSizeTextType">uniform</item>
<item name="autoSizeMinTextSize">10sp</item>
</style>
<style name="Headline2">
<item name="android:fontFamily">@font/onboard_sdk_FontFamilyBold</item>
<item name="android:textColor">#2266D8</item>
<item name="android:textSize">26sp</item>
<item name="android:maxLines">2</item>
<item name="android:lineSpacingExtra">0sp</item>
<item name="android:gravity">center_horizontal</item>
<item name="autoSizeTextType">uniform</item>
<item name="autoSizeMinTextSize">10sp</item>
</style>
Or extend our styles:
<style name="Headline1" parent="onboard_sdk_Headline1">
<item name="android:fontFamily">@font/onboard_sdk_FontFamilyBold</item>
<item name="android:textColor">#2266D8</item>
<item name="android:textSize">32sp</item>
<item name="android:maxLines">2</item>
</style>
ThemeConfiguration
offers a defined set of methods for applying your own style per view type e.g. Headline1
, LabelBig
, etc.
Use some or all of the following methods to override default styles with your own:
- Java
- Kotlin
ThemeConfiguration themeConfiguration = new ThemeConfiguration.Builder()
.setHeadline1Style(R.style.Headline1)
.setHeadline2Style(R.style.Headline2)
.setHeadline3Style(R.style.Headline3)
.setHeadline4Style(R.style.Headline4)
.setBodyBigStyle(R.style.BodyBig)
.setBodyLeadStyle(R.style.BodyLead)
.setBodyQuoteStyle(R.style.BodyQuote)
.setBodyLongTextStyle(R.style.BodyLongText)
.setLabelBigStyle(R.style.LabelBig)
.setLabelSmallStyle(R.style.LabelSmall)
.setBottomSheetItemStyle(R.style.BottomSheetItem)
.setScanFeedbackTextStyle(R.style.ScanFeedbackText)
.setManualCaptureInstructionsTextStyle(R.style.ManualCaptureInstructionsText)
.setInputSpecialStyle(R.style.InputSpecial)
.setInputBigStyle(R.style.InputBig)
.setInputSmallStyle(R.style.InputSmall)
.setInputEditTextStyle(R.style.Input)
.setInputEditTextErrorStyle(R.style.InputError)
.setInputSpinnerStyle(R.style.InputSpinner)
.setSpinnerStyle(R.style.Spinner)
.setButtonPrimaryBigStyle(R.style.ButtonBig)
.setButtonPrimaryMediumStyle(R.style.ButtonMedium)
.setButtonPrimarySmallStyle(R.style.ButtonSmall)
.setButtonSecondaryBigStyle(R.style.ButtonSecodnarySmall)
.setButtonSecondaryMediumStyle(R.style.ButtonSecodnaryMedium)
.setButtonSecondarySmallStyle(R.style.ButtonSecodnarySmall)
.setButtonTextBigStyle(R.style.ButtonTextBig)
.setButtonTextMediumStyle(R.style.ButtonTextMedium)
.setButtonTextSmallStyle(R.style.ButtonTextSmall)
.setButtonNeedHelpManualCaptureStyle(R.style.ButtonNeedHelpManualCapture)
.setDividerStyle(R.style.DividerStyle)
.build();
CommonConfig commonConfig = new CommonConfig.Builder()
.setThemeConfiguration(themeConfiguration)
.build();
IncodeWelcome.getInstance().setCommonConfig(commonConfig);
val themeConfiguration: ThemeConfiguration = ThemeConfiguration.Builder()
.setHeadline1Style(R.style.Headline1)
.setHeadline2Style(R.style.Headline2)
.setHeadline3Style(R.style.Headline3)
.setHeadline4Style(R.style.Headline4)
.setBodyBigStyle(R.style.BodyBig)
.setBodyLeadStyle(R.style.BodyLead)
.setBodyQuoteStyle(R.style.BodyQuote)
.setBodyLongTextStyle(R.style.BodyLongText)
.setLabelBigStyle(R.style.LabelBig)
.setLabelSmallStyle(R.style.LabelSmall)
.setBottomSheetItemStyle(R.style.BottomSheetItem)
.setScanFeedbackTextStyle(R.style.ScanFeedbackText)
.setManualCaptureInstructionsTextStyle(R.style.ManualCaptureInstructionsText)
.setInputSpecialStyle(R.style.InputSpecial)
.setInputBigStyle(R.style.InputBig)
.setInputSmallStyle(R.style.InputSmall)
.setInputEditTextStyle(R.style.Input)
.setInputEditTextErrorStyle(R.style.InputError)
.setInputSpinnerStyle(R.style.InputSpinner)
.setSpinnerStyle(R.style.Spinner)
.setButtonPrimaryBigStyle(R.style.ButtonBig)
.setButtonPrimaryMediumStyle(R.style.ButtonMedium)
.setButtonPrimarySmallStyle(R.style.ButtonSmall)
.setButtonSecondaryBigStyle(R.style.ButtonSecodnarySmall)
.setButtonSecondaryMediumStyle(R.style.ButtonSecodnaryMedium)
.setButtonSecondarySmallStyle(R.style.ButtonSecodnarySmall)
.setButtonTextBigStyle(R.style.ButtonTextBig)
.setButtonTextMediumStyle(R.style.ButtonTextMedium)
.setButtonTextSmallStyle(R.style.ButtonTextSmall)
.setButtonNeedHelpManualCaptureStyle(R.style.ButtonNeedHelpManualCapture)
.setDividerStyle(R.style.DividerStyle)
.build()
val commonConfig: CommonConfig = CommonConfig.Builder()
.setThemeConfiguration(themeConfiguration)
.build()
IncodeWelcome.getInstance().setCommonConfig(commonConfig)
3. Changing texts
3.1 Override strings.xml
If you wish to change specific texts that are displayed to the user throughout the flow, just add these strings to your strings.xml
. If your app is localized to multiple languages, please make sure you put their translations in corresponding strings.xml
files as well. The SDK provides default texts for English (en), Spanish (es), and Portuguese (pt) locales.
For the list of customizable text in modules that support Capture-Only Mode, see the Customizable Strings section of the Capture-Only Mode documentation.
All other customizable text elements are listed below:
<!-- CAPTURE-ONLY MODE STRINGS -->
<string name="onboard_sdk_dialog_camera_permissions_mandatory_title">Incode Welcome needs\nCamera access to work</string>
<string name="onboard_sdk_dialog_location_permissions_mandatory_title">Incode Welcome needs\nLocation access to work</string>
<string name="onboard_sdk_dialog_microphone_permissions_mandatory_title">Incode Welcome needs\nMicrophone access to work</string>
<string name="onboard_sdk_dialog_camera_permissions_mandatory_subtitle">Please open Settings, go to\nApp Permissions and enable Camera</string>
<string name="onboard_sdk_dialog_location_permissions_mandatory_subtitle">Please open Settings, go to\nApp Permissions and enable Location</string>
<string name="onboard_sdk_dialog_microphone_permissions_mandatory_subtitle">Please open Settings, go to\nApp Permissions and enable Microphone</string>
<string name="onboard_sdk_dialog_permission_btn_open_settings">OPEN SETTINGS</string>
<string name="onboard_sdk_btn_continue">Continue</string>
<string name="onboard_sdk_ok">OK</string>
<string name="onboard_sdk_btn_skip">Skip</string>
<string name="onboard_sdk_btn_next">Next</string>
<string name="onboard_sdk_btn_start">Start</string>
<!-- IntroActivity -->
<string name="onboard_sdk_intro_title">For this process you will need:</string>
<string name="onboard_sdk_intro_check_id">Valid ID</string>
<string name="onboard_sdk_intro_check_passport">Valid Passport</string>
<string name="onboard_sdk_intro_check_id_or_passport">Valid ID or Passport</string>
<string name="onboard_sdk_intro_check_address">Recent Proof of Address</string>
<string name="onboard_sdk_intro_check_selfie">To take a Selfie</string>
<string name="onboard_sdk_intro_check_medical_doc">Valid Medical Document</string>
<string name="onboard_sdk_intro_check_other_doc">Valid Document</string>
<string name="onboard_sdk_intro_data_protected_label">Your data is protected by Incode</string>
<string name="onboard_sdk_intro_data_protected_highlighted_text">Incode</string>
<string name="onboard_sdk_intro_confirm_btn">I Confirm</string>
<string name="onboard_sdk_intro_btn_continue">@string/onboard_sdk_btn_continue</string>
<!-- PhoneNumberActivity -->
<string name="onboard_sdk_enter_phone_number">Enter phone number</string>
<string name="onboard_sdk_error_unknown_error">Unknown error</string>
<string name="onboard_sdk_phone_number_btn_continue">@string/onboard_sdk_btn_continue</string>
<!-- EmailAddressActivity -->
<string name="onboard_sdk_enter_email_address">Enter your email</string>
<string name="onboard_sdk_email_address_btn_continue">@string/onboard_sdk_btn_continue</string>
<!-- NameActivity -->
<string name="onboard_sdk_enter_name">Enter your name</string>
<!-- Common SelectSourceActivity -->
<string name="onboard_sdk_select_document_source_photo_library">Photo Library</string>
<string name="onboard_sdk_select_document_source_take_photo">Take Photo</string>
<string name="onboard_sdk_select_document_source_browse">Browse…</string>
<string name="onboard_sdk_select_document_source_error_opening_file">Error opening file</string>
<!-- SelectAddressStatementSourceActivity -->
<string name="onboard_sdk_select_address_statement_source_title">Upload a document to verify your identity</string>
<string name="onboard_sdk_select_address_statement_source_subtitle">This can be any legal documentation that proves your address.</string>
<string name="onboard_sdk_select_address_statement_source_bottom_text">Take a photo or upload a PDF, JPG, or PNG</string>
<string name="onboard_sdk_select_address_statement_source_btn_continue">@string/onboard_sdk_btn_continue</string>
<!-- SelectPaymentProofSourceActivity -->
<string name="onboard_sdk_select_payment_proof_source_title">Upload your proof of payment</string>
<string name="onboard_sdk_select_payment_proof_source_subtitle">This can be a document from your bank or electronic invoice that shows a specific transaction.</string>
<string name="onboard_sdk_select_payment_proof_source_bottom_text">Take a photo or upload JPG, PNG</string>
<string name="onboard_sdk_select_payment_proof_source_btn_continue">@string/onboard_sdk_btn_continue</string>
<!-- SelectMedicalDocSourceActivity -->
<string name="onboard_sdk_select_medical_doc_source_title">Upload your medical document</string>
<string name="onboard_sdk_select_medical_doc_source_subtitle">This can be a document that shows you are medically insured.</string>
<string name="onboard_sdk_select_medical_doc_source_bottom_text">Take a photo or upload JPG, PNG</string>
<string name="onboard_sdk_select_medical_doc_source_btn_continue">@string/onboard_sdk_btn_continue</string>
<!-- SelectOtherDocument1SourceActivity -->
<string name="onboard_sdk_select_other_document_1_source_title">Upload a document to verify your identity</string>
<string name="onboard_sdk_select_other_document_1_source_subtitle">This can be any legal documentation that proves your identity.</string>
<string name="onboard_sdk_select_other_document_1_source_bottom_text">Take a photo or upload JPG, PNG</string>
<string name="onboard_sdk_select_other_document_1_source_btn_continue">@string/onboard_sdk_btn_continue</string>
<!-- SelectOtherDocument2SourceActivity -->
<string name="onboard_sdk_select_other_document_2_source_title">Upload a document to verify your identity</string>
<string name="onboard_sdk_select_other_document_2_source_subtitle">This can be any legal documentation that proves your identity.</string>
<string name="onboard_sdk_select_other_document_2_source_bottom_text">Take a photo or upload JPG, PNG</string>
<string name="onboard_sdk_select_other_document_2_source_btn_continue">@string/onboard_sdk_btn_continue</string>
<!-- SelectOtherDocument3SourceActivity -->
<string name="onboard_sdk_select_other_document_3_source_title">Upload a document to verify your identity</string>
<string name="onboard_sdk_select_other_document_3_source_subtitle">This can be any legal documentation that proves your identity.</string>
<string name="onboard_sdk_select_other_document_3_source_bottom_text">Take a photo or upload JPG, PNG</string>
<string name="onboard_sdk_select_other_document_3_source_btn_continue">@string/onboard_sdk_btn_continue</string>
<!-- TutorialDocumentScanActivity -->
<string name="onboard_sdk_tutorial_document_scan_title">Place your document within the frame and take the photo</string>
<string name="onboard_sdk_tutorial_document_btn_continue">@string/onboard_sdk_btn_continue</string>
<!-- TutorialSelfieActivity -->
<string name="onboard_sdk_tutorial_selfie_title">Let’s take a selfie</string>
<string name="onboard_sdk_tutorial_selfie_subtitle">Keep a neutral expression, find balanced light, and remove any glasses or hats</string>
<!-- IDTypeChooserActivity -->
<string name="onboard_sdk_id_type_chooser_title">Select what document you want to scan</string>
<string name="onboard_sdk_btn_id">Driver License\nID Card\nResident Card</string>
<string name="onboard_sdk_btn_passport">Passport\nVisa</string>
<!-- TutorialFrontActivity -->
<string name="onboard_sdk_tutorial_front_1_title">Place your\nID inside the frame</string>
<string name="onboard_sdk_tutorial_front_2_title">Avoid\nshadows and glare </string>
<string name="onboard_sdk_tutorial_front_3_title">Make sure\nthe photo is sharp</string>
<string name="onboard_sdk_tutorial_front_4_title">Make sure\ninfo is readable</string>
<!-- TutorialPassportActivity -->
<string name="onboard_sdk_tutorial_passport_1_title">Place your Passport inside the\nframe and take a photo</string>
<string name="onboard_sdk_tutorial_passport_2_title">Avoid\nshadows and glare </string>
<string name="onboard_sdk_tutorial_passport_3_title">Make sure\nthe photo is sharp</string>
<string name="onboard_sdk_tutorial_passport_4_title">Make sure\ninfo is readable</string>
<!-- TutorialBackActivity -->
<string name="onboard_sdk_tutorial_back_title">Now show the\nback side of your ID</string>
<string name="onboard_sdk_tutorial_back_title_highlighted_part">back side</string>
<string name="onboard_sdk_tutorial_back_subtitle_1">Avoid shadows and glare</string>
<string name="onboard_sdk_tutorial_back_subtitle_2">The photo will be taken automatically</string>
<string name="onboard_sdk_tutorial_back_btn_continue">@string/onboard_sdk_btn_continue</string>
<!-- IdValidationFeedback -->
<string name="onboard_sdk_validation_autocapture_hold_still">Don’t move!\nTaking photo…</string>
<string name="onboard_sdk_validation_fill_rectangle_with_id">Fill the rectangle\nwith your ID</string>
<string name="onboard_sdk_validation_fill_rectangle_with_passport">Fill the rectangle\nwith your Passport</string>
<string name="onboard_sdk_validation_warn_show_front">Show the front of the ID</string>
<string name="onboard_sdk_validation_warn_show_back">Show the back of the ID</string>
<string name="onboard_sdk_validation_manual_capture_instructions">1. Put ID in the frame\n2. Press capture button</string>
<string name="onboard_sdk_validation_warn_id_too_dark">Too dark</string>
<string name="onboard_sdk_validation_warn_id_out_of_focus">ID out of focus</string>
<string name="onboard_sdk_validation_warn_id_glare_detected">Glare detected</string>
<string name="onboard_sdk_validation_warn_passport_too_dark">Too dark</string>
<string name="onboard_sdk_validation_warn_passport_out_of_focus">Passport out of focus</string>
<string name="onboard_sdk_validation_warn_passport_glare_detected">Glare detected</string>
<string name="onboard_sdk_validation_success">All good!</string>
<!-- IdValidationActivity -->
<string name="onboard_sdk_validation_show_front">Show the front of the ID</string>
<string name="onboard_sdk_validation_show_front_secondary_text">@string/onboard_sdk_validation_show_front</string>
<string name="onboard_sdk_validation_show_back">Show the back of the ID</string>
<string name="onboard_sdk_validation_show_back_secondary_text">@string/onboard_sdk_validation_show_back</string>
<string name="onboard_sdk_validation_show_passport">Show passport page with photo</string>
<string name="onboard_sdk_id_scan_help_btn">Help</string>
<string name="onboard_sdk_id_scan_help_common_issues">Common issues</string>
<string name="onboard_sdk_id_scan_help_common_issue_1">ID too far or out of frame</string>
<string name="onboard_sdk_id_scan_help_common_issue_subtext_1"></string>
<string name="onboard_sdk_id_scan_help_common_issue_2">Glare or shadows on ID</string>
<string name="onboard_sdk_id_scan_help_common_issue_subtext_2"></string>
<string name="onboard_sdk_id_scan_help_common_issue_3">Camera lens dirty</string>
<string name="onboard_sdk_id_scan_help_common_issue_subtext_3"></string>
<string name="onboard_sdk_id_scan_help_btn_ok">OK, try again</string>
<string name="onboard_sdk_id_scan_help_btn_manual_capture">I prefer to capture the photo manually</string>
<string name="onboard_sdk_document_scan_help_common_issues">Common issues</string>
<string name="onboard_sdk_document_scan_help_common_issue_1">Document is too far or out of frame</string>
<string name="onboard_sdk_document_scan_help_common_issue_subtext_1"></string>
<string name="onboard_sdk_document_scan_help_common_issue_2">Document is folded</string>
<string name="onboard_sdk_document_scan_help_common_issue_subtext_2"></string>
<string name="onboard_sdk_document_scan_help_common_issue_3">Glare or shadows on the document</string>
<string name="onboard_sdk_document_scan_help_common_issue_subtext_3"></string>
<string name="onboard_sdk_document_scan_help_common_issue_4">Camera lens is dirty</string>
<string name="onboard_sdk_document_scan_help_common_issue_subtext_4"></string>
<string name="onboard_sdk_document_scan_help_btn_ok">OK, try again</string>
<!-- ReviewActivity -->
<string name="onboard_sdk_review_your_photo">Review your photo</string>
<string name="onboard_sdk_review_your_photo_subtitle">Make sure the letters are clear and it has good lighting</string>
<string name="onboard_sdk_review_your_photo_btn_scan_again">@string/onboard_sdk_validation_address_btn_scan_again</string>
<string name="onboard_sdk_validation_address_btn_scan_again">"< Retake photo"</string> <!-- Remove! -->
<string name="onboard_sdk_review_your_photo_btn_continue">@string/onboard_sdk_btn_continue</string>
<!-- GeolocationActivity -->
<string name="onboard_sdk_determine_location">We need to determine\nyour location</string>
<string name="onboard_sdk_current_location_label">You are currently in:</string>
<string name="onboard_sdk_location_unavailable">Location not\ndetermined</string>
<string name="onboard_sdk_btn_finish">Finish</string>
<string name="onboard_sdk_geolocation_btn_continue">@string/onboard_sdk_btn_continue</string>
<!-- SelfieActivity -->
<string name="onboard_sdk_face_scan_manual_capture_instructions">Take photo</string>
<string name="onboard_sdk_face_scan_get_ready">Get ready…</string>
<string name="onboard_sdk_face_scan_warn_selfie_too_dark">Too dark</string>
<string name="onboard_sdk_mask_check_info">Put on your\nface mask</string>
<string name="onboard_sdk_feedback_remove_lenses">Take off your glasses</string>
<string name="onboard_sdk_feedback_face_mask_detected">Face mask detected</string>
<string name="onboard_sdk_feedback_position_your_face">Look at the camera</string>
<string name="onboard_sdk_feedback_face_tilted">Don’t tilt your head</string>
<string name="onboard_sdk_feedback_face_rotated_left">Turn right</string>
<string name="onboard_sdk_feedback_face_rotated_right">Turn left</string>
<string name="onboard_sdk_feedback_align_face">Align face to frame</string>
<string name="onboard_sdk_feedback_blurred_crop">Too blurry.\nClean the camera and hold still.</string>
<string name="onboard_sdk_feedback_face_too_far">Move closer</string>
<string name="onboard_sdk_feedback_face_too_close">Move away</string>
<string name="onboard_sdk_feedback_taking_photo">Don’t move!\nTaking photo…</string>
<string name="onboard_sdk_processing">Processing…</string>
<string name="onboard_sdk_spoof_detected">Poor conditions for selfie. Try in another place.</string>
<!-- SignatureFormActivity -->
<string name="onboard_sdk_signature_title">Digital signature</string>
<string name="onboard_sdk_signature_description">Please sign in the box below to create your digital signature for signing the document.</string>
<string name="onboard_sdk_signature_sign_here">Sign here</string>
<string name="onboard_sdk_signature_btn_clear_canvas">Clear canvas</string>
<string name="onboard_sdk_signature_btn_done">Done</string>
<!-- TutorialVideoSelfieActivity -->
<string name="onboard_sdk_video_selfie_tip_title">Let’s record a video</string>
<string name="onboard_sdk_video_selfie_tip_subtitle">Follow the instructions during the video</string>
<string name="onboard_sdk_video_selfie_tip_btn_continue">@string/onboard_sdk_btn_continue</string>
<!-- VideoSelfieActivity -->
<string name="onboard_sdk_video_selfie_feedback_selfie">Look at the camera</string>
<string name="onboard_sdk_video_selfie_feedback_selfie_processing">Processing…</string>
<string name="onboard_sdk_video_selfie_feedback_selfie_success">Looking good!</string>
<string name="onboard_sdk_video_selfie_feedback_selfie_spoof_detected">Poor conditions for selfie, try in another place</string>
<string name="onboard_sdk_video_selfie_feedback_selfie_lenses_detected">Glasses detected</string>
<string name="onboard_sdk_video_selfie_feedback_selfie_mask_detected">Mask detected</string>
<string name="onboard_sdk_video_selfie_feedback_selfie_error_continue">Continuing the flow. Please wait…</string>
<string name="onboard_sdk_video_selfie_show_document_label_highlighted_part">Proof of Address</string>
<string name="onboard_sdk_video_selfie_show_document_label">Show your Proof of Address and then press Continue</string>
<string name="onboard_sdk_video_selfie_instructions_questions">We need you to verbally confirm that you accept the terms</string>
<string name="onboard_sdk_video_selfie_bottom_feedback_questions">Once you’ve answered, tap Continue:</string>
<string name="onboard_sdk_video_selfie_feedback_voice_consent">Say\n“%1$s”\nout loud</string>
<string name="onboard_sdk_video_selfie_bottom_feedback_voice_consent">Once you’ve accepted, tap Continue:</string>
<string name="onboard_sdk_video_selfie_recording_btn_continue">@string/onboard_sdk_btn_continue</string>
<string name="onboard_sdk_video_selfie_default_question_1">Say your full name out loud</string>
<string name="onboard_sdk_video_selfie_default_question_2">Say your address out loud</string>
<string name="onboard_sdk_video_selfie_default_question_3">Say your gender out loud</string>
<string name="onboard_sdk_video_selfie_default_answer_1"></string>
<string name="onboard_sdk_video_selfie_default_answer_2"></string>
<string name="onboard_sdk_video_selfie_default_answer_3"></string>
<string name="onboard_sdk_video_selfie_default_consent">I accept the terms & conditions</string>
<string name="onboard_sdk_vs_switch_to_back_camera">Switching to back camera…</string>
<string name="onboard_sdk_vs_switch_to_front_camera">Switching to front camera…</string>
<string name="onboard_sdk_vs_improving_resolution">Improving resolution…</string>
<!-- ExitDialog -->
<string name="onboard_sdk_exit_dialog_message">Are you sure you want to exit?</string>
<!-- Empty title by default -->
<string name="onboard_sdk_exit_dialog_title"></string>
<!-- Edit OCR screen -->
<string name="onboard_sdk_edit_ocr_title">Please check your data</string>
<string name="onboard_sdk_edit_ocr_document">Document number</string>
<string name="onboard_sdk_edit_ocr_expiry_date">Expiry Date</string>
<string name="onboard_sdk_edit_ocr_date_of_birth">Date of Birth</string>
<!-- NFC Symbol Confirmation screen -->
<string name="onboard_sdk_epassport_filter_title">Is this symbol visible on your passport cover?</string>
<string name="onboard_sdk_eid_filter_title">Is this symbol visible on the front or back of your ID?</string>
<!-- No NFC Hardware screen -->
<string name="onboard_sdk_no_nfc_hardware_title">We’re sorry, you’re unable to continue the process on this phone</string>
<string name="onboard_sdk_no_nfc_hardware_instruction">Your phone doesn’t have the ability to scan the chip in the document. Please try again using a different phone.</string>
<!-- NFC Scanning screen -->
<string name="onboard_sdk_scan_passport_title_start">Let’s scan the passport chip</string>
<string name="onboard_sdk_scan_passport_title_no_worries">No worries, let’s try again</string>
<string name="onboard_sdk_scan_passport_title_not_working">If that didn’t work…</string>
<string name="onboard_sdk_scan_passport_title_still_not_working">If that still didn’t work…</string>
<string name="onboard_sdk_scan_passport_instruction_start">Hold your phone close to the front cover.</string>
<string name="onboard_sdk_scan_passport_instruction_start_front_text_to_highlight">front cover</string>
<string name="onboard_sdk_scan_passport_instruction_front">Remove your passport from any folder or cover and hold your phone close to the front cover of your passport.</string>
<string name="onboard_sdk_scan_passport_instruction_try">Try holding your phone close to the %1$s of your passport. If nothing happens, try slowly moving your phone across the page.</string>
<string name="onboard_sdk_scan_passport_instruction_first_text_to_highlight">first page</string>
<string name="onboard_sdk_scan_passport_instruction_photo_text_to_highlight">photo page</string>
<string name="onboard_sdk_scan_passport_instruction_back_text_to_highlight">inner back page</string>
<string name="onboard_sdk_scan_id_title_start">Read the chip on the ID</string>
<string name="onboard_sdk_scan_id_instruction_first">1. Hold the ID against the phone’s center back.</string>
<string name="onboard_sdk_scan_id_instruction_second">2. Make sure your ID and phone are touching.</string>
<string name="onboard_sdk_scan_id_instruction_third">3. Hold still until scanning is complete.</string>
<string name="onboard_sdk_scan_id_instruction_first_text_to_highlight">phone’s center back</string>
<string name="onboard_sdk_scan_id_instruction_second_text_to_highlight">are touching</string>
<string name="onboard_sdk_scan_id_instruction_third_text_to_highlight">Hold still</string>
<string name="onboard_sdk_btn_start_scan">Start scanning</string>
<string name="onboard_sdk_dialog_nfc_access_mandatory_title">Incode Welcome needs\nNFC access to work</string>
<string name="onboard_sdk_dialog_nfc_access_mandatory_subtitle">Please open Settings and enable NFC</string>
<!-- Scanning Bottom Sheet -->
<string name="onboard_sdk_scan_bottom_sheet_title_ready">Ready to scan</string>
<string name="onboard_sdk_scan_bottom_sheet_title_scanning">Scanning, hold still…</string>
<string name="onboard_sdk_scan_bottom_sheet_instruction_ready">Once you see a change on the screen, keep the phone steady</string>
<string name="onboard_sdk_scan_bottom_sheet_instruction_scanning">Scanning, don’t move your phone</string>
<string name="onboard_sdk_scan_bottom_sheet_instruction_scanned">Scan successful</string>
<string name="onboard_sdk_scan_bottom_sheet_instruction_uploading">Uploading, please wait…</string>
<string name="onboard_sdk_scan_bottom_sheet_instruction_failed">We couldn’t scan the chip</string>
<!-- Don't Move Dialog -->
<string name="onboard_sdk_dont_move_dialog_title">Keep your phone and document still</string>
<string name="onboard_sdk_dont_move_dialog_instruction">Make sure you don’t move while scanning is in progress.</string>
<!-- Common NFC Scanning issues Screen -->
<string name="onboard_sdk_nfc_scan_help_common_issues">Common issues</string>
<string name="onboard_sdk_nfc_scan_help_common_issue_1">Passport is covered</string>
<string name="onboard_sdk_nfc_scan_help_common_issue_2">Phone is far away from the document</string>
<string name="onboard_sdk_nfc_scan_help_common_issue_3">Chip is on another page in the passport</string>
<string name="onboard_sdk_nfc_scan_help_common_issue_4">Moving the phone while scanning has initiated</string>
<string name="onboard_sdk_nfc_scan_help_common_issue_5">Phone cover interferes with the scan</string>
<string name="onboard_sdk_nfc_btn_ok_try_again">OK, try again</string>
<!-- NFC Scan results Screen -->
<string name="onboard_sdk_document_nfc_scan_result_success">Document chip scan succeeded</string>
<string name="onboard_sdk_document_nfc_scan_result_failure">Unable to authenticate document chip</string>
<!-- OTHER STRINGS -->
<!-- Regions -->
<string name="onboard_sdk_region_mexico">Mexico</string>
<string name="onboard_sdk_region_usa">Global</string>
<string name="onboard_sdk_region_can">Canada</string>
<string name="onboard_sdk_success">Success</string>
<string name="onboard_sdk_try_again">Try again</string>
<string name="onboard_sdk_error_retry">Try again</string>
<string name="onboard_sdk_download_preparing">Downloading…</string>
<string name="onboard_sdk_download_error_network">Network error occurred. Please make sure you are connected to the Internet and try again.</string>
<string name="onboard_sdk_download_error_space">Your phone does not have enough memory. Please free up 20 MB of space by deleting applications / photos and try again.</string>
<string name="onboard_sdk_download_error_loading">Error while loading libraries.</string>
<string name="onboard_sdk_no_internet_connection">Please check your Internet connection and try again</string>
<string name="onboard_sdk_unknown_server_error">Oops… something went wrong. Please try later.</string>
<!-- OTP -->
<string name="onboard_sdk_generic_otp_veryfing">Verifying…</string>
<string name="onboard_sdk_generic_otp_incorrect_code">Incorrect code. Please try again.</string>
<string name="onboard_sdk_generic_otp_try_again_in_x_seconds">Didn’t receive the code? Try again in %d seconds</string>
<string name="onboard_sdk_generic_otp_try_again">Try again</string>
<!-- SMS OTP -->
<string name="onboard_sdk_sms_otp_title">Verify your phone number</string>
<string name="onboard_sdk_sms_otp_subtitle">Please enter the code we’ve sent via SMS</string>
<string name="onboard_sdk_sms_otp_try_again_or_change_number">Didn’t receive the code? Try again or Change phone number</string>
<string name="onboard_sdk_sms_otp_try_again">Try again</string>
<string name="onboard_sdk_sms_otp_change_phone_number">Change phone number</string>
<!-- EMAIL OTP -->
<string name="onboard_sdk_email_otp_title">Verify your email address</string>
<string name="onboard_sdk_email_otp_subtitle">Please enter the code we’ve sent via email</string>
<string name="onboard_sdk_email_otp_try_again_or_change_email">Didn’t receive the code? Try again or Change email</string>
<string name="onboard_sdk_email_otp_try_again">Try again</string>
<string name="onboard_sdk_email_otp_change_email">Change email</string>
<!-- MachineLearningConsentActivity -->
<string name="onboard_sdk_ml_consent_title" translatable="false">Machine Learning Consent</string>
<string name="onboard_sdk_ml_consent_checkbox">I give my consent</string>
<!-- ConferenceConnectionActivity -->
<string name="onboard_sdk_conference_hang_on">Hang on</string>
<string name="onboard_sdk_conference_hang_on_subtitle">We’re connecting you with a representative</string>
<string name="onboard_sdk_conference_average_waiting_time_msg">This usually takes 2 – 3 minutes.</string>
<string name="onboard_sdk_conference_interviewer_name">Thomas Keys</string>
<string name="onboard_sdk_conference_interviewer_connected">connected</string>
<!-- TutorialQRScanActivity -->
<string name="onboard_sdk_qr_tip_title">Locate the QR code inside the document</string>
<string name="onboard_sdk_qr_tip_subtitle">QR code will be read automatically</string>
<string name="onboard_sdk_qr_tip_btn_continue">@string/onboard_sdk_btn_continue</string>
<!-- QRScanActivity -->
<string name="onboard_sdk_qr_scan_feedback_top">Place the QR code\ninside the box</string>
<string name="onboard_sdk_qr_scan_help_btn">Help</string>
<string name="onboard_sdk_qr_scan_help_common_issues">Common issues</string>
<string name="onboard_sdk_qr_scan_help_common_issue_1">QR cropped out of frame</string>
<string name="onboard_sdk_qr_scan_help_common_issue_2">QR too close or too far</string>
<string name="onboard_sdk_qr_scan_help_common_issue_3">Bad capture angle</string>
<string name="onboard_sdk_qr_scan_help_common_issue_4">Blurred or damaged QR</string>
<string name="onboard_sdk_qr_scan_help_btn_ok">OK, try again</string>
<string name="onboard_sdk_qr_scan_processing">Processing…</string>
<string name="onboard_sdk_qr_scan_success">Done!</string>
<string name="onboard_sdk_qr_scan_failed">QR scan\nunsuccessful!</string>
<!-- IdValidationFeedback -->
<string name="onboard_sdk_validation_on_server_in_progress">Processing…</string>
<string name="onboard_sdk_validation_front_id_validated">ID front validated!</string>
<string name="onboard_sdk_validation_back_id_validated">All done!</string>
<string name="onboard_sdk_validation_passport_validated">All done!</string>
<string name="onboard_sdk_validation_glare_detected">Glare detected</string>
<string name="onboard_sdk_validation_sharpness_failed">ID out of focus</string>
<string name="onboard_sdk_validation_passport_sharpness_failed">Passport out of focus</string>
<string name="onboard_sdk_validation_shadow_failed">Shadow detected</string>
<string name="onboard_sdk_validation_classification_failed">ID scan failed</string>
<string name="onboard_sdk_validation_passport_classification_failed">Passport scan failed</string>
<string name="onboard_sdk_validation_front_id_scan_failure">Front ID scan fail</string>
<string name="onboard_sdk_validation_back_id_scan_failure">Back ID scan fail</string>
<string name="onboard_sdk_validation_passport_scan_failure">Passport scan fail</string>
<string name="onboard_sdk_validation_front_id_scan_success">Front ID scan success</string>
<string name="onboard_sdk_validation_back_id_scan_success">Back ID scan success</string>
<string name="onboard_sdk_validation_front_id_no_face">No face found in ID</string>
<string name="onboard_sdk_validation_id_type_unacceptable">ID type is not accepted</string>
<string name="onboard_sdk_validation_btn_try_again">Try Again</string>
<plurals name="onboard_sdk_validation_attempts_remaining">
<item formatted="true" quantity="one">%d attempt remaining</item>
<item formatted="true" quantity="other">%d attempts remaining</item>
</plurals>
<string name="onboard_sdk_validation_btn_retake_photo">Retake Photo</string>
<string name="onboard_sdk_validation_btn_use_another_id">Use another ID</string>
<string name="onboard_sdk_validation_capture_failed_title">Couldn’t capture</string>
<string name="onboard_sdk_validation_validation_referred_title">Referred to an executive</string>
<string name="onboard_sdk_validation_validation_referred_subtitle">We will notify you with the result</string>
<string name="onboard_sdk_validation_no_document_detected_title">No document detected</string>
<!-- IdValidationActivity -->
<string name="onboard_sdk_id_scan_failed_common_issues">Common issues</string>
<string name="onboard_sdk_id_scan_failed_common_issue_1">Shadows or\nglare present</string>
<string name="onboard_sdk_id_scan_failed_common_issue_2">Photo\nis blurred</string>
<string name="onboard_sdk_id_scan_failed_common_issue_3">Info is\nnot readable</string>
<string name="onboard_sdk_validation_referred_to_executive_btn_continue">@string/onboard_sdk_btn_continue</string>
<string name="onboard_sdk_validation_id_readability_failed">ID not readable</string>
<string name="onboard_sdk_validation_passport_readability_failed">Passport not readable</string>
<string name="onboard_sdk_validation_btn_continue">@string/onboard_sdk_btn_continue</string>
<!-- ProcessIdActivity -->
<string name="onboard_sdk_process_id_loading_title">Hold on a sec…</string>
<string name="onboard_sdk_process_id_loading_subtitle">We’re verifying your identity</string>
<!-- IdInfoActivity -->
<string name="onboard_sdk_id_info_retake">Retake</string>
<string name="onboard_sdk_id_info_title">Please check your data</string>
<string name="onboard_sdk_id_info_full_name">Full name</string>
<string name="onboard_sdk_id_info_date_of_birth">Date of birth</string>
<string name="onboard_sdk_id_info_sex">Sex</string>
<string name="onboard_sdk_id_info_address">Address</string>
<!-- TaxId Validation -->
<string name="onboard_sdk_tax_id">Tax ID</string>
<string name="onboard_sdk_enter_tax_id">Enter your Tax ID</string>
<string name="onboard_sdk_tax_id_validation_in_progress">Validating your Tax ID</string>
<string name="onboard_sdk_tax_id_verified">Tax ID verified!</string>
<string name="onboard_sdk_tax_id_not_verified">Tax ID not verified!</string>
<!-- CURP Validation -->
<string name="onboard_sdk_confirm_curp">Confirm your CURP</string>
<string name="onboard_sdk_confirm_curp_btn_confirm">Confirm</string>
<string name="onboard_sdk_enter_curp">Enter your CURP</string>
<string name="onboard_sdk_curp">CURP</string>
<string name="onboard_sdk_curp_not_valid">CURP not valid</string>
<string name="onboard_sdk_no_curp">I don’t have my CURP.</string>
<string name="onboard_sdk_btn_generate_curp">Generate</string>
<string name="onboard_sdk_curp_validation_in_progress">Validating your CURP</string>
<string name="onboard_sdk_curp_verified">CURP verified!</string>
<string name="onboard_sdk_curp_not_verified">CURP not verified!</string>
<string name="onboard_sdk_curp_generating_in_progress">Generating your CURP</string>
<string name="onboard_sdk_curp_generating_failure_title">Couldn’t generate your CURP</string>
<string name="onboard_sdk_curp_generating_failure_subtitle">Please check your data</string>
<string name="onboard_sdk_curp_generate_title">Generate your CURP</string>
<string name="onboard_sdk_curp_first_name">Name</string>
<string name="onboard_sdk_curp_first_last_name">Last name</string>
<string name="onboard_sdk_curp_second_last_name">Second last name</string>
<string name="onboard_sdk_curp_gender">Gender</string>
<string name="onboard_sdk_curp_birth_date">Birthdate</string>
<string name="onboard_sdk_curp_state">Birth state</string>
<string name="onboard_sdk_btn_generate">Generate</string>
<string name="onboard_sdk_curp_btn_continue">@string/onboard_sdk_btn_continue</string>
<!-- SelfieActivity -->
<string name="onboard_sdk_spoof_confidence">Spoof confidence: %1$s</string>
<string name="onboard_sdk_blurriness">Blurriness: %1$s</string>
<string name="onboard_sdk_brightness">Brightness: %1$s</string>
<string name="onboard_sdk_enroll_success">Success</string>
<string name="onboard_sdk_login_success">Success</string>
<string name="onboard_sdk_login_failed">Access denied</string>
<string name="onboard_sdk_mask_check_success">Success</string>
<string name="onboard_sdk_mask_check_failed">Face mask not detected</string>
<string name="onboard_sdk_selfie_uploading">Uploading…</string>
<string name="onboard_sdk_face_scan_error_4010">Make sure you are the only one in the frame</string>
<string name="onboard_sdk_face_scan_error_4019">Position your face in the center of the frame</string>
<string name="onboard_sdk_face_scan_error_1003">Position your face in the center of the frame</string>
<string name="onboard_sdk_face_scan_error_3004">Position your face in the center of the frame</string>
<string name="onboard_sdk_face_scan_error_3005">Move closer so your face fits the frame</string>
<string name="onboard_sdk_face_scan_error_3006">Photo blurry. Clean the lens and hold still.</string>
<string name="onboard_sdk_face_scan_error_3007">Too dark. Try moving elsewhere.</string>
<string name="onboard_sdk_face_scan_error_3008">Something went wrong. Please try later.</string>
<string name="onboard_sdk_face_scan_error_3009">Something went wrong. Please try later.</string>
<string name="onboard_sdk_face_scan_error_3010">Couldn’t capture. Try moving elsewhere.</string>
<string name="onboard_sdk_face_scan_no_network">No internet connection</string>
<!-- FaceMatchActivity -->
<string name="onboard_sdk_recognition_result_title">Verifying photo\nbased identity</string>
<string name="onboard_sdk_recognition_result_id">ID</string>
<string name="onboard_sdk_recognition_result_nfc">NFC</string>
<string name="onboard_sdk_recognition_result_selfie">Selfie</string>
<string name="onboard_sdk_recognition_result_success">Matched</string>
<string name="onboard_sdk_recognition_result_fail">Couldn’t match\nyou to the ID</string>
<string name="onboard_sdk_recognition_result_fail_id">@string/onboard_sdk_recognition_result_fail</string>
<string name="onboard_sdk_recognition_result_fail_nfc">Faces do not match</string>
<string name="onboard_sdk_recognition_result_liveness_success">Liveness success</string>
<string name="onboard_sdk_recognition_result_liveness_failed">Liveness failed</string>
<string name="onboard_sdk_recognition_result_user_already_exists">User already exists</string>
<!-- ApproveActivity -->
<string name="onboard_sdk_approve_success">Identity confirmed!</string>
<string name="onboard_sdk_approve_fail">Your identity couldn’t be confirmed</string>
<!-- GovernmentValidationActivity -->
<string name="onboard_sdk_ine_validation_in_progress">Connecting to government check…</string>
<string name="onboard_sdk_ine_validation_async">Identity submitted for verification</string>
<string name="onboard_sdk_ine_validation_success">Identity verified!</string>
<string name="onboard_sdk_ine_validation_failure">Identity not\nverified</string>
<string name="onboard_sdk_ine_validation_connection_error">Government check connection error</string>
<string name="onboard_sdk_ine_validation_ine_infrastructure_error">Government check infrastructure error</string>
<string name="onboard_sdk_ine_validation_module_not_supported_error">Module not supported error</string>
<string name="onboard_sdk_ine_validation_missing_document_identifier_error">Missing document identifier</string>
<string name="onboard_sdk_ine_validation_missing_selfie_error">Missing selfie</string>
<string name="onboard_sdk_ine_validation_user_not_found_error">User not found</string>
<string name="onboard_sdk_ine_validation_user_not_in_database">User not in government check DB</string>
<string name="onboard_sdk_ine_validation_insufficient_lookup_data">Insufficient lookup data</string>
<!-- VideoSelfieActivity -->
<string name="onboard_sdk_video_selfie_feedback_selfie_no_match">No match. Try again.</string>
<string name="onboard_sdk_video_selfie_feedback_id_processing">Processing…</string>
<string name="onboard_sdk_video_selfie_feedback_id_scan_failed">ID scan failed. Please try again.</string>
<string name="onboard_sdk_video_selfie_final_feedback_id_scan_failed">ID scan failed</string>
<string name="onboard_sdk_video_selfie_feedback_id_type_match_failed">ID type mismatch. Please show the same ID.</string>
<string name="onboard_sdk_video_selfie_final_feedback_id_type_match_failed">ID type mismatch</string>
<string name="onboard_sdk_video_selfie_feedback_id_photo_verification_failed">ID photo verification failed. Please try again.</string>
<string name="onboard_sdk_video_selfie_feedback_final_id_photo_verification_failed">ID photo verification failed</string>
<string name="onboard_sdk_video_selfie_feedback_id_name_verification_failed">Name verification failed. Please try again.</string>
<string name="onboard_sdk_video_selfie_feedback_final_id_name_verification_failed">Name verification failed</string>
<string name="onboard_sdk_video_selfie_feedback_passport_scan_failed">Scan failed. Please try again.</string>
<string name="onboard_sdk_video_selfie_final_feedback_passport_scan_failed">Scan failed</string>
<string name="onboard_sdk_video_selfie_feedback_passport_type_match_failed">ID type mismatch. Please show the same ID.</string>
<string name="onboard_sdk_video_selfie_final_feedback_passport_type_match_failed">ID type mismatch</string>
<string name="onboard_sdk_video_selfie_feedback_passport_photo_verification_failed">Passport photo verification failed. Please try again.</string>
<string name="onboard_sdk_video_selfie_final_feedback_passport_photo_verification_failed">Passport photo verification failed</string>
<string name="onboard_sdk_video_selfie_feedback_passport_name_verification_failed">Name verification failed. Please try again.</string>
<string name="onboard_sdk_video_selfie_final_feedback_passport_name_verification_failed">Name verification failed</string>
<string name="onboard_sdk_video_selfie_question_error_title">Something went wrong</string>
<string name="onboard_sdk_video_selfie_question_error_suggestion_1">Be sure to be in a place\nwith less ambient noise</string>
<string name="onboard_sdk_video_selfie_question_error_suggestion_2">Preferably use the\nmicrophone of your\nheadphones</string>
<string name="onboard_sdk_video_selfie_question_error_suggestion_3">Be very clear with the\npronunciation</string>
<string name="onboard_sdk_speech_to_text_btn_try_again">Try Again</string>
<string name="onboard_sdk_video_selfie_uploading">Uploading video…</string>
<string name="onboard_sdk_video_selfie_upload_success">Video Successfully Uploaded</string>
<string name="onboard_sdk_video_selfie_upload_failed">Something went wrong</string>
<string name="onboard_sdk_video_selfie_feedback_no_network">No internet connection</string>
<!-- CaptchaActivity -->
<string name="onboard_sdk_btn_submit">Submit</string>
<string name="onboard_sdk_captcha_incorect_code">Incorrect code. Please try again.</string>
<string name="onboard_sdk_captcha_general_error">Something went wrong. Please try again.</string>
<string name="onboard_sdk_captcha_title">Please enter the\n following code</string>
<plurals name="onboard_sdk_captcha_x_seconds_left">
<item formatted="true" quantity="one">%d second left</item>
<item formatted="true" quantity="other">%d seconds left</item>
</plurals>
<string name="onboard_sdk_captcha_generating_code">Generating new code…</string>
<!-- VideoConferenceActivity -->
<string name="onboard_sdk_conference_chat_send">Send</string>
<string name="onboard_sdk_chat_hint">Write a message</string>
<string name="onboard_sdk_chat_with">Chat with %1$s</string>
<!-- CustomWatchlistActivity -->
<string name="onboard_sdk_custom_watchlist_uploading_information">Uploading information…</string>
<string name="onboard_sdk_custom_watchlist_result_success">Success</string>
<string name="onboard_sdk_custom_watchlist_result_fail">Could not process information</string>
<!-- eKYB -->
<string name="onboard_sdk_ekyb_title">Fill out your business credentials</string>
<string name="onboard_sdk_ekyb_business">Business name</string>
<string name="onboard_sdk_ekyb_house_number">House Number</string>
<string name="onboard_sdk_ekyb_street">Street</string>
<string name="onboard_sdk_ekyb_business_address_2">Address 2 (optional)</string>
<string name="onboard_sdk_ekyb_country">Country</string>
<string name="onboard_sdk_ekyb_city">City</string>
<string name="onboard_sdk_ekyb_state">State</string>
<string name="onboard_sdk_ekyb_zipcode">Postal code</string>
<string name="onboard_sdk_ekyb_tax_id">Tax ID number</string>
<string name="onboard_sdk_ekyb_business_failure">Business not verified…</string>
<string name="onboard_sdk_ekyb_error_name_mandatory">Business name cannot be empty</string>
<string name="onboard_sdk_ekyb_error_country_mandatory">Please select a country</string>
<string name="onboard_sdk_ekyb_error_address_mandatory">Address cannot be empty</string>
<string name="onboard_sdk_ekyb_error_field_mandatory">Required field</string>
<!-- ActivityResults -->
<string name="onboard_sdk_error_token_expired">The access token has expired</string>
<string name="onboard_sdk_results_yes">Yes</string>
<string name="onboard_sdk_results_no">No</string>
<string name="onboard_sdk_results_fetching_in_progress">Fetching results…</string>
<string name="onboard_sdk_results_fragment_title_id_verification">ID Verification</string>
<string name="onboard_sdk_results_fragment_title_liveness_check">Liveness Check</string>
<string name="onboard_sdk_results_fragment_title_facial_recognition">Facial Recognition</string>
<string name="onboard_sdk_results_fragment_title_government_validation">Government + Incode Check</string>
<string name="onboard_sdk_results_needs_review">NEEDS REVIEW</string>
<string name="onboard_sdk_id_verification_manual_check_needed">Manual check needed</string>
<string name="onboard_sdk_section_title_photo_security_and_quality">Photo security & quality</string>
<string name="onboard_sdk_section_title_id_specific">ID specific</string>
<string name="onboard_sdk_facial_recognition_label_selfie">Selfie</string>
<string name="onboard_sdk_facial_recognition_label_id">ID Scan</string>
<string name="onboard_sdk_facial_recognition_match">It’s a match!</string>
<string name="onboard_sdk_facial_recognition_mismatch">No match</string>
<string name="onboard_sdk_government_label_selfie">Incode Selfie</string>
<string name="onboard_sdk_government_label_ine">Government Check Data</string>
<string name="onboard_sdk_government_face_match">It’s a match!</string>
<string name="onboard_sdk_government_face_mismatch">No match</string>
<string name="onboard_sdk_section_title_ocr_validation">OCR Validation</string>
<string name="onboard_sdk_choose_provider">Choose provider:</string>
<string name="onboard_sdk_provider_incode">Incode</string>
<string name="onboard_sdk_provider_nom151" translatable="false">NOM-151</string>
<!-- UserConsentActivity -->
<string name="onboard_sdk_user_consent_title">Legal</string>
<string name="onboard_sdk_user_consent_subtitle">Almost done! To improve your bank experience, please accept the following:</string>
<string-array name="onboard_sdk_user_consent_list">
<item>I accept the Digital Banking Contract</item>
<item>I confirm that my info is valid</item>
<item>I authorize credit information check</item>
<item>I authorize my information sharing to Bank of Mexico technology platform</item>
<item>I’m not the owner of exchange offices, payment processors, pyramid schemes, lenders, nightclubs and similar businesses</item>
</string-array>
<string name="onboard_sdk_btn_reports">Reports</string>
<string name="onboard_sdk_user_consent_btn_finish">I agree</string>
<string name="onboard_sdk_btn_cancel">Cancel</string>
<string name="onboard_sdk_user_consent_checkbox">Acknowledged and provide my informed consent</string>
<string name="onboard_sdk_user_consent_cancel_dialog_title">User consent is mandatory</string>
<string name="onboard_sdk_user_consent_cancel_dialog_message">Are you sure you want to quit the process?</string>
<string name="onboard_sdk_user_consent_cancel_dialog_button_positive">Continue</string>
<string name="onboard_sdk_user_consent_cancel_dialog_button_negative">Quit</string>
<string name="onboard_sdk_report_not_available">Sorry, report is not available at the moment.</string>
<string name="onboard_sdk_show_report_app_unavailable">Sorry, there is no PDF viewer app installed on this device. Please install it first.</string>
<string name="onboard_sdk_qr_scan_not_operational">QR scan not ready. Please update Google Play Services.</string>
<string name="onboard_sdk_face_scan_not_operational">Face scan not ready. Please update Google Play Services.</string>
<string name="onboard_sdk_feedback_open_eyes">Keep your eyes open</string>
<string name="onboard_sdk_feedback_multiple_faces_detected">Make sure you are the only person in the frame</string>
<string-array name="onboard_sdk_id_results_mode_array">
<item>Accurate</item>
<item>Fast</item>
</string-array>
<string name="onboard_sdk_property_tamperCheck">Tamper Check</string>
<string name="onboard_sdk_property_postitCheck">Postit Check</string>
<string name="onboard_sdk_property_alignment">Alignment</string>
<string name="onboard_sdk_property_fakeCheck">Fake Check</string>
<string name="onboard_sdk_property_idLiveness">ID Liveness</string>
<string name="onboard_sdk_property_screenIdLiveness">Screen Id Liveness</string>
<string name="onboard_sdk_property_paperIdLiveness">Paper Id Liveness</string>
<string name="onboard_sdk_property_balancedLightFront">Balanced light (front side)</string>
<string name="onboard_sdk_property_balancedLightBack">Balanced light (back side)</string>
<string name="onboard_sdk_property_sharpnessFront">Sharpness (front side)</string>
<string name="onboard_sdk_property_sharpnessBack">Sharpness (back side)</string>
<string name="onboard_sdk_property_incodeTamperCheck">Incode TamperCheck</string>
<string name="onboard_sdk_property_incodeFakeCheck">Incode FakeCheck</string>
<string name="onboard_sdk_property_incodeCrossCheck">Incode CrossCheck</string>
<string name="onboard_sdk_property_incodeIdLiveness">Incode ID Liveness</string>
<string name="onboard_sdk_property_qrCheck">QR check</string>
<string name="onboard_sdk_property_issueDateCheck">Issue Date Check</string>
<string name="onboard_sdk_property_documentIdCheck">Document ID Check</string>
<string name="onboard_sdk_property_2DBarcodeRead">2D Barcode Read</string>
<string name="onboard_sdk_property_birthDateCheckDigit">Birth Date Check Digit</string>
<string name="onboard_sdk_property_birthDateCrosscheck">Birth Date Crosscheck</string>
<string name="onboard_sdk_property_birthDateValidity">Birth Date Valid</string>
<string name="onboard_sdk_property_compositeCheckDigit">Composite Check Digit</string>
<string name="onboard_sdk_property_documentClassification">Document Classification</string>
<string name="onboard_sdk_property_documentCrosscheckAggregation">Document Crosscheck Aggregation</string>
<string name="onboard_sdk_property_documentExpired">Document Expired</string>
<string name="onboard_sdk_property_documentNumberCheckDigit">Document Number Check Digit</string>
<string name="onboard_sdk_property_documentNumberCrosscheck">Document Number Crosscheck</string>
<string name="onboard_sdk_property_documentTypeSideCrosscheck">Document Type Side Crosscheck</string>
<string name="onboard_sdk_property_expirationDateCheckDigit">Expiration Date Check Digit</string>
<string name="onboard_sdk_property_expirationDateCrosscheck">Expiration Date Crosscheck</string>
<string name="onboard_sdk_property_expirationDateValidity">Expiration Date Valid</string>
<string name="onboard_sdk_property_fullNameCrosscheck">Full Name Crosscheck</string>
<string name="onboard_sdk_property_imageTamperingCheck">Image Tampering Check</string>
<string name="onboard_sdk_property_issueDateValidity">Issue Date Valid</string>
<string name="onboard_sdk_property_issuingStateValidity">Issuing State Valid</string>
<string name="onboard_sdk_property_qrScan">QR Scan</string>
<string name="onboard_sdk_property_photoPrinting">Photo Printing</string>
<string name="onboard_sdk_property_personalNumberCrosscheck">Personal Number Crosscheck</string>
<string name="onboard_sdk_property_sexCrosscheck">Sex Crosscheck</string>
<string name="onboard_sdk_property_visibleColorResponse">Visible Color Response</string>
<string name="onboard_sdk_property_visiblePattern">Visible Pattern</string>
<string name="onboard_sdk_property_visiblePhotoFeatures">Visible Photo Features</string>
<string name="onboard_sdk_property_emissionNumberCrosscheck">Emission Number Crosscheck</string>
<string name="onboard_sdk_property_liveness_score">Liveness Score</string>
<string name="onboard_sdk_property_photo_quality">Photo Quality</string>
<string name="onboard_sdk_property_user_already_in_database">User already in database</string>
<string name="onboard_sdk_property_photo_comparison">Photo Comparison</string>
<string name="onboard_sdk_property_issueDate">Issue Date Valid</string>
<string name="onboard_sdk_property_firstName">First Name Valid</string>
<string name="onboard_sdk_property_maternalLastName">Maternal Last Name Valid</string>
<string name="onboard_sdk_property_paternalLastName">Paternal Last Name Valid</string>
<string name="onboard_sdk_property_ocr">OCR Valid</string>
<string name="onboard_sdk_property_personalId">Personal Id Valid</string>
<string name="onboard_sdk_property_electorsKey">Electors Key Valid</string>
<string name="onboard_sdk_property_emissionNumber">Emission Number Valid</string>
<string name="onboard_sdk_property_registrationDate">Registration Date Valid</string>
<string name="onboard_sdk_results_btn_done">Done</string>
<!-- NoNetworkSnackbar -->
<string name="onboard_sdk_no_network_snackbar_content_text">No internet connection</string>
<string name="onboard_sdk_no_network_snackbar_action_text">Retry</string>
<string name="onboard_sdk_no_network_snackbar_warning_icon_content_description">warning icon</string>
<!-- Delayed Onboarding -->
<string name="onboard_sdk_you_are_offline">You’re offline</string>
<string name="onboard_sdk_offline_onboarding_description">If you do the onboarding offline, you’ll have to sync the data when you restore connectivity.</string>
<string name="onboard_sdk_no_connection">No connection</string>
<!-- AntifraudActivity -->
<string name="onboard_sdk_antifraud_process">Processing…</string>
<!-- Kiosk Login -->
<string name="onboard_sdk_kiosk_login_feedback_position_your_face">@string/onboard_sdk_feedback_position_your_face</string>
<string name="onboard_sdk_kiosk_login_feedback_face_tilted">@string/onboard_sdk_feedback_face_tilted</string>
<string name="onboard_sdk_kiosk_login_feedback_face_rotated_left">@string/onboard_sdk_feedback_face_rotated_left</string>
<string name="onboard_sdk_kiosk_login_feedback_face_rotated_right">@string/onboard_sdk_feedback_face_rotated_right</string>
<string name="onboard_sdk_kiosk_login_feedback_remove_lenses">@string/onboard_sdk_feedback_remove_lenses</string>
<string name="onboard_sdk_kiosk_login_feedback_user_not_found">You’re not enrolled</string>
<string name="onboard_sdk_kiosk_login_lid_uploading">@string/onboard_sdk_selfie_uploading</string>
<string name="onboard_sdk_kiosk_login_lid_done">Done!</string>
<!-- AESActivity -->
<string name="onboard_sdk_aes_title">Confirm your signature</string>
<string name="onboard_sdk_aes_documents_list_title">The following documents will be signed:</string>
<string name="onboard_sdk_aes_documents_list_item_title">Contract %d</string>
<string name="onboard_sdk_aes_documents_list_item_view_doc">View doc</string>
<string name="onboard_sdk_aes_checkbox_terms_and_condtions">I accept the terms and conditions of the Trust Center</string>
<string name="onboard_sdk_aes_checkbox_generate_certificate">I wish to sign the contract electronically. Please generate the required certificate for me</string>
<string name="onboard_sdk_aes_checkbox_legal_binding">I would like to sign the displayed contract in a legally binding way by means of the ensuing signature procedures</string>
<string name="onboard_sdk_aes_btn_continue">@string/onboard_sdk_btn_continue</string>
<string name="onboard_sdk_aes_success">Success!</string>
<string name="onboard_sdk_aes_something_went_wrong">Something went wrong.</string>
<string name="onboard_sdk_aes_open_pdf_error">Please install an app that can open a PDF</string>
<string name="onboard_sdk_aes_signing_title">Document signing in progress. Please wait, this may take some time.</string>
3.2 Dynamic Localization
You can programmatically override the SDK's text by using dynamic localization. Make sure you have the extensions
dependency in your corresponding build.gradle:
implementation 'com.incode.sdk:extensions:1.1.0'
Call IncodeWelcome.getInstance().setStrings()
to update the SDK's texts and labels like this:
- Java
- Kotlin
IncodeWelcome.getInstance().setStrings(new Locale("en"), new HashMap<String, String>() {
{
// Use any string key from resources
put("onboard_sdk_enter_phone_number", "My Label");
put("onboard_sdk_intro_title", "My Title");
}
});
val textToLocalize: java.util.HashMap<String, CharSequence> = HashMap()
// Use any string key from resources
textToLocalize["onboard_sdk_enter_phone_number"] = "My Label"
textToLocalize["onboard_sdk_intro_title"] = "My Title"
IncodeWelcome.getInstance().setStrings(Locale("en"), textToLocalize)
3.3 Runtime localization
It is possible to change the SDK language at runtime. Make sure you have the extensions
dependency in your corresponding build.gradle:
implementation 'com.incode.sdk:extensions:1.1.0'
You can set the SDK language programmatically through CommonConfig.Builder().setLocalizationLanguage()
API, like this:
- Java
- Kotlin
String LANGUAGE_CODE_PORTUGUESE = "pt_PT";
...
IncodeWelcome.getInstance().setCommonConfig(
new CommonConfig.Builder()
.setLocalizationLanguage(LANGUAGE_CODE_PORTUGUESE)
.build()
);
val LANGUAGE_CODE_PORTUGUESE = "pt_PT"
...
IncodeWelcome.getInstance().setCommonConfig(
CommonConfig.Builder()
.setLocalizationLanguage(LANGUAGE_CODE_PORTUGUESE)
.build()
)
We support the following values for setLocalizationLanguage()
"en_US"
: English"es_ES"
: Spanish"pt_PT"
: Portuguese
4. Add a custom logo
It is possible to display a custom logo on the top of the supported screens.
The default logo resource is an 1x1 px transparent image.
To display a custom logo, override the default image by adding an image resource to your res/drawable-???
folders.
The image resource needs to have the following name:
onboard_sdk_logo_top
5. Replace videos with custom videos
The Incode Welcome SDK uses Lottie animations for videos.
If you want to provide your own videos, put the corresponding Lottie .json
files to your res/raw
directory.
onboard_sdk_lottie_tutorial_id_front.json
onboard_sdk_lottie_tutorial_id_back.json
onboard_sdk_lottie_tutorial_passport.json
onboard_sdk_lottie_tutorial_selfie.json
onboard_sdk_lottie_tutorial_video_selfie.json
onboard_sdk_lottie_id_processing.json
As we can see, The Incode Welcome SDK offers many different customization options. Among other things, we have gone through how we can customize buttons, colors, text, logos and themes. We hope this tutorial has been helpful, and as always, please reach out to us with any questions or if you need additional assistance!