Android SDK migration guide
This migration guide will inform about bigger changes in SDK api, that might affect you.
[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:
<?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:
<?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:
<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:
<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] -> [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] -> [8.6.3]
Updated Face capture oval design
Please 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 the idenfy_imageview_face_camera_preview_session_oval_face in the 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, however it is deprecated and will be removed in the future.
[8.5.x] -> [8.6.0]
Added realtime blur glare detection in document capture
Please 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 the 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] -> [8.5.2]
KYC Questionnaire FILE and IMAGE questions are merged, therefore idenfy_item_questionnaire_type_image_input_v2.xml is removed
[8.4.x] -> [8.5.0]
Added Face Detection progress View to the camera drawer
Please 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 the 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 of this progress bar:
<style name="idenfyFaceCameraPreviewFaceDetectionProgressBarStyle" parent="android:Widget.ProgressBar.Horizontal">
<item name="colorAccent">@color/idenfyFaceCameraPreviewSessionFaceOvalLoadingColor
</item>
</style>
[8.3.x] ~> [8.4.0]
Removed Dynamic OnBoarding view
.withConfirmationView(IdenfyOnBoardingViewTypeEnum.MULTIPLE_DYNAMIC) option is no longer available in the IdenfyUISettingsV2.
Please 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 they 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] ~> [8.3.0]
Removed instructions drawer option from camera view
Since the instructions drawer has been removed, the top drawer will remain static as if instructions were disabled. Now the drawer will only hold camera descriptions and the appbar.
.withInstructions(IdenfyInstructionsType.DRAWER) option is no longer available in the IdenfyUIBuilderV2.
| [8.2.x] | [8.3.0] |
|---|---|
![]() | ![]() |
Please 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, as well as 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 the colors and styles, related to the instructions drawer have been removed, you can check out the updated colors and styles.

