Bugfix hospitals experiment (#2812)

* Rv bugfix experiments (#2790)

* UI Bugfixes

* Hospitals Card UI Bugfixes

* Hospitals Card UI Bugfixes

* Hospitals Card UI Bugfixes

* hospital card text properties handling (#2795)

* hospital card text properties handling

* removed redundant constants

Co-authored-by: Sangaraboina Rishvik Vardhan <rishvik.vardhan@navi.com>
This commit is contained in:
Himanshu Tanwar
2022-04-13 12:39:10 +05:30
committed by GitHub Enterprise
parent 8e672d5435
commit 3cfb73ea35
6 changed files with 121 additions and 43 deletions

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?><!--
~ /*
~ * Copyright © 2019 by Navi Technologies Private Limited
~ * All rights reserved. Strictly confidential
~ */
-->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/white" />
<size
android:width="24dp"
android:height="24dp" />
<stroke
android:color="@color/naviBorderLightGrey"
android:width="@dimen/dp_3" />
</shape>

View File

@@ -77,56 +77,67 @@
app:visibility="@{nearByHospitalDataV2.footerText!=null}"
tools:text="100% hospital bill covered everywhere" />
<com.google.android.material.card.MaterialCardView
<RelativeLayout
android:id="@+id/card_icon_primary"
android:layout_width="@dimen/dp_34"
android:layout_height="@dimen/dp_34"
android:layout_marginEnd="@dimen/dp_24"
android:theme="@style/Theme.MaterialComponents.Light"
android:background="@drawable/gi_circle_with_grey_border"
tools:visibility="visible"
android:visibility="gone"
app:cardCornerRadius="@dimen/dp_40"
app:cardElevation="@dimen/dp_0"
app:strokeColor="@color/naviBorderLightGrey"
app:strokeWidth="@dimen/dp_2"
app:layout_constraintEnd_toEndOf="@id/card_icon_secondary"
app:layout_constraintTop_toTopOf="@id/card_icon_secondary">
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/hospital_icon_primary"
android:layout_width="@dimen/dp_36"
android:layout_height="@dimen/dp_36"
android:background="@drawable/circle"
android:layout_gravity="center"
tools:src="@drawable/ic_navi_logo" />
<com.google.android.material.card.MaterialCardView
android:layout_width="@dimen/dp_31"
android:layout_height="@dimen/dp_31"
android:theme="@style/Theme.MaterialComponents.Light"
app:cardCornerRadius="@dimen/dp_40"
app:cardElevation="@dimen/dp_0"
android:layout_centerInParent="true">
</com.google.android.material.card.MaterialCardView>
<ImageView
android:id="@+id/hospital_icon_primary"
android:layout_width="@dimen/dp_34"
android:layout_height="@dimen/dp_34"
android:scaleType="centerCrop"
android:layout_gravity="center"
tools:src="@drawable/ic_navi_logo" />
<com.google.android.material.card.MaterialCardView
</com.google.android.material.card.MaterialCardView>
</RelativeLayout>
<RelativeLayout
android:id="@+id/card_icon_secondary"
android:layout_width="@dimen/dp_34"
android:layout_height="@dimen/dp_34"
android:layout_marginEnd="@dimen/dp_24"
android:theme="@style/Theme.MaterialComponents.Light"
tools:visibility="visible"
android:visibility="gone"
app:cardCornerRadius="@dimen/dp_40"
app:cardElevation="@dimen/dp_0"
app:strokeColor="@color/naviBorderLightGrey"
app:strokeWidth="@dimen/dp_2"
android:background="@drawable/gi_circle_with_grey_border"
app:layout_constraintEnd_toEndOf="@+id/hospital_count"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/hospital_icon_secondary"
android:layout_width="@dimen/dp_36"
android:layout_height="@dimen/dp_36"
android:layout_gravity="center"
android:background="@drawable/circle"
tools:src="@drawable/ic_navi_logo" />
<com.google.android.material.card.MaterialCardView
android:layout_width="@dimen/dp_31"
android:layout_height="@dimen/dp_31"
android:theme="@style/Theme.MaterialComponents.Light"
app:cardCornerRadius="@dimen/dp_40"
app:cardElevation="@dimen/dp_0"
android:layout_centerInParent="true">
</com.google.android.material.card.MaterialCardView>
<ImageView
android:id="@+id/hospital_icon_secondary"
android:layout_width="@dimen/dp_34"
android:layout_height="@dimen/dp_34"
android:scaleType="centerCrop"
android:layout_gravity="center"
tools:src="@drawable/ic_navi_logo" />
</com.google.android.material.card.MaterialCardView>
</RelativeLayout>
<androidx.cardview.widget.CardView
android:id="@+id/hospital_count"
android:layout_width="@dimen/dp_34"
@@ -141,7 +152,6 @@
app:visibility="@{nearByHospitalDataV2.numberOfHospitals!=null}">
<TextView
style="@style/MediumTextSemiBoldGreyFontStyle"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:ellipsize="end"
@@ -151,7 +161,9 @@
android:background="@drawable/circle"
android:text="@{`+`+nearByHospitalDataV2.numberOfHospitals}"
android:textSize="@dimen/sp_10"
tools:text="+10" />
android:textColor="@color/naviSubText"
android:fontFamily="@font/navi_bold"
tools:text="+100" />
</androidx.cardview.widget.CardView>

View File

@@ -30,6 +30,7 @@
<dimen name="dp_24">24dp</dimen>
<dimen name="dp_25">25dp</dimen>
<dimen name="dp_30">30dp</dimen>
<dimen name="dp_31">31dp</dimen>
<dimen name="dp_32">32dp</dimen>
<dimen name="dp_33">33dp</dimen>
<dimen name="dp_34">34dp</dimen>

View File

@@ -8,23 +8,29 @@
package com.navi.naviwidgets.extensions
import android.content.res.Resources
import android.graphics.Color
import android.os.Build
import android.text.Html
import android.text.InputFilter
import android.view.View
import android.widget.ImageView
import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.core.content.res.ResourcesCompat
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.navi.common.extensions.isNotNullAndNotEmpty
import com.navi.common.extensions.setVisibilityState
import com.navi.common.image.IconUtils
import com.navi.common.model.ImageDetail
import com.navi.common.utils.Constants.BOLD
import com.navi.common.utils.Constants.EXTRA_BOLD
import com.navi.common.utils.Constants.REGULAR
import com.navi.common.utils.Constants.SEMI_BOLD
import com.navi.navireusableui.edittext.FormEditText
import com.navi.naviwidgets.R
import com.navi.naviwidgets.models.NaviWidget
import com.navi.naviwidgets.models.response.DrawableData
import com.navi.naviwidgets.models.response.LabelWithInputWidget
import com.navi.naviwidgets.models.response.MultiWidgetConstraint
import com.navi.naviwidgets.models.response.WidgetError
import com.navi.naviwidgets.models.response.*
import com.navi.naviwidgets.utils.*
import com.navi.naviwidgets.widgets.*
import java.util.regex.Pattern
@@ -193,6 +199,44 @@ fun TextView.setMaxCharLength(
)
}
fun TextView.setTextFieldData(textFieldData: TextFieldData?) {
textFieldData?.let { data ->
data.text?.let { textData ->
text = textData
}
data.htmlText?.let { htmlTextData ->
text = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
Html.fromHtml(htmlTextData, Html.FROM_HTML_MODE_COMPACT)
} else {
Html.fromHtml(htmlTextData)
}
}
data.size?.let { size ->
if (size > 0) {
textSize = size.toFloat()
}
}
data.textColor?.let { textColor ->
if(isValidHexColor(textColor)) {
setTextColor(Color.parseColor(textColor))
}
}
data.font?.let {
typeface = ResourcesCompat.getFont(context, getFontAsset(it))
}
}
}
fun getFontAsset(fontCode: String?): Int {
return when (fontCode) {
BOLD -> R.font.navi_bold
SEMI_BOLD -> R.font.navi_semi_bold
REGULAR -> R.font.navi_regular
EXTRA_BOLD -> R.font.navi_extra_bold
else -> R.font.navi_regular
}
}
fun List<NaviWidget>?.getWidget(widgetId: String?): NaviWidget? {
var widget: NaviWidget? = null
this?.forEach {

View File

@@ -27,6 +27,7 @@ import com.navi.common.sharedpref.PreferenceManager
import com.navi.naviwidgets.callbacks.WidgetCallback
import com.navi.naviwidgets.databinding.HospitalCardWidgetV2LayoutBinding
import com.navi.naviwidgets.extensions.isValidHexColor
import com.navi.naviwidgets.extensions.setTextFieldData
import com.navi.naviwidgets.interfaces.hospitalcard.HospitalCardWidgetV2Info
import com.navi.naviwidgets.models.response.hospitalcard.HospitalCardProperties
import com.navi.naviwidgets.models.response.hospitalcard.HospitalCardWidgetV2Body
@@ -185,13 +186,13 @@ class HospitalCardWidgetV2Layout @JvmOverloads constructor(
private fun setCardData(hospitalCardData: HospitalCardWidgetV2Body?) {
hospitalCardData?.let { data ->
binding.apply {
title.text = data.title?.text ?: EMPTY
data.description?.text?.let { descriptionText ->
data.description?.text?.let {
stopLoading()
description.text = descriptionText
description.setTextFieldData(data.description)
}
footerTitle.text = data.footerCardInfo?.title?.text ?: EMPTY
footerSubtitle.text = data.footerCardInfo?.subTitle?.text ?: EMPTY
title.setTextFieldData(data.title)
footerTitle.setTextFieldData(data.footerCardInfo?.title)
footerSubtitle.setTextFieldData(data.footerCardInfo?.subTitle)
setHospitalIcons(data.footerCardInfo?.hospitalIconUrls)
}

View File

@@ -127,8 +127,8 @@
<ImageView
android:id="@+id/hospital_icon_2"
android:layout_width="@dimen/layout_dp_30"
android:layout_height="@dimen/layout_dp_30"
android:layout_width="@dimen/layout_dp_34"
android:layout_height="@dimen/layout_dp_34"
tools:src="@drawable/gradient_orange"
android:layout_marginStart="@dimen/layout_dp_28"
app:layout_constraintStart_toStartOf="parent"
@@ -136,7 +136,7 @@
android:background="@drawable/round_outline"
android:visibility="gone"
tools:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"/>
app:layout_constraintBottom_toBottomOf="parent" />
<LinearLayout
android:layout_width="@dimen/layout_dp_0"