Skip to main content
This migration guide covers significant changes in the SDK API that might affect your integration.
No custom layouts? If you have not overridden any SDK layouts or views, you typically only need to update the dependency version — no code changes required.

[8.x.x] -> [9.0.0]

New iDenfy Privacy Policy View

New privacy policy view is a required step for onboarding users. idenfy_fragment_privacy_policy_v2.xml was completely redone: New Privacy Policy
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:animateLayoutChanges="true"
    android:background="@color/idenfyPrivacyPolicyViewBackgroundColor"
    android:clickable="true"
    android:focusable="true">

    <include
        android:id="@+id/include"
        layout="@layout/idenfy_partial_layout_common_appbarlayout_with_language_selection_v2" />

    <ScrollView
        android:id="@+id/idenfy_scrollview_bank_verification_view"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginBottom="8dp"
        android:overScrollMode="never"
        app:layout_constraintBottom_toTopOf="@+id/idenfy_button_privacy_policy_agree"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/idenfy_appbarlayout_common">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/idenfy_constraintlayout_bank_verification_viewholder"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:focusableInTouchMode="true">

            <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
                android:id="@+id/idenfy_textview_common_information_title"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginStart="16dp"
                android:layout_marginLeft="16dp"
                android:layout_marginTop="32dp"
                android:layout_marginEnd="16dp"
                android:layout_marginRight="16dp"
                android:gravity="center"
                android:textAlignment="center"
                android:theme="@style/idenfyPrivacyPolicyViewTitleStyle"
                app:customfont="hkgrotesk_bold.ttf"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

            <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
                android:id="@+id/idenfy_textview_common_information_description"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginStart="32dp"
                android:layout_marginTop="24dp"
                android:layout_marginEnd="32dp"
                android:gravity="center"
                android:text="@string/idenfy_privacy_policy_description_v2"
                android:textAlignment="center"
                android:theme="@style/idenfyPrivacyPolicyViewDescriptionStyle"
                app:customfont="hkgrotesk_regular.ttf"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/idenfy_textview_common_information_title" />

            <com.google.android.material.card.MaterialCardView
                android:id="@+id/idenfy_cardview_data_protection"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginStart="16dp"
                android:layout_marginTop="12dp"
                android:layout_marginEnd="16dp"
                app:cardBackgroundColor="@color/idenfyPrivacyPolicyCardViewBackgroundColor"
                app:cardCornerRadius="4dp"
                app:cardElevation="0dp"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@id/idenfy_textview_common_information_description">

                <androidx.constraintlayout.widget.ConstraintLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:padding="16dp">

                    <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
                        android:id="@+id/idenfy_tv_data_protection_title"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:text="@string/idenfy_privacy_policy_data_protection_title"
                        android:theme="@style/idenfyPrivacyPolicyViewCardViewTextStyle"
                        app:customfont="hkgrotesk_bold.ttf"
                        app:layout_constraintEnd_toStartOf="@id/idenfy_iv_data_protection_arrow"
                        app:layout_constraintStart_toStartOf="parent"
                        app:layout_constraintTop_toTopOf="parent" />

                    <ImageView
                        android:id="@+id/idenfy_iv_data_protection_arrow"
                        android:layout_width="24dp"
                        android:layout_height="24dp"
                        android:src="@drawable/idenfy_ic_arrow_down"
                        app:tint="@color/idenfyPrivacyPolicyCardViewArrowIconTintColor"
                        app:layout_constraintBottom_toBottomOf="@id/idenfy_tv_data_protection_title"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintTop_toTopOf="@id/idenfy_tv_data_protection_title" />

                    <androidx.constraintlayout.widget.ConstraintLayout
                        android:id="@+id/idenfy_constraint_layout_data_protection_content"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:visibility="gone"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintStart_toStartOf="parent"
                        app:layout_constraintTop_toBottomOf="@id/idenfy_tv_data_protection_title">

                        <ImageView
                            android:id="@+id/idenfy_iv_secure_encryption_icon"
                            android:layout_width="22dp"
                            android:layout_height="22dp"
                            android:layout_marginTop="16dp"
                            android:src="@drawable/idenfy_ic_privacy_lock"
                            app:tint="@color/idenfyPrivacyPolicyCardViewIconTintColor"
                            app:layout_constraintStart_toStartOf="parent"
                            app:layout_constraintTop_toTopOf="parent" />

                        <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
                            android:id="@+id/idenfy_tv_secure_encryption_title"
                            android:layout_width="0dp"
                            android:layout_height="0dp"
                            android:layout_marginStart="8dp"
                            android:layout_marginEnd="8dp"
                            android:layout_marginTop="-8dp"
                            android:layout_marginBottom="-8dp"
                            android:gravity="center_vertical"
                            android:text="@string/idenfy_privacy_policy_secure_encryption_title"
                            android:theme="@style/idenfyPrivacyPolicyViewCardViewTextStyle"
                            app:customfont="hkgrotesk_regular.ttf"
                            app:layout_constraintBottom_toBottomOf="@id/idenfy_iv_secure_encryption_icon"
                            app:layout_constraintEnd_toEndOf="parent"
                            app:layout_constraintStart_toEndOf="@id/idenfy_iv_secure_encryption_icon"
                            app:layout_constraintTop_toTopOf="@id/idenfy_iv_secure_encryption_icon" />

                        <ImageView
                            android:id="@+id/idenfy_iv_limited_access_icon"
                            android:layout_width="22dp"
                            android:layout_height="22dp"
                            android:layout_marginTop="16dp"
                            android:src="@drawable/idenfy_ic_privacy_access"
                            app:tint="@color/idenfyPrivacyPolicyCardViewIconTintColor"
                            app:layout_constraintStart_toStartOf="parent"
                            app:layout_constraintTop_toBottomOf="@id/idenfy_iv_secure_encryption_icon" />

                        <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
                            android:id="@+id/idenfy_tv_limited_access_title"
                            android:layout_width="0dp"
                            android:layout_height="0dp"
                            android:layout_marginStart="8dp"
                            android:layout_marginEnd="8dp"
                            android:layout_marginTop="-8dp"
                            android:layout_marginBottom="-8dp"
                            android:gravity="center_vertical"
                            android:text="@string/idenfy_privacy_policy_limited_access_title"
                            android:theme="@style/idenfyPrivacyPolicyViewCardViewTextStyle"
                            app:customfont="hkgrotesk_regular.ttf"
                            app:layout_constraintBottom_toBottomOf="@id/idenfy_iv_limited_access_icon"
                            app:layout_constraintEnd_toEndOf="parent"
                            app:layout_constraintStart_toEndOf="@id/idenfy_iv_limited_access_icon"
                            app:layout_constraintTop_toTopOf="@id/idenfy_iv_limited_access_icon" />

                        <ImageView
                            android:id="@+id/idenfy_iv_never_sold_icon"
                            android:layout_width="22dp"
                            android:layout_height="22dp"
                            android:layout_marginTop="16dp"
                            android:src="@drawable/idenfy_ic_privacy_block_share"
                            app:tint="@color/idenfyPrivacyPolicyCardViewIconTintColor"
                            app:layout_constraintStart_toStartOf="parent"
                            app:layout_constraintTop_toBottomOf="@id/idenfy_iv_limited_access_icon" />

                        <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
                            android:id="@+id/idenfy_tv_never_sold_title"
                            android:layout_width="0dp"
                            android:layout_height="0dp"
                            android:layout_marginStart="8dp"
                            android:layout_marginEnd="8dp"
                            android:layout_marginTop="-8dp"
                            android:layout_marginBottom="-8dp"
                            android:gravity="center_vertical"
                            android:text="@string/idenfy_privacy_policy_never_sold_title"
                            android:theme="@style/idenfyPrivacyPolicyViewCardViewTextStyle"
                            app:customfont="hkgrotesk_regular.ttf"
                            app:layout_constraintBottom_toBottomOf="@id/idenfy_iv_never_sold_icon"
                            app:layout_constraintEnd_toEndOf="parent"
                            app:layout_constraintStart_toEndOf="@id/idenfy_iv_never_sold_icon"
                            app:layout_constraintTop_toTopOf="@id/idenfy_iv_never_sold_icon" />

                        <ImageView
                            android:id="@+id/idenfy_iv_used_for_verification_icon"
                            android:layout_width="22dp"
                            android:layout_height="22dp"
                            android:layout_marginTop="16dp"
                            android:src="@drawable/idenfy_ic_privacy_security"
                            app:tint="@color/idenfyPrivacyPolicyCardViewIconTintColor"
                            app:layout_constraintStart_toStartOf="parent"
                            app:layout_constraintTop_toBottomOf="@id/idenfy_iv_never_sold_icon" />

                        <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
                            android:id="@+id/idenfy_tv_used_for_verification_title"
                            android:layout_width="0dp"
                            android:layout_height="0dp"
                            android:layout_marginStart="8dp"
                            android:layout_marginEnd="8dp"
                            android:layout_marginTop="-8dp"
                            android:layout_marginBottom="-8dp"
                            android:gravity="center_vertical"
                            android:text="@string/idenfy_privacy_policy_used_for_verification_title"
                            android:theme="@style/idenfyPrivacyPolicyViewCardViewTextStyle"
                            app:customfont="hkgrotesk_regular.ttf"
                            app:layout_constraintBottom_toBottomOf="@id/idenfy_iv_used_for_verification_icon"
                            app:layout_constraintEnd_toEndOf="parent"
                            app:layout_constraintStart_toEndOf="@id/idenfy_iv_used_for_verification_icon"
                            app:layout_constraintTop_toTopOf="@id/idenfy_iv_used_for_verification_icon" />

                    </androidx.constraintlayout.widget.ConstraintLayout>

                </androidx.constraintlayout.widget.ConstraintLayout>

            </com.google.android.material.card.MaterialCardView>

            <com.google.android.material.card.MaterialCardView
                android:id="@+id/idenfy_cardview_process"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginStart="16dp"
                android:layout_marginTop="24dp"
                android:layout_marginEnd="16dp"
                app:cardBackgroundColor="@color/idenfyPrivacyPolicyCardViewBackgroundColor"
                app:cardCornerRadius="4dp"
                app:cardElevation="0dp"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@id/idenfy_cardview_data_protection">

                <androidx.constraintlayout.widget.ConstraintLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:padding="16dp">

                    <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
                        android:id="@+id/idenfy_tv_process_title"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:text="@string/idenfy_privacy_policy_process_title"
                        android:theme="@style/idenfyPrivacyPolicyViewCardViewTextStyle"
                        app:customfont="hkgrotesk_bold.ttf"
                        app:layout_constraintEnd_toStartOf="@id/idenfy_iv_process_arrow"
                        app:layout_constraintStart_toStartOf="parent"
                        app:layout_constraintTop_toTopOf="parent" />

                    <ImageView
                        android:id="@+id/idenfy_iv_process_arrow"
                        android:layout_width="24dp"
                        android:layout_height="24dp"
                        android:src="@drawable/idenfy_ic_arrow_down"
                        app:layout_constraintBottom_toBottomOf="@id/idenfy_tv_process_title"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintTop_toTopOf="@id/idenfy_tv_process_title"
                        app:tint="@color/idenfyPrivacyPolicyCardViewArrowIconTintColor" />

                    <androidx.constraintlayout.widget.ConstraintLayout
                        android:id="@+id/idenfy_constraint_layout_process_content"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:visibility="gone"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintStart_toStartOf="parent"
                        app:layout_constraintTop_toBottomOf="@id/idenfy_tv_process_title">

                        <ImageView
                            android:id="@+id/idenfy_iv_identity_photo_icon"
                            android:layout_width="22dp"
                            android:layout_height="22dp"
                            android:layout_marginTop="16dp"
                            android:src="@drawable/idenfy_ic_privacy_photo_identity_step"
                            app:tint="@color/idenfyPrivacyPolicyCardViewIconTintColor"
                            app:layout_constraintStart_toStartOf="parent"
                            app:layout_constraintTop_toTopOf="parent" />

                        <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
                            android:id="@+id/idenfy_tv_identity_photo_title"
                            android:layout_width="0dp"
                            android:layout_height="0dp"
                            android:layout_marginStart="8dp"
                            android:layout_marginEnd="8dp"
                            android:layout_marginTop="-8dp"
                            android:layout_marginBottom="-8dp"
                            android:gravity="center_vertical"
                            android:text="@string/idenfy_privacy_policy_identity_photo_step_title"
                            android:theme="@style/idenfyPrivacyPolicyViewCardViewTextStyle"
                            app:customfont="hkgrotesk_regular.ttf"
                            app:layout_constraintBottom_toBottomOf="@id/idenfy_iv_identity_photo_icon"
                            app:layout_constraintEnd_toEndOf="parent"
                            app:layout_constraintStart_toEndOf="@id/idenfy_iv_identity_photo_icon"
                            app:layout_constraintTop_toTopOf="@id/idenfy_iv_identity_photo_icon" />

                        <ImageView
                            android:id="@+id/idenfy_iv_selfie_scan_icon"
                            android:layout_width="22dp"
                            android:layout_height="22dp"
                            android:layout_marginTop="16dp"
                            android:src="@drawable/idenfy_ic_privacy_selfie_check_step"
                            app:tint="@color/idenfyPrivacyPolicyCardViewIconTintColor"
                            app:layout_constraintStart_toStartOf="parent"
                            app:layout_constraintTop_toBottomOf="@id/idenfy_iv_identity_photo_icon" />

                        <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
                            android:id="@+id/idenfy_tv_selfie_scan_title"
                            android:layout_width="0dp"
                            android:layout_height="0dp"
                            android:layout_marginStart="8dp"
                            android:layout_marginEnd="8dp"
                            android:layout_marginTop="-8dp"
                            android:layout_marginBottom="-8dp"
                            android:gravity="center_vertical"
                            android:text="@string/idenfy_privacy_policy_selfie_step_title"
                            android:theme="@style/idenfyPrivacyPolicyViewCardViewTextStyle"
                            app:customfont="hkgrotesk_regular.ttf"
                            app:layout_constraintBottom_toBottomOf="@id/idenfy_iv_selfie_scan_icon"
                            app:layout_constraintEnd_toEndOf="parent"
                            app:layout_constraintStart_toEndOf="@id/idenfy_iv_selfie_scan_icon"
                            app:layout_constraintTop_toTopOf="@id/idenfy_iv_selfie_scan_icon" />

                        <ImageView
                            android:id="@+id/idenfy_iv_automated_verification_icon"
                            android:layout_width="22dp"
                            android:layout_height="22dp"
                            android:layout_marginTop="16dp"
                            android:src="@drawable/idenfy_ic_privacy_automated_verification_step"
                            app:tint="@color/idenfyPrivacyPolicyCardViewIconTintColor"
                            app:layout_constraintStart_toStartOf="parent"
                            app:layout_constraintTop_toBottomOf="@id/idenfy_iv_selfie_scan_icon" />

                        <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
                            android:id="@+id/idenfy_tv_automated_verification_title"
                            android:layout_width="0dp"
                            android:layout_height="0dp"
                            android:layout_marginStart="8dp"
                            android:layout_marginEnd="8dp"
                            android:layout_marginTop="-8dp"
                            android:layout_marginBottom="-8dp"
                            android:gravity="center_vertical"
                            android:text="@string/idenfy_privacy_policy_automated_verification_step_title"
                            android:theme="@style/idenfyPrivacyPolicyViewCardViewTextStyle"
                            app:customfont="hkgrotesk_regular.ttf"
                            app:layout_constraintBottom_toBottomOf="@id/idenfy_iv_automated_verification_icon"
                            app:layout_constraintEnd_toEndOf="parent"
                            app:layout_constraintStart_toEndOf="@id/idenfy_iv_automated_verification_icon"
                            app:layout_constraintTop_toTopOf="@id/idenfy_iv_automated_verification_icon" />

                    </androidx.constraintlayout.widget.ConstraintLayout>

                </androidx.constraintlayout.widget.ConstraintLayout>

            </com.google.android.material.card.MaterialCardView>

            <com.google.android.material.card.MaterialCardView
                android:id="@+id/idenfy_cardview_compliance"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginStart="16dp"
                android:layout_marginTop="12dp"
                android:layout_marginEnd="16dp"
                app:cardBackgroundColor="@color/idenfyLightGrayColor"
                app:cardCornerRadius="4dp"
                app:cardElevation="0dp"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@id/idenfy_cardview_process">

                <androidx.constraintlayout.widget.ConstraintLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:padding="16dp">

                    <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
                        android:id="@+id/idenfy_tv_compliance_title"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:text="@string/idenfy_privacy_policy_compliance_title"
                        android:theme="@style/idenfyPrivacyPolicyViewCardViewTextStyle"
                        app:customfont="hkgrotesk_bold.ttf"
                        app:layout_constraintEnd_toStartOf="@id/idenfy_iv_compliance_arrow"
                        app:layout_constraintStart_toStartOf="parent"
                        app:layout_constraintTop_toTopOf="parent" />

                    <ImageView
                        android:id="@+id/idenfy_iv_compliance_arrow"
                        android:layout_width="24dp"
                        android:layout_height="24dp"
                        android:src="@drawable/idenfy_ic_arrow_down"
                        app:layout_constraintBottom_toBottomOf="@id/idenfy_tv_compliance_title"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintTop_toTopOf="@id/idenfy_tv_compliance_title"
                        app:tint="@color/idenfyPrivacyPolicyCardViewArrowIconTintColor" />

                    <androidx.constraintlayout.widget.ConstraintLayout
                        android:id="@+id/idenfy_constraint_layout_compliance_content"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:visibility="gone"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintStart_toStartOf="parent"
                        app:layout_constraintTop_toBottomOf="@id/idenfy_tv_compliance_title">

                        <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
                            android:id="@+id/idenfy_tv_compliance_description"
                            android:layout_width="0dp"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="16dp"
                            android:layout_marginEnd="8dp"
                            android:gravity="center_vertical"
                            android:text="@string/idenfy_privacy_policy_compliance_description"
                            android:theme="@style/idenfyPrivacyPolicyViewCardViewTextStyle"
                            app:customfont="hkgrotesk_regular.ttf"
                            app:layout_constraintBottom_toBottomOf="parent"
                            app:layout_constraintEnd_toEndOf="parent"
                            app:layout_constraintStart_toStartOf="parent"
                            app:layout_constraintTop_toTopOf="parent" />

                    </androidx.constraintlayout.widget.ConstraintLayout>
                </androidx.constraintlayout.widget.ConstraintLayout>
            </com.google.android.material.card.MaterialCardView>

            <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
                android:id="@+id/idenfy_tv_privacy_policy_description"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginStart="16dp"
                android:layout_marginTop="16dp"
                android:layout_marginEnd="16dp"
                android:gravity="center"
                android:theme="@style/idenfyPrivacyPolicyViewCardViewTextStyle"
                app:customfont="hkgrotesk_regular.ttf"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@id/idenfy_cardview_compliance"
                app:layout_constraintVertical_bias="0.0"
                app:layout_goneMarginEnd="16dp" />

            <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
                android:id="@+id/idenfy_tv_privacy_policy_partner_description"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginStart="16dp"
                android:layout_marginTop="16dp"
                android:layout_marginEnd="16dp"
                android:gravity="center"
                android:theme="@style/idenfyPrivacyPolicyViewCardViewTextStyle"
                app:customfont="hkgrotesk_regular.ttf"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@id/idenfy_tv_privacy_policy_description"
                app:layout_constraintVertical_bias="0.0"
                app:layout_goneMarginEnd="16dp" />

        </androidx.constraintlayout.widget.ConstraintLayout>
    </ScrollView>

    <com.idenfy.idenfySdk.uicomponents.IDenfyButton
        android:id="@+id/idenfy_button_privacy_policy_agree"
        android:layout_width="0dp"
        android:layout_height="42dp"
        android:layout_marginStart="32dp"
        android:layout_marginEnd="32dp"
        android:layout_marginBottom="32dp"
        android:background="@drawable/idenfy_ic_gradient_button_background"
        android:gravity="center"
        android:text="@string/idenfy_privacy_policy_agree_button_title_v2"
        android:theme="@style/idenfyPrivacyPolicyViewButtonStyle"
        app:customfont="hkgrotesk_bold.ttf"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

    <com.airbnb.lottie.LottieAnimationView
        android:id="@+id/idenfy_lottie_animation_loading"
        android:layout_width="25dp"
        android:layout_height="25dp"
        android:layout_centerInParent="true"
        android:layout_marginStart="16dp"
        android:elevation="10dp"
        android:visibility="invisible"
        app:layout_constraintBottom_toBottomOf="@id/idenfy_button_privacy_policy_agree"
        app:layout_constraintStart_toStartOf="@+id/idenfy_button_privacy_policy_agree"
        app:layout_constraintTop_toTopOf="@id/idenfy_button_privacy_policy_agree"
        app:lottie_autoPlay="true"
        app:lottie_loop="true"
        app:lottie_rawRes="@raw/idenfy_custom_country_loader"
        app:lottie_colorFilter="@color/idenfyPrivacyPolicyContinueButtonLoadingSpinnerTintColor"/>

</androidx.constraintlayout.widget.ConstraintLayout>
A new color is used in this layout:
    <color name="idenfyLightGrayColor">#F2F4F8</color>

Country & Document Selection Steps Combined Into One View

A new Country & Document selection view was added, which combines the old two views into one. The new idenfy_fragment_country_and_document_selection_fragment.xml layout is added: New Country & Document selection
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/idenfyCountryAndDocumentSelectionViewBackgroundColor"
    android:clickable="true"
    android:focusable="true"
    android:focusableInTouchMode="true">

    <include layout="@layout/idenfy_partial_layout_common_appbarlayout_with_language_selection_v2" />

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/idenfy_constraintlayout_common_information"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/idenfy_appbarlayout_common">

        <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
            android:id="@+id/idenfy_textview_common_information_title"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="16dp"
            android:layout_marginLeft="16dp"
            android:layout_marginTop="32dp"
            android:layout_marginEnd="16dp"
            android:layout_marginRight="16dp"
            android:gravity="center"
            android:textAlignment="center"
            android:theme="@style/idenfyCountryAndDocumentSelectionViewTitleStyle"
            app:customfont="hkgrotesk_bold.ttf"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
            android:id="@+id/idenfy_textview_common_information_description"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="16dp"
            android:layout_marginTop="24dp"
            android:layout_marginEnd="16dp"
            android:gravity="center"
            android:textAlignment="center"
            android:theme="@style/idenfyCountryAndDocumentSelectionViewDescriptionStyle"
            app:customfont="hkgrotesk_regular.ttf"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/idenfy_textview_common_information_title" />

    </androidx.constraintlayout.widget.ConstraintLayout>

    <androidx.core.widget.NestedScrollView
        android:id="@+id/idenfy_scrollview_country_and_document_selection_view"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginBottom="8dp"
        android:overScrollMode="never"
        app:layout_constraintBottom_toTopOf="@+id/idenfy_button_country_and_document_selection_continue"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/idenfy_constraintlayout_common_information">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/idenfy_constraintlayout_country_and_document_selection_viewholder"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:focusableInTouchMode="true">

            <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
                android:id="@+id/idenfy_tv_pick_country"
                android:layout_width="0dp"
                android:layout_height="50dp"
                android:layout_marginStart="24dp"
                android:layout_marginTop="32dp"
                android:layout_marginEnd="24dp"
                android:background="@drawable/idenfy_custom_country_and_document_selection_item_selection_input_item_background"
                android:gravity="center|start"
                android:paddingStart="10dp"
                android:paddingEnd="20dp"
                android:theme="@style/idenfyCountryAndDocumentSelectionViewItemSelectionStyle"
                app:customfont="hkgrotesk_semibold.ttf"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

            <ImageView
                android:id="@+id/idenfy_iv_pick_country"
                android:layout_width="40dp"
                android:layout_height="wrap_content"
                android:layout_marginStart="16dp"
                android:adjustViewBounds="true"
                android:background="@drawable/idenfy_flag_black_border"
                android:cropToPadding="true"
                android:scaleType="centerCrop"
                android:visibility="invisible"
                app:layout_constraintBottom_toBottomOf="@id/idenfy_tv_pick_country"
                app:layout_constraintStart_toStartOf="@id/idenfy_tv_pick_country"
                app:layout_constraintTop_toTopOf="@id/idenfy_tv_pick_country" />

            <ImageView
                android:id="@+id/idenfy_iv_pick_country2"
                android:layout_width="35dp"
                android:layout_height="25dp"
                android:layout_marginStart="16dp"
                android:adjustViewBounds="false"
                android:background="@drawable/idenfy_flag_black_border"
                android:cropToPadding="false"
                android:scaleType="centerCrop"
                android:visibility="invisible"
                app:layout_constraintBottom_toBottomOf="@id/idenfy_tv_pick_country"
                app:layout_constraintStart_toStartOf="@id/idenfy_tv_pick_country"
                app:layout_constraintTop_toTopOf="@id/idenfy_tv_pick_country" />

            <ImageView
                android:id="@+id/idenfy_iv_arrow"
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:layout_marginEnd="16dp"
                android:elevation="50dp"
                app:layout_constraintBottom_toBottomOf="@+id/idenfy_tv_pick_country"
                app:layout_constraintEnd_toEndOf="@+id/idenfy_tv_pick_country"
                app:layout_constraintTop_toTopOf="@+id/idenfy_tv_pick_country"
                app:srcCompat="@drawable/idenfy_ic_arrow_down"
                app:tint="@color/idenfyCountryAndDocumentSelectionViewItemSelectionTrailingIconTintColor" />

            <ImageView
                android:id="@+id/idenfy_iv_cancel"
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:layout_marginEnd="16dp"
                android:elevation="50dp"
                android:padding="4dp"
                android:visibility="invisible"
                app:layout_constraintBottom_toBottomOf="@+id/idenfy_tv_pick_country"
                app:layout_constraintEnd_toEndOf="@+id/idenfy_tv_pick_country"
                app:layout_constraintTop_toTopOf="@+id/idenfy_tv_pick_country"
                app:srcCompat="@drawable/idenfy_ic_language_selection_close_button"
                app:tint="@color/idenfyCountryAndDocumentSelectionViewItemSelectionTrailingIconTintColor" />

            <androidx.constraintlayout.widget.ConstraintLayout
                android:id="@+id/idenfy_constraintlayout_document_selection_viewholder"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="16dp"
                app:layout_constraintTop_toBottomOf="@+id/idenfy_tv_pick_country"
                android:focusableInTouchMode="true">

                <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
                    android:id="@+id/idenfy_textview_verification_method_title"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="16dp"
                    android:gravity="start"
                    android:theme="@style/idenfyCountryAndDocumentSelectionViewVerificationMethodTitleStyle"
                    app:customfont="hkgrotesk_bold.ttf"
                    android:layout_marginStart="24dp"
                    android:layout_marginEnd="24dp"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent" />

                <androidx.recyclerview.widget.RecyclerView
                    android:id="@+id/idenfy_recyclerview_digital_ids"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="4dp"
                    android:layout_marginStart="16dp"
                    android:layout_marginEnd="16dp"
                    android:overScrollMode="never"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toBottomOf="@id/idenfy_textview_verification_method_title" />

                <androidx.constraintlayout.widget.ConstraintLayout
                    android:id="@+id/idenfy_constraintlayout_physical_document_title_container"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="4dp"
                    android:layout_marginStart="24dp"
                    android:layout_marginEnd="24dp"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toBottomOf="@id/idenfy_recyclerview_digital_ids">

                    <View
                        android:id="@+id/idenfy_view_physical_document_line_left"
                        android:layout_width="0dp"
                        android:layout_height="1dp"
                        android:layout_marginTop="1dp"
                        android:alpha="0.2"
                        android:background="@color/idenfyCountryAndDocumentSelectionViewPhysicalDocumentTitleDividerColor"
                        app:layout_constraintBottom_toBottomOf="parent"
                        app:layout_constraintEnd_toStartOf="@+id/idenfy_textview_physical_document_title"
                        app:layout_constraintStart_toStartOf="parent"
                        app:layout_constraintTop_toTopOf="parent" />

                    <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
                        android:id="@+id/idenfy_textview_physical_document_title"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:paddingStart="12dp"
                        android:paddingEnd="12dp"
                        android:theme="@style/idenfyCountryAndDocumentSelectionViewPhysicalDocumentTitleStyle"
                        app:customfont="hkgrotesk_regular.ttf"
                        app:layout_constraintBottom_toBottomOf="parent"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintStart_toStartOf="parent"
                        app:layout_constraintTop_toTopOf="parent" />

                    <View
                        android:id="@+id/idenfy_view_physical_document_line_right"
                        android:layout_width="0dp"
                        android:layout_height="1dp"
                        android:alpha="0.2"
                        android:layout_marginTop="1dp"
                        android:background="@color/idenfyCountryAndDocumentSelectionViewPhysicalDocumentTitleDividerColor"
                        app:layout_constraintBottom_toBottomOf="parent"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintStart_toEndOf="@+id/idenfy_textview_physical_document_title"
                        app:layout_constraintTop_toTopOf="parent" />

                </androidx.constraintlayout.widget.ConstraintLayout>

                <androidx.recyclerview.widget.RecyclerView
                    android:id="@+id/idenfy_recyclerview_document_types"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="4dp"
                    android:layout_marginStart="16dp"
                    android:layout_marginEnd="16dp"
                    android:overScrollMode="never"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toBottomOf="@id/idenfy_constraintlayout_physical_document_title_container" />

            </androidx.constraintlayout.widget.ConstraintLayout>
        </androidx.constraintlayout.widget.ConstraintLayout>
    </androidx.core.widget.NestedScrollView>

    <com.idenfy.idenfySdk.uicomponents.IDenfyButton
        android:id="@+id/idenfy_button_country_and_document_selection_continue"
        android:layout_width="0dp"
        android:layout_height="42dp"
        android:layout_marginStart="32dp"
        android:layout_marginLeft="32dp"
        android:layout_marginEnd="32dp"
        android:layout_marginRight="32dp"
        android:layout_marginBottom="32dp"
        android:background="@color/idenfyCountryAndDocumentSelectionViewContinueButtonDisabledBackgroundColor"
        android:enabled="false"
        android:gravity="center"
        android:theme="@style/idenfyCountryAndDocumentSelectionViewContinueDisabledButtonStyle"
        app:customfont="hkgrotesk_bold.ttf"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

    <com.airbnb.lottie.LottieAnimationView
        android:id="@+id/idenfy_lottie_animation_loading"
        android:layout_width="25dp"
        android:layout_height="25dp"
        android:layout_centerInParent="true"
        android:layout_marginStart="16dp"
        android:elevation="25dp"
        android:visibility="invisible"
        app:layout_constraintBottom_toBottomOf="@+id/idenfy_button_country_and_document_selection_continue"
        app:layout_constraintStart_toStartOf="@+id/idenfy_button_country_and_document_selection_continue"
        app:layout_constraintTop_toTopOf="@+id/idenfy_button_country_and_document_selection_continue"
        app:lottie_autoPlay="true"
        app:lottie_colorFilter="@color/idenfyCountryAndDocumentSelectionViewContinueButtonLoadingSpinnerTintColor"
        app:lottie_loop="true"
        app:lottie_rawRes="@raw/idenfy_custom_country_loader" />

</androidx.constraintlayout.widget.ConstraintLayout>
New colors are used in this layout:
    <color name="idenfyPurpleColor">#734BFB</color>
    <color name="idenfyPurpleTextColor">#452D97</color>
    <color name="idenfyPurpleBackgroundColor">#EFEBFF</color>

Auto Country & Document Detection Feature

Along with this feature, a new card is presented in idenfy_fragment_document_camera_preview_session_v2.xml to show detected country and supported documents for it. An updated layout looks like this: New Country & Document selection
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/idenfy_camera_view_root_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:animateLayoutChanges="true"
    android:clickable="true"
    android:focusable="true">

    <include layout="@layout/idenfy_partial_layout_camera_session_appbarlayout_v2" />

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/idenfyDocumentCameraPreviewSessionBackgroundColor"
        android:clickable="true"
        android:focusable="true"
        android:padding="0dp">

        <include layout="@layout/idenfy_partial_layout_document_camera_session_camerax_preview" />

        <RelativeLayout
            android:id="@+id/idenfy_relativelayout_document_camera_preview_session_customviewholder"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <com.idenfy.idenfySdk.idenfycore.ui.customviews.CustomViewHolder
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
        </RelativeLayout>

        <View
            android:id="@+id/idenfy_view_camera_preview_session_bottom_action_buttons"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:background="@color/idenfyDocumentCameraPreviewSessionBottomActionButtonsViewBackgroundColor"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/idenfy_guideline_camera_preview_session_horizontal_085" />

        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/idenfy_fab_camera_preview_session_take_photo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:tint="@color/idenfyDocumentCameraPreviewSessionTakePhotoButtonUnFocusedTintColor"
            app:backgroundTint="@color/idenfyDocumentCameraPreviewSessionTakePhotoButtonUnFocusedBackgroundColor"
            app:fabCustomSize="52dp"
            app:layout_constraintBottom_toBottomOf="@+id/idenfy_view_camera_preview_session_bottom_action_buttons"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="@+id/idenfy_view_camera_preview_session_bottom_action_buttons"
            app:layout_constraintTop_toTopOf="@+id/idenfy_view_camera_preview_session_bottom_action_buttons" />

        <androidx.appcompat.widget.AppCompatImageView
            android:id="@+id/idenfy_imageview_camera_preview_session_take_photo_icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:elevation="16dp"
            app:layout_constraintBottom_toBottomOf="@+id/idenfy_fab_camera_preview_session_take_photo"
            app:layout_constraintEnd_toEndOf="@+id/idenfy_fab_camera_preview_session_take_photo"
            app:layout_constraintStart_toStartOf="@+id/idenfy_fab_camera_preview_session_take_photo"
            app:layout_constraintTop_toTopOf="@+id/idenfy_fab_camera_preview_session_take_photo"
            app:srcCompat="@drawable/idenfy_custom_drawable_camera_preview_session_take_photo_icon_v2"
            tools:targetApi="lollipop" />

        <androidx.appcompat.widget.AppCompatImageView
            android:id="@+id/idenfy_imageview_camera_preview_session_upload_photo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingStart="10dp"
            android:paddingLeft="10dp"
            android:paddingTop="10dp"
            android:paddingEnd="10dp"
            android:paddingRight="10dp"
            android:paddingBottom="10dp"
            app:layout_constraintBottom_toBottomOf="@+id/idenfy_view_camera_preview_session_bottom_action_buttons"
            app:layout_constraintEnd_toStartOf="@+id/idenfy_fab_camera_preview_session_take_photo"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="@+id/idenfy_guideline_camera_preview_session_horizontal_085"
            app:srcCompat="@drawable/idenfy_custom_drawable_camera_preview_session_upload_photo_icon_v2" />

        <androidx.appcompat.widget.AppCompatImageView
            android:id="@+id/idenfy_imageview_camera_preview_switch_lens"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingStart="10dp"
            android:paddingLeft="10dp"
            android:paddingTop="10dp"
            android:paddingEnd="10dp"
            android:paddingRight="10dp"
            android:paddingBottom="10dp"
            android:visibility="gone"
            app:layout_constraintBottom_toBottomOf="@+id/idenfy_view_camera_preview_session_bottom_action_buttons"
            app:layout_constraintEnd_toEndOf="@+id/idenfy_view_camera_preview_session_bottom_action_buttons"
            app:layout_constraintStart_toEndOf="@id/idenfy_fab_camera_preview_session_take_photo"
            app:layout_constraintTop_toTopOf="@+id/idenfy_guideline_camera_preview_session_horizontal_085"
            app:layout_constraintVertical_bias="0.53"
            app:srcCompat="@drawable/idenfy_ic_camera_preview_switch_lens" />

        <androidx.appcompat.widget.AppCompatImageView
            android:id="@+id/idenfy_imageview_camera_preview_session_placeholder_for_cropping"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_centerInParent="true"
            android:scaleType="fitXY"
            android:visibility="visible"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:srcCompat="@drawable/idenfy_ic_camera_rectangle_v2" />

        <androidx.constraintlayout.widget.Guideline
            android:id="@+id/idenfy_guideline_camera_preview_session_horizontal_085"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            app:layout_constraintGuide_percent="0.85" />

        <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/idenfy_document_camera_accepted_documents_alert"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:minHeight="50dp"
            android:layout_gravity="center_vertical"
            android:layout_marginStart="16dp"
            android:layout_marginEnd="16dp"
            android:layout_marginBottom="16dp"
            android:visibility="gone"
            android:alpha="0.7"
            android:background="@color/idenfyLightGrayColor"
            app:layout_constraintBottom_toTopOf="@+id/idenfy_view_camera_preview_session_bottom_action_buttons"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent">

            <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
                android:id="@+id/idenfy_textview_accepted_documents_title"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginTop="8dp"
                android:layout_marginBottom="8dp"
                android:layout_marginStart="16dp"
                android:layout_marginEnd="24dp"
                android:theme="@style/idenfyDocumentCameraAcceptedDocumentsAlertTitleStyle"
                app:customfont="hkgrotesk_regular.ttf"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

        </androidx.constraintlayout.widget.ConstraintLayout>

        <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/idenfy_document_camera_warning_alert"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_gravity="center_vertical"
            android:layout_marginStart="16dp"
            android:layout_marginEnd="16dp"
            android:layout_marginBottom="16dp"
            android:alpha="0.7"
            android:visibility="invisible"
            android:background="@color/idenfyWarningLightYellowV2"
            app:layout_constraintBottom_toTopOf="@+id/idenfy_document_camera_accepted_documents_alert"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent">

            <ImageView
                android:id="@+id/idenfy_iv_document_camera_warning"
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:layout_marginStart="16dp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:srcCompat="@drawable/idenfy_ic_warning_alert" />

            <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
                android:id="@+id/idenfy_textview_idenfy_iv_document_camera_warning_title"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginStart="16dp"
                android:layout_marginEnd="24dp"
                android:theme="@style/idenfyDocumentCameraWarningAlertTitleStyle"
                app:customfont="hkgrotesk_regular.ttf"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toEndOf="@+id/idenfy_iv_document_camera_warning"
                app:layout_constraintTop_toTopOf="parent" />

        </androidx.constraintlayout.widget.ConstraintLayout>
    </androidx.constraintlayout.widget.ConstraintLayout>

    <include layout="@layout/idenfy_partial_layout_document_camera_session_instructions_topsheet_root_v2" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>

Updated UI for iDenfy Splash Screen

Both idenfy_fragment_splash_screen_v2.xml and idenfy_fragment_face_authentication_splash_screen_v2.xml were redone, we use simple white and black colors without complicated iDenfy gradients: New Splash Screen
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/idenfyBackgroundColorV2">

    <ImageView
        android:id="@+id/idenfy_imageview_splash_screen_icon"
        android:layout_width="120dp"
        android:layout_height="120dp"
        android:layout_marginBottom="12dp"
        app:layout_constraintBottom_toTopOf="@+id/idenfy_tv_splash_screen_title"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:srcCompat="@drawable/idenfy_ic_splash_screen_icon_drawable_v2" />

    <com.airbnb.lottie.LottieAnimationView
        android:id="@+id/idenfy_lottieanimationview_splash_screen"
        android:layout_width="53dp"
        android:layout_height="53dp"
        android:layout_centerInParent="true"
        android:layout_marginTop="40dp"
        android:scaleType="centerCrop"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/idenfy_tv_splash_screen_title"
        app:lottie_autoPlay="true"
        app:lottie_colorFilter="@color/idenfySplashScreenViewLoadingSpinnerTintColor"
        app:lottie_loop="true"
        app:lottie_rawRes="@raw/idenfy_custom_file_loader" />

    <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
        android:id="@+id/idenfy_tv_splash_screen_title"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginEnd="24dp"
        android:gravity="center"
        android:text="@string/idenfy_splash_screen_title_v2"
        android:textAlignment="center"
        android:theme="@style/idenfySplashScreenTitleTextStyle"
        android:visibility="visible"
        app:customfont="hkgrotesk_bold.ttf"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent">

        <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
            android:id="@+id/idenfy_tv_splash_screen_powered_by_idenfy_description"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="@string/idenfy_splash_screen_description_v2"
            android:textAlignment="center"
            android:theme="@style/idenfySplashScreenDescriptionTextStyle"
            android:visibility="visible"
            app:customfont="hkgrotesk_semibold.ttf"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toStartOf="@+id/idenfy_iv_powered_by_idenfy"
            app:layout_constraintHorizontal_chainStyle="packed"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <ImageView
            android:id="@+id/idenfy_iv_powered_by_idenfy"
            android:layout_width="35dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="4dp"
            android:layout_marginTop="4dp"
            app:layout_constraintBottom_toBottomOf="@+id/idenfy_tv_splash_screen_powered_by_idenfy_description"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@+id/idenfy_tv_splash_screen_powered_by_idenfy_description"
            app:layout_constraintTop_toTopOf="@+id/idenfy_tv_splash_screen_powered_by_idenfy_description"
            app:srcCompat="@drawable/idenfy_ic_powered_by_idenfy_v2" />
    </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
A new color is used in this layout:
    <color name="idenfyBlackV2">#19181D</color>

[8.7.4] to [8.7.5]

Android Default Alert Dialogs Replaced with New XML Layout

A new idenfy_dialog_generic_alert.xml layout was added that replaces the default Android alert dialogs:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/idenfyDefaultAlertDialogBackgroundColor"
    android:paddingTop="24dp"
    android:paddingStart="24dp"
    android:paddingEnd="16dp"
    android:paddingBottom="24dp">

    <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
        android:id="@+id/idenfy_textview_dialog_generic_title"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:textColor="@color/idenfyDefaultAlertDialogTitleColor"
        app:customfont="hkgrotesk_bold.ttf"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent" />

    <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
        android:id="@+id/idenfy_textview_dialog_generic_message"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:textSize="16sp"
        android:textColor="@color/idenfyDefaultAlertDialogMessageColor"
        app:customfont="hkgrotesk_regular.ttf"
        app:layout_constraintTop_toBottomOf="@id/idenfy_textview_dialog_generic_title"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent" />

    <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
        android:id="@+id/idenfy_button_dialog_generic_negative"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="24dp"
        android:layout_marginEnd="8dp"
        android:paddingStart="16dp"
        android:paddingEnd="16dp"
        android:textSize="14sp"
        android:textAllCaps="true"
        android:textColor="@color/idenfyDefaultAlertDialogNegativeButtonColor"
        android:clickable="true"
        android:focusable="true"
        android:visibility="gone"
        app:customfont="hkgrotesk_bold.ttf"
        app:layout_constraintTop_toBottomOf="@id/idenfy_textview_dialog_generic_message"
        app:layout_constraintEnd_toStartOf="@id/idenfy_button_dialog_generic_positive" />

    <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
        android:id="@+id/idenfy_button_dialog_generic_positive"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="24dp"
        android:paddingStart="16dp"
        android:paddingEnd="16dp"
        android:textSize="14sp"
        android:textAllCaps="true"
        android:textColor="@color/idenfyDefaultAlertDialogPositiveButtonColor"
        android:clickable="true"
        android:focusable="true"
        app:customfont="hkgrotesk_bold.ttf"
        app:layout_constraintTop_toBottomOf="@id/idenfy_textview_dialog_generic_message"
        app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

[8.6.2] to [8.6.3]

Updated Face Capture Oval Design

Face Oval V2
Follow this migration guide point if you have overridden idenfy_fragment_face_camera_preview_session_v2.xml.
A new idenfy_imageview_face_camera_preview_session_oval_face_v2 oval ImageView was added, which replaces idenfy_imageview_face_camera_preview_session_oval_face in idenfy_fragment_face_camera_preview_session_v2.xml:
        <ImageView
            android:id="@+id/idenfy_imageview_face_camera_preview_session_oval_face_v2"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:foregroundGravity="center"
            app:layout_constraintBottom_toTopOf="@+id/idenfy_guideline_camera_preview_session_horizontal_085"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="@+id/idenfy_guideline_face_camera_preview_session_horizontal_150" />
The idenfy_imageview_face_camera_preview_session_oval_face is still available but deprecated and will be removed in the future.

[8.5.x] to [8.6.0]

Added Realtime Blur Glare Detection in Document Capture

Follow this migration guide point if you have overridden idenfy_fragment_document_camera_preview_session_v2.xml.
With the latest realtime blur glare detection feature, a warning alert card was added to idenfy_fragment_document_camera_preview_session_v2.xml:
        <androidx.constraintlayout.widget.ConstraintLayout
    android:id="@+id/idenfy_document_camera_warning_alert"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_gravity="center_vertical"
    android:layout_marginStart="16dp"
    android:layout_marginEnd="16dp"
    android:layout_marginBottom="16dp"
    android:alpha="0.7"
    android:visibility="invisible"
    android:background="@color/idenfyWarningLightYellowV2"
    app:layout_constraintBottom_toTopOf="@+id/idenfy_view_camera_preview_session_bottom_action_buttons"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent">

    <ImageView
        android:id="@+id/idenfy_iv_document_camera_warning"
        android:layout_width="20dp"
        android:layout_height="20dp"
        android:layout_marginStart="16dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/idenfy_ic_warning_alert" />

    <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
        android:id="@+id/idenfy_textview_idenfy_iv_document_camera_warning_title"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginEnd="24dp"
        android:theme="@style/idenfyDocumentCameraWarningAlertTitleStyle"
        app:customfont="hkgrotesk_regular.ttf"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/idenfy_iv_document_camera_warning"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

[8.5.x] to [8.5.2]

KYC Questionnaire FILE and IMAGE Questions Merged

idenfy_item_questionnaire_type_image_input_v2.xml has been removed.

[8.4.x] to [8.5.0]

Added Face Detection Progress View to the Camera Drawer

Follow this migration guide point if you have overridden idenfy_partial_layout_face_camera_preview_session_instructions_topsheet_root_v2.xml.
With the latest face authentication auto capture feature, a progress bar was added to idenfy_partial_layout_face_camera_preview_session_instructions_topsheet_root_v2.xml:
    <ProgressBar
    android:id="@+id/idenfy_progress_bar_face_detection"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="0dp"
    android:layout_height="4dp"
    android:max="100"
    android:progress="0"
    android:visibility="gone"
    android:theme="@style/idenfyFaceCameraPreviewFaceDetectionProgressBarStyle"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"/>
Along with the style:
    <style name="idenfyFaceCameraPreviewFaceDetectionProgressBarStyle" parent="android:Widget.ProgressBar.Horizontal">
        <item name="colorAccent">@color/idenfyFaceCameraPreviewSessionFaceOvalLoadingColor
        </item>
    </style>

[8.3.x] to [8.4.0]

Removed Dynamic OnBoarding View

.withConfirmationView(IdenfyOnBoardingViewTypeEnum.MULTIPLE_DYNAMIC) option is no longer available in IdenfyUISettingsV2.
Follow this migration guide point if you have implemented custom views of idenfy_fragment_onboarding_v2.xml or idenfy_fragment_face_authentication_initial_view_v2.
The idenfy_fragment_onboarding_v2.xml and idenfy_fragment_face_authentication_initial_view_v2.xml layouts have changed and no longer have idenfy_cardview_instructions_description, idenfy_constraint_layout_instructions_description, idenfy_iv_instructions_description, idenfy_textview_instructions_description views. You can safely remove them from your layouts. Also, idenfy_colors_camera_dynamic_onboarding_view.xml has been removed. Only idenfyCameraOnBoardingViewBackgroundColor, idenfyCameraOnBoardingViewLoadingSpinnerColor, idenfyCameraDynamicOnBoardingViewProgressBarBackgroundColor and idenfyCameraDynamicOnBoardingViewProgressBarForegroundColor have been moved to idenfy_colors_camera_static_onboarding_view.xml.

[8.2.x] to [8.3.0]

Removed Instructions Drawer Option from Camera View

The instructions drawer has been removed. The top drawer will remain static as if instructions were disabled, and will only hold camera descriptions and the app bar. .withInstructions(IdenfyInstructionsType.DRAWER) option is no longer available in IdenfyUIBuilderV2.
Follow this migration guide point if you have overridden idenfy_partial_layout_face_camera_preview_session_instructions_topsheet_root_v2.xml or idenfy_partial_layout_document_camera_session_instructions_topsheet_root_v2.xml.
The idenfy_partial_layout_face_camera_preview_session_instructions_topsheet_root_v2.xml and idenfy_partial_layout_document_camera_session_instructions_topsheet_root_v2.xml layouts have changed and will no longer hold instructions UI. The layout height is static and is set to @dimen/idenfy_dimen_document_and_face_camera_session_view_drawer_height:
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/idenfy_constraintlayout_camera_session_instructions_top_sheet_layout_root"
    android:layout_width="match_parent"
    android:layout_height="@dimen/idenfy_dimen_document_and_face_camera_session_view_drawer_height"
    android:background="@drawable/idenfy_custom_drawable_instructions_background_without_rounded_corners"
    android:fillViewport="true"
    android:orientation="vertical">
Many views have been removed from these layouts, and constraints for idenfy_textview_camera_session_instructions_information_title have changed:
    <com.idenfy.idenfySdk.uicomponents.IDenfyTextView
        android:id="@+id/idenfy_textview_camera_session_instructions_information_title"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="16dp"
        android:gravity="center"
        android:textAlignment="center"
        android:theme="@style/idenfyDocumentCameraPreviewTitleStyle"
        app:customfont="hkgrotesk_bold.ttf"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@+id/idenfy_guideline_instructions_camera_session_max_collapsed_drawer_height" />
Also, idenfy_partial_layout_camera_session_instructions_topsheet_v2.xml and idenfy_partial_layout_camera_session_instructions_video_view_container_v2.xml have been removed. You can check the new layouts here. All colors and styles related to the instructions drawer have been removed. See the updated colors and styles.