Property doc upload enhancements

This commit is contained in:
rishvik-vardhan
2022-08-22 17:48:06 +05:30
parent 92366730f6
commit ebe752da6c
7 changed files with 185 additions and 104 deletions

View File

@@ -9,6 +9,7 @@ package com.naviapp.homeloandigital.models.response
import com.google.gson.annotations.SerializedName
import com.navi.common.model.CtaData
import com.navi.naviwidgets.models.response.TextFieldData
import com.naviapp.homeloandigital.models.FormFooter
import com.naviapp.homeloandigital.models.FormHeader
import com.naviapp.models.Tag
@@ -41,7 +42,7 @@ data class HomeLoanPropertyDocCategory(
data class HomeLoanPropertyDocSubCategory(
@SerializedName("title") val title: String? = null,
@SerializedName("subtitle") val subtitle: String? = null,
@SerializedName("subTitle") val subtitle: TextFieldData? = null,
@SerializedName("cta") val cta: CtaData? = null,
@SerializedName("status") val status: String? = null,
@SerializedName("iconCode") val iconCode: String? = null,

View File

@@ -12,6 +12,7 @@ import android.view.View
import android.view.ViewGroup
import androidx.databinding.DataBindingUtil
import androidx.recyclerview.widget.RecyclerView
import com.navi.naviwidgets.extensions.setTextFieldData
import com.naviapp.R
import com.naviapp.databinding.ViewHlPropertyDocsSubCategoryBinding
import com.naviapp.homeloandigital.common.ui.activity.Navigator
@@ -40,7 +41,9 @@ class HomeLoanPropertyDocSubCategoryAdapter(
override fun onBindViewHolder(holder: HomeLoanPropertyDocSubCategoryVH, position: Int) {
if (!isValidIndex(position, itemCount)) return
holder.binding.subCategoryData = docSubCategoryList[position]
if (position == (docSubCategoryList.size - 1)) holder.binding.divider.visibility = View.GONE
holder.binding.descTv.setTextFieldData(docSubCategoryList[position].subtitle)
if (position == (docSubCategoryList.size - 1)) holder.binding.divider.visibility =
View.INVISIBLE
}
override fun getItemCount(): Int {

View File

@@ -23,6 +23,7 @@ data class HomeLoanDocumentUploadContent(
@SerializedName("description") val description: String? = null,
@SerializedName("uploadDetails") val uploadDetails: HomeLoanUploadDetails? = null,
@SerializedName("notes") val notes: HomeLoanUploadNoteDetails? = null,
@SerializedName("rejectedNotes") val rejectedNotes: HomeLoanUploadNoteDetails? = null,
@SerializedName("approvedProperty") val approvedProperty: Boolean? = null
)
@@ -31,7 +32,9 @@ data class HomeLoanUploadDetails(
@SerializedName("maxSizeInMB") val maxSizeInMB: Int? = null,
@SerializedName("maxDocuments") val maxDocuments: Int? = null,
@SerializedName("validDocTypes") val validDocTypes: List<String?>? = null,
@SerializedName("uploadedDocs") val uploadedDocs: List<HomeLoanUploadedDocData?>? = null
@SerializedName("uploadedDocs") val uploadedDocs: List<HomeLoanUploadedDocData?>? = null,
@SerializedName("rejectedTitle") val rejectedTitle: String? = null,
@SerializedName("rejectedDocs") val rejectedDocs: List<HomeLoanUploadedDocData?>? = null
)
data class HomeLoanUploadNoteDetails(

View File

@@ -82,81 +82,178 @@
app:cardCornerRadius="@dimen/layout_dp_8"
app:cardElevation="@dimen/layout_dp_8"
app:contentPaddingBottom="@dimen/layout_dp_24"
app:contentPaddingRight="@dimen/container_padding_hl"
app:contentPaddingTop="@dimen/layout_dp_20"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/desc_tv">
<androidx.constraintlayout.widget.ConstraintLayout
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/layout_dp_16"
android:orientation="vertical">
<com.navi.design.textview.NaviTextView
android:id="@+id/document_upload_title"
style="@style/BoldSmallTitleColorOne"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/layout_dp_16"
android:text="@{response.content.uploadDetails.title}"
app:layout_constraintEnd_toStartOf="@id/delete_all"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="Cost Sheet" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layout_upload_doc"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.navi.design.textview.NaviTextView
android:id="@+id/delete_all"
style="@style/RedBoldExtraSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/delete_all"
android:visibility="@{response.content.uploadDetails.uploadedDocs.size > 0 ? View.VISIBLE : View.GONE}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="Delete All" />
<com.navi.design.textview.NaviTextView
android:id="@+id/document_upload_title"
style="@style/BoldSmallTitleColorOne"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@{response.content.uploadDetails.title}"
app:layout_constraintEnd_toStartOf="@id/delete_all"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="Cost Sheet" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/upload_document_grid"
android:layout_width="0dp"
<com.navi.design.textview.NaviTextView
android:id="@+id/delete_all"
style="@style/RedBoldExtraSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/delete_all"
android:visibility="@{response.content.uploadDetails.uploadedDocs.size > 0 ? View.VISIBLE : View.GONE}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="Delete All" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/upload_document_grid"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_dp_8"
android:nestedScrollingEnabled="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/document_upload_title" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layout_rejected_docs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_dp_8"
android:nestedScrollingEnabled="false"
android:paddingStart="@dimen/layout_dp_8"
android:paddingEnd="@dimen/layout_dp_8"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/document_upload_title" />
</androidx.constraintlayout.widget.ConstraintLayout>
android:layout_marginTop="@dimen/layout_dp_16"
app:visibility="@{response.content.uploadDetails.rejectedDocs.size()>0}">
<View
android:id="@+id/divider3"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="?android:attr/listDivider"
app:layout_constraintTop_toTopOf="parent" />
<com.navi.design.textview.NaviTextView
android:id="@+id/rejected_docs_title"
style="@style/BoldSmallTitleColorOne"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_dp_16"
android:text="@{response.content.uploadDetails.rejectedTitle}"
app:layout_constraintEnd_toStartOf="@id/download_all"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/divider3"
tools:text="Rejected documents" />
<com.navi.design.textview.NaviTextView
android:id="@+id/download_all"
style="@style/RedBoldExtraSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/download"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/rejected_docs_title" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rejected_docs_grid"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_dp_8"
android:nestedScrollingEnabled="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/rejected_docs_title" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
<com.navi.design.textview.NaviTextView
android:id="@+id/note_title_tv"
style="@style/BoldExtraSmallDescriptionColorOne"
android:layout_width="0dp"
<LinearLayout
android:id="@+id/layout_note"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/container_padding_hl"
android:layout_marginHorizontal="@dimen/layout_dp_16"
android:layout_marginTop="@dimen/container_padding_hl"
android:layout_marginEnd="@dimen/container_padding_hl"
android:text="@{response.content.notes.title}"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/document_upload_section"
tools:text="Note:" />
app:layout_constraintTop_toBottomOf="@id/document_upload_section">
<androidx.recyclerview.widget.RecyclerView
android:layout_width="0dp"
<com.navi.design.textview.NaviTextView
android:id="@+id/note_title_tv"
style="@style/BoldExtraSmallDescriptionColorOne"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@{response.content.notes.title}"
tools:text="Note:" />
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_dp_4"
android:nestedScrollingEnabled="false"
app:iconTextStyle="@{iconTextStyle}"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/note_title_tv"
app:populateTextAndIconList="@{response.content.notes.instructions}"
app:topMargin="@{topMarginNotes}" />
</LinearLayout>
<LinearLayout
android:id="@+id/layout_reject_note"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/container_padding_hl"
android:layout_marginTop="@dimen/layout_dp_4"
android:layout_marginEnd="@dimen/container_padding_hl"
android:nestedScrollingEnabled="false"
app:iconTextStyle="@{iconTextStyle}"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
android:layout_marginHorizontal="@dimen/layout_dp_16"
android:layout_marginTop="@dimen/container_padding_hl"
android:background="@drawable/rounded_rectangle_8dp_white_bg"
android:backgroundTint="@color/red_alpha_7"
android:orientation="vertical"
android:padding="@dimen/layout_dp_16"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/note_title_tv"
app:populateTextAndIconList="@{response.content.notes.instructions}"
app:topMargin="@{topMarginNotes}" />
app:layout_constraintTop_toBottomOf="@id/layout_note"
app:visibility="@{response.content.rejectedNotes!=null}">
<com.navi.design.textview.NaviTextView
android:id="@+id/reject_note_title_tv"
style="@style/BoldExtraSmallDescriptionColorOne"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@{response.content.rejectedNotes.title}"
android:textColor="@color/red"
tools:text="Reason for failure:" />
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_dp_4"
android:nestedScrollingEnabled="false"
app:iconTextStyle="@{iconTextStyle}"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/note_title_tv"
app:populateTextAndIconList="@{response.content.rejectedNotes.instructions}"
app:topMargin="@{topMarginNotes}" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>

View File

@@ -25,14 +25,14 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/container_padding_hl">
android:paddingTop="@dimen/layout_dp_16"
android:paddingHorizontal="@dimen/layout_dp_16">
<com.navi.design.textview.NaviTextView
android:id="@+id/title_tv"
style="@style/AgreementTwoFontStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/container_padding_hl"
android:text="@{subCategoryData.title}"
app:layout_constraintEnd_toStartOf="@id/cta_title_tv"
app:layout_constraintStart_toStartOf="parent"
@@ -44,7 +44,6 @@
style="@style/RedBoldExtraSmall"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/container_padding_hl"
android:text="@{subCategoryData.cta.title}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
@@ -52,59 +51,36 @@
app:setNavigator="@{navigator}"
tools:text="Upload" />
<Space
android:id="@+id/spaceThree"
android:layout_width="@dimen/container_padding_hl"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/icon_iv" />
<ImageView
android:id="@+id/icon_iv"
android:layout_width="@dimen/layout_dp_12"
android:layout_height="@dimen/layout_dp_12"
app:layout_constraintBottom_toBottomOf="@id/desc_tv"
app:layout_constraintStart_toEndOf="@id/spaceThree"
app:layout_constraintTop_toTopOf="@id/desc_tv"
android:layout_width="@dimen/layout_dp_16"
android:layout_height="@dimen/layout_dp_16"
app:setImageFromIconCode="@{subCategoryData.iconCode}"
app:visibility="@{subCategoryData.iconCode!=null}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="@id/desc_tv"
tools:ignore="ContentDescription,RtlSymmetry"
tools:srcCompat="@drawable/ic_green_tick_small" />
<Space
android:id="@+id/spaceOne"
android:layout_width="@dimen/layout_dp_4"
android:layout_height="wrap_content"
android:visibility="@{TextUtils.isEmpty(subCategoryData.iconCode)? View.GONE:View.VISIBLE}"
app:layout_constraintEnd_toStartOf="@id/desc_tv"
app:layout_constraintStart_toEndOf="@id/icon_iv"
app:layout_constraintTop_toTopOf="@id/icon_iv" />
<com.navi.design.textview.NaviTextView
<TextView
android:id="@+id/desc_tv"
style="@style/TextDescMiniFontStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_dp_4"
android:layout_marginEnd="@dimen/container_padding_hl"
android:text="@{subCategoryData.subtitle}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/spaceOne"
app:layout_constraintTop_toBottomOf="@id/title_tv"
tools:text="Document is required to complete loan disbursal" />
<Space
android:id="@+id/spaceTwo"
android:layout_width="0dp"
android:layout_height="@dimen/layout_dp_16"
app:visibility="@{subCategoryData.subtitle!=null}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/desc_tv" />
app:layout_constraintTop_toBottomOf="@id/title_tv"
tools:text="Document is required to complete loan disbursal" />
<View
android:id="@+id/divider"
android:layout_width="0dp"
android:layout_height="@dimen/layout_dp_2"
android:background="@drawable/ic_dotted_line_gray"
android:layout_marginTop="@dimen/layout_dp_16"
app:layout_constraintTop_toBottomOf="@id/desc_tv"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />

View File

@@ -174,5 +174,6 @@
<color name="red_light_two">#FFEAE5</color>
<color name="progress_bar_gray">#979797</color>
<color name="red_alpha_5">#0DEF0000</color>
<color name="red_alpha_7">#12EF0000</color>
<color name="grey_text_color">#444444</color>
</resources>

View File

@@ -1,12 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:width="12dp"
android:height="12dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M24,12C24,18.6274 18.6274,24 12,24C5.3726,24 0,18.6274 0,12C0,5.3726 5.3726,0 12,0C18.6274,0 24,5.3726 24,12Z"
android:fillColor="#FF3333"/>
<path
android:pathData="M10.5883,5.666L13.3783,5.684L12.6763,14.648H11.3083L10.5883,5.666ZM12.0103,18.644C11.6023,18.644 11.2603,18.506 10.9843,18.23C10.7083,17.954 10.5703,17.624 10.5703,17.24C10.5703,16.856 10.7083,16.532 10.9843,16.268C11.2603,15.992 11.6023,15.854 12.0103,15.854C12.4183,15.854 12.7603,15.992 13.0363,16.268C13.3123,16.532 13.4503,16.856 13.4503,17.24C13.4503,17.624 13.3123,17.954 13.0363,18.23C12.7603,18.506 12.4183,18.644 12.0103,18.644Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M24,12C24,18.6274 18.6274,24 12,24C5.3726,24 0,18.6274 0,12C0,5.3726 5.3726,0 12,0C18.6274,0 24,5.3726 24,12Z"
android:fillColor="#FF3333" />
<path
android:pathData="M10.5883,5.666L13.3783,5.684L12.6763,14.648H11.3083L10.5883,5.666ZM12.0103,18.644C11.6023,18.644 11.2603,18.506 10.9843,18.23C10.7083,17.954 10.5703,17.624 10.5703,17.24C10.5703,16.856 10.7083,16.532 10.9843,16.268C11.2603,15.992 11.6023,15.854 12.0103,15.854C12.4183,15.854 12.7603,15.992 13.0363,16.268C13.3123,16.532 13.4503,16.856 13.4503,17.24C13.4503,17.624 13.3123,17.954 13.0363,18.23C12.7603,18.506 12.4183,18.644 12.0103,18.644Z"
android:fillColor="#ffffff" />
</vector>