TP-55640 | buy sell spread new changes (#9572)

This commit is contained in:
Apoorv Nigam
2024-01-31 14:51:34 +05:30
committed by GitHub
parent 3065e31c31
commit b152c5f2cf
10 changed files with 75 additions and 10 deletions

View File

@@ -57,6 +57,8 @@ data class HeaderData(
val leftTitleTag: TagData? = null,
@SerializedName("rightTitleLottie")
val rightTitleLottie: String? = null,
@SerializedName("rightTitleEndIcon")
val rightTitleEndIcon: String? = null,
@SerializedName("rightTitle")
var rightTitle: NaviTextComponent? = null,
@SerializedName("actionData")

View File

@@ -9,6 +9,7 @@ package com.navi.naviwidgets.models
import com.google.gson.annotations.SerializedName
import com.navi.base.model.ActionData
import com.navi.design.common.Padding
import com.navi.design.textview.model.TextWithStyle
import com.navi.design.textview.model.TextWithStyleVariation
import com.navi.naviwidgets.models.response.Gradient
@@ -46,7 +47,9 @@ data class GraphWidgetData(
@SerializedName("fundDuration")
val fundDuration: List<GraphDuration>? = null,
@SerializedName("graphBgColor")
val graphBgColor: String? = null
val graphBgColor: String? = null,
@SerializedName("rootLayoutPadding")
val rootLayoutPadding: Padding? = null
) : Serializable
data class GraphData(

View File

@@ -1,6 +1,7 @@
package com.navi.naviwidgets.models
import com.google.gson.annotations.SerializedName
import com.navi.design.common.Padding
import com.navi.naviwidgets.models.response.WidgetError
@@ -8,6 +9,7 @@ data class GridWidget(
@SerializedName("widgetId") override val widgetId: String? = null,
@SerializedName("widgetName") override var widgetNameForBaseAdapter: String? = WIDGET_NAME,
@SerializedName("widgetData") val widgetData: GridWidgetData? = null,
@SerializedName("widgetLayoutParams") val widgetLayoutParams: WidgetLayoutParams? = null,
@SerializedName("isDependentWidget") override val isDependentWidget: Boolean? = null,
@SerializedName("dependencyWidgetId") override val dependencyWidgetId: String? = null,
override var isDependencyWidgetShowing: Boolean? = null,
@@ -21,7 +23,8 @@ data class GridWidget(
data class GridWidgetData(
@SerializedName("gridItems") val gridItems: List<NaviWidget>? = null,
@SerializedName("spanCount") val spanCount: Int? = null,
@SerializedName("removeDefaultSize") val removeDefaultSize: Boolean? = false
@SerializedName("removeDefaultSize") val removeDefaultSize: Boolean? = false,
@SerializedName("rvPadding") val rvPadding: Padding? = null
)

View File

@@ -2,7 +2,9 @@ package com.navi.naviwidgets.models
import com.google.gson.annotations.SerializedName
import com.navi.base.model.ActionData
import com.navi.design.common.Padding
import com.navi.naviwidgets.models.response.WidgetError
import com.navi.naviwidgets.widgets.textdisplay.Margin
import java.io.Serializable
data class TextWithCardWidget(
@@ -31,11 +33,18 @@ data class TextWithCardWidgetData(
val actionData: ActionData? = null,
@SerializedName("bgColor")
val bgColor: String? = null,
@SerializedName("borderWidth")
val borderWidth: Int? = null,
@SerializedName("borderColor")
val borderColor: String? = null,
@SerializedName("topIconCode")
val topIconCode: String? = null,
@SerializedName("isDisabled")
var isDisabled: Boolean? = null,
@SerializedName("bottomSheetData")
var bottomSheetData: List<NaviWidget>? = null
var bottomSheetData: List<NaviWidget>? = null,
@SerializedName("topIconMargin")
val topIconMargin: Margin? = null,
@SerializedName("containerPadding")
val containerPadding: Padding? = null
)

View File

@@ -156,10 +156,10 @@ class GoldPortfolioCardWidgetLayout @JvmOverloads constructor(
binding.headerCl.visibility = View.VISIBLE
headerData.headerPadding?.let {
binding.headerCl.setPadding(
dpToPxInInt(it.start ?: 16),
dpToPxInInt(it.top ?: 8),
dpToPxInInt(it.end ?: 16),
dpToPxInInt(it.bottom ?: 8)
dpToPxInInt(it.start ?: 8),
dpToPxInInt(it.top ?: 12),
dpToPxInInt(it.end ?: 8),
dpToPxInInt(it.bottom ?: 12)
)
}
binding.leftLottie.showWhenDataIsAvailable(headerData.leftTitleLottie, true)
@@ -174,6 +174,7 @@ class GoldPortfolioCardWidgetLayout @JvmOverloads constructor(
context = context,
span = headerData.rightTitle?.span
)
binding.rightTitleEndIcon.showWhenDataIsAvailable(headerData.rightTitleEndIcon)
headerData.leftTitleTag?.let { tagData ->
binding.leftTitleTag.text = tagData.title?.text.spannedText(
context = context,

View File

@@ -22,6 +22,7 @@ import com.google.android.material.chip.ChipGroup
import com.navi.base.model.NaviWidgetClickWithActionData
import com.navi.base.utils.orFalse
import com.navi.base.utils.orZero
import com.navi.design.utils.dpToPxInInt
import com.navi.design.utils.parseColorSafe
import com.navi.design.utils.setSpannableString
import com.navi.naviwidgets.R
@@ -68,6 +69,12 @@ class GraphWidgetLayout @JvmOverloads constructor(
private fun setProperties() {
binding.apply {
setWidgetLayoutParams(graphWidget?.widgetData?.widgetLayoutParams, root)
binding.root.setPadding(
dpToPxInInt(graphWidget?.widgetData?.rootLayoutPadding?.start ?: 0),
dpToPxInInt(graphWidget?.widgetData?.rootLayoutPadding?.top ?: 14),
dpToPxInInt(graphWidget?.widgetData?.rootLayoutPadding?.end ?: 0),
dpToPxInInt(graphWidget?.widgetData?.rootLayoutPadding?.bottom ?: 14),
)
binding.options.setOnCheckedStateChangeListener(::updateSelectedChips)
graphWidget?.widgetData?.let { data ->
data.graphBgColor?.let { bgColor ->

View File

@@ -15,6 +15,7 @@ import com.navi.naviwidgets.callbacks.WidgetCallback
import com.navi.naviwidgets.databinding.GridWidgetLayoutBinding
import com.navi.naviwidgets.models.GridWidget
import com.navi.naviwidgets.models.NaviWidget
import com.navi.naviwidgets.utils.setWidgetLayoutParams
import com.navi.naviwidgets.viewholder.BaseViewHolder
import com.navi.naviwidgets.viewholder.ViewHolderFactoryImpl
@@ -84,6 +85,17 @@ class GridWidgetLayout @JvmOverloads constructor(
private fun setProperties() {
binding.rvGrid.apply {
widgetInfo.widgetLayoutParams?.let {
setWidgetLayoutParams(it, binding.root)
}
widgetInfo.widgetData?.rvPadding?.let { padding ->
setPadding(
dpToPxInInt(padding.start ?: 0),
dpToPxInInt(padding.top ?: 16),
dpToPxInInt(padding.end ?: 0),
dpToPxInInt(padding.bottom ?: 16),
)
}
widgetInfo.widgetData?.let { widgetData ->
widgetData.gridItems?.let { list ->
layoutManager = widgetData.spanCount?.let { spanCount ->

View File

@@ -6,8 +6,10 @@ import android.graphics.Color
import android.util.AttributeSet
import androidx.cardview.widget.CardView
import com.navi.base.utils.orFalse
import com.navi.design.utils.dpToPxInInt
import com.navi.design.utils.getNaviDrawable
import com.navi.design.utils.isValidHexColor
import com.navi.design.utils.parseColorSafe
import com.navi.design.utils.spannedText
import com.navi.naviwidgets.R
import com.navi.naviwidgets.actions.NaviWidgetClick
@@ -15,6 +17,7 @@ import com.navi.naviwidgets.callbacks.WidgetCallback
import com.navi.naviwidgets.databinding.TextWithCardWidgetLayoutBinding
import com.navi.naviwidgets.extensions.showWhenDataIsAvailable
import com.navi.naviwidgets.models.TextWithCardWidget
import com.navi.naviwidgets.utils.setMargin
import com.navi.naviwidgets.utils.setWidgetLayoutParams
class TextWithCardWidgetLayout @JvmOverloads constructor(
@@ -52,9 +55,12 @@ class TextWithCardWidgetLayout @JvmOverloads constructor(
span = data.title.span
)
topIcon.showWhenDataIsAvailable(data.topIconCode)
topIcon.setMargin(data.topIconMargin)
if (isValidHexColor(data.bgColor)) {
root.background = getNaviDrawable(
cornerRadius = resources.getDimension(DesignR.dimen.dp_8).toInt(),
strokeWidth = dpToPxInInt(data.borderWidth ?: 0),
strokeColor = data.borderColor.parseColorSafe(),
backgroundColor = Color.parseColor(data.bgColor)
)
} else {
@@ -66,6 +72,12 @@ class TextWithCardWidgetLayout @JvmOverloads constructor(
root.isEnabled = false
}
}
containerCl.setPadding(
dpToPxInInt(data.containerPadding?.start ?: 16),
dpToPxInInt(data.containerPadding?.top ?: 0),
dpToPxInInt(data.containerPadding?.end ?: 16),
dpToPxInInt(data.containerPadding?.bottom ?: 14),
)
setOnClickListener {
widgetCallback.onClick(
NaviWidgetClick(

View File

@@ -24,7 +24,7 @@
android:id="@+id/header_cl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingHorizontal="@dimen/dp_16"
android:paddingHorizontal="@dimen/dp_8"
android:paddingVertical="@dimen/dp_8"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@id/body_cl"
@@ -102,12 +102,27 @@
android:id="@+id/right_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_8"
app:layout_goneMarginEnd="@dimen/dp_0"
app:layout_constraintStart_toEndOf="@id/right_lottie"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintEnd_toStartOf="@id/right_title_end_icon"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
tools:text="349.45 gm"/>
<ImageView
android:id="@+id/right_title_end_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toEndOf="@id/right_title"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:visibility="gone"
tools:visibility="visible"
tools:src="@drawable/image_placeholder_small"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout

View File

@@ -17,6 +17,7 @@
app:cardElevation="@dimen/dp_10">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/container_cl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingHorizontal="@dimen/dp_16"