Debug loan offer sticky (#4430)

* add dynamic inflation of loan details list item in the bottomsheet

* refactor

* add more refactoring

Co-authored-by: rishabh patni <rishabh.patni@navi.com>
This commit is contained in:
Ishan Thapa
2023-02-20 20:59:57 +05:30
committed by GitHub Enterprise
parent 44bc9a7ed2
commit 14c6992060
3 changed files with 68 additions and 135 deletions

View File

@@ -8,12 +8,16 @@
package com.naviapp.personalloanrevamp.customview
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewStub
import androidx.databinding.DataBindingUtil
import com.navi.common.ui.fragment.BaseBottomSheet
import com.naviapp.R
import com.naviapp.analytics.utils.NaviAnalytics
import com.naviapp.databinding.LoanOfferBottomsheetDataRowBinding
import com.naviapp.databinding.LoanOfferStickinessBottomSheetBinding
import com.naviapp.models.response.ItemWithKeyAndValue
import com.naviapp.models.response.LoanOfferBottomSheetData
class LoanOfferStickinessBottomSheetV2 : BaseBottomSheet() {
@@ -51,9 +55,21 @@ class LoanOfferStickinessBottomSheetV2 : BaseBottomSheet() {
R.color.white,
R.color.outrageous_orange
)
it.detailsList?.forEach { item ->
val view = getLineItemView(item)
binding.parentDataList.addView(view, binding.parentDataList.childCount)
}
}
}
private fun getLineItemView(data: ItemWithKeyAndValue): View {
return LoanOfferBottomsheetDataRowBinding.inflate(
LayoutInflater.from(context), null, false
).apply {
this.bottomSheetListItem = data
}.root
}
override val screenName: String
get() = arguments?.getString(KEY_SCREEN_NAME) ?: NaviAnalytics.PL_LOAN_DETAILS_BOTTOM_SHEET

View File

@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<layout 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">
<data>
<variable
name="bottomSheetListItem"
type="com.naviapp.models.response.ItemWithKeyAndValue" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/layout_dp_16"
android:paddingRight="@dimen/layout_dp_16"
android:paddingTop="@dimen/layout_dp_16">
<TextView
android:id="@+id/loan_amount_subtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/navisans_semibold"
android:text="@{bottomSheetListItem.key}"
android:textColor="@color/description_color_seven"
android:textSize="@dimen/spacing_14"
app:layout_constraintStart_toStartOf="parent"
tools:text="Loan Amount" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/navisans_regular"
android:text="@{bottomSheetListItem.value}"
android:textColor="@color/color_191919"
android:textSize="@dimen/spacing_14"
app:layout_constraintEnd_toEndOf="parent"
tools:text="$40,000" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -18,7 +18,7 @@
android:id="@+id/title_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/_16dp"
android:layout_marginStart="@dimen/_16dp"
android:paddingTop="@dimen/layout_dp_24"
android:text="@{loanDetailsBinder.title}"
android:fontFamily="@font/tt_medium"
@@ -28,148 +28,21 @@
tools:text="Loan details"
tools:ignore="MissingConstraints" />
<com.navi.design.textview.NaviTextView
android:id="@+id/loan_amount_subtitle"
android:layout_width="wrap_content"
<LinearLayout
android:id="@+id/parent_data_list"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/layout_dp_16"
android:layout_marginTop="@dimen/layout_dp_16"
android:text="@{loanDetailsBinder.detailsList[0].key}"
android:fontFamily="@font/tt_regular"
android:textColor="@color/description_color_seven"
android:textSize="@dimen/spacing_14"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/title_tv"
tools:text="Loan Amount"/>
<com.navi.design.textview.NaviTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{loanDetailsBinder.detailsList[0].value}"
android:fontFamily="@font/tt_regular"
android:textColor="@color/color_191919"
android:textSize="@dimen/spacing_14"
app:layout_constraintTop_toBottomOf="@id/title_tv"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginRight="@dimen/layout_dp_16"
android:layout_marginTop="@dimen/layout_dp_16"
tools:text="$40,000"/>
<com.navi.design.textview.NaviTextView
android:id="@+id/interest_rate_subtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/layout_dp_16"
android:layout_marginTop="@dimen/layout_dp_16"
android:text="@{loanDetailsBinder.detailsList[1].key}"
android:fontFamily="@font/tt_regular"
android:textColor="@color/description_color_seven"
android:textSize="@dimen/spacing_14"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/loan_amount_subtitle"
tools:text="Interest Rate"/>
<com.navi.design.textview.NaviTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{loanDetailsBinder.detailsList[1].value}"
android:fontFamily="@font/tt_regular"
android:textColor="@color/color_191919"
android:textSize="@dimen/spacing_14"
app:layout_constraintTop_toBottomOf="@id/loan_amount_subtitle"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginRight="@dimen/layout_dp_16"
android:layout_marginTop="@dimen/layout_dp_16"
tools:text="14%"/>
<com.navi.design.textview.NaviTextView
android:id="@+id/tenure_subtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/layout_dp_16"
android:layout_marginTop="@dimen/layout_dp_16"
android:text="@{loanDetailsBinder.detailsList[2].key}"
android:fontFamily="@font/tt_regular"
android:textColor="@color/description_color_seven"
android:textSize="@dimen/spacing_14"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/interest_rate_subtitle"
tools:text="Tenure"/>
<com.navi.design.textview.NaviTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{loanDetailsBinder.detailsList[2].value}"
android:fontFamily="@font/tt_regular"
android:textColor="@color/color_191919"
android:textSize="@dimen/spacing_14"
app:layout_constraintTop_toBottomOf="@id/interest_rate_subtitle"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginRight="@dimen/layout_dp_16"
android:layout_marginTop="@dimen/layout_dp_16"
tools:text="10 months"/>
<com.navi.design.textview.NaviTextView
android:id="@+id/processing_fee_subtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/layout_dp_16"
android:layout_marginTop="@dimen/layout_dp_16"
android:text="@{loanDetailsBinder.detailsList[3].key}"
android:fontFamily="@font/tt_regular"
android:textColor="@color/description_color_seven"
android:textSize="@dimen/spacing_14"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tenure_subtitle"
tools:text="Processing fee"/>
<com.navi.design.textview.NaviTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{loanDetailsBinder.detailsList[3].value}"
android:fontFamily="@font/tt_regular"
android:textColor="@color/color_191919"
android:textSize="@dimen/spacing_14"
app:layout_constraintTop_toBottomOf="@id/tenure_subtitle"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginRight="@dimen/layout_dp_16"
android:layout_marginTop="@dimen/layout_dp_16"
tools:text="$90"/>
<com.navi.design.textview.NaviTextView
android:id="@+id/gst_subtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/layout_dp_16"
android:layout_marginTop="@dimen/layout_dp_16"
android:text="@{loanDetailsBinder.detailsList[4].key}"
android:fontFamily="@font/tt_regular"
android:textColor="@color/description_color_seven"
android:textSize="@dimen/spacing_14"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/processing_fee_subtitle"
tools:text="GST"/>
<com.navi.design.textview.NaviTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{loanDetailsBinder.detailsList[4].value}"
android:fontFamily="@font/tt_regular"
android:textColor="@color/color_191919"
android:textSize="@dimen/spacing_14"
app:layout_constraintTop_toBottomOf="@id/processing_fee_subtitle"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginRight="@dimen/layout_dp_16"
android:layout_marginTop="@dimen/layout_dp_16"
tools:text="$90"/>
app:layout_constraintTop_toBottomOf="@+id/title_tv"/>
<View
android:id="@+id/drawable_line"
android:layout_width="@dimen/dp_0"
android:layout_height="@dimen/_1dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/gst_subtitle"
app:layout_constraintTop_toBottomOf="@id/parent_data_list"
android:layout_marginTop="@dimen/_24dp"
android:layout_marginLeft="@dimen/layout_dp_16"
android:layout_marginRight="@dimen/layout_dp_16"
@@ -220,5 +93,6 @@
app:layout_constraintVertical_bias="0.052"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>