TP-34663 | Date Picker Language Set To English (#7138)
link: "https://github.cmd.navi-tech.in/medici/android-customer-app/pull/7138"
This commit is contained in:
committed by
GitHub Enterprise
parent
de234612db
commit
8e7d143af0
@@ -20,5 +20,6 @@ const val ZERO_STRING = "0"
|
||||
const val USER_DEVICE_DATA_LOCATION_API = "/user-device-data/location"
|
||||
const val USER_DEVICE_DATA_APP_API = "/user-device-data/apps"
|
||||
const val UPI_APP_INTENT_URL = "upi://pay"
|
||||
const val DEFAULT_DATE_FORMAT = "yyyy-MM-dd"
|
||||
const val HEADER_SIGNATURE = "X-Signature"
|
||||
const val HEADER_EPOCH = "X-Epoch"
|
||||
|
||||
@@ -54,7 +54,7 @@ class NaviCalendarPickerDialog(
|
||||
binding.positiveButton.setOnClickListener {
|
||||
callback?.onDateSelect(
|
||||
binding.datePicker.year,
|
||||
binding.datePicker.month + 1,
|
||||
binding.datePicker.month,
|
||||
binding.datePicker.dayOfMonth
|
||||
)
|
||||
dismiss()
|
||||
|
||||
@@ -24,6 +24,7 @@ import com.navi.insurance.databinding.DobInputWidgetBinding
|
||||
import com.navi.insurance.models.request.FormTypedKeyData
|
||||
import com.navi.naviwidgets.extensions.setTextFieldData
|
||||
import com.navi.naviwidgets.models.WidgetLayoutParams
|
||||
import com.navi.naviwidgets.utils.getFormattedDate
|
||||
import com.navi.naviwidgets.utils.setWidgetLayoutParams
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
@@ -90,7 +91,7 @@ class DobInputWidget @JvmOverloads constructor(context: Context, attrs: Attribut
|
||||
|
||||
override fun onDateSelect(year: Int, month: Int, dayOfMonth: Int) {
|
||||
Timber.d("onNaviDateSet : [Year : $year, Month : ${month}, Day : ${dayOfMonth}]")
|
||||
selectedDate = "$year-${"%02d".format(month)}-${"%02d".format(dayOfMonth)}"
|
||||
selectedDate = getFormattedDate(year, month, dayOfMonth)
|
||||
updateDate()
|
||||
callback?.invoke(CtaData(type = CtaType.VALIDATE_FORM_PAGE.value))
|
||||
}
|
||||
|
||||
@@ -17,7 +17,6 @@ import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.appcompat.content.res.AppCompatResources
|
||||
import androidx.core.view.forEach
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.core.widget.doOnTextChanged
|
||||
import androidx.databinding.DataBindingUtil
|
||||
@@ -43,6 +42,7 @@ import com.navi.insurance.util.timestampToddMMMYYYY
|
||||
import com.navi.naviwidgets.extensions.setMaxCharLength
|
||||
import com.navi.naviwidgets.extensions.setTextFieldData
|
||||
import com.navi.naviwidgets.models.WidgetLayoutParams
|
||||
import com.navi.naviwidgets.utils.getFormattedDate
|
||||
import com.navi.naviwidgets.utils.setWidgetLayoutParams
|
||||
import java.util.*
|
||||
import java.util.regex.Pattern
|
||||
@@ -382,7 +382,7 @@ class PanDetailsInputWidgetLayout @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
override fun onDateSelect(year: Int, month: Int, dayOfMonth: Int) {
|
||||
val dateString = "$year-${"%02d".format(month)}-${"%02d".format(dayOfMonth)}"
|
||||
val dateString = getFormattedDate(year, month, dayOfMonth)
|
||||
binding?.apply {
|
||||
dobFieldTv.tag = dateString
|
||||
dobWidgetKey?.let { widgetKey -> updateFormData(dateString, widgetKey) }
|
||||
|
||||
@@ -50,6 +50,7 @@ import com.navi.naviwidgets.extensions.setMaxCharLength
|
||||
import com.navi.naviwidgets.extensions.setTextFieldData
|
||||
import com.navi.naviwidgets.extensions.showWhenDataIsAvailable
|
||||
import com.navi.naviwidgets.utils.PIN_CODE_SIZE
|
||||
import com.navi.naviwidgets.utils.getFormattedDate
|
||||
import com.navi.naviwidgets.views.NaviErrorPageView
|
||||
import isNotNullAndNotEmpty
|
||||
import kotlinx.coroutines.delay
|
||||
@@ -368,7 +369,7 @@ class HraFiActivationFragment : GiBaseFragment(), NaviCalendarPickerDialog.Call
|
||||
val fieldTv = view.findViewById<TextView>(R.id.nameFieldTv)
|
||||
val errorTv = view.findViewById<TextView>(R.id.errorText)
|
||||
errorTv.visibility = View.INVISIBLE
|
||||
fieldTv.text = "${"%02d".format(dayOfMonth)}-${"%02d".format(month)}-$year"
|
||||
fieldTv.text = getFormattedDate(year, month, dayOfMonth)
|
||||
viewModel.setSelectedDate(SelectedDate(year = year, month = month, day = dayOfMonth))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ import com.navi.naviwidgets.models.EditTextData
|
||||
import com.navi.naviwidgets.models.TextEditTextCalendarItem
|
||||
import com.navi.naviwidgets.models.response.TextFieldData
|
||||
import com.navi.naviwidgets.utils.EMPTY
|
||||
import com.navi.naviwidgets.utils.getFormattedDate
|
||||
import java.util.*
|
||||
|
||||
|
||||
@@ -181,6 +182,7 @@ class TextEditTextCalendarItemAdapter(
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private fun onDobClick(
|
||||
id: String?,
|
||||
calendar: CalendarData?,
|
||||
@@ -197,7 +199,7 @@ class TextEditTextCalendarItemAdapter(
|
||||
getStyle(datePickerData?.style),
|
||||
{ view, year, monthOfYear, dayOfMonth ->
|
||||
binding.tvDob.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0)
|
||||
val date = "$year-${"%02d".format(monthOfYear + ONE)}-${"%02d".format(dayOfMonth)}"
|
||||
val date = getFormattedDate(year, monthOfYear, dayOfMonth)
|
||||
datePickerData?.startYear = year
|
||||
datePickerData?.startMonth = monthOfYear + ONE
|
||||
datePickerData?.startDay = dayOfMonth
|
||||
|
||||
@@ -47,6 +47,7 @@ import com.navi.base.model.ActionData
|
||||
import com.navi.base.model.CtaData
|
||||
import com.navi.base.model.GenericAnalytics
|
||||
import com.navi.base.model.GenericAnalyticsData
|
||||
import com.navi.base.utils.DEFAULT_DATE_FORMAT
|
||||
import com.navi.base.utils.isNotNull
|
||||
import com.navi.base.utils.isNotNullAndNotEmpty
|
||||
import com.navi.base.utils.isNull
|
||||
@@ -906,4 +907,36 @@ fun checkAndShowTimer(
|
||||
timer.start()
|
||||
} else return false
|
||||
return true
|
||||
}
|
||||
|
||||
fun getValidDateFormat(dateFormat: String, flowName: String = "DATE_FORMAT_INCORRECT"): String {
|
||||
return try {
|
||||
val sdf = SimpleDateFormat(dateFormat)
|
||||
sdf.setLenient(false)
|
||||
val sampleDate: Date = sdf.parse("2023-07-04")
|
||||
if (sampleDate.isNotNull())
|
||||
dateFormat
|
||||
else DEFAULT_DATE_FORMAT
|
||||
} catch (e: java.lang.Exception) {
|
||||
val eventProperties = mapOf(
|
||||
Pair("flow_name", flowName.orEmpty()),
|
||||
Pair("method_name", "get_valid_date_format")
|
||||
)
|
||||
NaviTrackEvent.trackEvent("navi_date_format_error", eventProperties)
|
||||
DEFAULT_DATE_FORMAT
|
||||
}
|
||||
}
|
||||
|
||||
fun getFormattedDate(
|
||||
year: Int,
|
||||
monthOfYear: Int,
|
||||
dayOfMonth: Int,
|
||||
dateFormat: String = DEFAULT_DATE_FORMAT
|
||||
): String {
|
||||
val validDateFormat = getValidDateFormat(dateFormat)
|
||||
val dateCalendar = Calendar.getInstance()
|
||||
dateCalendar.set(year, monthOfYear, dayOfMonth)
|
||||
val selectedDate = dateCalendar.time
|
||||
val englishDateFormat = SimpleDateFormat(validDateFormat, Locale.ENGLISH)
|
||||
return englishDateFormat.format(selectedDate)
|
||||
}
|
||||
Reference in New Issue
Block a user